/* Tableau de bord du cabinet · maquette v6 (demo/dashboard-v6.html) : verre dépoli sur fond pastel, 8 indicateurs en une carte, carte équipe compacte, 5 ou 6 colonnes visibles sans défiler (disposition 31.10). */
[hidden]{display:none!important}
:root{--bg:#f4f7fb;--card:#fbfbfd;--line:#e3e8f0;--tx:#0f172a;--mu:#4f5a6b;--ac:#2563eb;--ac-tx:#1d4ed8;--ac2:#dbeafe;--ok:#16a34a;--okb:#dcfce7;--wa:#d97706;--wab:#fef3c7;--ko:#dc2626;--kob:#fee2e2;--vi:#7c3aed;--vib:#ede9fe;
--r:14px;--sh:0 1px 2px #0f172a0d,0 4px 16px #0f172a0a;--sk:#e9eef5;--sk2:#f5f8fb;--agent:#2563eb;--secr:#7c3aed;--agenda:#eef2f7;
/* verre (valeurs de dashboard-v4/src/style.css, blancs nuancés) : 8 grands conteneurs seulement, le reste en --glass-in sans flou */
--glass:rgba(251,251,253,.64);--glass-fort:rgba(250,250,252,.88);--glass-in:rgba(251,251,253,.55);--sheen:rgba(251,251,253,.45);--line-soft:rgba(60,60,67,.08);
/* Profondeur en couches : reflet supérieur et liseré intérieurs, filet de 0,5 px, ombre de contact, ombre portée large */
--bord-verre:rgba(251,251,253,.7);--reflet:rgba(251,251,253,.75);
--ombre:inset 0 1px 0 rgba(251,251,253,.9),inset 0 0 0 1px rgba(251,251,253,.22),0 0 0 .5px rgba(20,30,60,.08),0 1px 2px rgba(20,30,60,.07),0 6px 14px -6px rgba(20,30,60,.14),0 18px 36px -14px rgba(30,40,90,.2),0 40px 70px -30px rgba(40,40,110,.24);--r-grand:20px;
/* Liseré en dégradé (clair en haut), reflet spéculaire, colonnes posées sur le verre puis cartes au-dessus */
--lisere-h:rgba(251,251,253,.95);--lisere-b:rgba(251,251,253,.18);--speculaire:rgba(251,251,253,.6);
--sh-col:inset 0 1px 0 rgba(251,251,253,.8),inset 0 0 0 .5px rgba(251,251,253,.4),0 1px 1px rgba(20,30,60,.04),0 2px 6px -3px rgba(20,30,60,.08);
--sh-carte:inset 0 1px 0 rgba(251,251,253,.95),0 0 0 .5px rgba(20,30,60,.07),0 1px 2px rgba(20,30,60,.09),0 4px 10px -3px rgba(20,30,60,.14),0 12px 22px -12px rgba(30,40,90,.2);
--sh-carte-h:inset 0 1px 0 rgba(251,251,253,.95),0 0 0 .5px rgba(20,30,60,.08),0 2px 4px rgba(20,30,60,.09),0 8px 16px -6px rgba(20,30,60,.16),0 20px 32px -14px rgba(30,40,90,.28);
--wall1:#9fc2ff;--wall2:#ffb8dc;--wall3:#a6ecd2;--wall4:#ffd9a8;--wall5:#c4b2ff;--wall6:#a3dcfa;--wall0:#e6eaf6;--grain:.05}
body.sombre{--bg:#0b1220;--card:#111a2e;--line:#1f2a40;--tx:#e6ecf7;--mu:#9aaac4;--ac:#60a5fa;--ac-tx:#60a5fa;--ac2:#1e3a5f;--okb:#12341f;--wab:#3a2a0b;--kob:#3b1212;--vib:#2b2050;--sh:none;--sk:#1a2438;--sk2:#222e46;--agenda:#18223a;
--glass:rgba(30,36,52,.64);--glass-fort:rgba(24,30,46,.9);--glass-in:rgba(60,68,88,.38);--sheen:rgba(251,251,253,.05);--line-soft:rgba(251,251,253,.08);
--bord-verre:rgba(251,251,253,.09);--reflet:rgba(251,251,253,.06);
--ombre:inset 0 1px 0 rgba(251,251,253,.1),inset 0 0 0 1px rgba(251,251,253,.035),0 0 0 .5px rgba(5,8,15,.6),0 1px 2px rgba(5,8,15,.4),0 10px 24px -8px rgba(5,8,15,.5),0 28px 56px -20px rgba(5,8,15,.6);
--lisere-h:rgba(251,251,253,.24);--lisere-b:rgba(251,251,253,.04);--speculaire:rgba(251,251,253,.08);
--sh-col:inset 0 1px 0 rgba(251,251,253,.07),inset 0 0 0 .5px rgba(251,251,253,.04),0 1px 2px rgba(5,8,15,.3);
--sh-carte:inset 0 1px 0 rgba(251,251,253,.09),0 0 0 .5px rgba(5,8,15,.55),0 1px 2px rgba(5,8,15,.45),0 4px 10px -3px rgba(5,8,15,.55),0 12px 22px -12px rgba(5,8,15,.6);
--sh-carte-h:inset 0 1px 0 rgba(251,251,253,.1),0 0 0 .5px rgba(5,8,15,.6),0 2px 4px rgba(5,8,15,.5),0 8px 16px -6px rgba(5,8,15,.55),0 20px 32px -14px rgba(5,8,15,.75);
--wall1:#1d3f96;--wall2:#5c1c5a;--wall3:#0f4d46;--wall4:#4a3412;--wall5:#3d2a8f;--wall6:#0f4270;--wall0:#0a0b16;--grain:.06}
/* Verre opaque : « Sans animations », « Réduire la transparence », ou navigateur sans backdrop-filter */
body.sobre{--glass:var(--card);--glass-fort:var(--card);--glass-in:var(--bg);--sheen:transparent;--bord-verre:var(--line);--lisere-h:transparent;--lisere-b:transparent;--speculaire:transparent}
@media (prefers-reduced-transparency:reduce){body,body.sombre{--glass:var(--card);--glass-fort:var(--card);--glass-in:var(--bg);--sheen:transparent;--bord-verre:var(--line);--lisere-h:transparent;--lisere-b:transparent;--speculaire:transparent}}
@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){body,body.sombre{--glass:var(--card);--glass-fort:var(--card);--glass-in:var(--bg);--sheen:transparent;--bord-verre:var(--line);--lisere-h:transparent;--lisere-b:transparent;--speculaire:transparent}}
*{box-sizing:border-box}html,body{margin:0}body{background:var(--wall0);color:var(--tx);font:15px/1.45 -apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,"Segoe UI",Inter,Roboto,sans-serif;-webkit-font-smoothing:antialiased;min-height:100vh;min-height:100dvh}
/* Fond maillé fixe façon Sonoma : six grands halos saturés sur un dégradé de base (pas dans --bg, qui sert de couleur pleine ailleurs), fondus en deux paliers contre les bandes, puis un grain SVG très léger */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(75% 70% at 4% 0%,var(--wall1),color-mix(in srgb,var(--wall1) 45%,transparent) 40%,transparent 78%),radial-gradient(62% 66% at 100% 0%,var(--wall2),color-mix(in srgb,var(--wall2) 45%,transparent) 38%,transparent 76%),
  radial-gradient(55% 58% at 56% 34%,var(--wall5),color-mix(in srgb,var(--wall5) 40%,transparent) 40%,transparent 78%),radial-gradient(70% 72% at 82% 100%,var(--wall3),color-mix(in srgb,var(--wall3) 45%,transparent) 40%,transparent 76%),radial-gradient(58% 66% at 0% 100%,var(--wall4),color-mix(in srgb,var(--wall4) 40%,transparent) 40%,transparent 76%),
  radial-gradient(50% 52% at 28% 62%,var(--wall6),color-mix(in srgb,var(--wall6) 40%,transparent) 40%,transparent 78%),linear-gradient(160deg,var(--wall0),color-mix(in srgb,var(--wall0) 80%,var(--wall5)))}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain);background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .55 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
/* Verre : en-tête, indicateurs, équipe, tableau, journal, panneau droit, notifications, tiroir */
.top,.kpis,.team,.tableau,.journal,.droite,.notifs,.meteo-pop,.tiroir{background:radial-gradient(130% 70px at 50% 0,var(--speculaire),transparent 75%),linear-gradient(180deg,var(--sheen),transparent 42%),var(--glass);-webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%);border:1px solid var(--bord-verre);box-shadow:var(--ombre)}
.notifs,.tiroir{background:linear-gradient(180deg,var(--sheen),transparent 30%),var(--glass-fort)}
/* Liseré en dégradé posé sur la bordure par un pseudo-élément masqué : la boîte ne change pas */
.kpis,.team,.tableau,.journal{position:relative}
:is(.top,.kpis,.team,.tableau,.journal)::before{content:"";position:absolute;inset:-1px;padding:1px;border-radius:inherit;background:linear-gradient(180deg,var(--lisere-h),var(--lisere-b) 55%,color-mix(in srgb,var(--lisere-b) 60%,transparent));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
/* Sans flou : « Sans animations » ou réglage système « Réduire la transparence » (aussi plus léger pour les PC anciens) ; les fonds deviennent opaques par les jetons ci-dessus */
body.sobre :is(.top,.kpis,.team,.tableau,.journal,.droite,.notifs,.meteo-pop,.toast,.tiroir,.t-barre,.voile,.barre-onglets){-webkit-backdrop-filter:none;backdrop-filter:none}
@media (prefers-reduced-transparency:reduce){body :is(.top,.kpis,.team,.tableau,.journal,.droite,.notifs,.meteo-pop,.toast,.tiroir,.t-barre,.voile,.barre-onglets){-webkit-backdrop-filter:none;backdrop-filter:none}}
/* Micro-transitions (coupées par body.sobre et prefers-reduced-motion plus bas) */
:is(.btn,.chips button,.seg button,.onglets button,.opt-sec,.cloche,.compte,.meteo,button.kpi,.ap-sel button,.med-f button,.mail-f button,.props button,.ag-barre button,.tiroir .x,.ia-fab,.ml,.eq-b){transition:background-color .16s ease-out,border-color .16s ease-out,color .16s ease-out,box-shadow .2s ease-out,transform .2s ease-out}
.btn:hover:not(:disabled){box-shadow:var(--sh-carte)}
.chips button:hover:not(.on),.opt-sec:hover{transform:translateY(-1px)}
:is(.chips button,.opt-sec,.statut-sec,.horloge,.onglets,.col){box-shadow:inset 0 1px 0 var(--reflet)}
button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}
a{color:var(--ac)}
.mu{color:var(--mu)}.petit{font-size:12px}.note{font-size:12px;color:var(--mu);margin:6px 0}
/* en-tête */
.top{position:sticky;top:10px;z-index:20;display:flex;align-items:center;gap:14px;padding:9px 16px;margin:10px 14px 0;border-radius:var(--r-grand)}
.marque{display:flex;gap:10px;align-items:center;min-width:0}.logo{width:38px;height:38px;border-radius:11px;background:linear-gradient(145deg,#0062cc,#0a84ff);color:#fbfbfd;font-weight:700;font-size:20px;display:grid;place-items:center;flex:none;box-shadow:0 6px 14px -4px #007aff}
.nom{font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sous{font-size:12px;color:var(--mu)}
.etat-ligne{display:flex;gap:10px;align-items:center;margin-top:1px}
.nom select{border:0;background:none;font-weight:650;padding:0;max-width:320px}
.badge-test{font-size:11px;font-weight:600;letter-spacing:.04em;padding:4px 9px;border-radius:999px;background:var(--wab);color:#92400e;border:1px solid #fcd34d;white-space:nowrap}
body.sombre .badge-test{color:#fbbf24;border-color:#6b4f0f}
.bandeau-demo{padding:6px 16px;text-align:center;font-size:13px;font-weight:600;background:var(--wab);color:#92400e;border-bottom:1px solid #fcd34d}
body.sombre .bandeau-demo{color:#fbbf24;border-color:#6b4f0f}
.cnx{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--mu);white-space:nowrap}.cnx i{width:8px;height:8px;border-radius:50%;background:#94a3b8}.cnx.ok i{background:var(--ok)}.cnx.ko i{background:var(--ko)}
.espace{flex:1}
/* Pastille heure · date · météo : pilule de verre (comme le statut du secrétariat), la météo en pilule pleine cliquable */
.horloge{position:relative;display:flex;flex:none;align-items:center;gap:9px;line-height:1.15;background:var(--glass-in);border:1px solid var(--line);border-radius:999px;padding:3px 4px 3px 12px;min-height:40px}
.horloge>b{font-size:20px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.horloge small{display:flex;flex-direction:column;color:var(--mu);font-size:12px;white-space:nowrap}.horloge small span+span{font-size:11px}
.horloge:not(:has(.meteo:not([hidden]))){padding-right:12px}
.meteo{display:inline-flex;flex:none;align-items:center;gap:6px;min-height:32px;border:0;border-radius:999px;background:var(--card);padding:4px 11px 4px 8px;font-weight:650;font-variant-numeric:tabular-nums;box-shadow:0 1px 2px rgba(20,30,60,.08)}
.meteo svg{width:20px;height:20px;flex:none;color:var(--ac-tx)}.meteo[data-icone=soleil] svg{color:#b45309}.meteo:is([data-icone=lune],[data-icone=couvert],[data-icone=brouillard]) svg{color:var(--mu)}.meteo[data-icone=orage] svg{color:var(--vi)}
body.sombre .meteo[data-icone=soleil] svg{color:#fbbf24}
.meteo b{font-size:14px}#meteo-lieu{color:var(--mu);font-weight:550;font-size:12.5px;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.meteo[aria-expanded=true]{background:var(--ac2);color:var(--ac-tx)}
/* Menus du bandeau : un flou imbriqué dans celui de .top ne s'applique pas (le dessous se lirait), d'où un fond plein sous le reflet, le liseré et l'ombre du verre */
.meteo-pop,.menu{background:radial-gradient(130% 60px at 50% 0,var(--speculaire),transparent 75%),linear-gradient(180deg,var(--sheen),transparent 30%),var(--card)}
.meteo-pop{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-width:calc(100vw - 16px);border-radius:16px;padding:12px 14px;z-index:26;line-height:1.45;white-space:normal}
.meteo-titre{display:block;font-size:14px;margin-bottom:4px}.meteo-act{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 4px}.meteo-msg:empty{display:none}
.seg{display:flex;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:3px}.seg button{border:0;background:none;padding:6px 12px;border-radius:8px;color:var(--mu);font-weight:550;white-space:nowrap}.seg button.on{background:var(--card);color:var(--tx);box-shadow:var(--sh)}
/* Statut du secrétariat : pilule de verre */
.statut-sec{display:flex;align-items:center;gap:4px;font-size:11.5px;color:var(--mu);background:var(--glass-in);border:1px solid var(--line);border-radius:999px;padding:2px 2px 2px 9px}.statut-btn{display:inline-flex;align-items:center;gap:5px;border:0;background:var(--card);border-radius:999px;padding:3px 9px;font:inherit;font-weight:600;line-height:1.3;cursor:pointer;white-space:nowrap}.statut-btn i{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.statut-btn.presente{color:#146c43}.statut-btn.absente{color:#b42318}body.sombre .statut-btn.presente{color:#4ade80}body.sombre .statut-btn.absente{color:#fca5a5}.statut-btn .cadenas{display:none;color:var(--mu)}.statut-btn:disabled{cursor:default;opacity:1;background:transparent}.statut-btn:disabled .cadenas{display:block}
/* Compte : puce avatar + nom + chevron (nom masqué sous 900 px), panneau de verre dense */
.menu-wrap{position:relative;flex:none}.compte{display:flex;align-items:center;gap:7px;min-height:40px;padding:2px 9px 2px 2px;border:1px solid var(--line);border-radius:999px;background:var(--glass-in);box-shadow:inset 0 1px 0 var(--reflet);max-width:220px}
.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--ac2);color:var(--ac-tx);font-weight:650;font-size:14px}
.compte-nom{font-weight:600;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.chevron{width:16px;height:16px;flex:none;color:var(--mu);transition:transform .16s ease-out}
.compte:hover{background:var(--card)}.compte[aria-expanded=true]{background:var(--ac2);border-color:color-mix(in srgb,var(--ac) 35%,transparent)}.compte[aria-expanded=true] .chevron{transform:rotate(180deg)}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px}
.menu{position:absolute;right:0;top:calc(100% + 8px);border:1px solid var(--bord-verre);border-radius:16px;box-shadow:var(--ombre);padding:10px;width:290px;max-width:calc(100vw - 16px);z-index:25}
.menu-sep{border:0;border-top:1px solid var(--line);margin:6px 4px}.menu-etat{margin:-2px 4px 6px 30px}.menu-etat:empty{display:none}.menu label{line-height:1.3}
.menu-t{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--mu);margin:10px 4px 4px}.menu label{display:flex;gap:8px;align-items:center;padding:7px 4px;border-radius:8px}
.menu .qui{padding:4px 4px 10px;border-bottom:1px solid var(--line);margin-bottom:8px}.menu .qui b{display:block}
.menu a,.menu .lien{display:block;width:100%;text-align:left}
.lien{border:0;background:none;color:var(--ac-tx);padding:7px 4px;text-decoration:none;font-weight:550}
/* bandeaux prioritaires : urgence 144 puis questions en direct */
.alertes{display:flex;flex-direction:column;gap:10px;padding:0 20px}.alertes:not(:empty){padding-top:14px}
.a144{display:flex;gap:14px;align-items:center;background:var(--kob);border:2px solid var(--ko);border-radius:var(--r);padding:12px 16px;color:var(--tx)}
.a144 .n{background:var(--ko);color:#fbfbfd;font-weight:800;border-radius:12px;padding:8px 10px;font-size:18px}.a144 .t{font-weight:700;color:var(--ko)}.a144 .d{font-size:13px}.a144 .x{flex:1}
.questions{display:flex;flex-direction:column;gap:10px;padding:0 20px}.questions:not(:empty){padding-top:14px}
.q{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:var(--card);border:2px solid var(--wa);border-radius:var(--r);padding:14px 16px;box-shadow:0 6px 24px #d9770622}
.q-anneau{width:52px;height:52px;position:relative}.q-anneau svg{transform:rotate(-90deg)}.q-anneau b{position:absolute;inset:0;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.q.presse{border-color:var(--ko)}.q.presse .q-anneau circle+circle{stroke:var(--ko)}
.q-t{font-size:12px;color:var(--wa);font-weight:650;text-transform:uppercase;letter-spacing:.04em}.q-q{font-size:17px;font-weight:600;margin:2px 0 4px}.q-c{font-size:12px;color:var(--mu)}
.q-r{display:flex;flex-direction:column;gap:8px;min-width:min(460px,100%)}.q-btns{display:flex;gap:8px;flex-wrap:wrap}
.q-txt{display:flex;gap:8px}.q-txt input{flex:1;border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg);min-width:0}
.q-ap{font-size:12px;color:var(--mu)}.q-err{margin:0;padding-left:18px;color:var(--ko);font-size:12px}
.btn{border:1px solid var(--line);background:var(--card);border-radius:10px;padding:8px 14px;font-weight:600;min-height:38px}.btn:hover{border-color:var(--ac)}
.btn.p{background:var(--ac);border-color:var(--ac);color:#fbfbfd}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fbfbfd}.btn.ko{background:var(--card);border-color:#fca5a5;color:var(--ko)}.btn.vi{background:var(--vi);border-color:var(--vi);color:#fbfbfd}
.btn.petit{padding:4px 10px;min-height:30px;font-size:12.5px}
.btn:disabled{opacity:.5;cursor:default}
/* indicateurs */
/* corps : une seule grille. ≥ 1280 px, indicateurs sur toute la largeur, puis le tableau à gauche, l'équipe et la colonne droite à droite */
.corps{display:grid;grid-template-columns:minmax(0,1fr) 400px;grid-template-areas:"kpis kpis" "tab eq" "tab side";gap:12px;padding:12px 14px 40px;align-items:start}
.corps>.kpis{grid-area:kpis}.corps>.team{grid-area:eq}.gauche{grid-area:tab;min-width:0}.col-d{grid-area:side}
/* Carte « Tableau des demandes » : filtres, colonnes et légende */
.tableau{border-radius:var(--r-grand);padding:16px 18px 14px}
.tableau-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.tableau-h h2{margin:0;font-size:17px;font-weight:650;letter-spacing:-.01em;margin-right:auto}
.opt-sec{display:flex;gap:7px;align-items:center;font-size:13px;color:var(--mu);background:var(--glass-in);border:1px solid var(--line);border-radius:999px;padding:6px 12px;cursor:pointer}
.filtres{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.chips{display:flex;gap:6px;flex-wrap:wrap}
.chips button{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);background:var(--glass-in);border-radius:999px;padding:6px 12px;color:var(--tx);font-weight:600;font-size:13px}
.chips .dot{width:9px;height:9px;border-radius:3px;background:var(--c)}
.chips button:hover:not(.on){background:color-mix(in srgb,var(--c) 12%,transparent)}
.chips button.on{background:color-mix(in srgb,var(--c) 82%,#171919);border-color:transparent;color:#fbfbfd}.chips button.on .dot{background:#fbfbfd}
#recherche{border:1px solid var(--line);background:var(--glass-in);border-radius:10px;padding:8px 12px;width:260px}
/* 5 ou 6 colonnes selon les files visibles : grid-auto-flow plutôt qu'un nombre fixe */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,1fr);gap:12px;overflow-x:auto}
.col{background:var(--glass-in);border:1px solid var(--line-soft);border-radius:16px;padding:10px;min-height:260px;min-width:0;box-shadow:var(--sh-col)}
.col h3{margin:2px 4px 2px;font-size:13px;display:flex;justify-content:space-between;align-items:center}.col h3 span{color:var(--mu);font-weight:500;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:12px}
.col .qui-agit{font-size:12px;color:var(--mu);margin:0 4px 10px}
.vide{color:var(--mu);font-size:12px;text-align:center;padding:24px 6px}
.carte{background:linear-gradient(180deg,var(--sheen),transparent 55%),var(--glass-fort);border:1px solid var(--line-soft);border-radius:12px;padding:10px 11px;margin-bottom:8px;box-shadow:var(--sh-carte);cursor:pointer;display:block;width:100%;text-align:left;transition:transform .18s ease-out,box-shadow .2s ease-out,border-color .16s ease-out}
.carte:hover{border-color:var(--ac);box-shadow:var(--sh-carte-h)}.carte.urg{border-left:4px solid var(--ko)}.carte.attente{border-left:4px solid var(--wa)}.carte.med{border-left:4px solid var(--vi)}.carte.fini{filter:saturate(.7)}
.carte .l1{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:4px 6px;font-size:11px;color:var(--mu)}.carte .l1>*{white-space:nowrap}.carte .ti{font-weight:600;margin:3px 0;overflow-wrap:anywhere}.carte .pa{font-size:12px;color:var(--mu);overflow-wrap:anywhere}
.carte .acteur{font-size:11px;margin-top:5px;color:var(--mu)}.carte .acteur b{color:var(--tx);font-weight:600}
.carte.neuf{animation:arrivee 1.4s ease-out}
@keyframes arrivee{from{box-shadow:0 0 0 3px var(--ac2)}to{box-shadow:var(--sh-carte)}}
.tag{display:inline-block;font-size:10.5px;font-weight:650;padding:1px 7px;border-radius:999px;background:var(--ac2);color:var(--ac-tx);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}
.tag.urgence{background:var(--kob);color:var(--ko)}.tag.question,.tag.incomplete{background:var(--wab);color:#b45309}.tag.appel,.tag.CONFIRMEE,.tag.ok{background:var(--okb);color:var(--ok)}.tag.medecin{background:var(--vib);color:var(--vi)}
.tag.REFUSEE,.tag.refus{background:var(--kob);color:var(--ko)}.tag.INCOMPLETE{background:var(--wab);color:#b45309}.tag.neutre{background:var(--bg);color:var(--mu);border:1px solid var(--line)}
.tag.labo{background:var(--vib);color:var(--vi)}.tag.facture{background:var(--ac2);color:var(--ac-tx)}.tag.demande_patient{background:var(--okb);color:var(--ok)}.tag.autre{background:var(--bg);color:var(--mu);border:1px solid var(--line)}
.tag.tranche{background:var(--okb);color:var(--ok)}.tag.provisoire{background:var(--wab);color:#b45309}.tag.non_tranche{background:var(--kob);color:var(--ko)}
.live{display:inline-flex;gap:5px;align-items:center;color:var(--ok);font-weight:600}.live i{width:7px;height:7px;border-radius:50%;background:var(--ok);animation:pouls 1.4s infinite}
@keyframes pouls{50%{opacity:.35}}
/* panneau droit */
/* Colonne droite (maquette v6) : journal des actions permanent en haut, panneau Appel / Agenda / Boîte mail dessous */
.col-d{position:sticky;top:86px;max-height:calc(100vh - 100px);display:flex;flex-direction:column;gap:12px;min-width:0}
.journal{border-radius:var(--r-grand);padding:12px 16px 8px;flex:none;display:flex;flex-direction:column;max-height:38vh;min-height:0}
.journal-h{display:flex;align-items:center;gap:8px;margin-bottom:4px}.journal-h b{font-size:14px}.journal-h .lien{margin-left:auto;border:0;background:none;color:var(--ac-tx);font-weight:600;cursor:pointer;padding:2px 4px}
#c-journal{overflow:auto;min-height:0}.journal.ferme #c-journal{display:none}.journal.ferme{padding-bottom:10px}
#c-journal .note{margin:6px 0 0}
.droite{border-radius:var(--r-grand);flex:1;min-height:260px;display:flex;flex-direction:column;overflow:hidden}
/* Cloche avec pastille (maquette v6) : ce qui attend un humain ; la pastille compte ce qui n'a pas encore été vu */
.cloche-wrap{position:relative}.cloche{position:relative;width:36px;height:36px;border-radius:10px;border:1px solid var(--line);background:var(--card);color:var(--tx);display:grid;place-items:center;cursor:pointer}.cloche svg{width:18px;height:18px}
.cloche[aria-expanded=true]{background:var(--ac2);color:var(--ac)}
.nb{position:absolute;top:-6px;right:-6px;min-width:19px;height:19px;padding:0 5px;border-radius:10px;background:#c9353b;color:#fcfcfd;font-size:11px;font-weight:800;line-height:19px;text-align:center;font-variant-numeric:tabular-nums;box-shadow:0 0 0 2px var(--card)}
.notifs{position:absolute;right:0;top:44px;width:340px;max-height:70vh;overflow:auto;border-radius:16px;padding:10px 12px;z-index:26}
.notifs .n-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.notifs .ligne.lue{opacity:.72}.notifs .ligne .pt{width:8px;height:8px;border-radius:50%;background:var(--ac);flex:none;margin-top:5px}.notifs .ligne.lue .pt{background:transparent}
/* Onglets en contrôle segmenté */
.onglets{display:flex;flex-shrink:0;margin:12px 14px 2px;padding:3px;gap:2px;background:var(--glass-in);border:1px solid var(--line);border-radius:11px;overflow-x:auto}
.onglets button{flex:1;border:0;background:none;padding:7px 10px;border-radius:8px;color:var(--mu);font-weight:600;font-size:13.5px;white-space:nowrap}.onglets button.on{background:var(--card);color:var(--tx);box-shadow:0 1px 3px rgba(0,0,0,.16)}
/* Journal : une icône par type, l'auteur seulement quand c'est une personne */
.j-ic{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;flex:none;background:var(--glass-in);color:var(--mu);border:1px solid var(--line-soft)}.j-ic svg{width:13px;height:13px}
.ligne.urgence .j-ic{color:var(--ko);background:var(--kob)}
.j-qui{display:inline-block;font-size:11.5px;font-weight:600;color:var(--mu);background:rgba(120,120,128,.14);border-radius:6px;padding:0 6px;margin-left:2px}
.pastille:not(:empty){background:var(--ac-tx);color:#fbfbfd;border-radius:999px;font-size:11px;padding:0 6px;margin-left:3px}
.panneau{overflow:auto;padding:12px 14px;flex:1}
.ap-sel{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.ap-sel button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:4px 10px;font-size:12px}.ap-sel button.on{border-color:var(--ac);color:var(--ac);background:var(--ac2)}
.ap-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px;gap:8px}.ap-h b{font-size:15px}.ap-h small{color:var(--mu);white-space:nowrap}
.indice{font-size:12px;background:var(--bg);border:1px dashed var(--line);border-radius:10px;padding:6px 9px;margin-bottom:10px;color:var(--mu)}
.tr{display:flex;flex-direction:column;gap:7px}.bu{max-width:88%;padding:7px 10px;border-radius:12px;font-size:13.5px}.bu small{display:block;font-size:10.5px;color:var(--mu);margin-bottom:1px}
.bu.agent{background:var(--ac2);align-self:flex-start;border-top-left-radius:4px}.bu.patient{background:var(--bg);border:1px solid var(--line);align-self:flex-end;border-top-right-radius:4px}
.sec-t{margin:14px 0 6px;font-weight:650;font-size:13px;display:flex;justify-content:space-between;align-items:center}
.lignes{display:flex;flex-direction:column}.ligne{display:flex;gap:8px;align-items:flex-start;padding:7px 2px;border-bottom:1px solid var(--line);font-size:12.5px;text-align:left;background:none;border-left:0;border-right:0;border-top:0;width:100%}
.ligne small{color:var(--mu);font-variant-numeric:tabular-nums;min-width:38px}.ligne .x{flex:1;min-width:0}.ligne .x b{display:block;font-weight:600}.ligne.urgence{color:var(--ko)}
.ligne.nouveau{background:var(--ac2);border-radius:8px}
/* agenda (panneau droit) */
.ag-barre{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:8px}.ag-barre b{flex:1;font-size:13px;text-transform:capitalize}
.ag-barre button{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:3px 9px}
.med-f{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}.med-f button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:3px 10px;font-size:12px}.med-f button.on{background:var(--tx);color:var(--card)}
.col .liste{max-height:540px;overflow:auto;padding-right:2px}
.legende{display:flex;gap:12px;font-size:11.5px;color:var(--mu);margin-bottom:8px;flex-wrap:wrap}.legende i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:4px;vertical-align:-1px}
.jg{display:grid;gap:6px}.jg-col h5{margin:0 0 4px;font-size:12px}
.jg-plage{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:10px}
.jg-h{position:absolute;left:0;right:0;border-top:1px dashed var(--line);font-size:10px;color:var(--mu);padding-left:3px}
.jg-rdv{position:absolute;left:34px;right:4px;border-radius:6px;font-size:11px;padding:1px 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background:var(--agenda);border:1px solid var(--line);color:var(--tx);cursor:pointer;text-align:left}
.jg-rdv.agent{background:var(--ac2);border-color:var(--agent);color:var(--ac);font-weight:600}.jg-rdv.secretaire{background:var(--vib);border-color:var(--secr);color:var(--vi);font-weight:600}
.jg-rdv.nouveau{box-shadow:0 0 0 2px var(--ok)}
.jg-maintenant{position:absolute;left:0;right:0;border-top:2px solid var(--ko);z-index:2}
.jg-ferme{position:absolute;left:30px;right:0;background:repeating-linear-gradient(45deg,transparent 0 6px,color-mix(in srgb,var(--line) 70%,transparent) 6px 7px)}
.absent-txt{font-size:11.5px;color:var(--mu);padding:8px}
/* boîte mail */
.mail-l{display:flex;flex-direction:column;gap:6px}.ml{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--card);text-align:left;width:100%}.ml.on{border-color:var(--ac)}.ml.lu{opacity:.65}
.ml .l1{display:flex;justify-content:space-between;gap:6px;font-size:11.5px;color:var(--mu)}.ml b{display:block;font-size:13px;margin:2px 0}
.ml.haute{border-left:4px solid var(--vi)}
.mail-v{white-space:pre-wrap;font-size:12.5px;background:var(--bg);border-radius:10px;padding:10px;margin-top:8px;border:1px solid var(--line)}
.mail-f{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:8px}.mail-f button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:3px 9px;font-size:12px}.mail-f button.on{background:var(--tx);color:var(--card)}
.encart{border:1px dashed var(--line);border-radius:12px;padding:12px;font-size:12.5px;color:var(--mu);background:var(--bg)}
.encart b{color:var(--tx)}
/* tiroir de détail */
.voile{position:fixed;inset:0;background:#0f172a40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:40}
/* Tiroir : barre de titre façon fenêtre */
.tiroir{position:fixed;right:10px;top:10px;bottom:10px;width:min(480px,calc(100vw - 20px));z-index:41;overflow:auto;padding:0;border-radius:var(--r-grand)}
.t-barre{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line-soft);background:var(--glass-fort);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}
.t-barre b{font-size:13px;color:var(--mu);font-weight:650}
.tiroir .x{width:28px;height:28px;border-radius:50%;border:1px solid var(--line);background:var(--glass-in);color:var(--mu);font-size:18px;line-height:1;display:grid;place-items:center;padding:0}.tiroir .x:hover{background:var(--kob);color:var(--ko)}
.t-corps{padding:14px 20px 18px}
.tiroir h2{margin:0 0 4px;font-size:18px}
.champ{display:grid;grid-template-columns:130px 1fr;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.champ span{color:var(--mu)}
.bloc{margin:14px 0}.bloc h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--mu)}
.props{display:flex;flex-wrap:wrap;gap:6px}.props button{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:7px 10px;font-size:12.5px}.props button:hover{border-color:var(--ac);background:var(--ac2);color:var(--ac)}
.actions{display:flex;gap:8px;flex-wrap:wrap;position:sticky;bottom:-18px;background:var(--glass-fort);padding:12px 0;border-top:1px solid var(--line)}
.hist{font-size:12px;color:var(--mu)}.hist div{padding:3px 0}
textarea.motif{width:100%;border:1px solid var(--line);border-radius:10px;padding:8px;background:var(--bg);min-height:60px}
/* assistant (réponses locales, à partir des données du tableau de bord) */
.ia-fab{position:fixed;right:22px;bottom:22px;z-index:30;width:52px;height:52px;border-radius:16px;border:1px solid var(--line);background:var(--card);color:var(--vi);box-shadow:0 8px 24px #0f172a22;display:grid;place-items:center}
.ia-fab svg{width:26px;height:26px}.ia-fab:hover{color:#fbfbfd;background:linear-gradient(135deg,#7c3aed,#2563eb)}
.ia{position:fixed;right:22px;bottom:86px;z-index:31;width:360px;max-width:calc(100vw - 24px);height:480px;max-height:calc(100vh - 120px);background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:0 20px 50px #0f172a33;display:flex;flex-direction:column;overflow:hidden}
.ia header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--line)}.ia-t{display:flex;gap:7px;align-items:center;font-weight:650}.ia-t svg{width:18px;height:18px;color:var(--vi)}
.ia header button{border:0;background:none;font-size:22px;color:var(--mu)}
.ia-fil{flex:1;overflow:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.ia-m{max-width:90%;padding:8px 11px;border-radius:12px;font-size:13.5px;white-space:pre-line}.ia-m.bot{background:var(--bg)}.ia-m.moi{background:var(--ac);color:#fbfbfd;align-self:flex-end}
.ia-sugg{display:flex;gap:6px;flex-wrap:wrap;padding:0 12px 8px}.ia-sugg button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--mu)}
.ia form{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}.ia input{flex:1;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--bg)}.ia form button{width:38px;border:0;border-radius:12px;background:var(--ac);color:#fbfbfd;font-weight:700}
/* notifications */
.toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(520px,calc(100vw - 24px))}
.toast{display:flex;gap:10px;align-items:center;padding:9px 8px 9px 12px;border-radius:14px;font-size:13px;color:var(--tx);width:max-content;max-width:100%;
  background:radial-gradient(130% 50px at 50% 0,var(--speculaire),transparent 75%),linear-gradient(180deg,var(--sheen),transparent 40%),var(--glass-fort);border:1px solid var(--bord-verre);box-shadow:var(--ombre);-webkit-backdrop-filter:blur(30px) saturate(190%);backdrop-filter:blur(30px) saturate(190%)}
.toast-ic{width:22px;height:22px;flex:none;color:var(--vi)}body.sombre .toast-ic{color:color-mix(in srgb,var(--vi) 55%,#fbfbfd)}.toast-x{flex:1;min-width:0;overflow-wrap:anywhere}.toast b{display:block}
.toast-a{border:1px solid var(--line);background:var(--card);color:var(--ac-tx);border-radius:9px;padding:4px 10px;font-weight:600;min-height:30px;flex:none}
.toast-f{flex:none;width:28px;height:28px;border-radius:50%;border:0;background:none;color:var(--mu);font-size:18px;line-height:1;display:grid;place-items:center;padding:0}.toast-f:hover{background:var(--glass-in);color:var(--tx)}
.toast.erreur{border-color:color-mix(in srgb,var(--ko) 45%,transparent)}.toast.erreur :is(.toast-ic,b){color:#b42318}body.sombre .toast.erreur :is(.toast-ic,b){color:#ff8085}
/* simulateur de démo */
.sim{position:fixed;left:20px;bottom:20px;z-index:29;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 8px 24px #0f172a22;padding:10px 12px;width:330px;font-size:12.5px}
.sim .t{display:flex;gap:8px;align-items:center}.sim .t b{flex:1}.sim.replie .c{display:none}
/* Replié : pilule en bas de page, dans le flux, qui ne couvre plus le tableau */
.sim.replie{position:static;display:inline-flex;margin:0 14px 24px;width:auto;border-radius:999px;padding:6px 8px 6px 14px;background:var(--glass-in);box-shadow:none}
.sim .types{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.sim .types button{border:1px solid var(--line);background:var(--bg);border-radius:8px;padding:3px 8px;font-size:12px}.sim .types button.u{border-color:#fca5a5;color:var(--ko)}
/* dialogue (mot de passe) */
.dialogue{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);z-index:70;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 50px #0f172a33;padding:22px;width:min(420px,calc(100vw - 24px));display:flex;flex-direction:column;gap:10px}
.dialogue h2{margin:0;font-size:18px}
label.f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--mu)}label.f input,label.f select,label.f textarea{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:var(--bg);color:var(--tx)}
.erreur-form{color:var(--ko);font-size:12.5px;min-height:1em}
/* connexion */
body.page-connexion{display:flex;align-items:center;justify-content:center;padding:20px}
main.connexion{width:100%;max-width:400px}
main.connexion form{display:flex;flex-direction:column;gap:12px;padding:28px;background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--sh)}
/* [L1c3] début : styles de connexion.html ici, dans un fichier déjà public (aucun style en ligne, PUBLIQUES inchangé) */
main.connexion #bloc-mdp{display:flex;flex-direction:column;gap:12px}
main.connexion #btn-ajout{margin:0;text-align:center}
main.connexion #form-passkey{margin-top:16px}
main.connexion #form-passkey h2{font-size:17px;margin:0}
/* Bandeau D7 : couleurs de la règle .bandeau-demo de L4 ; ici seulement fixé en haut, car la page est centrée en flex. */
body.page-connexion .bandeau-demo{position:fixed;top:0;left:0;right:0;z-index:1}
/* [L1c3] fin */
main.connexion h1{font-size:20px;margin:4px 0 0}
/* squelettes */
.sk{background:linear-gradient(90deg,var(--sk) 0%,var(--sk2) 40%,var(--sk) 80%);background-size:200% 100%;animation:shim 1.3s linear infinite;border-radius:8px}
@keyframes shim{from{background-position:200% 0}to{background-position:-200% 0}}
body.sobre .sk,body.sobre *{animation:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){.sk,*{animation:none!important;transition:none!important}}
.sk-l{height:10px;margin:6px 0}.sk-carte{height:74px;margin-bottom:8px;border-radius:12px}
/* ---------- administration ---------- */
.adm{display:grid;grid-template-columns:240px 1fr;gap:16px;padding:16px 20px 60px;align-items:start}
.adm-nav{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:8px;position:sticky;top:76px;display:flex;flex-direction:column}
.adm-nav button{border:0;background:none;text-align:left;padding:9px 10px;border-radius:9px;color:var(--mu);font-weight:550;display:flex;justify-content:space-between;gap:6px}
.adm-nav button.on{background:var(--ac2);color:var(--ac)}.adm-nav hr{border:0;border-top:1px solid var(--line);margin:6px 4px}
.adm-nav .groupe{color:var(--vi)}
.adm-c{min-width:0;display:flex;flex-direction:column;gap:14px}
.boite{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px 18px}
.boite h2{margin:0 0 4px;font-size:17px}.boite h3{margin:18px 0 8px;font-size:14px}.boite h3:first-child{margin-top:0}.boite ul{margin:0 0 6px;padding-left:20px;font-size:13px}
.boite .chapo{color:var(--mu);font-size:12.5px;margin:0 0 12px}
.grille2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
table.t{width:100%;border-collapse:collapse;font-size:13px}table.t th{text-align:left;font-size:11.5px;color:var(--mu);font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--line)}
table.t td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}table.t tr:last-child td{border-bottom:0}
table.t td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.form-l{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.barres{display:flex;gap:8px;align-items:flex-end;height:130px;padding-top:8px}.barres div{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;color:var(--mu)}
.barres div{justify-content:flex-end}.barres .b{display:flex;align-items:flex-end;width:100%;max-width:42px;border-radius:6px 6px 0 0;background:#93c5fd;overflow:hidden}.barres .b i{display:block;width:100%;background:var(--ok)}
.jauge{height:10px;border-radius:999px;background:var(--bg);border:1px solid var(--line);overflow:hidden}.jauge i{display:block;height:100%;background:var(--ac)}
.chiffre{display:flex;flex-direction:column;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--bg);margin-bottom:6px}.chiffre small{color:var(--mu);font-size:12px}.chiffre b{font-size:26px;font-weight:650;font-variant-numeric:tabular-nums;line-height:1.15}.chiffre span{color:var(--mu);font-size:12px}
.consigne{border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px}.consigne.active{border-color:var(--ok);background:color-mix(in srgb,var(--okb) 45%,var(--card))}
.consigne pre{white-space:pre-wrap;font:inherit;margin:6px 0}
.regle{display:grid;grid-template-columns:200px 1fr;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.regle:last-child{border-bottom:0}.regle b{font-weight:600}
.apercu-mail{white-space:pre-wrap;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px;font-size:12.5px}
.statuts{display:flex;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--mu);margin-bottom:10px}
/* Contraste AA : en clair, --ok (#16a34a) et --wa (#d97706) ne servent qu'aux points et bordures, pas au texte ni sous un texte */
body:not(.sombre) :is(.live,.tag.appel,.tag.CONFIRMEE,.tag.ok,.tag.demande_patient,.tag.tranche){color:#146c43}
body:not(.sombre) :is(.q-t){color:#b45309}
body .btn.ok{background:#157a38;border-color:#157a38}
/* En sombre, --ac est un bleu clair : texte foncé dessus */
body.sombre :is(.btn.p,.pastille:not(:empty),.ia-m.moi,.ia form button){color:#0b1220}
/* mobile : barre d'onglets et pastilles de file (mode téléphone seulement, plus bas) */
.barre-onglets,.pastilles-file{display:none}
/* ---- maquette v6 : bandeau de 8 indicateurs ---- */
/* Une seule carte de verre, 8 cellules séparées par des filets, icône à gauche du chiffre (dashboard-v4/src/style.css:85-95) */
/* Resserré : 1 ligne de 8 dès 1280 px (88 à 104 px de haut), 2 × 4 en dessous ; le libellé complet reste dans le title */
.kpis{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));margin:0;padding:4px;border-radius:var(--r-grand);min-width:0}
.kpi{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:8px;align-content:start;align-items:center;min-width:0;padding:8px 12px;border:0;border-radius:14px;background:none;text-align:left}
.kpi+.kpi::before{content:"";position:absolute;left:0;top:18%;bottom:18%;border-left:1px solid var(--line-soft)}
button.kpi:hover{background:var(--glass-in)}
.kpi-ic{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--c) 16%,transparent);color:color-mix(in srgb,var(--c) 88%,#171919);position:relative}.kpi-ic svg{width:16px;height:16px}
body.sombre .kpi-ic{color:color-mix(in srgb,var(--c) 55%,#fbfbfd)}
.kpi-v{font-size:20px;font-weight:720;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:26px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi.inerte .kpi-v{color:var(--mu)}
.kpi-l{grid-column:1/-1;font-size:12px;color:var(--mu);margin-top:4px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-s{grid-column:1/-1;font-style:normal;font-size:12px;color:var(--mu);margin-top:1px;line-height:1.25;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.kpi.live .kpi-s{color:#0f6b30;font-weight:650}body.sombre :is(.live,.kpi.live .kpi-s){color:#4cc38a}
.kpi.live .kpi-ic::after{content:"";position:absolute;right:-2px;top:-2px;width:10px;height:10px;border-radius:50%;background:#30d158;box-shadow:0 0 0 2px var(--card);animation:clign 1.6s infinite}
.kpi.hot{background:color-mix(in srgb,#b45309 10%,transparent)}.kpi.hot .kpi-s{color:#8a4205;font-weight:650}body.sombre .kpi.hot .kpi-s{color:#fbbf24}
@keyframes pouls{70%{box-shadow:0 0 0 8px #16a34a00}100%{box-shadow:0 0 0 0 #16a34a00}}
.ia-ligne{font-size:12px;font-weight:600;color:var(--mu);white-space:nowrap}
.menu .qui .sous{margin-top:4px}
/* ---- maquette v6 : cartes du tableau ---- */
.carte.card-t{position:relative;padding:9px 10px 9px 13px;border-radius:11px}
.carte.card-t::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3.5px;border-radius:0 3px 3px 0;background:var(--c)}
.carte.card-t:hover{border-color:var(--c);transform:translateY(-1px)}
.carte.is-red{border-color:#e5484d8c;background:linear-gradient(0deg,#e5484d12,#e5484d12),var(--card)}
.ct-top{display:flex;gap:7px;align-items:flex-start}
.ct-ic{width:20px;height:20px;border-radius:6px;background:color-mix(in srgb,var(--c) 16%,transparent);color:var(--c);display:grid;place-items:center;flex:none}.ct-ic svg{width:12px;height:12px}
/* Robot (l'acteur est un assistant) : 16 px dans la même pastille de 20 px, pour rester lisible */
.ct-ic.bot svg,.j-ic.bot svg{width:16px;height:16px}
/* Titres sur 3 lignes au plus, césure française (lang="fr") plutôt qu'un mot coupé net */
.ct-title{font-size:13.5px;font-weight:650;line-height:1.25;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;hyphens:auto;overflow-wrap:anywhere;min-width:0}
.ct-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;justify-content:space-between;gap:6px;font-size:12px;color:var(--mu);margin:5px 0 6px}
.ct-foot{display:flex;gap:5px;flex-wrap:wrap;align-items:center}
.ct-manque{font-size:11px;color:var(--mu);width:100%}
.pill{white-space:nowrap;display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px}.pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.pill.g{background:#30a46c26;color:#146c43}.pill.o{background:#f08a242b;color:#92400e}.pill.r{background:#e5484d26;color:#a8282e}
body.sombre .pill.g{color:#4cc38a}body.sombre .pill.o{color:#f5a65b}body.sombre .pill.r{color:#ff6369}
.lvl{font-size:10.5px;font-weight:800;background:#78788030;border-radius:6px;padding:2px 6px}.lvl.ko{background:var(--kob);color:var(--ko)}
.needs-med{font-size:10.5px;font-weight:700;color:var(--vi);background:var(--vib);border-radius:6px;padding:2px 6px}
.live-badge{font-size:10px;font-weight:800;background:#b42318;color:#fbfbfd;border-radius:6px;padding:2px 6px;animation:clign-doux 1.2s infinite}@keyframes clign-doux{50%{box-shadow:0 0 0 3px #b4231840}}
@keyframes clign{50%{opacity:.55}}
.ct-act{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-top:8px}.ct-who{font-size:12px;color:var(--mu);font-weight:600;white-space:nowrap}
.voir{display:inline-flex;align-items:center;gap:4px;background:#0068d6;color:#fbfbfd;border-radius:8px;padding:4px 11px;font-size:12px;font-weight:700;flex:none}.voir svg{width:13px;height:13px}
.col[data-col=ref] h3{color:#b42318}body.sombre .col[data-col=ref] h3{color:#ff8085}
.legende{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:var(--mu);margin:10px 2px 0}
/* ---- l'équipe : carte compacte façon Dock (400 × 96 à droite dès 1280 px, carré de 212 px à côté des indicateurs en dessous) ---- */
.team{margin:0;border-radius:var(--r-grand);padding:10px 14px 10px;min-width:0}
.team-h{display:flex;gap:8px;align-items:baseline;margin-bottom:6px;min-width:0}.team-h b{font-size:14px;flex:none}
#team-resume{margin-left:auto;font-size:12px;color:var(--mu);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.team-row{display:flex;gap:4px;align-items:center}
/* Icône de 36 px dans une zone de 44 px ; la forme dit IA (squircle) ou humain (rond), pas la couleur */
.eq{position:relative;flex:none;width:44px;height:44px;display:grid;place-items:center;padding:0;border:0;background:none;border-radius:14px}
.eq-ic{--relief:0 0 #0000;width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(150deg,color-mix(in srgb,var(--c) 20%,transparent),color-mix(in srgb,var(--c) 9%,transparent));color:color-mix(in srgb,var(--c) 88%,#171919);box-shadow:var(--relief),inset 0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent);transition:transform .18s ease-out,box-shadow .2s ease-out}
.eq-ic svg{width:20px;height:20px}.eq:not(.humain) .eq-ic svg{width:24px;height:24px}
body.sombre .eq-ic{color:color-mix(in srgb,var(--c) 55%,#fbfbfd)}
/* Robots : pastille en relief (dégradé doux, liseré clair en haut) ; les humains gardent l'avatar rond */
.eq:not(.humain) .eq-ic{--relief:inset 0 1px 0 rgba(251,251,253,.8),inset 0 -1px 0 color-mix(in srgb,var(--c) 16%,transparent),0 1px 2px rgba(20,30,60,.1),0 4px 10px -4px color-mix(in srgb,var(--c) 45%,transparent);background:linear-gradient(170deg,color-mix(in srgb,var(--c) 14%,rgba(251,251,253,.75)),color-mix(in srgb,var(--c) 24%,transparent))}
body.sombre .eq:not(.humain) .eq-ic{--relief:inset 0 1px 0 rgba(251,251,253,.16),inset 0 -1px 0 rgba(5,8,15,.3),0 1px 2px rgba(5,8,15,.45),0 4px 10px -4px rgba(5,8,15,.6);background:linear-gradient(170deg,color-mix(in srgb,var(--c) 34%,rgba(251,251,253,.06)),color-mix(in srgb,var(--c) 16%,transparent))}
.eq.humain .eq-ic{border-radius:50%}
button.eq:hover :is(.eq-ic,.eq-b){transform:translateY(-1px)}
.eq.on .eq-ic{box-shadow:var(--relief),inset 0 0 0 1px color-mix(in srgb,var(--c) 22%,transparent),0 0 0 2px var(--card),0 0 0 4px var(--c)}
/* Halo pendant un appel ou un cas rouge, sans animation continue */
.eq.s-encours .eq-ic{box-shadow:var(--relief),inset 0 0 0 1px color-mix(in srgb,var(--c) 30%,transparent),0 0 0 4px color-mix(in srgb,var(--c) 16%,transparent)}
.eq.s-probleme .eq-ic{box-shadow:var(--relief),inset 0 0 0 1px rgba(201,53,59,.4),0 0 0 4px rgba(201,53,59,.14)}
.eq.s-repos .eq-ic{filter:saturate(.75)}
/* Pas branché ou désactivé : pointillés, icône grise, sans opacité */
.eq.s-off .eq-ic{background:none;box-shadow:none;border:1.5px dashed var(--line);color:var(--mu)}
.eq-b{position:absolute;top:-1px;right:-1px;min-width:18px;height:18px;padding:0 5px;border-radius:9px;font-size:11px;font-weight:800;line-height:18px;text-align:center;font-variant-numeric:tabular-nums;color:#fbfbfd;box-shadow:0 0 0 2px var(--card)}
.eq.s-attend .eq-b{background:#b45309}.eq.s-probleme .eq-b{background:#c9353b}.eq.s-termine .eq-b{background:#157a38}
.eq.s-encours .eq-b{top:3px;right:3px;min-width:0;width:10px;height:10px;padding:0;background:#007aff;animation:clign 1.2s infinite}
.eq-sep{flex:none;width:1px;height:28px;margin:0 4px;background:var(--line)}
/* Von Restorff : « votre file » non vide, seul accent ambre du tableau */
.col.a-moi{background:color-mix(in srgb,#b45309 10%,var(--glass-in));border-color:color-mix(in srgb,#b45309 35%,transparent)}
.col.a-moi h3 span{background:#b45309;border-color:transparent;color:#fbfbfd;font-weight:700}
/* 761 à 1279 px : indicateurs en 2 × 4 et carré équipe à leur droite, puis le tableau sur toute la largeur, puis journal et panneau */
@media (max-width:1279px){
  .corps{grid-template-columns:minmax(0,1fr) 212px;grid-template-areas:"kpis eq" "tab tab" "side side"}
  .corps>.team{align-self:stretch}.team-h{flex-direction:column;gap:0}#team-resume{margin-left:0;white-space:normal}
  .team-row{display:grid;grid-template-columns:repeat(4,44px);justify-content:space-between;row-gap:4px}.eq-sep{display:none}
  .kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.kpi:nth-child(4n+1)::before{display:none}
  .kpi-l{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
  .col-d{position:static;max-height:none}.journal{max-height:none}#c-journal{max-height:320px}.board{grid-auto-columns:minmax(170px,1fr)}
}
/* Agenda agrandi (body.agenda-grand, jamais en mode téléphone : app.js) : l'agenda prend la place principale ;
   le Kanban devient une bande de titres et compteurs, cliquable pour revenir ; indicateurs et équipe restent */
.ag-tete{display:flex;justify-content:flex-end;margin:-4px 0 6px}
.ag-grand{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;min-width:44px;padding:0 12px;border:1px solid var(--line);border-radius:12px;background:var(--glass-in);color:var(--tx);font-weight:600;font-size:13px}
.ag-grand svg{width:18px;height:18px;flex:none}.ag-grand:hover{background:var(--card)}.ag-grand[aria-pressed=true]{background:var(--ac2);color:var(--ac-tx)}
body.sombre .ag-grand[aria-pressed=true]{color:#93c5fd}
@media (max-width:1179px){.ag-grand span{display:none}.ag-grand{padding:0}}
.bande-retour{display:none}
body.agenda-grand .corps{grid-template-columns:220px minmax(0,1fr);grid-template-areas:"kpis kpis" "tab eq" "tab side"}
body.agenda-grand :is(.journal,.onglets,.tableau-h,.filtres,.tableau .legende,.col .qui-agit,.col .liste,.col .vide){display:none}
body.agenda-grand .tableau{padding:10px}
body.agenda-grand .board{display:flex;flex-direction:column;gap:6px;overflow:visible}
body.agenda-grand .col{min-height:0;padding:9px 10px}body.agenda-grand .col h3{margin:0;gap:6px}
body.agenda-grand .bande-retour{display:block;position:absolute;inset:0;z-index:3;width:100%;padding:0;border:0;border-radius:inherit;background:none;cursor:pointer}
body.agenda-grand .bande-retour:hover{background:color-mix(in srgb,var(--ac) 6%,transparent)}
body.agenda-grand .jg-rdv{font-size:12px}
@media (max-width:1279px){body.agenda-grand .corps{grid-template-columns:200px minmax(0,1fr) 212px;grid-template-areas:"kpis kpis eq" "tab side side"}}
/* Bascule douce (opacité, translation) ; coupée par body.sobre et prefers-reduced-motion (règles générales plus haut) */
@keyframes ag-bascule{from{opacity:.4;transform:translateY(6px)}}
body.ag-bascule :is(.gauche,.col-d){animation:ag-bascule .2s ease-out}
/* Repli de la pastille : la date d'abord, puis la localité (la température reste toujours) */
@media (max-width:1320px){.horloge small{display:none}}
@media (max-width:1140px){#meteo-lieu{display:none}}
@media (max-width:1180px){.marque>div,.etat-ligne{min-width:0}.ia-ligne{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.statut-sec>span{display:none}.adm{grid-template-columns:200px 1fr}.grille2{grid-template-columns:1fr}}
/* Fold ouvert, iPad portrait : l'en-tête tient sur une ligne */
@media (max-width:900px){.horloge small,.compte-nom{display:none}.compte{padding-right:6px;gap:3px}}
/* Mode téléphone : portrait, et paysage (même requête que TELEPHONE dans app.js) ; barre d'onglets en bas, une vue à la fois */
@media (max-width:760px), (max-height:500px) and (max-width:1000px){
  .ia-ligne{display:none}
  .top{padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) 10px max(12px,env(safe-area-inset-left));gap:8px;flex-wrap:wrap;margin:0;top:0;border-radius:0}.sous,.cnx span,.horloge small,.statut-sec span,#meteo-lieu{display:none}.badge-test{font-size:10px;padding:3px 7px}.horloge>b{font-size:16px}
  /* Téléphone : pastille sans habillage (heure, icône et température seulement) pour garder l'en-tête sur 2 rangées */
  .horloge{background:none;border:0;box-shadow:none;padding:0;gap:3px;min-height:0}.meteo{background:none;box-shadow:none;padding:2px 4px;gap:3px;min-height:32px}.meteo svg{width:18px;height:18px}.meteo b{font-size:13px}
  .seg button{padding:5px 8px;font-size:13px}
  .alertes,.questions{padding:0 12px}.q{grid-template-columns:auto 1fr;padding:12px}.q-r{grid-column:1/-1;min-width:0}
  /* Champs à 16 px : iOS ne zoome pas au focus */
  input,select,textarea{font-size:16px}
  .kpis,.journal,.onglets,.ag-tete,.filtres,.ag-barre .seg{display:none}
  /* Agents robots (et validation humaine) : une ligne compacte sous l'en-tête, défilement horizontal, 48 px au plus ; un appui filtre le tableau */
  .team{margin:6px 12px 0;padding:1px 6px;border-radius:16px}.team-h{display:none}
  .team-row{display:flex;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.eq-sep{display:block}
  .corps{display:block;padding:0}.col-d,.droite{display:contents}.notifs,.meteo-pop{position:fixed;left:8px;right:8px;top:58px;width:auto;max-width:none}
  .vue{display:none!important}.vue.ouverte{display:block!important;padding:10px 12px 0;overflow:visible}
  /* Demandes : pastilles de file (une colonne visible à la fois, « À valider » en premier) */
  .pastilles-file{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding:2px;scrollbar-width:none}
  .pastilles-file button{display:inline-flex;align-items:center;gap:7px;flex:none;min-height:44px;padding:0 14px;border:1px solid var(--line);border-radius:999px;background:var(--glass-in);color:var(--tx);font-weight:600;font-size:13.5px;white-space:nowrap}
  .pastilles-file b{min-width:22px;padding:0 6px;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:12px;font-weight:650;text-align:center}
  .pastilles-file [aria-pressed=true]{background:var(--tx);color:var(--card);border-color:transparent}.pastilles-file [aria-pressed=true] b{background:var(--card);color:var(--tx)}
  .board{display:block}.board .col:not(.choisie){display:none}.col{min-height:0}.col .liste{max-height:none}#recherche{width:100%}
  .tableau{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;border:0;box-shadow:none;padding:0}.tableau::before{display:none}.tableau-h h2{display:none}.opt-sec{min-height:44px}
  .ag-barre button{min-height:44px;min-width:44px}
  /* Barre d'onglets façon iOS : verre, icône + libellé, badge ; masquée quand un champ a le focus (clavier) */
  body:has(.barre-onglets){padding-bottom:calc(72px + env(safe-area-inset-bottom))}
  .barre-onglets{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;gap:4px;padding:6px max(8px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:linear-gradient(180deg,var(--sheen),transparent 60%),var(--glass-fort);-webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);border-top:1px solid var(--bord-verre);box-shadow:0 -8px 24px -14px rgba(20,30,60,.3)}
  .barre-onglets button{position:relative;flex:1;min-width:0;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:0;border-radius:12px;background:none;color:var(--mu);font-size:11.5px;font-weight:600}
  .barre-onglets svg{width:24px;height:24px}.barre-onglets [aria-selected=true]{color:var(--ac-tx)}.barre-onglets span{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bo-n{position:absolute;top:3px;left:calc(50% + 7px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#c9353b;color:#fcfcfd;font-size:11px;font-weight:800;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}.bo-n:empty{display:none}
  body:has(:is(input:not([type=checkbox]):not([type=radio]),textarea,select):focus) .barre-onglets{display:none}
  /* Au-dessus de la barre : assistant, simulateur (petit badge replié) */
  .ia{right:12px;bottom:calc(140px + env(safe-area-inset-bottom));max-height:calc(100vh - 220px);max-height:calc(100dvh - 220px)}.ia-fab{right:14px;bottom:calc(80px + env(safe-area-inset-bottom))}
  .sim{left:12px;right:80px;width:auto;bottom:calc(80px + env(safe-area-inset-bottom))}.sim.replie{margin:12px;padding:4px 6px 4px 10px;font-size:12px}.sim.replie .t b{display:none}
  .toasts{bottom:calc(84px + env(safe-area-inset-bottom))}
  .tiroir{right:0;top:0;bottom:0;width:100vw;border-radius:0}
  .adm{grid-template-columns:1fr;padding:12px}.adm-nav{position:static;flex-direction:row;overflow-x:auto}.adm-nav button{white-space:nowrap}.adm-nav hr{display:none}
  .regle{grid-template-columns:1fr}
}
/* Téléphone en paysage : barre d'onglets réduite (icône et libellé côte à côte) ; le nom du cabinet se raccourcit plutôt que d'ajouter une rangée */
@media (max-height:500px) and (max-width:1000px){
  .marque{flex:1 1 0;min-width:0}
  body:has(.barre-onglets){padding-bottom:calc(56px + env(safe-area-inset-bottom))}
  .barre-onglets{padding-top:4px;padding-bottom:calc(4px + env(safe-area-inset-bottom))}
  .barre-onglets button{flex-direction:row;gap:6px;min-height:44px;font-size:12.5px}.barre-onglets svg{width:20px;height:20px}.bo-n{position:static}
}
/* Portrait : en-tête sur 2 rangées (nom, cloche, compte | DÉMO, statut, heure) */
@media (max-width:760px) and (orientation:portrait){
  .top{row-gap:4px}.marque{flex:1;order:0}.cloche-wrap{order:1}.menu-wrap{order:2}.espace{order:3;flex-basis:100%;height:0}.badge-test{order:4}.statut-sec{order:5}.horloge{order:6;margin-left:auto}
}
@media (max-width:440px){.badge-suite{display:none}}

