v2.2 - Small improvement Interface change

This commit is contained in:
pporcheret
2026-10-29 11:13:02 +01:00
parent a17c3cb614
commit 7f26f9b015
271 changed files with 6207 additions and 16044 deletions
@@ -0,0 +1 @@
:root{color-scheme:dark;font-family:Inter,system-ui,-apple-system,'Segoe UI',sans-serif;color:#f3f7fe;background:#09121d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:linear-gradient(180deg,#06131fbf,#0a1526c7),url('/static/img/alfred-ambience.webp') center/cover fixed no-repeat}button,input{font:inherit}a{color:inherit;text-decoration:none}.dv-head{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;padding:18px clamp(16px,3vw,45px);background:#07132096;border-bottom:1px solid #d3e3fd23;backdrop-filter:blur(18px)}.dv-brand{display:flex;align-items:center;gap:14px}.dv-initial{font-weight:900;font-size:53px;line-height:1;background:linear-gradient(120deg,#a3e4ff,#0875fb);background-clip:text;color:transparent}.dv-brand strong{font-size:24px;display:block}.dv-brand small{color:#aec3dc;font-size:12px}.dv-head nav{display:flex;flex-wrap:wrap;gap:5px}.dv-head nav a{padding:9px 11px;border-radius:9px;font-size:13px;color:#c8d9ed}.dv-head nav a:hover,.dv-head nav a.active{background:#1a6cb6a6;color:white}.dv-main{max-width:1550px;margin:auto;padding:27px clamp(14px,3vw,44px)}.dv-eyebrow{font-size:11px;color:#7cbeff;font-weight:800;letter-spacing:.13em}.dv-intro{display:flex;justify-content:space-between;gap:22px;align-items:end;margin-bottom:22px}.dv-intro h1{font-size:clamp(28px,3vw,43px);margin:4px 0}.dv-intro p:not(.dv-eyebrow){color:#bacbe0;font-size:14px;max-width:790px}.dv-panel{padding:20px;border:1px solid #cfebff36;border-radius:19px;background:rgba(11,24,41,.49);backdrop-filter:blur(19px);box-shadow:0 18px 55px #0003}.dv-layout{display:grid;grid-template-columns:minmax(260px,365px) minmax(0,1fr);gap:17px}.dv-section-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.dv-section-title h2{margin:2px 0 15px;font-size:19px}.dv-muted,.dv-footnote{font-size:13px;color:#bad0e4;line-height:1.6}.dv-tasks{display:flex;flex-direction:column;gap:9px;margin-top:17px}.dv-task{text-align:left;width:100%;background:#061b31a8;border:1px solid #a2c5e73d;border-radius:11px;padding:13px;cursor:pointer;color:white}.dv-task:hover,.dv-task.selected{background:#1261aa60;border-color:#8cc9ff}.dv-task strong,.dv-task small{display:block}.dv-task strong{line-height:1.4}.dv-task small{margin-top:7px;color:#9fbdda}button{background:#145c9fb3;border:1px solid #92c3ec80;color:white;border-radius:11px;padding:10px 15px;cursor:pointer}button:hover{background:#2676bd}button:disabled{opacity:.45;cursor:default}.dv-primary{background:#176bc8}.dv-empty{border:1px dashed #acd4f864;border-radius:12px;padding:28px;color:#a9c5de}.dv-detail h3{font-size:20px;margin:5px 0}.dv-detail h4{font-size:13px;color:#badcfb;letter-spacing:.04em;margin-bottom:10px}.dv-checks{display:grid;gap:8px}.dv-check{font-size:13px;padding:9px 12px;border-radius:9px;background:#051627ba;border-left:3px solid #44cba2}.dv-check.fail{border-color:#f5a37d}.dv-diff{max-height:47vh;overflow:auto;white-space:pre;tab-size:2;background:#030e1be8;border:1px solid #a6cbe13e;border-radius:11px;padding:17px;color:#d9ecff;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.dv-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:18px}.dv-next{margin-top:15px;border-radius:12px;padding:15px;background:#071f32c9;border:1px solid #40a7ee64}.dv-next code{display:block;padding:10px;margin-top:10px;overflow-x:auto;color:#a5d6ff}.dv-footnote{margin-top:19px}.dv-section-title span{font-size:12px;color:#91d0ff}.dv-panel form{display:flex;gap:10px;flex-wrap:wrap}.dv-panel input{padding:10px 12px;background:#061629;border:1px solid #a5cfed6b;border-radius:10px;color:white}#dvMessage{color:#e8c8a3}#dvMessage.ok{color:#86e6bf}:focus-visible{outline:2px solid #90d0ff;outline-offset:2px}@media(max-width:920px){.dv-layout{grid-template-columns:1fr}.dv-intro{align-items:start;flex-direction:column}.dv-head nav{width:100%}}
@@ -0,0 +1,23 @@
/* ALFRED_HERMES_NEW_SESSION_V1 — habillage Glass, compatible avec le menu V1/V2. */
#avHermesNewSession {cursor:pointer;}
.av-hermes-session-dialog {
position:fixed; inset:0; margin:auto; width:min(520px,calc(100vw - 28px));
max-height:calc(100dvh - 32px);overflow:auto;color:#eef6ff;
border:1px solid rgba(174,210,246,.36);border-radius:19px;
background:linear-gradient(145deg,rgba(18,37,58,.94),rgba(7,19,36,.96));
box-shadow:0 22px 65px rgba(0,0,0,.55);backdrop-filter:blur(22px);
padding:0;z-index:2147483640;
}
.av-hermes-session-dialog::backdrop {background:rgba(2,8,19,.67);backdrop-filter:blur(4px);}
.av-hermes-session-content {display:flex;flex-direction:column;gap:16px;padding:27px;margin:0;}
.av-hermes-session-content h2 {font-size:23px;color:#f4f9ff;margin:0;}
.av-hermes-session-content p {font-size:14px;line-height:1.6;margin:0;color:#d1deed;}
.av-hermes-session-note {font-size:12px!important;color:#a8c0d6!important;}
.av-hermes-session-message {min-height:18px;color:#89d9af!important;}
.av-hermes-session-message.is-error {color:#ffb7b7!important;}
.av-hermes-session-actions {display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;}
.av-hermes-session-actions button,.av-hermes-session-login {border-radius:11px;padding:11px 16px;font-weight:600;font-size:13px;cursor:pointer;}
.av-hermes-session-secondary {background:rgba(255,255,255,.10);color:white;border:1px solid rgba(255,255,255,.22);}
.av-hermes-session-primary,.av-hermes-session-login {background:#268ce8;color:white;border:1px solid rgba(119,198,255,.45);}
.av-hermes-session-login {align-self:flex-start;text-decoration:none;}
.av-hermes-session-actions button:disabled {opacity:.45;cursor:wait;}
@@ -0,0 +1,73 @@
/* ALFRED_REPONSE_CLOSE_V1 — actions toujours au-dessus du contenu rendu par Hermes. */
.alfred-glass-theme #stage {
padding-top: clamp(76px, 9vh, 104px) !important;
position: fixed;
}
.alfred-glass-theme #stage .av-reponse-actions {
position: absolute;
top: clamp(14px, 2.2vh, 25px);
right: clamp(15px, 2vw, 31px);
z-index: 32;
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: flex-end;
gap: 10px;
pointer-events: auto;
}
/* #avBack est déplacé hors de .alfred-main-v1 pour éviter son contexte d'empilement. */
.alfred-glass-theme #stage #avBack.av-reponse-home,
.alfred-glass-theme #stage .av-reponse-close {
position: static !important;
inset: auto !important;
transform: none !important;
display: inline-flex;
align-items: center;
justify-content: center;
gap: 9px;
min-height: 43px;
padding: 10px 16px;
border: 1px solid rgba(181, 218, 248, .47);
border-radius: 13px;
background: rgba(18, 42, 65, .93);
color: #f6fbff;
font: 600 13px/1.2 Inter, ui-sans-serif, system-ui, sans-serif;
letter-spacing: 0;
cursor: pointer;
box-shadow: 0 6px 18px rgba(0, 5, 15, .4);
-webkit-backdrop-filter: blur(12px);
backdrop-filter: blur(12px);
opacity: 1 !important;
visibility: visible !important;
}
.alfred-glass-theme #stage #avBack.av-reponse-home[hidden] { display: none !important; }
.alfred-glass-theme #stage .av-reponse-close {
width: 43px;
min-width: 43px;
padding: 9px;
border-radius: 50%;
background: rgba(37, 51, 70, .96);
}
.alfred-glass-theme #stage .av-reponse-close svg,
.alfred-glass-theme #stage #avBack.av-reponse-home svg {
width: 18px;
height: 18px;
flex: 0 0 auto;
}
.alfred-glass-theme #stage .av-reponse-close:hover,
.alfred-glass-theme #stage #avBack.av-reponse-home:hover {
background: rgba(21, 103, 169, .98);
border-color: #9ed7ff;
}
.alfred-glass-theme #stage .av-reponse-close:focus-visible,
.alfred-glass-theme #stage #avBack.av-reponse-home:focus-visible {
outline: 3px solid #83d1ff;
outline-offset: 3px;
}
@media (max-width: 600px) {
.alfred-glass-theme #stage { padding-top: 88px !important; }
.alfred-glass-theme #stage .av-reponse-actions { top: 12px; right: 12px; gap: 7px; }
.alfred-glass-theme #stage #avBack.av-reponse-home,
.alfred-glass-theme #stage .av-reponse-close { font-size: 12px; padding: 8px 11px; min-height: 40px; }
.alfred-glass-theme #stage .av-reponse-close { width: 40px; min-width: 40px; padding: 8px; }
}
@@ -0,0 +1,148 @@
/* ALFRED_STT_INLINE_GLASS_V1 — transcription en texte libre au-dessus de la vague.
Charge apres alfred-main-v1.css et alfred-main-v2.css. */
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on {
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:center !important;
gap:0 !important;
overflow:hidden;
}
/* Ancien aside STT : aucun cadre, aucune position flottante. */
.alfred-glass-theme .alfred-main-v1 .av-voice-hero .transcript-panel.av-stt-inline {
position:relative !important;
inset:auto !important;
left:auto !important; right:auto !important; top:auto !important; bottom:auto !important;
transform:none !important;
order:0;
z-index:3 !important;
display:flex !important;
flex-direction:column !important;
align-items:center !important;
justify-content:center !important;
flex:0 0 auto;
width:min(920px,96%) !important;
max-width:96% !important;
min-height:0 !important;
height:auto !important;
margin:0 auto !important;
padding:0 8px !important;
border:0 !important;
border-radius:0 !important;
outline:0 !important;
background:transparent !important;
box-shadow:none !important;
backdrop-filter:none !important;
-webkit-backdrop-filter:none !important;
opacity:1 !important;
text-align:center;
pointer-events:none;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .panel-heading {
min-height:0 !important;
width:100%;
display:flex;
align-items:center;
justify-content:center;
flex-wrap:wrap;
gap:8px 14px;
margin:0 0 4px !important;
padding:0 !important;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .panel-title {
display:inline-flex;
align-items:center;
gap:7px;
color:rgba(209,226,247,.83);
font-size:clamp(10px,.85vw,13px) !important;
font-weight:650;
letter-spacing:.08em;
text-shadow:0 2px 9px #0008;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .stt-indicator {background:#5e94df;}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline[data-active="true"] .stt-indicator {background:#61dfc4;}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .transcript-state {
color:#87c9ff !important;
font-size:clamp(10px,.85vw,12px);
font-weight:650;
white-space:nowrap;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .transcript-text {
display:-webkit-box;
-webkit-box-orient:vertical;
-webkit-line-clamp:2;
line-clamp:2;
overflow:hidden !important;
width:100%;
max-height:3.1em !important;
margin:0 !important;
color:#f0f7ff !important;
font-size:clamp(13px,1.18vw,18px) !important;
font-weight:450;
line-height:1.45 !important;
text-align:center;
text-shadow:0 2px 13px rgba(0,0,0,.85);
overflow-wrap:anywhere;
opacity:1 !important;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .transcript-text.is-placeholder {
color:rgba(205,223,243,.62) !important;
}
/* Vague et messages existants sous la transcription. Le canvas reste original. */
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-wave-host {
position:relative !important;
inset:auto !important;
left:auto !important; top:auto !important;
transform:none !important;
order:1;
z-index:1;
flex:0 0 clamp(46px,5.3vw,72px);
align-self:center;
width:min(800px,90%) !important;
height:clamp(46px,5.3vw,72px) !important;
margin:0 auto !important;
}
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-wave-host #wave,
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-wave-host canvas {
height:100% !important;
}
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-voice-controls {
position:relative !important;
inset:auto !important;
order:2;
min-height:0 !important;
height:auto !important;
flex:0 0 auto;
padding-top:0 !important;
margin:0 !important;
align-self:center !important;
}
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-voice-center {
min-width:0 !important;
}
/* Mode et messages d'etat, volontairement inchanges. */
@media (max-width:1100px) {
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on {
min-height:215px !important;
}
}
@media (max-width:600px) {
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on {
min-height:200px !important;
padding:8px 0;
}
.alfred-glass-theme .alfred-main-v1 .av-voice-hero .transcript-panel.av-stt-inline {
width:100% !important; max-width:100% !important;
}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .panel-heading {gap:3px 8px;}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .panel-title {font-size:10px !important;letter-spacing:.03em;}
.alfred-glass-theme .alfred-main-v1 .av-stt-inline .transcript-text {font-size:13px !important;}
.alfred-glass-theme .alfred-main-v1 .av-voice-hero.av-stt-inline-on .av-wave-host {
width:100% !important;
flex-basis:50px;
height:50px !important;
}
}
@media(prefers-reduced-motion:reduce) {
.alfred-glass-theme .alfred-main-v1 .av-stt-inline {transition:none !important;}
}
@@ -0,0 +1,136 @@
/* DONA_HOLOGRAPHIC_V1
* Thème transversal non destructif. Les contrôleurs et APIs existants restent les mêmes.
* Chargement APRÈS les feuilles Glass, y compris les correctifs précédents.
*/
:root { color-scheme:dark; --dh-white:#f1f4ff;--dh-muted:#a8b8d3;--dh-border:rgba(155,183,234,.23);--dh-panel:rgba(4,10,22,.81);--dh-blue:#5796ff;--dh-teal:#74e6d4;--dh-purple:#ab78ff;--dh-orange:#ffae73;--dh-shadow:0 24px 72px rgba(0,0,0,.38); }
html {scrollbar-color:#596b8c #060a14;}
body.dona-holo-v1 { color:var(--dh-white); background-color:#070913!important; background-image:
radial-gradient(ellipse 35% 39% at 3% 70%,rgba(251,101,44,.5),transparent 95%),
radial-gradient(ellipse 36% 52% at 96% 26%,rgba(18,125,236,.42),transparent 85%),
radial-gradient(ellipse 42% 35% at 50% 0%,rgba(119,68,173,.31),transparent 90%),
radial-gradient(ellipse 24% 32% at 82% 94%,rgba(243,97,42,.29),transparent 92%),
linear-gradient(125deg,#070810,#0a1020 54%,#090914) !important;
background-attachment:fixed!important; }
body.dona-holo-v1::before{content:"";position:fixed;z-index:0;inset:-10%;pointer-events:none;
background:radial-gradient(ellipse at 12% 18%,rgba(56,111,251,.17),transparent 33%),radial-gradient(ellipse at 78% 65%,rgba(227,100,165,.15),transparent 32%);
filter:blur(68px);animation:dh-ambient 19s ease-in-out infinite alternate;}
body.dona-holo-v1::after{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;
background:linear-gradient(90deg,rgba(1,5,13,.13),rgba(1,5,13,.45) 43%,rgba(1,5,13,.18));}
@keyframes dh-ambient {0%{transform:translate(-1.5%,0)}100%{transform:translate(2%,1.4%)}}
/* Écrans d'administration, qui utilisent des conteneurs et feuilles CSS différents. */
body.dona-holo-v1 :is(.admin-layout,.id-shell,.id-wrap,.id-layout,.dv-main,.lv-layout,.lg-layout,.log-layout,.logs-layout){position:relative;z-index:1;}
body.dona-holo-v1 .alfred-main-v1{z-index:1;}
/* Priorité au panneau noir central de la maquette. Le décor reste diffus en périphérie. */
body.dona-holo-v1 .alfred-main-v1 .av-head {background:transparent!important;}
body.dona-holo-v1 .alfred-main-v1 .av-logo {background:linear-gradient(145deg,#95c2ff,#5187ff 55%,#c58bff);background-clip:text;-webkit-background-clip:text;color:transparent;filter:drop-shadow(0 1px 18px #4486ff73);}
body.dona-holo-v1 .alfred-main-v1 .av-brand small{color:#c4cde1;}
body.dona-holo-v1 .alfred-main-v1 .av-round{background:rgba(5,9,22,.74)!important;border:1px solid rgba(155,174,224,.24)!important;box-shadow:inset 0 1px rgba(255,255,255,.04);}
body.dona-holo-v1 .alfred-main-v1 .av-round[aria-pressed="true"]{background:rgba(108,28,58,.75)!important;border-color:rgba(255,116,151,.66)!important;}
body.dona-holo-v1 .alfred-main-v1 .av-summary{gap:clamp(9px,1.05vw,18px);}
body.dona-holo-v1 .alfred-main-v1 .av-stat-card{color:var(--dh-white)!important;
background:linear-gradient(140deg,rgba(6,13,31,.79),rgba(8,16,34,.68))!important;
border:1px solid rgba(126,157,227,.24)!important;border-radius:22px!important;
box-shadow:0 12px 44px #01051255,inset 0 1px #ffffff0a!important;
backdrop-filter:blur(20px) saturate(120%)!important;-webkit-backdrop-filter:blur(20px) saturate(120%)!important;
transition:transform .2s,border-color .2s,box-shadow .2s;}
body.dona-holo-v1 .alfred-main-v1 .av-stat-card:hover{transform:translateY(-2px);border-color:#8bb9ff83!important;box-shadow:0 14px 45px #0206128b,0 0 23px #336ce22c!important;background:rgba(10,21,42,.85)!important;}
body.dona-holo-v1 .av-circle{background:#1e376566;color:#94c9ff;}
body.dona-holo-v1 .av-circle.ai{background:#492b7a80;color:#d2b3ff;}
body.dona-holo-v1 .av-weather{background:linear-gradient(140deg,rgba(12,28,44,.74),rgba(8,19,37,.8))!important;}
body.dona-holo-v1 .av-shortcuts button{background:rgba(5,10,24,.82)!important;border:1px solid rgba(151,177,221,.27)!important;border-radius:21px!important;box-shadow:inset 0 1px rgba(255,255,255,.035);}
body.dona-holo-v1 .av-shortcuts button:hover{background:#102344e6!important;border-color:#65a1ff82!important;}
body.dona-holo-v1 .av-shortcuts .a-icon{color:#a9c6ff;}
body.dona-holo-v1 .av-status-line{background:rgba(6,11,27,.65);border-color:rgba(157,186,229,.23);}
body.dona-holo-v1 .av-wave-host canvas{filter:drop-shadow(0 0 9px rgba(91,137,255,.65))!important;}
/* La réponse qui était une énorme div pleine page devient une scène avec cartes vivantes. */
body.dona-holo-v1.alfred-glass-theme #stage {top:clamp(93px,11vh,128px)!important;right:clamp(12px,2vw,34px)!important;bottom:clamp(12px,2.3vh,30px)!important;left:clamp(12px,2vw,34px)!important;
background:linear-gradient(146deg,rgba(2,5,13,.97),rgba(3,7,18,.96) 55%,rgba(6,10,26,.95))!important;
border:1px solid rgba(154,180,231,.25)!important;border-radius:clamp(18px,2vw,31px)!important;
padding:clamp(60px,8vh,100px) clamp(14px,3vw,46px) clamp(14px,3vh,28px)!important;
box-shadow:0 36px 95px rgba(0,0,0,.55),inset 0 1px #d7dfff0d;
display:flex!important;align-items:center!important;justify-content:center!important;overflow:auto!important;}
body.dona-holo-v1.alfred-glass-theme #stage #content{width:min(1300px,100%)!important;max-width:none!important;max-height:none!important;min-height:0!important;overflow:visible!important;margin:auto;}
body.dona-holo-v1.alfred-glass-theme #stage .av-reponse-actions {top:16px!important;right:20px!important;}
body.dona-holo-v1.alfred-glass-theme #stage :is(#avBack.av-reponse-home,.av-reponse-close){background:rgba(17,27,51,.91)!important;border:1px solid #9bb9ec55!important;color:#f4f7ff!important;border-radius:15px!important;}
body.dona-holo-v1.alfred-glass-theme #stage .av-reponse-close{border-radius:50%!important;}
/* Réponse illustrée construite sur les données déjà présentes dans la réponse Hermes.
Les éléments ne sont pas des chiffres simulés : un métrique n'apparaît que s'il est cité. */
#content .dh-response{display:grid;grid-template-columns:minmax(250px,1.12fr) minmax(300px,.95fr);gap:clamp(12px,1.6vw,22px);align-items:stretch;min-width:0;}
#content .dh-primary{position:relative;min-width:0;min-height:335px;display:flex;flex-direction:column;gap:20px;
padding:clamp(22px,2.3vw,36px);border:1px solid rgba(96,142,255,.72);border-radius:24px;
background:linear-gradient(135deg,rgba(13,30,62,.9),rgba(6,14,31,.89) 62%,rgba(15,36,42,.82));
box-shadow:inset 0 1px #ffffff12,0 0 23px #3976fc2b,0 20px 35px #0004;}
#content .dh-primary:before{content:"";position:absolute;inset:-1px;pointer-events:none;border-radius:24px;background:linear-gradient(120deg,#5b83ff33,transparent 44%,#72e8cd17);opacity:.7;}
#content .dh-kicker{display:flex;align-items:center;gap:11px;font-size:11px!important;color:#a9bee6!important;letter-spacing:.16em;font-weight:700;text-transform:uppercase;}
#content .dh-kicker:before{content:"";height:9px;width:9px;background:#61a3ff;border-radius:50%;box-shadow:0 0 12px #579cff;}
#content .dh-headline{font-size:clamp(21px,2.1vw,33px)!important;letter-spacing:-.025em;font-weight:590;line-height:1.28;color:#f4f6ff;overflow-wrap:anywhere;}
#content .dh-excerpt{color:#c8d2e6!important;font-size:clamp(13px,1.02vw,16px)!important;line-height:1.7;white-space:pre-wrap;overflow-wrap:anywhere;flex:1;}
#content .dh-more{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:13px 16px;
background:rgba(37,58,95,.44);border:1px solid #aac9ff42;border-radius:13px;color:#f0f5ff;font:600 13px/1.3 inherit;cursor:pointer;text-align:left;}
#content .dh-more:hover{background:#294b748e;border-color:#95caff92;}
#content .dh-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(145px,1fr);gap:14px;min-width:0;}
#content .dh-fact{border:1px solid rgba(113,151,218,.35);border-radius:20px;padding:clamp(16px,1.7vw,25px);min-width:0;
background:linear-gradient(135deg,rgba(17,34,63,.94),rgba(9,22,48,.85));box-shadow:inset 0 1px #ffffff0d;display:flex;flex-direction:column;gap:8px;}
#content .dh-fact:nth-child(3n + 2){border-color:rgba(101,209,189,.29);background:linear-gradient(145deg,rgba(12,38,52,.94),rgba(13,26,45,.85));}
#content .dh-fact:nth-child(3n + 3){border-color:rgba(239,150,94,.27);background:linear-gradient(135deg,rgba(45,29,40,.91),rgba(29,22,37,.86));}
#content .dh-fact:nth-child(4n){border-color:rgba(167,124,239,.28);background:linear-gradient(135deg,rgba(31,26,60,.94),rgba(16,20,43,.86));}
#content .dh-fact-label{font-size:clamp(11px,.85vw,14px)!important;line-height:1.35;color:#c1cee8;}
#content .dh-fact-icon{font-size:21px;margin-bottom:6px;opacity:.9;}
#content .dh-fact-value{font-size:clamp(19px,2.25vw,36px)!important;font-weight:570;line-height:1.15;color:#f9faff;letter-spacing:-.04em;overflow-wrap:anywhere;}
#content .dh-fact-note{font-size:11px!important;color:#93a6c9;line-height:1.5;margin-top:auto;overflow-wrap:anywhere;}
#content .dh-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:6px;}
#content .dh-tag{padding:7px 11px;background:rgba(88,111,171,.2);border:1px solid rgba(143,166,218,.24);border-radius:999px;color:#d1daf6;font-size:12px;}
#content .dh-full{grid-column:1/-1;border:1px solid rgba(145,174,227,.27);background:rgba(11,20,39,.82);border-radius:18px;padding:20px;}
#content .dh-full[hidden]{display:none!important;}
#content .dh-full h3{font-size:16px;margin:0 0 12px;color:#deecff;text-align:left;}
#content .dh-full-text{white-space:pre-wrap;color:#ced8ea;line-height:1.65;font-size:14px;overflow-wrap:anywhere;}
#content .dh-source{font-size:11px;color:#8b9fc1;margin-top:9px;}
#content .dh-response:after{content:"";grid-column:1/-1;justify-self:center;width:min(490px,64%);height:3px;
background:linear-gradient(90deg,transparent,#3e92fe 30%,#c876f8 55%,#f7a569 73%,transparent);border-radius:50%;box-shadow:0 0 18px 5px #529bff5b;margin:7px 0 0;}
/* Les anciens types de cartes émis par les renderers restent pris en charge. */
body.dona-holo-v1 #stage #content > .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:17px;text-align:left;}
body.dona-holo-v1 #stage #content > .cards .card{padding:24px;border-radius:21px;background:linear-gradient(145deg,#13243ddf,#0a162ce5);border:1px solid #7c9cde57;text-align:left;}
body.dona-holo-v1 #stage #content > img.hero {max-height:calc(100dvh - 260px);width:auto;max-width:100%;object-fit:contain;border-radius:16px;}
/* Configuration et Surveillance */
body.dona-holo-v1.alfred-admin-glass .admin-layout{z-index:1;}
body.dona-holo-v1.alfred-admin-glass .ag-rail{background:rgba(3,7,20,.89)!important;border-color:var(--dh-border)!important;}
body.dona-holo-v1.alfred-admin-glass .admin-header{background:transparent!important;}
body.dona-holo-v1.alfred-admin-glass .brand-orb{background:linear-gradient(135deg,#438bff,#9368fa)!important;border-radius:18px;}
body.dona-holo-v1.alfred-admin-glass :is(.panel,.metric-card,.auth-box,.ag-row,.mcp-item){
background:linear-gradient(145deg,rgba(5,13,30,.91),rgba(9,18,36,.84))!important;
border:1px solid rgba(133,164,229,.29)!important;border-radius:21px!important;box-shadow:var(--dh-shadow);backdrop-filter:blur(18px);}
body.dona-holo-v1.alfred-admin-glass .page-top .eyebrow{color:#9cb9ff;}
body.dona-holo-v1.alfred-admin-glass .button.primary{background:linear-gradient(125deg,#3063d0,#556dca)!important;border-color:#98baff88!important;}
body.dona-holo-v1.alfred-admin-glass :is(.field input:not([type=range]):not([type=checkbox]),.field select,.ag-field input,.ag-field select){background:rgba(4,11,25,.87)!important;border-color:#799acc55!important;color:#f2f6ff!important;}
body.dona-holo-v1.alfred-admin-glass .admin-header nav :is(a,button){background:rgba(6,13,31,.78)!important;border-color:#8aace950!important;}
body.dona-holo-v1.alfred-admin-glass .admin-header nav .selected{border-color:#76a5fd!important;background:rgba(38,73,138,.92)!important;}
/* Pages dont les classes proviennent d'extensions installées séparément. */
body.dona-holo-v1 :is(.id-panel,.dv-panel,.lg-panel,.lv-panel,.log-panel,.logs-panel,.glass-panel,.id-editor,.dv-task,.dv-list,.dv-detail){background:linear-gradient(135deg,rgba(6,14,31,.92),rgba(12,20,42,.87))!important;
border:1px solid rgba(127,158,221,.3)!important;border-radius:22px!important;box-shadow:0 15px 35px rgba(0,0,0,.22);backdrop-filter:blur(15px);}
body.dona-holo-v1 :is(.dv-head,.id-header,.id-head,.lv-head,.lg-head,.logs-header,.log-header){position:relative;z-index:2;background:rgba(5,10,23,.66)!important;border-color:#819bd046!important;backdrop-filter:blur(15px);}
body.dona-holo-v1 :is(.dv-head,.id-header,.id-head) :is(a,button){border-radius:12px;}
body.dona-holo-v1 :is(.dv-main,.id-main,.lg-main,.lv-main,.logs-main,.log-main) h1{color:#f5f8ff;letter-spacing:-.035em;}
body.dona-holo-v1 :is(input,select,textarea){accent-color:#7fa7ff;}
body.dona-holo-v1 :is(.id-panel,.dv-panel,.lg-panel,.lv-panel,.log-panel,.logs-panel) :is(input:not([type=checkbox]):not([type=range]),textarea,select){background:rgba(5,11,27,.91)!important;color:#f2f6ff!important;border:1px solid #96b9ef55!important;border-radius:12px!important;}
body.dona-holo-v1 :is(.dv-primary,.id-button.primary){background:linear-gradient(120deg,#376cdd,#6763d5)!important;color:white!important;}
body.dona-holo-v1 :is(a,button,input,select,textarea):focus-visible{outline:2px solid #a9c5ff;outline-offset:3px;}
/* Page Journaux : log monospace lisible, pas de glow derrière le contenu. */
body.dona-holo-v1 :is(.lg-list,.logs-feed,.log-feed,.logs-table,.log-list,.lg-entries,pre.dv-diff){background:rgba(2,6,15,.79)!important;border:1px solid rgba(122,149,208,.25)!important;border-radius:14px!important;color:#d2e5ff;}
/* Les modules secondaires restent visibles au-dessus des effets de fond. */
body.dona-holo-v1 :is(dialog,.av-image-dialog,.camera-popup,#alfredTimersDock,#alfredTimerToast,.av-more-dialog,.audio-popover){z-index:100;}
@media(max-width:1050px){#content .dh-response{grid-template-columns:1fr;}#content .dh-primary{min-height:220px}#content .dh-facts{grid-auto-rows:minmax(125px,auto);}body.dona-holo-v1.alfred-glass-theme #stage{align-items:flex-start!important;}}
@media(max-width:700px){body.dona-holo-v1.alfred-glass-theme #stage{top:85px!important;left:8px!important;right:8px!important;bottom:8px!important;padding:80px 12px 18px!important;}#content .dh-response{display:block;}#content .dh-primary{padding:20px;margin-bottom:13px;}#content .dh-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;}#content .dh-fact{padding:14px;min-height:130px;}#content .dh-full{margin-top:12px;}.alfred-glass-theme #stage .av-reponse-actions{top:12px!important;right:12px!important;}}
@media(prefers-reduced-motion:reduce){body.dona-holo-v1::before{animation:none}body.dona-holo-v1 .av-stat-card{transition:none}}
/* Finitions du panneau et affichage sans métriques */
#content .dh-response{text-align:left;}
#content .dh-response.dh-no-facts{grid-template-columns:minmax(0,900px);justify-content:center;}
#content .dh-more{font-family:inherit;font-size:13px;font-weight:600;line-height:1.3;}
body.dona-holo-v1, #content .dh-response{font-family:Inter,ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;}
/* Fenêtres secondaires de l'accueil (listes, ComfyUI, caméra) dans la même palette. */
body.dona-holo-v1 :is(#alfredListsGlassDialog,.av-image-dialog,.av-comfy-dialog,.av-more-dialog,.av-popup,.camera-popup,.audio-popover){
background:linear-gradient(145deg,rgba(4,10,24,.97),rgba(9,19,41,.96))!important;
border:1px solid rgba(142,176,242,.38)!important;border-radius:22px!important;
box-shadow:0 32px 90px #000a,0 0 26px #4f7fff18!important;color:#f4f7ff!important;
backdrop-filter:blur(22px)!important;}
body.dona-holo-v1 :is(.al-list-section,.al-item){background:rgba(14,25,48,.75)!important;border-color:#8aa9e34a!important;}
body.dona-holo-v1 :is(.al-add-form button,.al-footer button){background:linear-gradient(120deg,#254a9f,#4f56bb)!important;border-color:#8baffb77!important;}