/* ============================================================================
   NEMESIS · tokens.css — sistema de diseño semántico
   Arquitectura de tokens inspirada en OpenTerminalUI (terminal-theme.css):
   ningún componente usa colores ni tamaños literales, todo sale de aquí.
   ========================================================================== */
:root{
  /* --- tipografía ------------------------------------------------------- */
  --nt-font-data:"Share Tech Mono","Fira Code","JetBrains Mono","IBM Plex Mono",ui-monospace,monospace;
  --nt-font-ui:"Orbitron","Inter","Segoe UI",system-ui,sans-serif;

  --nt-type-2xs:10px; --nt-type-xs:11px; --nt-type-sm:12px; --nt-type-md:13px;
  --nt-type-lg:14px;  --nt-type-xl:16px; --nt-type-2xl:18px; --nt-type-3xl:clamp(20px,1.6vw,25px);

  --nt-lh-tight:1.1; --nt-lh-data:1.25; --nt-lh-ui:1.35;
  --nt-ls-tight:-.01em; --nt-ls-normal:.01em; --nt-ls-wide:.08em; --nt-ls-wider:.14em;

  --nt-title-size:var(--nt-type-xs);
  --nt-subtitle-size:var(--nt-type-2xs);
  --nt-cell-size:var(--nt-type-xs);
  --nt-badge-size:var(--nt-type-2xs);
  --nt-metric-size:var(--nt-type-3xl);

  /* --- espacio y radios -------------------------------------------------- */
  --nt-space-1:4px; --nt-space-2:8px; --nt-space-3:12px; --nt-space-4:16px; --nt-space-5:22px;
  --nt-radius-xs:2px; --nt-radius-sm:4px; --nt-radius-md:8px;

  /* --- superficies ------------------------------------------------------- */
  --nt-canvas:#02040a;
  --nt-canvas-2:#050a14;
  --nt-surface-1:#070d18;
  --nt-surface-2:#0b1420;
  --nt-surface-3:#101c2b;
  --nt-overlay:rgba(2,4,10,.86);

  --nt-border-subtle:#122236;
  --nt-border-default:#1b3348;
  --nt-border-strong:#2a4d69;

  /* --- texto ------------------------------------------------------------- */
  --nt-text-primary:#d7e6f2;
  --nt-text-secondary:#9db4c8;
  --nt-text-muted:#5d7a90;
  --nt-text-dim:#3d556b;

  /* --- acentos (neón militar) ------------------------------------------- */
  --nt-cyan:#38f8ff;          /* dato vivo, foco, estructura      */
  --nt-cyan-dim:#0f7c8c;
  --nt-green:#39ff88;         /* positivo / activo / nominal      */
  --nt-green-dim:#128a4a;
  --nt-amber:#ffc247;         /* espera / advertencia             */
  --nt-amber-dim:#8a6415;
  --nt-red:#ff5470;           /* negativo / riesgo / bloqueo      */
  --nt-red-dim:#8c2233;
  --nt-violet:#b388ff;        /* conectoma / estudio              */
  --nt-glow-cyan:rgba(56,248,255,.16);
  --nt-glow-green:rgba(57,255,136,.14);
  --nt-glow-amber:rgba(255,194,71,.14);
  --nt-glow-red:rgba(255,84,112,.14);

  /* --- estado (semántica, no color) ------------------------------------- */
  --nt-state-nominal:var(--nt-green);
  --nt-state-wait:var(--nt-amber);
  --nt-state-active:var(--nt-cyan);
  --nt-state-warn:var(--nt-amber);
  --nt-state-bad:var(--nt-red);
  --nt-state-off:var(--nt-text-dim);

  /* --- chrome ------------------------------------------------------------ */
  --nt-notch:12px;
  --nt-scan:repeating-linear-gradient(0deg,rgba(56,248,255,.035) 0 1px,transparent 1px 3px);
  --nt-grid:linear-gradient(rgba(56,248,255,.045) 1px,transparent 1px),
            linear-gradient(90deg,rgba(56,248,255,.045) 1px,transparent 1px);
  --nt-shadow:0 0 0 1px var(--nt-border-subtle),0 8px 26px rgba(0,0,0,.55);
}

/* ============================================================================
   Reinicio y base
   ========================================================================== */
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--nt-canvas);color:var(--nt-text-primary);
  font-family:var(--nt-font-data);font-size:var(--nt-type-md);line-height:var(--nt-lh-ui);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:var(--nt-grid),radial-gradient(120% 90% at 50% -10%,rgba(56,248,255,.07),transparent 60%);
  background-size:52px 52px,52px 52px,100% 100%;opacity:.5}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:var(--nt-scan);opacity:.5}
a{color:var(--nt-cyan);text-decoration:none}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:rgba(255,255,255,.02)}
::-webkit-scrollbar-thumb{background:var(--nt-border-strong);border-radius:4px}
.mono{font-variant-numeric:tabular-nums;font-family:var(--nt-font-data)}
.pos{color:var(--nt-green)}
.neg{color:var(--nt-red)}
.warnt{color:var(--nt-amber)}
.small{font-size:var(--nt-type-2xs);color:var(--nt-text-muted);line-height:1.45}
