/* Tron Legacy: oscuro (neón cian sobre negro) y claro (hielo con líneas cian). */
:root{
  --bg:#eef7fa;--bg2:#d6eaf1;--panel:#ffffffd9;--line:#0a9bc255;--line2:#0a8fb5;
  --txt:#062633;--mut:#41697a;--cy:#0086ab;--cy2:#00b4de;--or:#d95f00;--ok:#08966a;--err:#d0342a;
  --track:#cde3eb;--grid:#0a9bc226;--tglow:none;--onprim:#ffffff;--shadow:0 8px 28px #0a4a6018;--gl:none;
  color-scheme:light;
}
:root[data-theme=dark]{
  --bg:#03060a;--bg2:#08202c;--panel:#07131cd9;--line:#00e5ff40;--line2:#00e5ff;
  --txt:#d6f6ff;--mut:#7db4c4;--cy:#00e5ff;--cy2:#8ff4ff;--or:#ff8a1f;--ok:#5cffb5;--err:#ff5252;
  --track:#0a2230;--grid:#00e5ff26;--tglow:0 0 10px #00e5ffaa;--onprim:#001820;--shadow:0 0 26px #00e5ff1f;--gl:0 0 14px #00e5ff88;
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme=light]){
    --bg:#03060a;--bg2:#08202c;--panel:#07131cd9;--line:#00e5ff40;--line2:#00e5ff;
    --txt:#d6f6ff;--mut:#7db4c4;--cy:#00e5ff;--cy2:#8ff4ff;--or:#ff8a1f;--ok:#5cffb5;--err:#ff5252;
    --track:#0a2230;--grid:#00e5ff26;--tglow:0 0 10px #00e5ffaa;--onprim:#001820;--shadow:0 0 26px #00e5ff1f;--gl:0 0 14px #00e5ff88;
    color-scheme:dark;
  }
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;background:var(--bg);color:var(--txt);
  font:500 16px/1.5 "Rajdhani","Segoe UI",system-ui,-apple-system,"Noto Sans",sans-serif;
  padding:max(14px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
  overflow-wrap:anywhere}
h1,h2,h3,.orb{font-family:"Orbitron","Rajdhani",system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;margin:0}

/* Fondo: resplandor + suelo de rejilla en perspectiva */
.bg{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;
  background:radial-gradient(ellipse 80% 60% at 50% -10%,var(--bg2),var(--bg) 70%)}
.bg::after{content:"";position:absolute;left:-60%;right:-60%;bottom:-8%;height:62%;
  background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/100% 46px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/62px 100%;
  transform:perspective(400px) rotateX(64deg);transform-origin:50% 100%;
  -webkit-mask-image:linear-gradient(to top,#000 5%,transparent 80%);mask-image:linear-gradient(to top,#000 5%,transparent 80%)}
.bg.anim::after{animation:gm 5s linear infinite}
@keyframes gm{to{background-position:0 46px,0 0}}
@media (prefers-reduced-motion:reduce){.bg.anim::after{animation:none}*{transition:none!important}}

/* Cabecera */
.top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;max-width:1200px;margin:0 auto 18px}
.brand{display:flex;align-items:center;gap:10px;color:var(--cy);text-shadow:var(--gl);font-size:15px}
.brand svg{width:30px;height:30px;filter:drop-shadow(var(--gl))}
.sp{flex:1}
.ctl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
select,input{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line2);border-radius:3px;min-height:42px;padding:0 10px;max-width:100%}
select:focus,input:focus,.btn:focus-visible{outline:2px solid var(--cy);outline-offset:2px}
.btn{font:700 12px "Orbitron","Rajdhani",system-ui,sans-serif;letter-spacing:.09em;text-transform:uppercase;
  color:var(--cy);background:transparent;border:1px solid var(--line2);border-radius:3px;min-height:44px;padding:0 18px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;
  box-shadow:inset 0 0 0 0 var(--cy);transition:box-shadow .25s,background .25s,color .25s,text-shadow .25s;text-align:center}
.btn:hover{background:color-mix(in srgb,var(--cy) 14%,transparent);box-shadow:var(--gl);text-shadow:var(--gl)}
.btn.pri{background:var(--cy);color:var(--onprim);box-shadow:var(--gl);text-shadow:none}
.btn.pri:hover{background:var(--cy2)}
.btn.sm{min-height:38px;padding:0 12px;font-size:11px}
.btn.icon{width:44px;padding:0}
.btn:disabled{opacity:.5;cursor:default}

/* Panel HUD con esquinas */
.hud{position:relative;background-color:var(--panel);border:1px solid var(--line);border-radius:2px;box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  background-image:linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy)),
    linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy)),linear-gradient(var(--cy),var(--cy));
  background-size:16px 2px,2px 16px,16px 2px,2px 16px,16px 2px,2px 16px,16px 2px,2px 16px;
  background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}

.tag{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--mut);border:1px solid var(--line);border-radius:2px;padding:0 8px;line-height:20px;white-space:nowrap}
.tag.host::before{content:"▣ ";color:var(--cy)}
.st-done{color:var(--ok);border-color:var(--ok)}.st-blocked{color:var(--or);border-color:var(--or)}.st-failed{color:var(--err);border-color:var(--err)}.st-running{color:var(--cy);border-color:var(--cy)}

/* Barras */
.bar{margin-bottom:10px}
.lbl{display:flex;justify-content:space-between;gap:10px;font-size:13px;color:var(--mut);margin-bottom:4px;flex-wrap:wrap}
.lbl span:first-child{min-width:0}
.track{position:relative;height:12px;background:var(--track);border:1px solid var(--line);border-radius:2px;overflow:hidden}
.track::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,transparent 0 9px,var(--bg) 9px 10px);opacity:.5}
.fill{height:100%;width:0;background:linear-gradient(90deg,var(--cy),var(--cy2));box-shadow:var(--tglow);transition:width .6s ease,background-color .4s}
.fill[data-st=blocked]{background:var(--or)}.fill[data-st=failed]{background:var(--err)}.fill[data-st=done]{background:var(--ok)}
.sub{background:var(--track);border-inline-start:3px solid var(--cy);padding:7px 10px;font-size:15px;min-height:34px;border-radius:2px}

@media (max-width:560px){
  body{font-size:15px}
  .top .sp{display:none}
  .ctl{width:100%}
  .ctl .btn:not(.icon){flex:1 1 auto}
}
