.panel.system-offline{border-color:#a45c4b99;border-top-color:#d0826a}.system-offline .status-dot{background:#df8270}.system-offline .line-status{color:#e7a394}
.panel.system-ready{border-color:#d3975599;border-top-color:#ffc379}.system-ready .status-dot{background:#edbd70;animation:status-breathe 2.8s ease-in-out infinite}
.panel.system-active{border-color:#5eb38d99;border-top-color:#85d7ae;box-shadow:inset 0 0 30px #5eb38d08}.system-active .card-number,.system-active .power-number,.system-active .line-status,.system-active .dependency,.system-active .power-title,.system-active .battery-value strong,.system-active .battery-value span{color:#94dbb6}
.system-active .status-dot{background:#85d7ae;box-shadow:0 0 12px #85d7ae80;animation:status-breathe 3.5s ease-in-out infinite}.system-active .button:disabled{opacity:1;background:#234c37;color:#b5e8ca;border-color:#538c68}.system-active .battery-outline{border-color:#75b994}.system-active .battery-outline:after{background:#75b994}
.power-panel{position:relative}.power-panel:after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#ffc87c,transparent);transform:translateX(-100%);animation:energy-travel 5s ease-in-out infinite;pointer-events:none}.power-panel.system-active:after{background:linear-gradient(90deg,transparent,#91e2b5,transparent)}
.system-active .battery-outline{box-shadow:0 0 18px #73ca9a16}.system-active #batteryFill{animation:status-breathe 4s ease-in-out infinite}.subsystem .status-dot{width:9px;height:9px}
#moduleDialog{width:680px;padding:30px;border:1px solid #b6844d;background:radial-gradient(ellipse at top right,#45362135,transparent 65%),#141d20;box-shadow:0 0 70px #d9963720,0 35px 100px #000d}
#moduleDialog .eyebrow{font-size:12px;color:#deb578}#moduleDialog h2{font-size:32px;font-weight:600;letter-spacing:-.7px}#moduleDialog p{font-size:15px;line-height:1.6}#moduleDialog label{font-size:14px}#moduleDialog input{font-size:19px;padding:16px}#moduleDialog .button{font-size:16px;min-height:51px;justify-content:center}#moduleDialog .modal-top{margin-bottom:16px}#moduleDialog .modal-lock{font-size:52px;color:#f3be71}#moduleDialog .form-error{font-size:13px;color:var(--red)}
.activation-stage{--progress:0;position:relative;display:grid;place-items:center;height:155px;margin:18px 0;color:#edbd70;overflow:hidden;border:1px solid #77572f70;border-radius:6px;background-image:linear-gradient(#c99d5620 1px,transparent 1px),linear-gradient(90deg,#c99d5610 1px,transparent 1px);background-size:22px 22px;background-color:#0d1518}
.activation-stage:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 35%,#f2c77b0c 50%,transparent 65%);animation:scan-pass 6s linear infinite;pointer-events:none}
.activation-stage.completed{color:#87dcb2;border-color:#70b68d;background-color:#10231d}.activation-stage.completed:after{background:linear-gradient(transparent 35%,#80d5a80d 50%,transparent 65%)}
.activation-meter{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;font:12px var(--mono);color:#e6bc7c;letter-spacing:.4px}.activation-meter b{font-size:18px;min-width:48px;text-align:right}.activation-track{width:100%;height:5px;background:#30382e;overflow:hidden;border-radius:5px}.activation-track i{display:block;width:0;height:100%;background:#edbd70;box-shadow:0 0 12px #edbd70;transition:width .8s ease}.activation-stage.completed+.activation-meter{color:#89d9b0}.activation-stage.completed+.activation-meter .activation-track i{background:#89d9b0}
#moduleDialog .action-visual{padding:14px 0;margin:13px 0 17px;gap:12px}#moduleDialog .action-row{font-size:13px;line-height:1.4;color:#b8c9bd}.action-row.processing{color:#f0c485!important}.action-row.processing b{animation:status-breathe 1.5s ease-in-out infinite}.action-row.complete{color:#97d5b4!important}#moduleDialog .action-note{font-size:12px;margin:12px 0 0}
.hero-battery{position:relative;width:214px;height:80px;border:3px solid currentColor;border-radius:9px;padding:7px;box-shadow:0 0 24px #edbd7010}.hero-battery:after{content:'';position:absolute;right:-13px;top:23px;width:8px;height:29px;background:currentColor;border-radius:0 4px 4px 0}.hero-charge{width:calc(8% + var(--progress)*92%);height:100%;background:currentColor;opacity:.65;transition:width .8s ease;border-radius:3px}.hero-battery .bolt{position:absolute;inset:0;display:grid;place-items:center;font-size:54px;text-shadow:0 0 20px #000;color:#f2d9a4}.completed .hero-battery .bolt{color:#d2ffe5}.energy-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.energy-particles i{position:absolute;top:50%;left:-40px;width:35px;height:2px;background:#f0c580;opacity:.3;animation:energy-particle 3s linear infinite}.energy-particles i:nth-child(2){top:30%;animation-delay:1s}.energy-particles i:nth-child(3){top:72%;animation-delay:2s}.running .energy-particles i{opacity:.9;animation-duration:1.2s}.completed .energy-particles i{background:#8fd9b0}
.hero-doors{width:198px;height:116px;border:2px solid currentColor;position:relative;overflow:hidden;background:#090f10;box-shadow:0 0 20px #edbd7010}.door{position:absolute;top:0;height:100%;width:50%;background:repeating-linear-gradient(0deg,#253135 0,#253135 16px,#435047 17px,#253135 18px);border:1px solid #758675;transition:transform .9s ease}.door.left{left:0;transform:translateX(calc(-75% + var(--progress)*75%))}.door.right{right:0;transform:translateX(calc(75% - var(--progress)*75%))}.door-lock{position:absolute;top:50%;left:50%;width:38px;height:38px;transform:translate(-50%,-50%);display:grid;place-items:center;border:2px solid currentColor;border-radius:50%;background:#182323;color:currentColor;font-size:21px;opacity:var(--progress);transition:opacity .8s}
.hero-wave{position:relative;width:140px;height:140px;display:grid;place-items:center}.hero-wave:before{content:'◎';position:relative;font-size:78px;z-index:1;line-height:1}.hero-wave i{position:absolute;inset:25px;border:2px solid currentColor;border-radius:50%;animation:repulse-wave 4s ease-out infinite;opacity:0}.hero-wave i:nth-child(2){animation-delay:1.3s}.hero-wave i:nth-child(3){animation-delay:2.6s}.running .hero-wave i{animation-duration:2s}.completed .hero-wave i{animation-duration:3s}
@keyframes status-breathe{0%,100%{opacity:1}50%{opacity:.58}}@keyframes energy-travel{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}@keyframes energy-particle{to{left:110%}}@keyframes scan-pass{from{transform:translateY(-100%)}to{transform:translateY(100%)}}@keyframes repulse-wave{0%{transform:scale(.5);opacity:.65}100%{transform:scale(2.2);opacity:0}}
@media(max-height:780px){#moduleDialog{padding:22px;width:640px}#moduleDialog .modal-top{margin-bottom:12px}#moduleDialog h2{font-size:28px}#moduleDialog p{font-size:14px;margin:10px 0 14px}.activation-stage{height:123px;margin:13px 0}#moduleDialog .action-visual{padding:11px 0;margin:11px 0;gap:9px}#moduleDialog .action-note{font-size:11px;margin:8px 0 0}#moduleDialog .button{min-height:46px;font-size:15px}.hero-battery{height:65px;width:190px}.hero-battery:after{top:18px;height:23px}.hero-doors{height:98px;width:175px}.hero-wave{height:115px;width:115px}}
@media(max-width:540px){#moduleDialog{padding:20px}#moduleDialog h2{font-size:25px}#moduleDialog .action-row{font-size:11px}.activation-meter{font-size:10px}#moduleDialog .eyebrow{font-size:10px}.activation-stage{height:130px}}
@media(prefers-reduced-motion:reduce){.activation-stage *,.activation-stage:after,.power-panel:after,.status-dot,.system-active #batteryFill{animation:none!important;transition:none!important}.hero-wave i{opacity:.3;transform:scale(1.1)}.hero-wave i:nth-child(2){transform:scale(1.5)}.hero-wave i:nth-child(3){transform:scale(1.9)}}

/* Couleurs plus franches et batterie de secours toujours vivante. */
:root{--amber:#ffc05b;--green:#52e9a2;--red:#ff8773}
.panel.system-active{border-color:#4cda9699;border-top-color:#64ffb4;box-shadow:inset 0 0 34px #38ed8e0b,0 0 18px #38ed8e08}
.system-active .card-number,.system-active .power-number,.system-active .line-status,.system-active .dependency,.system-active .power-title,.system-active .battery-value strong,.system-active .battery-value span{color:#79ffbb}
.system-active .button:disabled{color:#b8ffd7;border-color:#49c987;background:#165133}
.system-active .battery-outline{border-color:#52e9a2;box-shadow:0 0 20px #36eb9140;animation:battery-glow 4s ease-in-out infinite}
.system-active .battery-outline:after{background:#52e9a2}.system-active #batteryFill{opacity:.95;animation:none}
.system-active .battery-lines{background:repeating-linear-gradient(110deg,transparent 0,transparent 13px,#d4ffe97a 18px,transparent 24px,transparent 42px);background-size:210% 100%;opacity:.45;animation:battery-flow 4s linear infinite}
.system-active .battery-value{text-shadow:0 1px 5px #042d15,0 0 13px #073e20}
.panel.system-ready{border-top-color:#ffd06d;border-color:#df994ec0}.system-ready .card-number,.system-ready .power-number{color:#ffca74}
.panel.system-offline{border-color:#be6556a0;border-top-color:#ed806c}.system-offline .line-status{color:#ffac99}
.secured .orbit{border-color:#50bc89}.secured .core{color:#66ffae}.secured .marker{background:#66ffae;box-shadow:0 0 18px #4fff9e90}
.log-list{font-size:14px;line-height:1.7}.log-row{gap:17px;padding:6px 0}.log-row time{font-size:13px;color:#a7c0b0}.log-row span{color:#c8d6cc}.log-row.success span{color:#75f6ad}.log-row.warning span{color:#ffd081}
@media(min-width:1000px) and (min-height:620px){
 .left-column{grid-template-rows:minmax(0,1fr) clamp(96px,14vh,138px)}
 .journal .panel-heading{width:145px;padding:14px 12px}.journal h2{font-size:14px;line-height:1.45}
 .log-list{font-size:13px;line-height:1.5;padding:8px 13px}.log-row{padding:6px 0;gap:14px}.log-row time{font-size:12px}
}
@media(min-width:1000px) and (min-height:620px) and (max-height:680px){
 .left-column{grid-template-rows:minmax(0,1fr) 92px}
 .subsystem{padding:11px}.subsystem h2{margin-top:13px}.line-status{padding:7px 0}.subsystem .button{margin-top:8px}.dependency{margin-top:6px}
 .power-panel .panel-heading{padding:10px 11px}.power-number{margin-bottom:7px}.power-footer{padding:8px 10px}
 .journal .panel-heading{width:125px;padding:12px 10px}.journal h2{font-size:13px}.log-list{font-size:13px}
}
@keyframes battery-flow{from{background-position:210% 0}to{background-position:0 0}}
@keyframes battery-glow{0%,100%{box-shadow:0 0 12px #36eb9120}50%{box-shadow:0 0 25px #36eb9160}}
@media(prefers-reduced-motion:reduce){.system-active .battery-outline,.system-active .battery-lines{animation:none!important}}

/* Quatre colonnes de largeur strictement identique sur le poste PC. */
@media(min-width:1000px) and (min-height:620px){
 .dashboard{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
 .left-column{grid-column:1 / span 3;column-gap:14px}
 .right-column{grid-column:4}
 .perimeter-panel .panel-heading{padding:14px 12px}.perimeter-panel h2{font-size:17px}
 .perimeter-panel .panel-heading .micro{display:none}
 .perimeter-visual{width:calc(100% - 12px);height:auto;min-height:120px;max-height:none;flex:1;margin:6px auto;container-type:size}
 .perimeter-caption{padding:4px 12px 12px}
 .checklist div{gap:7px}.checklist b{font-size:10px}
}
@supports(width:1cqmin){
 @media(min-width:1000px) and (min-height:620px){
  .perimeter-visual .orbit1{width:29cqmin;height:29cqmin}
  .perimeter-visual .orbit2{width:59cqmin;height:59cqmin}
  .perimeter-visual .orbit3{width:90cqmin;height:90cqmin}
  .perimeter-visual .sweep{width:90cqmin;height:90cqmin;margin:-45cqmin 0 0 -45cqmin}
  .perimeter-visual .core{width:22cqmin;height:22cqmin}
  .perimeter-visual .core svg{width:15cqmin;height:18cqmin}
  .perimeter-visual .m1{top:calc(50% - 45cqmin - 3px);left:calc(50% - 3px)}
  .perimeter-visual .m2{top:calc(50% + 45cqmin - 3px);left:calc(50% - 3px)}
  .perimeter-visual .m3{left:calc(50% - 45cqmin - 3px);top:calc(50% - 3px)}
  .perimeter-visual .m4{left:calc(50% + 45cqmin - 3px);top:calc(50% - 3px)}
 }
}
.panel.system-active.battery-low{border-color:#efad57;border-top-color:#ffd073}
.system-active.battery-low .power-title,.system-active.battery-low .battery-value strong,.system-active.battery-low .battery-value span{color:#ffcf74}
.system-active.battery-low .battery-outline{border-color:#ffc05b}.system-active.battery-low .battery-outline:after{background:#ffc05b}.system-active.battery-low .battery-lines{background-image:repeating-linear-gradient(110deg,transparent 0,transparent 13px,#ffe4a97a 18px,transparent 24px,transparent 42px)}

/* Titres homogènes, statuts système agrandis. */
.power-title,.subsystem h2{font-family:Arial,Helvetica,sans-serif;font-weight:500;font-size:22px;line-height:1.25;letter-spacing:-.4px}
.checklist div{font-size:14px;line-height:1.4}.checklist b{font-size:12px;font-weight:600}.checklist div>span{font-size:13px}
@media(min-width:1000px) and (min-height:620px){
 .power-title,.subsystem h2{font-family:Arial,Helvetica,sans-serif;font-size:22px;line-height:1.25;font-weight:500;letter-spacing:-.4px}
 .checklist{padding:4px 12px}.checklist div{display:grid;grid-template-columns:21px minmax(0,1fr);gap:3px 5px;font-size:14px;padding:9px 0;line-height:1.3}
 .checklist div>span{grid-column:1;grid-row:1;font-size:12px}
 .checklist b{grid-column:2;grid-row:2;margin-left:0;font-size:12px;letter-spacing:.3px}
}

/* Illustrations permanentes des modules, même après fermeture de la fenêtre. */
.module-idle-visual{--progress:0;display:grid;place-items:center;position:relative;overflow:hidden;height:108px;margin:12px 0;color:#b78159;flex:1;min-height:64px;max-height:160px;border:1px solid #a66c3838;border-radius:5px;background:radial-gradient(ellipse,#b6773210,transparent 72%)}
.module-idle-visual .hero-doors{width:112px;height:68px;box-shadow:none}
.module-idle-visual .door-lock{width:27px;height:27px;font-size:16px}
.module-idle-visual .hero-wave{width:84px;height:84px}
.module-idle-visual .hero-wave:before{font-size:48px}
.module-idle-visual .hero-wave i{inset:15px;animation:none;opacity:.2}
.system-active .module-idle-visual{--progress:1;color:#69ffb3;border-color:#52e9a260;background:radial-gradient(ellipse,#32f08a18,transparent 75%)}
.system-active .hero-doors{border-color:#69ffb3;box-shadow:0 0 20px #36eb912d}
.system-active .hero-doors .door{border-color:#43bc84;background:repeating-linear-gradient(0deg,#173e2e 0,#173e2e 13px,#408864 14px,#173e2e 15px)}
.system-active .hero-doors:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent,#92ffd95c,transparent);animation:door-scan 3s linear infinite;pointer-events:none}
.system-active .door-lock{z-index:1;box-shadow:0 0 12px #52e9a255;animation:status-breathe 2.8s ease-in-out infinite}
.system-active .hero-wave i{animation:repulse-wave 3.6s ease-out infinite;opacity:0}
.system-active .hero-wave i:nth-child(2){animation-delay:1.2s}.system-active .hero-wave i:nth-child(3){animation-delay:2.4s}
.power-footer{flex-wrap:wrap}.power-footer #powerDep{display:block;flex-basis:100%;font-size:12px;line-height:1.35;margin:8px 0 0;color:#79ffbb}
@keyframes door-scan{from{transform:translateY(-100%)}to{transform:translateY(100%)}}
@media(min-width:1000px) and (min-height:620px){.module-idle-visual{height:auto;margin:10px 0;min-height:55px}.subsystem .line-status{margin-top:auto}.power-footer #powerDep{font-size:12px}}
@media(prefers-reduced-motion:reduce){.system-active .hero-doors:after,.system-active .door-lock,.system-active .hero-wave i{animation:none!important}.system-active .hero-wave i{opacity:.3}.system-active .hero-wave i:nth-child(2){transform:scale(1.5)}.system-active .hero-wave i:nth-child(3){transform:scale(2)}}

/* Alerte de réserve critique : clignotement lent, chiffres toujours lisibles. */
#powerPanel.battery-critical{border-color:var(--red);border-top-color:var(--red)}
#powerPanel.battery-critical .battery-outline{border-color:var(--red);animation:battery-alert 1.5s ease-in-out infinite}
#powerPanel.battery-critical .battery-outline:after{background:var(--red)}
#powerPanel.battery-critical .battery-value strong,#powerPanel.battery-critical .battery-value span{color:var(--red)}
#powerPanel.battery-critical #batteryFill{background:var(--red)!important;min-width:3px}
#powerPanel.battery-critical .battery-lines{background-image:none;animation:none}
#powerPanel.battery-critical #batteryTime{color:var(--red)!important}
@keyframes battery-alert{0%,100%{opacity:1;box-shadow:0 0 24px #ff534d99;background-color:#ff534d18}50%{opacity:.55;box-shadow:0 0 3px #ff534d22;background-color:transparent}}
#powerPanel.alert-paused .battery-outline{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){#powerPanel.battery-critical .battery-outline{animation:none;box-shadow:0 0 16px #ff534d66}}
