/* ── ui/theme.css ──────────────────────────────────────────────────────────
   Tokens de tema compartidos por ui/index.html, ui/automation.html y
   ui/live.html. Único lugar del repo con hex/rgba de UI (plan:
   docs/plans/ops-dashboard-light-mode.md, ticket #855).

   :root            = DARK (default, fail-safe si no corre el boot script)
   :root[data-theme="light"] = LIGHT (override, opt-in)

   Los 28 tokens legacy se conservan tal cual (D4) — no se renombran.
   Capa de canal `-rgb` para las llamadas rgba(). Alias semánticos nuevos
   para código futuro. Tokens de efecto (glow/shadow/grid/vignette) D5.
   ──────────────────────────────────────────────────────────────────────── */

:root {
  color-scheme: dark;

  /* ── Legacy (28) — valores dark, idénticos a los que tenían los 3 HTML ── */
  --bg:#08080a; --bg2:#0d0d10;
  --red:#ff1f3d; --red2:#ff003c; --red-dim:#7a0a18;
  --red-glow:rgba(255,31,61,0.18); --red-glow2:rgba(255,31,61,0.06);
  --green:#00ff88; --green-dim:#0a3d25; --amber:#ffb800;
  --text:#e8e8ec; --text-dim:#8a8a93; --text-faint:#3a3a42;
  --border:#1e1e24; --border-red:#3a0a14;
  --mono:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  --col-width:300px;
  --c-wip:                  #3ad17a;
  --c-backlog:              #6b7280;
  --c-blocked:              #e0c24a;
  --c-todo:                 #4f8fe0;
  --c-to_be_human_reviewed: #ffffff;
  --c-en_qa:                #14b8a6;
  --c-cancelled:            #9ca3af;
  --c-done:                 #5a5a64;
  --c-delegated:            #2ec4b6;
  --c-p0: #ff1f3d;
  --c-p1: #ff8c3a;
  --c-p2: #6b7a99;
  --c-p3: #4d5872;

  /* ── Capa de canal (-rgb) de los legacy, para rgba(var(--x-rgb), a) ── */
  --bg-rgb:8,8,10; --bg2-rgb:13,13,16;
  --red-rgb:255,31,61; --red2-rgb:255,0,60; --red-dim-rgb:122,10,24;
  --green-rgb:0,255,136; --green-dim-rgb:10,61,37; --amber-rgb:255,184,0;
  --text-rgb:232,232,236; --text-dim-rgb:138,138,147; --text-faint-rgb:58,58,66;
  --border-rgb:30,30,36; --border-red-rgb:58,10,20;
  --c-wip-rgb:58,209,122; --c-backlog-rgb:107,114,128; --c-blocked-rgb:224,194,74;
  --c-todo-rgb:79,143,224; --c-to_be_human_reviewed-rgb:255,255,255; --c-en_qa-rgb:20,184,166;
  --c-cancelled-rgb:156,163,175; --c-done-rgb:90,90,100; --c-delegated-rgb:46,196,182;
  --c-p0-rgb:255,31,61; --c-p1-rgb:255,140,58; --c-p2-rgb:107,122,153; --c-p3-rgb:77,88,114;

  /* ── Tokens nuevos (colores que ya existían como hex/rgba sueltos) ── */
  --c-thread-actor:#3fc8b0;      --c-thread-actor-rgb:63,200,176;
  --role-staff:#c4b5fd;          --role-staff-rgb:167,139,250;
  --role-sr:#fbbf24;             --role-sr-rgb:251,191,36;
  --role-mid:#93c5fd;            --role-mid-rgb:59,130,246;
  --role-jr:#6ee7b7;             --role-jr-rgb:52,211,153;
  --c-worktree:#f59e0b;          --c-worktree-rgb:245,158,11;
  --red-delete:#b0001e;          --red-delete-rgb:180,0,30;
  --red-hover-rgb:255,0,30;
  --c-p1-tint:#ffb87a;
  --border-hover:#2a2a32;
  --c-todo-tint:#7eb3f7;
  /* --c-implementor: acoplado a propósito (ticket #1395) — sirve tanto a
     .dispatch-status.error (ui/live.html:209-214) como a ROLE_COLORS.implementor
     del panel Factory (ui/live.html). Coincidencia de hex documentada, no alias
     accidental: si algún día se separan los significados, dar a uno de los dos
     usos un token propio en vez de reusar este. */
  --c-implementor:#e8b84b;       --c-implementor-rgb:232,184,75;
  --c-analyst:#4b9de8;           --c-analyst-rgb:75,157,232;
  --c-architect:#a97ce8;         --c-architect-rgb:169,124,232;
  --c-tester:#3ad17a;            --c-tester-rgb:58,209,122;
  --c-reviewer:#ff9f43;          --c-reviewer-rgb:255,159,67;
  --bg-input:#0d0d12;
  --c-done-border:#555555;
  --menu-text:#cccccc;
  --popover-tint:#130810;
  --c-to_be_human_reviewed-tint-rgb:184,184,208;
  --c-en_qa-tint-rgb:94,214,200;
  --overlay-rgb:255,255,255;
  --shadow-rgb:0,0,0;
  --panel-rgb:20,20,24;
  --panel-2-rgb:14,14,18;
  --panel-3-rgb:15,15,18;

  /* ── Login screen (marca fija — no sigue el tema, D-decisión implementor) ── */
  --login-bg:#0a0207;
  --login-red:#ff2747;
  --login-red-rgb:255,39,71;
  --login-card-rgb:18,0,8;
  --login-text-rgb:255,255,255;

  /* ── Efecto (D5): glows en dark, sombra neutra en light ── */
  --glow-sm: 0 0 8px rgba(var(--red-rgb),0.25);
  --glow-md: 0 0 24px rgba(var(--red-rgb),0.28);
  --glow-lg: 0 0 48px rgba(var(--red-rgb),0.32);
  --shadow-card: 0 4px 16px rgba(0,0,0,0.4);
  --grid-line: rgba(var(--red-rgb),0.04);
  --vignette: rgba(var(--bg-rgb),0.75);

  /* ── Alias semánticos (D4) — para código nuevo, no reemplazan usos legacy ── */
  --surface-0: var(--bg);
  --surface-1: var(--bg2);
  --surface-2: #151519;
  --ink: var(--text);
  --ink-dim: var(--text-dim);
  --line: var(--border);
  --accent: var(--red);
  --on-accent: #ffffff;

  /* ── Sidebar (D5, #2407) — nombres de @dynamotechtvt/brand
     (packages/brand/css/tokens.css), valores de la paleta actual de
     ops-dynamo. No es una migración a la paleta de marca (navy/púrpura) —
     ver docs/plans/2407-sidebar-filtros-arquitectura.md D5. ── */
  --sidebar-background: var(--bg2);
  --sidebar-foreground: var(--text-dim);
  --sidebar-border: var(--border);
  --sidebar-accent: var(--surface-2);
  --sidebar-ring: var(--red);
  --radius-sm: 3px;
  --radius-md: 6px;

  /* ── Tokens --ops-* (UX 7367 §4.5): la capa semántica de la barra de filtros única y del planner. Valores del
     runbook de marca (submarca ops); mientras no se adopte @dynamotechtvt/brand viven acá. Mismos nombres en claro. ── */
  --ops-font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ops-mono:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  --ops-accent:#ff2747; --ops-accent-rgb:255,39,71;
  --ops-bg:#0a0207; --ops-surface:#14101a; --ops-surface-2:#1c1724;
  --ops-fg:#eceaf0; --ops-dim:#a49fb0; --ops-faint:#6e6879;
  --ops-line:rgba(255,255,255,0.16);
  --ops-role-open:#8a93a3; --ops-role-active:#2979ff; --ops-role-review:#8e6bf0;
  --ops-role-done:#259e87; --ops-role-on_hold:#d99a00; --ops-role-blocked:#e5484d;
  --ops-ctl-h:32px;
}

:root[data-theme="light"] {
  color-scheme: light;

  /* ── Legacy (28) — valores light ── */
  --bg:#f4f5f7; --bg2:#ffffff;
  --red:#d10f2d; --red2:#b0001e; --red-dim:#f7c9d0;
  --red-glow:rgba(0,0,0,0.10); --red-glow2:rgba(0,0,0,0.05);
  --green:#09874a; --green-dim:#d6f5e5; --amber:#a36700;
  --text:#14161a; --text-dim:#5b6472; --text-faint:#888e98;
  --border:#919499; --border-red:#f0c9d0;
  --mono:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  --col-width:300px;
  --c-wip:                  #17864a;
  --c-backlog:              #5b6472;
  --c-blocked:              #957100;
  --c-todo:                 #2563eb;
  --c-to_be_human_reviewed: #111318;
  --c-en_qa:                #0d7d72;
  --c-cancelled:            #6e7681;
  --c-done:                 #6f7680;
  --c-delegated:            #0e8278;
  --c-p0: #d10f2d;
  --c-p1: #b45309;
  --c-p2: #56637d;
  --c-p3: #8a93a5;

  /* ── Capa de canal (-rgb) — light ── */
  --bg-rgb:244,245,247; --bg2-rgb:255,255,255;
  --red-rgb:209,15,45; --red2-rgb:176,0,30; --red-dim-rgb:247,201,208;
  --green-rgb:9,135,74; --green-dim-rgb:214,245,229; --amber-rgb:163,103,0;
  --text-rgb:20,22,26; --text-dim-rgb:91,100,114; --text-faint-rgb:136,142,152;
  --border-rgb:145,148,153; --border-red-rgb:240,201,208;
  --c-wip-rgb:23,134,74; --c-backlog-rgb:91,100,114; --c-blocked-rgb:149,113,0;
  --c-todo-rgb:37,99,235; --c-to_be_human_reviewed-rgb:17,19,24; --c-en_qa-rgb:13,125,114;
  --c-cancelled-rgb:110,118,129; --c-done-rgb:111,118,128; --c-delegated-rgb:14,130,120;
  --c-p0-rgb:209,15,45; --c-p1-rgb:180,83,9; --c-p2-rgb:86,99,125; --c-p3-rgb:138,147,165;

  /* ── Tokens nuevos — light ── */
  --c-thread-actor:#0f766e;      --c-thread-actor-rgb:15,118,110;
  --role-staff:#7c3aed;          --role-staff-rgb:124,58,237;
  --role-sr:#b45309;             --role-sr-rgb:180,83,9;
  --role-mid:#2563eb;            --role-mid-rgb:37,99,235;
  --role-jr:#047857;             --role-jr-rgb:4,120,87;
  --c-worktree:#92400e;          --c-worktree-rgb:146,64,14;
  --red-delete:#8a0018;          --red-delete-rgb:150,0,25;
  --red-hover-rgb:200,0,25;
  --c-p1-tint:#9a3d00;
  --border-hover:#c7ccd4;
  --c-todo-tint:#1d4ed8;
  /* --c-implementor: acoplado a propósito, ver misma nota en el bloque dark. */
  --c-implementor:#92610d;       --c-implementor-rgb:146,97,13;
  --c-analyst:#1d4ed8;           --c-analyst-rgb:29,78,216;
  --c-architect:#6d28d9;         --c-architect-rgb:109,40,217;
  --c-tester:#15803d;            --c-tester-rgb:21,128,61;
  --c-reviewer:#c2410c;          --c-reviewer-rgb:194,65,12;
  --bg-input:#fbfbfc;
  --c-done-border:#b5b9c1;
  --menu-text:#4b5563;
  --popover-tint:#fdf6f7;
  --c-to_be_human_reviewed-tint-rgb:90,90,120;
  --c-en_qa-tint-rgb:13,125,114;
  --overlay-rgb:17,19,24;
  --shadow-rgb:0,0,0;
  --panel-rgb:250,250,251;
  --panel-2-rgb:249,249,250;
  --panel-3-rgb:248,248,250;

  /* ── Login screen — se mantiene fija (marca), no sigue el tema ── */
  --login-bg:#0a0207;
  --login-red:#ff2747;
  --login-red-rgb:255,39,71;
  --login-card-rgb:18,0,8;
  --login-text-rgb:255,255,255;

  /* ── Efecto (D5) — sombra neutra suave en vez de glow rojo ── */
  --glow-sm: 0 1px 2px rgba(0,0,0,.05);
  --glow-md: 0 1px 2px rgba(0,0,0,.06), 0 4px 16px rgba(0,0,0,.08);
  --glow-lg: 0 2px 4px rgba(0,0,0,.07), 0 8px 24px rgba(0,0,0,.10);
  --shadow-card: 0 1px 3px rgba(0,0,0,0.08), 0 1px 2px rgba(0,0,0,0.06);
  --grid-line: rgba(0,0,0,0.035);
  --vignette: rgba(0,0,0,0.04);

  /* ── Alias semánticos — light ── */
  --surface-0: var(--bg);
  --surface-1: var(--bg2);
  --surface-2: #eef0f3;
  --ink: var(--text);
  --ink-dim: var(--text-dim);
  --line: var(--border);
  --accent: var(--red);
  --on-accent: #ffffff;

  /* ── Sidebar (D5, #2407) — ver bloque dark para la nota completa ── */
  --sidebar-background: var(--bg2);
  --sidebar-foreground: var(--text-dim);
  --sidebar-border: var(--border);
  --sidebar-accent: var(--surface-2);
  --sidebar-ring: var(--red);
  --radius-sm: 3px;
  --radius-md: 6px;

  /* ── Tokens --ops-* — ver el bloque dark ── */
  --ops-font:'Montserrat',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --ops-mono:'JetBrains Mono','SF Mono',ui-monospace,Menlo,monospace;
  --ops-accent:#d10f2d; --ops-accent-rgb:209,15,45;
  --ops-bg:#f0f2f5; --ops-surface:#ffffff; --ops-surface-2:#f6f7f9;
  --ops-fg:#16181d; --ops-dim:#5b6472; --ops-faint:#8a93a3;
  --ops-line:rgba(17,19,24,0.18);
  --ops-role-open:#6b7482; --ops-role-active:#1a5fd6; --ops-role-review:#6c3ce1;
  --ops-role-done:#1b7a67; --ops-role-on_hold:#a36700; --ops-role-blocked:#c9363b;
  --ops-ctl-h:32px;
}

/* Foco visible consistente en ambos temas (accesibilidad — no existía antes) */
:focus-visible {
  outline: 2px solid var(--red);
  outline-offset: 2px;
}
