:root { color-scheme: dark; font-family: "Helvetica Neue", Inter, Arial, sans-serif; background:#05080b; color:#e9f2f5; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; overflow:hidden; background:radial-gradient(circle at 50% 42%, #101a21 0, #080e13 34%, #030507 76%); letter-spacing:.08em; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; background:linear-gradient(rgba(255,255,255,.012) 50%, transparent 50%); background-size:100% 4px; }
.ambient-grid { position:fixed; inset:12% 5% 10%; opacity:.16; background-image:linear-gradient(rgba(84,164,183,.12) 1px, transparent 1px),linear-gradient(90deg,rgba(84,164,183,.12) 1px,transparent 1px); background-size:64px 64px; mask-image:radial-gradient(ellipse,black,transparent 72%); }
.topbar { position:fixed; top:0; left:0; right:0; height:78px; display:flex; align-items:center; gap:24px; padding:0 4vw; color:#8ba0aa; font-size:10px; z-index:5; }
.topbar__line { height:1px; flex:1; background:linear-gradient(90deg,transparent,#27404b); }.topbar__line:last-child{background:linear-gradient(90deg,#27404b,transparent)}
.brand { white-space:nowrap; }.brand b{color:#dce8ec;font-weight:500}.brand__mark{display:inline-block;width:6px;height:6px;border:1px solid #83a8b5;transform:rotate(45deg);margin-right:10px}
.command-center { position:relative; z-index:2; box-sizing:border-box; height:calc(100vh - 78px - 58px); margin-top:78px; display:grid; grid-template-columns:clamp(220px,17vw,290px) 1fr; grid-template-rows:1fr; align-items:stretch; gap:22px; padding:40px 4vw 22px; min-height:0; }
.agent-stage { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(22px,3.4vh,40px); grid-column:1; grid-row:1; min-height:0; }
.command-center.is-focus-mode .agent-stage { display:contents; }
.agent { --scale:1; width:min(27vw,340px); text-align:center; opacity:1; transform:scale(var(--scale)); transition:opacity .8s ease,filter .8s ease,transform .8s cubic-bezier(.2,.8,.2,1); }
.command-center:not(.is-focus-mode) .agent { width:100%; max-width:250px; }
.command-center:not(.is-focus-mode) .agent__visual { width:clamp(112px,9.5vw,156px); }
.command-center:not(.is-focus-mode) .agent__identity h2 { font-size:15px; }
.command-center:not(.is-focus-mode) .agent__role { font-size:8px; margin:7px 0 10px; }
.command-center:not(.is-focus-mode) .agent__status { font-size:9px; }
/* DESK-ORION-01 : Orion reste dans le DOM (accessible depuis les 3 autres Focus,
   et comme cible de Focus lui-meme) mais n'apparait pas comme carte sur HOME —
   seule la Salle commune (@Orion, inchangee) l'y rend visible. */
.command-center:not(.is-focus-mode) .agent--orion { display:none; }
.command-center.has-active .agent.is-idle { opacity:.45; filter:saturate(.55); --scale:.94; }.command-center.has-active .agent:not(.is-idle){--scale:1.08}
.agent__visual { --activity:0; --hud-scale:1; width:clamp(160px,19vw,275px); aspect-ratio:1; margin:auto; position:relative; display:grid; place-items:center; filter:drop-shadow(0 0 calc(16px + 12px * var(--activity)) rgba(var(--accent-rgb),calc(.12 + .22 * var(--activity)))); transform:scale(var(--hud-scale)); transition:filter .25s linear; }
.thinking-crown{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:scale(1.01);transition:opacity .7s ease;pointer-events:none}.is-thinking .thinking-crown{opacity:calc(.22 + .58 * var(--activity))}
.portrait { position:relative; width:68%; aspect-ratio:1; border-radius:50%; overflow:hidden; border:1px solid rgba(var(--accent-rgb),.55); background:radial-gradient(circle at 50% 32%,rgba(var(--accent-rgb),.22),rgba(var(--accent-rgb),.035) 58%,#05090c 75%); box-shadow:inset 0 0 35px rgba(var(--accent-rgb),.13),0 0 22px rgba(var(--accent-rgb),.11); animation:breathe 6s ease-in-out infinite; }
.portrait img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:2; }.portrait img[src=""]{display:none}
.portrait__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:3}
.agent--nova .portrait img,.agent--athena .portrait img,.agent--orion .portrait img,.agent--nova .portrait video { object-position:50% 15%; transform:scale(.95); transform-origin:center; }
.portrait__fallback{position:absolute;inset:0;display:grid;place-items:center;font:200 clamp(46px,6vw,80px)/1 serif;color:rgba(var(--accent-rgb),.62);text-shadow:0 0 24px rgba(var(--accent-rgb),.5)}
.portrait__scan{position:absolute;z-index:3;inset:0;background:linear-gradient(transparent 48%,rgba(var(--accent-rgb),.1) 50%,transparent 52%);opacity:.35}
.orbit { position:absolute; border-radius:50%; border:1px solid rgba(var(--accent-rgb),.25); }
.orbit::before,.orbit::after{content:"";position:absolute;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.orbit--outer{inset:3%;border-top-color:rgba(var(--accent-rgb),.75);border-bottom-color:transparent;animation:rotate var(--outer-duration,24s) linear infinite}.orbit--outer::before{width:12px;height:1px;top:13%;right:13%}
.orbit--inner{inset:11%;border-left-color:transparent;border-right-color:rgba(var(--accent-rgb),.55);animation:rotate-reverse var(--inner-duration,18s) linear infinite}.orbit--inner::after{width:3px;height:3px;border-radius:50%;bottom:9%;left:22%}
.markers { position:absolute;inset:0;animation:rotate 34s linear infinite;opacity:0;transition:opacity .6s }.markers i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}.markers i:nth-child(1){left:50%;top:0}.markers i:nth-child(2){right:5%;top:30%}.markers i:nth-child(3){left:17%;bottom:12%}.markers i:nth-child(4){right:20%;bottom:9%}
.agent__identity { margin-top:16px; display:flex; align-items:center; justify-content:center; gap:10px}.agent__identity h2{font-size:clamp(16px,1.7vw,23px);letter-spacing:.28em;margin:0;font-weight:300;color:#f0f6f7}.agent__index{font-size:8px;color:var(--accent);opacity:.7}
.agent__role{font-size:7px;color:#58717a;margin:7px 0 14px;letter-spacing:.32em}.agent__status{display:flex;justify-content:center;align-items:center;gap:8px;font-size:8px;color:var(--accent);letter-spacing:.25em}.agent__status span{width:4px;height:4px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.agent__status b{font-weight:500}
/* UX-PATCH-01 : les boutons DÉMO vivent désormais en bas de la grande fiche
   descriptive (dans #<agent>-fiche-view), plus sous IDLE sur la petite carte
   Desk — plus visibles, taille intermédiaire, toujours pas de gros CTA SaaS.
   La fiche n'hérite pas de --accent-rgb (fixé en style inline sur .agent
   uniquement) : on le redéfinit ici par agent, scopé à sa propre fiche. */
/* UX-PATCH-02 : le bouton DÉMO termine la lecture de la fiche, poussé en bas
   par un margin-top:auto — pour que ça marche, la fiche (et sa vue) doivent
   remplir la hauteur disponible du panneau. Scopé aux 4 fiches uniquement
   (id sélecteurs) : les vues conversation (#<agent>-action-view) restent
   des .focus-view ordinaires, totalement inchangées. */
#nova-fiche-view{--accent-rgb:0,230,118;flex:1;min-height:0}
#athena-fiche-view{--accent-rgb:224,86,253;flex:1;min-height:0}
#orion-fiche-view{--accent-rgb:255,179,64;flex:1;min-height:0}
#atlas-fiche-view{--accent-rgb:0,200,255;flex:1;min-height:0}
.agent-fiche__demo{
  align-self:center;
  margin-top:auto;
  margin-bottom:clamp(16px,2.6vh,26px);
  border:1px solid rgba(var(--accent-rgb),.45);
  background:rgba(var(--accent-rgb),.08);
  color:rgba(var(--accent-rgb),.92);
  padding:9px 22px;
  font-size:9.5px;
  letter-spacing:.16em;
  cursor:pointer;
  box-shadow:0 0 12px rgba(var(--accent-rgb),.22);
  transition:background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease;
}
.agent-fiche__demo:hover,.agent-fiche__demo:focus-visible{background:rgba(var(--accent-rgb),.18);border-color:rgba(var(--accent-rgb),.85);color:#fff;box-shadow:0 0 20px rgba(var(--accent-rgb),.5);outline:none}
/* Appel visuel discret, ~5s après l'affichage de la fiche (voir demo.js) :
   respiration douce, dans le même esprit que .portrait{animation:breathe}
   déjà utilisé ailleurs dans l'interface — pas de clignotement on/off. */
.agent-fiche__demo.is-inviting{animation:agent-cta-pulse 2.6s ease-in-out infinite}
.agent-fiche__demo.is-inviting:hover,.agent-fiche__demo.is-inviting:focus-visible{animation-play-state:paused}
@keyframes agent-cta-pulse{
  0%,100%{box-shadow:0 0 12px rgba(var(--accent-rgb),.22);transform:scale(1);filter:brightness(1)}
  50%{box-shadow:0 0 22px rgba(var(--accent-rgb),.55);transform:scale(1.04);filter:brightness(1.3)}
}
.is-listening .portrait{animation:pulse 2.6s ease-in-out infinite}.is-listening .agent__status span{animation:blink 1.4s ease-in-out infinite}
.is-thinking .markers{opacity:1}.is-thinking .orbit--outer{border-width:1px}.is-thinking .portrait{box-shadow:0 0 30px rgba(var(--accent-rgb),.3),inset 0 0 35px rgba(var(--accent-rgb),.18)}
.voice-bars{position:absolute;bottom:1%;height:20px;display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .4s}.voice-bars i{display:block;width:1px;height:3px;background:var(--accent);box-shadow:0 0 5px var(--accent);transition:height .08s linear}.is-speaking .voice-bars{opacity:calc(.48 + .48 * var(--activity))}.is-speaking .portrait{animation:pulse 1.8s ease-in-out infinite}
.agent-activity{flex:0 0 calc(23% - 12px);max-width:calc(24% - 12px);min-width:170px;padding-left:20px;margin-left:20px;border-left:1px solid rgba(88,164,183,.14);display:flex;flex-direction:column;min-height:0;overflow-y:auto}
.agent-activity__header{margin:0 0 12px;padding:0 0 10px;border-bottom:1px solid #24343b;flex:none}
.agent-activity__title{display:block;font-size:9px;letter-spacing:.22em;color:#dce8ec;font-weight:500}
.agent-activity__subtitle{display:block;margin-top:4px;font-size:6.5px;letter-spacing:.14em;color:#546a72}
.agent-activity__timeline{list-style:none;margin:0;padding:0;border-left:1px solid rgba(88,164,183,.18);margin-left:4px}
.activity-entry{position:relative;padding:0 0 14px 16px}
.activity-entry:last-child{padding-bottom:0}
.activity-entry::before{content:"";position:absolute;left:-4px;top:3px;width:6px;height:6px;border-radius:50%;background:var(--dot,#54a4b7);box-shadow:0 0 6px var(--dot,#54a4b7)}
.activity-entry--nova{--dot:#00e676}
.activity-entry--atlas{--dot:#00c8ff}
.activity-entry--athena{--dot:#e056fd}
.activity-entry--orion{--dot:#ffb340}
.activity-entry__head{display:flex;align-items:baseline;gap:7px;margin-bottom:4px}
.activity-entry__time{font-size:8px;letter-spacing:.06em;color:#8ba0aa;font-variant-numeric:tabular-nums}
.activity-entry__agent{font-size:8px;letter-spacing:.16em;color:var(--dot,#8dd7e8);font-weight:500}
.activity-entry__badge{display:inline-block;margin:0 0 6px;padding:2px 6px;border:1px solid rgba(88,164,183,.35);color:#8dd7e8;font-size:6.5px;letter-spacing:.14em}
.activity-entry__lines{margin:0;padding:0}
.activity-entry__lines p{margin:0 0 3px;font-size:9px;line-height:1.5;color:#b8c9cf}
.activity-entry__lines p:last-child{margin-bottom:0}
@media(max-width:900px){.agent-activity{display:none}}
.system-bar { position:fixed;z-index:5;bottom:0;left:0;right:0;height:58px;border-top:1px solid rgba(78,112,124,.22);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;color:#657a82;font-size:7px}.system-bar b{font-weight:500;color:#92a9b0}.online-dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#00e676;box-shadow:0 0 6px #00e676;margin-right:8px}
.tts-engine{display:flex;align-items:center}.tts-engine__dot{display:inline-block;width:4px;height:4px;border-radius:50%;background:#00e676;box-shadow:0 0 6px #00e676;margin-right:8px}#local-clock{font-variant-numeric:tabular-nums;color:#91a4aa;font-size:9px}
/* DESK-02 — salle commune. Devenue la colonne centrale du HOME (Dashboard 2.0). */
.room-panel{position:relative;grid-column:2;grid-row:1;z-index:2;min-height:0;display:flex;flex-direction:column;padding:20px 22px;background:rgba(6,12,16,.86);border:1px solid #24343b;backdrop-filter:blur(12px);transition:opacity .35s}
.room-panel.is-hidden{opacity:.18;pointer-events:none}
.room-panel__toggle{position:absolute;right:10px;top:8px;left:auto;border:0;background:none;color:#647b84;font-size:16px;cursor:pointer}
.room-panel__body{display:flex;flex-direction:column;flex:1;min-height:0}
.room-panel__body small{font-size:7px;color:#78909a;letter-spacing:.16em;margin-bottom:10px}
.room-panel__columns{display:flex;flex:1;min-height:0}
.room-panel__chat{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
.room-log{flex:1;min-height:0;overflow-y:auto;padding-right:6px;display:flex;flex-direction:column;gap:14px;font-size:1.35em}
.room-msg{font-size:12px;line-height:1.6;letter-spacing:.02em;color:#b8c9cf}
.room-msg__who{display:block;font-size:8.5px;letter-spacing:.18em;color:#647b84;margin-bottom:4px}
.room-msg--user .room-msg__who{color:#8ba0aa}
.room-msg--nova .room-msg__who{color:#00e676}
.room-msg--atlas .room-msg__who{color:#00c8ff}
.room-msg--athena .room-msg__who{color:#e056fd}
.room-msg--orion .room-msg__who{color:#ffb340}
.room-msg__text{white-space:pre-wrap;word-break:break-word;margin:0}
.room-msg__mention{color:#8dd7e8}
.room-error{min-height:10px;margin:8px 0 0;font-size:7px;line-height:1.6;color:#e06c6c;letter-spacing:.04em}
.room-form{display:flex;gap:8px;margin-top:12px}
.room-form input{flex:1;min-width:0;border:1px solid #273c45;background:#091116;color:#b8c9cf;padding:11px;font:11px inherit;letter-spacing:.06em}
.room-form button{border:1px solid #273c45;background:#0d1a20;color:#8dd7e8;padding:11px 14px;font:8px inherit;letter-spacing:.14em;cursor:pointer}
.room-form button[disabled]{opacity:.4;cursor:default}
@media(max-width:720px){.command-center{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:calc(100vh - 78px - 58px)}.agent-stage{grid-column:1;grid-row:1;flex-direction:row;flex-wrap:wrap;justify-content:center}.room-panel{grid-column:1;grid-row:2;min-height:280px}}
/* DESK-FIX-02 — feedback "en cours". Bloc additif : aucune regle existante n'est modifiee. */
.room-msg--pending{opacity:.55;font-style:italic}
.room-msg--pending .room-msg__text{animation:pending-pulse 1.6s ease-in-out infinite}
.is-thinking .agent__identity h2{position:relative}
.is-thinking .agent__identity h2::after{content:"";position:absolute;left:6%;right:6%;bottom:-7px;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);background-size:200% 100%;animation:thinking-line 1.6s linear infinite}
@keyframes pending-pulse{50%{opacity:.5}}
@keyframes thinking-line{0%{background-position:200% 0}100%{background-position:-200% 0}}
/* Dashboard 2.0 — mécanique HOME / Agent Focus, dans le langage visuel existant. */
.agent[role="button"]{cursor:pointer;border-radius:4px;outline:none}
.agent[role="button"]:focus-visible{box-shadow:0 0 0 1px var(--accent),0 0 24px rgba(var(--accent-rgb),.22)}
/* UX-PATCH-01 : navigation, pas un CTA de démo — contour blanc-bleuté froid,
   halo discret, jamais de pulse automatique. */
.home-button{border:1px solid rgba(198,226,242,.5);background:#0a131a;color:#cfe2ea;padding:8px 13px;font:7px inherit;letter-spacing:.15em;cursor:pointer;white-space:nowrap;box-shadow:0 0 10px rgba(180,220,245,.14);transition:color .2s ease,border-color .2s ease,box-shadow .2s ease,background .2s ease}
.home-button:hover,.home-button:focus-visible{color:#ffffff;border-color:rgba(210,235,250,.85);background:#0d1921;box-shadow:0 0 18px rgba(190,225,248,.32);outline:none}
.focus-thread{grid-column:2;grid-row:1 / 4;min-height:0;height:100%;display:flex;flex-direction:column;padding:14px 24px;background:rgba(6,12,16,.88);border:1px solid #24343b;backdrop-filter:blur(12px)}
.focus-thread[hidden]{display:none}
.focus-thread__header{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:8px;border-bottom:1px solid #24343b}
.focus-thread__header small{font-size:7px;color:#78909a;letter-spacing:.16em}
.focus-thread__header h2{margin:5px 0 0;font-size:16px;font-weight:300;letter-spacing:.28em;color:#e9f2f5}
.focus-thread__header>span{font-size:8px;color:#8dd7e8;letter-spacing:.18em}
.focus-log{flex:1;min-height:0;overflow-y:auto;padding:10px 8px 2px 0;display:flex;flex-direction:column;gap:14px;font-size:1.3em}
.focus-log__empty{margin:auto;color:#52656d;font-size:.7em;letter-spacing:.08em}
.focus-error{min-height:10px;margin:8px 0 0;font-size:7px;color:#e06c6c;letter-spacing:.04em}
.focus-form{display:flex;gap:8px;margin-top:8px;flex:none}
.focus-form input{flex:1;min-width:0;border:1px solid #273c45;background:#091116;color:#b8c9cf;padding:12px;font:11px inherit;letter-spacing:.06em}
.focus-form button{border:1px solid #273c45;background:#0d1a20;color:#8dd7e8;padding:12px 16px;font:8px inherit;letter-spacing:.12em;cursor:pointer}
.focus-form button[disabled]{opacity:.4;cursor:default}
.focus-mic{flex:none;padding:12px 15px;font-size:13px;letter-spacing:0;user-select:none}
.focus-mic.is-listening{background:#241012;border-color:#e06c6c;color:#ff9d9d;font-size:9px;letter-spacing:.1em;padding:12px 14px;animation:blink 1.4s ease-in-out infinite}
body[data-view="agent"] #room-panel{display:none}
.command-center.is-focus-mode{padding-top:40px;grid-template-columns:clamp(300px,24vw,390px) 1fr clamp(130px,9.5vw,170px);grid-template-rows:repeat(3,1fr);gap:20px 30px}
/* Polish DESK-ORION-01 : translation verticale pure (aucun impact sur les
   dimensions du panneau ni la grille) — desktop uniquement, le mode Focus
   mobile a deja son propre bloc @media ci-dessous qui ne reprend pas cette regle. */
@media(min-width:721px){.command-center.is-focus-mode{transform:translateY(15px)}}
.is-focus-mode .agent.is-focus-primary{grid-column:1;grid-row:1 / 4;width:100%;max-width:350px;justify-self:center;align-self:center;--scale:1.02}
.is-focus-mode .agent.is-focus-primary .agent__visual{width:clamp(250px,21vw,330px)}
.is-focus-mode .agent.is-focus-primary .agent__identity h2{font-size:clamp(23px,2.3vw,29px)}
.is-focus-mode .agent.is-focus-primary .agent__role{font-size:8px;margin:8px 0 12px}
.is-focus-mode .agent.is-focus-primary .agent__status{font-size:9px}
.is-focus-mode .agent.is-focus-secondary{grid-column:3;grid-row:var(--focus-order);width:100%;max-width:150px;justify-self:center;align-self:center;--scale:.9;opacity:.62}
.is-focus-mode .agent.is-focus-secondary:hover,.is-focus-mode .agent.is-focus-secondary:focus-visible{opacity:1;--scale:.96}
.is-focus-mode .agent.is-focus-secondary .agent__visual{width:106px}
.is-focus-mode .agent.is-focus-secondary .agent__identity{margin-top:7px}
.is-focus-mode .agent.is-focus-secondary .agent__identity h2{font-size:12px}
.is-focus-mode .agent.is-focus-secondary .agent__role{margin:4px 0 7px}
@media(max-width:720px){.command-center.is-focus-mode{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;gap:14px;height:auto;min-height:calc(100vh - 78px - 58px)}.is-focus-mode .agent.is-focus-primary{grid-column:1;grid-row:1;max-width:none}.is-focus-mode .agent.is-focus-primary .agent__visual{width:150px}.is-focus-mode .agent.is-focus-secondary{grid-column:1;grid-row:3;display:inline-flex;width:auto;max-width:none}.focus-thread{grid-column:1;grid-row:2;height:auto;min-height:220px}.home-button{position:fixed;top:62px;left:16px;z-index:12}}
@keyframes rotate{to{transform:rotate(360deg)}}@keyframes rotate-reverse{to{transform:rotate(-360deg)}}@keyframes breathe{50%{transform:scale(1.012);box-shadow:inset 0 0 38px rgba(var(--accent-rgb),.16),0 0 25px rgba(var(--accent-rgb),.16)}}@keyframes pulse{50%{transform:scale(1.025);box-shadow:0 0 42px rgba(var(--accent-rgb),.38),inset 0 0 32px rgba(var(--accent-rgb),.2)}}@keyframes blink{50%{opacity:.25}}
@media(max-width:720px){body{overflow:auto}.command-center:not(.is-focus-mode) .agent{width:auto;max-width:none}.command-center:not(.is-focus-mode) .agent__visual{width:76px}.command-center.has-active .agent.is-idle{--scale:.96}}
/* DEMO-02 — fiche agent statique (Nova) + rapport Open US démo, dans le focus-log existant. */
.focus-view{display:flex;flex-direction:column;gap:14px}
.focus-view[hidden]{display:none}
.agent-fiche{display:flex;flex-direction:column;flex:1;min-height:0;gap:clamp(6px,1vh,16px);max-width:64em;padding:0}
.agent-fiche__title{margin:0;font-size:clamp(14px,1.6vh,17px);font-weight:500;letter-spacing:.05em;color:#f0f6f7}
.agent-fiche__subtitle{margin:0;font-size:11px;letter-spacing:.1em;color:#8ba0aa}
.agent-fiche__desc{margin:0;font-size:12.5px;line-height:1.6;letter-spacing:.01em;color:#b8c9cf}
.agent-fiche__back{align-self:flex-start;border:1px solid #273c45;background:transparent;color:#8ba0aa;padding:6px 10px;font-size:7px;letter-spacing:.14em;cursor:pointer}
.agent-fiche__back:hover,.agent-fiche__back:focus-visible{color:#e9f2f5;border-color:#52717e;outline:none}
.agent-fiche__grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(14px,2vw,24px);row-gap:clamp(6px,1vh,14px);margin-top:clamp(8px,1.3vh,16px)}
.agent-fiche__section{position:relative}
.agent-fiche__section:nth-child(even){border-left:1px solid rgba(88,164,183,.14);padding-left:clamp(18px,2.2vw,28px)}
.agent-fiche__section:nth-child(n+3){border-top:1px solid rgba(88,164,183,.14);padding-top:clamp(8px,1.2vh,16px)}
.agent-fiche__section-label{position:relative;display:block;padding-left:13px;font-size:10.5px;font-weight:700;letter-spacing:.2em;color:#c9d8dc;margin-bottom:clamp(6px,1vh,12px)}
.agent-fiche__section-label::before{content:"";position:absolute;left:0;top:2px;width:2px;height:11px;border-radius:1px;background:#00e676}
.agent-fiche__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:clamp(3px,.5vh,7px)}
.agent-fiche__list li{font-size:12px;line-height:1.5;letter-spacing:.01em;color:#b8c9cf}
@media(max-width:720px){.agent-fiche__grid{grid-template-columns:1fr}.agent-fiche__section:nth-child(even){border-left:none;padding-left:0}.agent-fiche__section:nth-child(n+2){border-top:1px solid rgba(88,164,183,.14);padding-top:clamp(14px,2vh,22px)}}
.room-msg__text strong{color:#c3d4d9;font-weight:600}
/* Scopé à la vue Nova en action uniquement — DEMO-01 (Chat Général) et .room-msg
   restent inchangés partout ailleurs. */
#nova-action-view{gap:clamp(12px,2.2vh,22px);max-width:46em}
#nova-action-view .room-msg{font-size:13px;line-height:1.6}
#nova-action-view .room-msg__who{font-size:10.5px;font-weight:700;letter-spacing:.22em;margin-bottom:clamp(4px,.9vh,8px)}
#nova-action-view .room-msg__open-us{margin-top:clamp(8px,1.6vh,16px);border-left:2px solid rgba(0,230,118,.32);padding-left:16px;display:flex;flex-direction:column;gap:clamp(7px,1.4vh,14px)}
#nova-action-view .room-msg__disclaimer{display:block;margin-top:0;font-size:6.5px;letter-spacing:.14em;color:#546a72}
/* ATHÉNA — fiche + conversation démo. Bloc additif : aucune règle Nova
   existante n'est modifiée, uniquement des sélecteurs scopés à Athéna. */
.agent--athena .portrait video{object-position:50% 15%}
#athena-fiche-view .agent-fiche__section-label::before{background:#e056fd}
#athena-action-view{gap:clamp(12px,2.2vh,22px);max-width:46em}
#athena-action-view .room-msg{font-size:13px;line-height:1.6}
#athena-action-view .room-msg__who{font-size:10.5px;font-weight:700;letter-spacing:.22em;margin-bottom:clamp(4px,.9vh,8px)}
#athena-action-view .room-msg__analysis{margin-top:clamp(8px,1.6vh,16px);border-left:2px solid rgba(224,86,253,.32);padding-left:16px;display:flex;flex-direction:column;gap:clamp(7px,1.4vh,14px)}
#athena-action-view .room-msg__analysis .agent-fiche__list{gap:clamp(3px,.6vh,7px)}
#athena-action-view .room-msg__disclaimer{display:block;margin-top:0;font-size:6.5px;letter-spacing:.14em;color:#546a72}
/* ORION — fiche + synthèse automatisée. Bloc additif : aucune règle Nova/
   Athéna existante n'est modifiée, uniquement des sélecteurs scopés à Orion.
   Pas de <video>/portrait__video pour Orion (aucune vidéo/voix — voir §2 du
   chantier), donc rien à ajouter côté .portrait ici. */
#orion-fiche-view .agent-fiche__section-label::before{background:#ffb340}
#orion-action-view{gap:clamp(12px,2.2vh,22px);max-width:46em}
#orion-action-view .room-msg{font-size:13px;line-height:1.6}
#orion-action-view .room-msg__who{font-size:10.5px;font-weight:700;letter-spacing:.22em;margin-bottom:clamp(4px,.9vh,8px)}
#orion-action-view .room-msg__timestamp{color:#ffb340;opacity:.85;font-size:11px;letter-spacing:.06em;margin:0 0 clamp(6px,1.2vh,12px)}
#orion-action-view .room-msg__analysis{border-left:2px solid rgba(255,179,64,.32);padding-left:16px;display:flex;flex-direction:column;gap:clamp(7px,1.4vh,14px)}
#orion-action-view .room-msg__disclaimer{display:block;margin-top:0;font-size:8px;letter-spacing:.14em;color:#546a72}
/* ATLAS — fiche + conversation stratégique. Bloc additif : aucune règle
   Nova/Athéna/Orion existante n'est modifiée, uniquement des sélecteurs
   scopés à Atlas. atlas.webp est déjà carré (700x700, sans recadrage —
   c'est pourquoi il n'apparaît pas dans la règle object-position partagée
   plus haut) ; sa vidéo n'est pas carrée, d'où object-position ici. */
.agent--atlas .portrait video{object-position:50% 15%}
#atlas-fiche-view .agent-fiche__section-label::before{background:#00c8ff}
#atlas-action-view{gap:clamp(12px,2.2vh,22px);max-width:46em}
#atlas-action-view .room-msg{font-size:13px;line-height:1.6}
#atlas-action-view .room-msg__who{font-size:10.5px;font-weight:700;letter-spacing:.22em;margin-bottom:clamp(4px,.9vh,8px)}
#atlas-action-view .room-msg__analysis{margin-top:clamp(8px,1.6vh,16px);border-left:2px solid rgba(0,200,255,.32);padding-left:16px;display:flex;flex-direction:column;gap:clamp(7px,1.4vh,14px)}
#atlas-action-view .room-msg__disclaimer{display:block;margin-top:0;font-size:8px;letter-spacing:.14em;color:#546a72}
/* UX-PATCH-01 : compaction supplémentaire sur les écrans bas (ex. 1366x768,
   très répandu) pour que le bouton DÉMO en bas de fiche reste accessible
   sans scrollbar interne, sans changer ni le texte ni la structure. */
@media(max-height:820px) and (min-width:721px){
  .command-center.is-focus-mode{padding-top:22px}
  .focus-thread{padding:10px 24px}
  .focus-thread__header{padding-bottom:5px}
  .focus-log{padding:6px 8px 0 0}
  .agent-fiche{gap:4px}
  .agent-fiche__desc{font-size:11.5px;line-height:1.45}
  .agent-fiche__grid{row-gap:4px;margin-top:5px}
  .agent-fiche__section:nth-child(n+3){padding-top:5px}
  .agent-fiche__list{gap:2px}
  .agent-fiche__list li{line-height:1.3}
  .agent-fiche__demo{padding:6px 18px;font-size:8.5px;margin-bottom:10px}
  .focus-form{margin-top:5px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
