/* ==================================================================
   TUURT TRADING — tokens compartidos.

   TESIS (cambiada el 2026-08-13, tras comparar tres direcciones).
   Del 3 al 13 de agosto esto fue PAPEL: fondo claro, superficies
   blancas, bordes de un pixel. Se cambio por decision del dueno tras
   ver tres direcciones lado a lado, no porque aquella estuviera mal
   hecha. El tema claro sigue vivo en [data-theme="light"].

   Ahora es SALA DE MAQUINAS: carbon frio, densidad alta, y el dato en
   monoespaciada siempre. Una sola fuente de luz arriba a la izquierda
   — una lampara sobre una mesa de trabajo, no un degradado decorativo.

   El acento de interfaz es AZUL FRIO y no puede ser otro: en los datos
   el ambar y el rojo YA significan "atencion" y "peligro", y un acento
   que colisione con la semantica obliga a leer dos veces.

   Toda cifra lleva `font-variant-numeric: tabular-nums`. Sin eso el 1
   es mas estrecho que el 8 y las columnas de dinero dejan de alinearse:
   el ojo pierde la comparacion vertical, que es para lo que existe la
   tabla.

   Tipografia auto-alojada en public/fonts (ver Console.astro). NO se
   carga de un CDN: la consola que revoca clientes no mete a un tercero
   en su pagina, y una fuente que solo existe en un sistema hace que se
   vea distinta segun quien la abra.

   Los nombres de clase e id son ingles y NO se tocan: panel.js consulta
   28 ids y escribe clases a mano. Renombrar uno rompe produccion, y
   tests/ids_test.ts lo hace fallar antes.
   ================================================================== */

:root{
  /* ---- SALA DE MAQUINAS (por defecto) ------------------------------ */
  --page:#0b0e13;      --surface:#0f141b;   --surface-2:#131a23;
  --ink:#e4ebf2;        --ink-2:#9fb0c0;     --muted:#63758a;
  --rule:#2a3745;        --rule-soft:#1e2833;
  --sel-bg:rgba(78,168,255,.14);   --sel-ink:#e4ebf2;

  /* Acento de interfaz: azul frio. Papel y Carbon nunca tuvieron uno
     propio -- el foco y los botones usaban --ink a secas, porque la
     tesis de entonces era "el acento es la tinta, no un color" (ver
     TESIS arriba). Direction A SI necesita uno distinto de --ink, asi
     que este token es nuevo en la hoja. */
  --accent:#4ea8ff;

  /* MARCAS DE DATO -- rellenos de grafica, franjas de severidad, fondos
     de pildora. Valores de Carbon SIN TOCAR: son los que paso
     dataviz/scripts/validate_palette.js el 2026-08-03 (comprobado en
     tests/contract_test.ts, "the validated palettes are the ones in
     the file"), y el fondo de Direction A tiene una luminancia casi
     identica a la de Carbon (#0b0e13 aqui, #0d0e11 antes), asi que la
     medicion sigue siendo valida. Re-derivar esta paleta no es parte de
     esta tarea -- antes de tocar un hex aqui, correr el validador otra
     vez. */
  --m-ok:#17917f;  --m-warn:#b58c1c;  --m-bad:#d93a40;  --m-data:#4f80e0;

  /* TINTAS -- color de TEXTO en .pos/.neg/.warn y en el texto de las
     pildoras. Mismo motivo: sin tocar. */
  --i-ok:#4fd1c5;  --i-warn:#e3b341;  --i-bad:#ff7b72;

  --brand:linear-gradient(135deg,#fbbf24,#ff6b7a 55%,#f44e5c);

  /* A diferencia de Carbon (que dejaba --shadow-1 en none), Direction A
     sube la densidad: incluso la elevacion 1 pinta. */
  --shadow-1:0 1px 2px rgba(0,0,0,.4);
  --shadow-2:0 8px 24px rgba(0,0,0,.5);

  --r:8px;  --r-sm:5px;
  --rail-w:212px;

  --mono:'IBM Plex Mono',ui-monospace,monospace;
  --text:'IBM Plex Sans',system-ui,sans-serif;
}

/* ---- PAPEL (tema alterno, boton "Tema") ---------------------------
   Del 3 al 13 de agosto de 2026 fue el :root por defecto; ver TESIS
   arriba. Valores sin tocar desde entonces.

   VALIDADAS 2026-08-03 con dataviz/scripts/validate_palette.js
   --mode light --pairs all: 5 de 5 comprobaciones.
   Peor par: ambar<->teal deltaE 11.9 (protan), 18.3 en vision normal.

   ok y warn son LOS MISMOS que en el tema oscuro; solo cambian bad y
   data, que son justo los dos que necesitan mas oscuridad para
   despegarse del blanco. Antes de tocar un hex, correr el validador
   otra vez. */
:root[data-theme="light"]{
  --page:#f6f7f9;      --surface:#ffffff;   --surface-2:#fafbfc;
  --ink:#0f1115;       --ink-2:#333a45;     --muted:#6b7280;
  --rule:#e6e8ec;      --rule-soft:#f0f2f5;
  --sel-bg:#eef0f4;    --sel-ink:#0f1115;

  --m-ok:#17917f;  --m-warn:#b58c1c;  --m-bad:#a01722;  --m-data:#2f5fbf;

  /* Sobre blanco las marcas dan 3.89:1 (ok) y 3.12:1 (warn) como texto,
     por debajo del 4.5:1 exigible. Estas dan 5.97 / 5.57 / 7.42 contra
     --page, que es el caso mas exigente.

     MEDIDO Y ACEPTADO: entre si, estas tres NO pasan separacion CVD
     (bad<->warn deltaE 4.4 deutan) y no se puede arreglar: la palanca
     es la luminancia y ya esta fijada por el contraste minimo. En Papel
     el TEXTO es el canal -- la pildora lleva su palabra, la cifra lleva
     su signo -- y la tinta es redundancia. */
  --i-ok:#0f6b5d;  --i-warn:#7d5f0c;  --i-bad:#a01722;

  --shadow-1:0 1px 2px rgba(16,24,40,.05);
  --shadow-2:0 4px 12px rgba(16,24,40,.07);
}

/* :root[data-theme="dark"] -- vacio a proposito. Direction A YA es el
   :root por defecto, asi que elegir "dark" a mano no tiene nada que
   sobreescribir. El selector se conserva sin contenido (no se borra)
   porque tests/contract_test.ts lo localiza por nombre para comprobar
   que ningun tema declara un token que el otro no tiene. */
:root[data-theme="dark"]{
}

/* ---- base compartida por TODA la plataforma ----------------------
   Deliberadamente minima: tokens, nunca componentes. Las paginas del
   soak tienen su propia marcacion y solo necesitan el vocabulario --
   meterles `table{min-width:1060px}` empujo su columna de valores fuera
   de la vista, que es el fallo que partio esta hoja en dos. */
*{box-sizing:border-box}
:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ---- COMPAT: solo para compare-panel/{cerberus,compare,oracle}.html --
   Borrar cuando esas tres paginas migren a los tokens de arriba.

   Son DIEZ, no seis: ademas de sus alias propios, esas paginas consumen
   --bg, --dim y --amber DIRECTAMENTE del :root de la consola, porque el
   fichero original los daba por compartidos. Quitar cualquiera de los
   diez no da error: da TEXTO INVISIBLE.

   Los de estado apuntan a tintas y no a marcas: esas paginas los usan
   como color de TEXTO en .pos/.neg/.warn.

   Valores LITERALES y no var(): esas paginas siguen viviendo en oscuro
   hasta que se migren, y no pueden seguir al tema de la consola. */
:root{
  --bg:#0b0a0c;     --card:#131215;   --txt:#f0ebe4;
  --line:#2b272e;   --dim:#8f8792;    --amber:#ffb020;
  --green:#4fd1c5;  --red:#ff7b72;    --blue:#4f80e0;
  --violet:#ffb020;                /* chip de rango activo */
}
