
/* ============================================================
   CENTRO DE MANDO DE CONTINGENCIA — Defensas adicionales (nivel 5)
   Estética: sala de guerra cinematográfica. Sin dependencias.
   ============================================================ */
.hidden{display:none!important}

.cmd{position:relative;isolation:isolate;min-height:72vh;padding:30px 32px 36px;border:1px solid rgba(158,255,120,.18);border-radius:14px;overflow:hidden;
 background:
  radial-gradient(1100px 480px at 78% -12%, rgba(140,180,95,.12), transparent 62%),
  radial-gradient(820px 400px at 4% 110%, rgba(255,70,45,.06), transparent 60%),
  linear-gradient(180deg,#0c100a 0%,#090c07 52%,#060804 100%);
 color:#d6e8c8;font-family:'Plus Jakarta Sans',system-ui,sans-serif;
 box-shadow:inset 0 0 110px rgba(0,0,0,.6)}
.cmd *{box-sizing:border-box}
.cmd::before{content:"";position:absolute;inset:0;z-index:-2;pointer-events:none;opacity:.55;
 background:
  repeating-linear-gradient(0deg,rgba(158,255,120,.05) 0 1px,transparent 1px 46px),
  repeating-linear-gradient(90deg,rgba(158,255,120,.05) 0 1px,transparent 1px 46px)}
.cmd::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;mix-blend-mode:multiply;
 background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 2px,transparent 2px 4px)}
.cmd-scan{position:absolute;left:0;right:0;top:-20%;height:120px;z-index:4;pointer-events:none;
 background:linear-gradient(180deg,transparent,rgba(158,255,120,.06),transparent);
 animation:cmdScan 7s linear infinite}
@keyframes cmdScan{0%{transform:translateY(-140px)}100%{transform:translateY(120vh)}}

/* ---------- cabecera ---------- */
.cmd-top{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap;
 padding-bottom:20px;margin-bottom:22px;border-bottom:1px double rgba(158,255,120,.28)}
.cmd-classified{display:inline-block;background:#e8b73a;color:#151106;font:700 10px 'IBM Plex Mono',monospace;
 letter-spacing:.24em;padding:3px 10px 2px;transform:skewX(-8deg);margin-bottom:12px;
 box-shadow:0 0 14px rgba(232,183,58,.35)}
.cmd-title{margin:0;font-weight:800;font-size:clamp(20px,2.4vw,30px);letter-spacing:.2em;color:#f0f8e8;
 text-shadow:0 0 22px rgba(158,255,120,.28)}
.cmd-sub{margin:8px 0 0;max-width:640px;font-size:12.5px;line-height:1.6;color:#9db78d}
.cmd-top-right{display:flex;align-items:center;gap:20px;flex-wrap:wrap}

.cmd-radar{position:relative;width:78px;height:78px;border-radius:50%;flex:0 0 auto;
 border:1px solid rgba(158,255,120,.35);
 background:radial-gradient(circle,rgba(158,255,120,.08),transparent 70%)}
.cmd-radar::before,.cmd-radar::after{content:"";position:absolute;inset:16px;border:1px solid rgba(158,255,120,.22);border-radius:50%}
.cmd-radar::after{inset:32px}
.cmd-radar i{position:absolute;inset:0;border-radius:50%;
 background:conic-gradient(from 0deg,rgba(158,255,120,.55),transparent 68%);
 animation:cmdRadar 3.4s linear infinite}
@keyframes cmdRadar{to{transform:rotate(360deg)}}
.cmd-radar b,.cmd-radar u{display:none}

.cmd-defcon{display:flex;align-items:center;gap:14px;padding:10px 16px;border:1px solid;border-radius:10px;background:rgba(0,0,0,.35)}
.cmd-defcon-n{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;
 border:3px double currentColor;font:800 30px 'IBM Plex Mono',monospace}
.cmd-defcon i small,.cmd-defcon small{display:block;font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.3em;opacity:.75}
.cmd-defcon b{display:block;font:800 15px 'Plus Jakarta Sans',sans-serif;letter-spacing:.14em}
.cmd-d5{color:#5aa9ff;border-color:rgba(90,169,255,.5)}
.cmd-d4{color:#59d867;border-color:rgba(89,216,103,.5)}
.cmd-d3{color:#ffd23f;border-color:rgba(255,210,63,.5)}
.cmd-d2{color:#ff9330;border-color:rgba(255,147,48,.55)}
.cmd-d1{color:#ff3b2f;border-color:rgba(255,59,47,.6);animation:cmdAlarm 1s infinite}
@keyframes cmdAlarm{50%{box-shadow:0 0 26px rgba(255,59,47,.4)}}

.cmd-clock{display:flex;align-items:center;gap:8px;font:600 14px 'IBM Plex Mono',monospace;color:#cfe3c4;
 padding:8px 12px;border:1px solid rgba(158,255,120,.25);border-radius:8px;background:rgba(0,0,0,.4)}
.cmd-clock small{font-size:9px;letter-spacing:.22em;color:#8aa67a}
.cmd-rec{width:8px;height:8px;border-radius:50%;background:#ff4530;box-shadow:0 0 8px #ff4530;animation:cmdRec 1.2s infinite}
@keyframes cmdRec{50%{opacity:.25}}

/* ---------- banner ---------- */
.cmd-banner{margin:0 0 18px;padding:11px 16px;border:1px solid rgba(255,80,60,.55);border-radius:8px;
 background:rgba(90,12,8,.5);color:#ffb3a8;font:600 12.5px 'IBM Plex Mono',monospace;letter-spacing:.06em;
 animation:cmdAlarm 1.4s infinite}

/* ---------- autorización ---------- */
.cmd-term{background:#040703;border:1px solid rgba(158,255,120,.3);border-radius:10px;min-height:120px;
 padding:16px 18px;margin-bottom:16px;font:500 12.5px/1.9 'IBM Plex Mono',monospace;color:#9dff6e;
 box-shadow:inset 0 0 40px rgba(0,0,0,.8)}
.cmd-term div::before{content:"> ";color:#5c8a4f}
.cmd-armednow{font:600 12px 'IBM Plex Mono',monospace;letter-spacing:.08em;color:#e8b73a;margin-bottom:16px}
.cmd-authrow{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.cmd-field{display:flex;flex-direction:column;gap:7px;flex:1;min-width:260px}
.cmd-field>span{font:600 10px 'IBM Plex Mono',monospace;letter-spacing:.26em;color:#8aa67a}
.cmd-field input{background:#070a05;border:1px solid rgba(158,255,120,.3);border-radius:8px;color:#e6f5da;
 font:500 14px 'IBM Plex Mono',monospace;padding:12px 14px;outline:none;width:100%;transition:.2s}
.cmd-field input:focus{border-color:#9dff6e;box-shadow:0 0 0 3px rgba(158,255,120,.14)}
.cmd-err{margin-top:14px;padding:10px 14px;border:1px solid rgba(255,80,60,.5);border-radius:8px;
 background:rgba(90,12,8,.45);color:#ffb3a8;font:600 12px 'IBM Plex Mono',monospace}

/* ---------- botones ---------- */
.cmd-btn{appearance:none;cursor:pointer;border:1px solid rgba(158,255,120,.4);border-radius:8px;
 background:linear-gradient(180deg,#17210f,#0d130a);color:#cfe3c4;
 font:700 12px 'Plus Jakarta Sans',sans-serif;letter-spacing:.18em;text-transform:uppercase;
 padding:12px 22px;transition:.18s;clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.cmd-btn:hover:not(:disabled){border-color:#9dff6e;color:#fff;box-shadow:0 0 18px rgba(158,255,120,.25)}
.cmd-btn:disabled{opacity:.45;cursor:not-allowed}
.cmd-btn-primary{background:linear-gradient(180deg,#2a3d14,#1a260c);border-color:rgba(158,255,120,.6);color:#eaffdd}
.cmd-btn-ghost{background:transparent}

/* ---------- sesión ---------- */
.cmd-session{display:flex;align-items:center;gap:22px;flex-wrap:wrap;padding:16px 18px;margin-bottom:14px;
 border:1px solid rgba(158,255,120,.22);border-radius:10px;background:rgba(10,14,7,.7)}
.cmd-ringwrap{position:relative;width:60px;height:60px;flex:0 0 auto}
.cmd-ring{position:absolute;inset:0;transform:rotate(-90deg)}
.cmd-ring circle{fill:none;stroke-width:3}
.cmd-ring .bg{stroke:rgba(158,255,120,.15)}
.cmd-ring .fg{stroke:#9dff6e;stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:0;transition:stroke-dashoffset .25s linear}
.cmd-count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
 font:700 12px 'IBM Plex Mono',monospace;color:#eaffdd}
.cmd-session-i{min-width:170px}
.cmd-codelabel{font:600 9.5px 'IBM Plex Mono',monospace;letter-spacing:.22em;color:#8aa67a;margin-bottom:5px}
.cmd-session-s{font:800 16px 'Plus Jakarta Sans',sans-serif;letter-spacing:.16em;color:#9dff6e}
.cmd-reason{max-width:420px}

/* ---------- secciones ---------- */
.cmd-sect{display:flex;align-items:center;gap:14px;margin:26px 0 14px;font:800 12px 'Plus Jakarta Sans',sans-serif;
 letter-spacing:.3em;color:#e8b73a}
.cmd-sect::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(232,183,58,.5),transparent)}

/* ---------- interruptores ---------- */
.cmd-swgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.cmd-sw{position:relative;padding:18px;border:1px solid rgba(158,255,120,.2);border-radius:12px;
 background:linear-gradient(180deg,#12170c,#0b0f08);box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 8px 24px rgba(0,0,0,.35)}
.cmd-sw::before,.cmd-sw::after{content:"";position:absolute;width:14px;height:14px;pointer-events:none}
.cmd-sw::before{top:-1px;left:-1px;border-top:2px solid rgba(232,183,58,.7);border-left:2px solid rgba(232,183,58,.7)}
.cmd-sw::after{bottom:-1px;right:-1px;border-bottom:2px solid rgba(232,183,58,.7);border-right:2px solid rgba(232,183,58,.7)}
.cmd-sw-head{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.cmd-sw-num{font:700 11px 'IBM Plex Mono',monospace;color:#5c8a4f;letter-spacing:.2em}
.cmd-sw-led{width:9px;height:9px;border-radius:50%;background:#33402c;box-shadow:inset 0 0 4px rgba(0,0,0,.6);transition:.3s}
.cmd-sw.on .cmd-sw-led{background:#ff4530;box-shadow:0 0 12px #ff4530;animation:cmdRec 1s infinite}
.cmd-sw-state{margin-left:auto;font:700 10px 'IBM Plex Mono',monospace;letter-spacing:.18em;color:#8aa67a}
.cmd-sw.on .cmd-sw-state{color:#ff6a5a}
.cmd-sw h4{margin:0 0 8px;font:800 14px 'Plus Jakarta Sans',sans-serif;letter-spacing:.12em;color:#f0f8e8}
.cmd-sw p{margin:0 0 8px;font-size:12px;line-height:1.6;color:#9db78d}
.cmd-sw-cost{font:500 11px 'IBM Plex Mono',monospace;color:#c9a54a}
.cmd-sw-guard{position:relative;height:104px;margin-top:14px;perspective:700px}

.cmd-sw-cover{position:absolute;inset:0;z-index:3;cursor:pointer;border:1px solid rgba(158,255,120,.3);border-radius:9px;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
 background:linear-gradient(180deg,#232b18 0%,#141a0d 55%,#0d1108 100%);
 transform-origin:50% 0;transition:transform .5s cubic-bezier(.6,-.2,.3,1.3),opacity .3s;
 box-shadow:0 4px 10px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.06)}
.cmd-sw-cover::before{content:"";position:absolute;top:6px;left:10px;right:10px;height:3px;border-radius:2px;
 background:repeating-linear-gradient(90deg,rgba(232,183,58,.7) 0 8px,transparent 8px 14px)}
.cmd-sw-cover b{font:800 12px 'Plus Jakarta Sans',sans-serif;letter-spacing:.22em;color:#d6e8c8}
.cmd-sw-cover small{font:600 9px 'IBM Plex Mono',monospace;letter-spacing:.2em;color:#8aa67a}
.cmd-sw-cover:hover{border-color:#9dff6e}
.cmd-sw.open .cmd-sw-cover{transform:rotateX(-118deg);opacity:.96;box-shadow:none}

.cmd-sw-toggle{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:16px;
 border:1px dashed rgba(158,255,120,.25);border-radius:9px;background:rgba(4,7,3,.7)}
.cmd-sw-track{position:relative;width:104px;height:34px;border-radius:17px;cursor:pointer;
 background:#050803;border:1px solid rgba(158,255,120,.35);box-shadow:inset 0 2px 8px rgba(0,0,0,.8);transition:.2s}
.cmd-sw-track:focus-visible{outline:2px solid #9dff6e;outline-offset:2px}
.cmd-sw-thumb{position:absolute;top:3px;left:3px;width:46px;height:26px;border-radius:13px;
 background:linear-gradient(180deg,#5a6a4a,#39442e);border:1px solid rgba(255,255,255,.15);
 box-shadow:0 2px 6px rgba(0,0,0,.6);transition:transform .3s cubic-bezier(.5,0,.2,1.4),background .3s}
.cmd-sw.on .cmd-sw-thumb{transform:translateX(50px);background:linear-gradient(180deg,#ff6a55,#a92315);border-color:rgba(255,120,100,.6)}
.cmd-sw.busy .cmd-sw-thumb{animation:cmdThrow .5s infinite}
@keyframes cmdThrow{0%{transform:translateX(0)}50%{transform:translateX(50px)}100%{transform:translateX(0)}}
.cmd-sw.on.busy .cmd-sw-thumb{animation-name:cmdThrowOn}
@keyframes cmdThrowOn{0%{transform:translateX(50px)}50%{transform:translateX(0)}100%{transform:translateX(50px)}}
.cmd-sw-tlabels{display:flex;flex-direction:column;gap:6px;font:700 9px 'IBM Plex Mono',monospace;letter-spacing:.18em;color:#5c8a4f}
.cmd-sw.on .cmd-sw-tlabels span:last-child{color:#ff6a5a}
.cmd-sw:not(.on) .cmd-sw-tlabels span:first-child{color:#9dff6e}

/* ---------- acciones inmediatas ---------- */
.cmd-actgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.cmd-act{display:flex;align-items:center;gap:20px;padding:18px;border:1px solid rgba(255,90,70,.3);border-radius:12px;
 background:linear-gradient(180deg,#170d0a,#0d0705)}
.cmd-hold{position:relative;width:96px;height:96px;flex:0 0 auto;border-radius:50%;cursor:pointer;
 border:2px solid rgba(255,90,70,.55);background:radial-gradient(circle at 34% 30%,#ff7a5c,#c22a12 62%,#7d1508);
 box-shadow:0 6px 20px rgba(194,42,18,.4),inset 0 -6px 14px rgba(0,0,0,.5);transition:.15s;color:#fff}
.cmd-hold:hover{box-shadow:0 6px 26px rgba(255,80,50,.55),inset 0 -6px 14px rgba(0,0,0,.5)}
.cmd-hold.charging{transform:scale(.96)}
.cmd-hold.busy{opacity:.55;cursor:wait}
.cmd-hold svg{position:absolute;inset:-7px;width:110px;height:110px;transform:rotate(-90deg);pointer-events:none}
.cmd-hold svg circle{fill:none;stroke-width:3}
.cmd-hold .bg{stroke:rgba(255,255,255,.15)}
.cmd-hold .fg{stroke:#ffd9d0;stroke-linecap:round;stroke-dasharray:119.4;stroke-dashoffset:119.4}
.cmd-hold-name{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
 font:800 10px 'Plus Jakarta Sans',sans-serif;letter-spacing:.14em;padding:0 10px}
.cmd-act-info b{display:block;font:800 13px 'Plus Jakarta Sans',sans-serif;letter-spacing:.14em;color:#ffd9d0;margin-bottom:6px}
.cmd-act-info p{margin:0;font-size:12px;line-height:1.6;color:#c49a90}

/* ---------- parte baja ---------- */
.cmd-lower{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:26px}
@media(max-width:900px){.cmd-lower{grid-template-columns:1fr}}
.cmd-panel{padding:18px;border:1px solid rgba(158,255,120,.18);border-radius:12px;background:rgba(8,11,6,.7)}
.cmd-chain{min-height:40px}
.cmd-chain-r{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid rgba(158,255,120,.1);
 font:500 12px 'IBM Plex Mono',monospace;color:#9db78d}
.cmd-chain-r b{color:#e6f5da;text-align:right}
.cmd-chain-r.bad b{color:#ff6a5a}
.cmd-log{max-height:260px;overflow:auto;font:500 11.5px/1.8 'IBM Plex Mono',monospace;color:#9db78d}
.cmd-log div{border-left:2px solid rgba(158,255,120,.35);padding-left:10px;margin-bottom:2px}
.cmd-log div.bad{color:#ff8a7a;border-left-color:#ff4530}

/* ---------- flash ---------- */
.cmd-flash{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;
 background:rgba(3,5,2,.78);backdrop-filter:blur(3px)}
.cmd-flash-in{text-align:center;padding:36px 48px;border:1px solid;border-radius:12px;background:rgba(5,8,3,.92)}
.cmd-flash.red .cmd-flash-in{border-color:rgba(255,60,40,.7);box-shadow:0 0 60px rgba(255,60,40,.35)}
.cmd-flash.green .cmd-flash-in{border-color:rgba(120,255,140,.6);box-shadow:0 0 60px rgba(120,255,140,.3)}
.cmd-flash-k{font:700 10px 'IBM Plex Mono',monospace;letter-spacing:.34em;color:#8aa67a;margin-bottom:10px}
.cmd-flash-t{font:800 30px 'Plus Jakarta Sans',sans-serif;letter-spacing:.18em;color:#fff}
.cmd-flash.red .cmd-flash-t{color:#ff8a7a}
.cmd-flash.green .cmd-flash-t{color:#b6ffc2}
.cmd-flash-s{margin-top:8px;font:500 12.5px 'IBM Plex Mono',monospace;color:#9db78d}

@media(max-width:720px){
 .cmd{padding:20px 16px}
 .cmd-top{flex-direction:column}
 .cmd-authrow{flex-direction:column;align-items:stretch}
}

/* ---------- movimiento reducido ---------- */
@media (prefers-reduced-motion: reduce){
 .cmd-scan,.cmd-radar i,.cmd-rec,.cmd-d1,.cmd-banner,.cmd-sw.on .cmd-sw-led{animation:none}
 .cmd-sw-cover{transition:none}
}
