/**
 * ============================================================
 *  infraops-tokens.css — GENERADO AUTOMÁTICAMENTE (Style Dictionary)
 *  Fuente: infraops-tokens.json (namespace infraops.*) — vive de momento en el VPS:
 *  /home/paco/.openclaw/workspace/disenor/design-system/tokens/infraops-tokens.json
 *  (pendiente de mover al repo cuando el design-system tenga repo propio).
 *  Generado: 2026-07-24 · build one-off (wiring sd.config.js pendiente en el DS)
 *  NO editar a mano. Dark es el tema primario: overrides en [data-theme="dark"].
 *  :root = tema light (derivado de los semánticos del core, ver infraops-tokens.json).
 * ============================================================
 */

:root {
  /* Primitivos InfraOps (independientes de tema) */
  --infraops-accent-300: #7fb3fa;
  --infraops-accent-400: #5e9cf8;
  --infraops-accent-500: #4f8cf7;
  --infraops-accent-600: #3b76e8;
  --infraops-accent-700: #2f5fc4;
  --infraops-accent-800: #26509e;
  --infraops-surface-bg: #0b1220;
  --infraops-surface-base: #111827;
  --infraops-surface-raised: #1a2436;
  --infraops-surface-overlay: #223050;
  --infraops-border-base: #263449;
  --infraops-border-strong: #5e789d;
  --infraops-text-default: #e8eef7;
  --infraops-text-muted: #a8b4c8;
  --infraops-text-subtle: #7a8ba3;
  --infraops-status-ok: #0add8b;
  --infraops-status-warn: #f5b83d;
  --infraops-status-down: #f2617a;
  --infraops-status-down-solid: #c93356;
  --infraops-status-down-solid-hover: #b8264a;
  --infraops-status-idle: #7683a0;
  --infraops-status-info: #5e9cf8;

  /* Tipografía y radios (heredados del core) */
  --infraops-font-display: 'Montserrat', system-ui, sans-serif;
  --infraops-font-mono: 'JetBrains Mono', ui-monospace, monospace;
  --infraops-radius-panel: 0.5rem;

  /* Semánticos — tema light (derivado) */
  --infraops-bg: var(--c-slate-50);
  --infraops-surface: var(--c-slate-50);
  --infraops-surface-raised: #ffffff;
  --infraops-surface-overlay: #ffffff; /* derivado del core (ausente en semantic.light) */
  --infraops-border: var(--c-slate-300);
  --infraops-border-strong: var(--c-slate-700); /* derivado del core (ausente en semantic.light) */
  --infraops-text: var(--c-slate-900);
  --infraops-text-muted: var(--c-slate-550);
  --infraops-text-subtle: var(--c-slate-500); /* derivado del core (ausente en semantic.light) */
  --infraops-link: #3b76e8;
  --infraops-accent: #3b76e8;
  --infraops-accent-hover: var(--c-blue-700); /* derivado del core (ausente en semantic.light) */
  --infraops-accent-solid: #2f5fc4;
  --infraops-accent-solid-hover: #26509e;
  --infraops-on-accent-solid: #ffffff;
  --infraops-focus-ring: #3b76e8;
  --infraops-status-ok: var(--c-green-700);
  --infraops-status-warn: var(--c-amber-700);
  --infraops-status-down: var(--c-red-600);
  --infraops-status-down-solid: var(--c-red-600);
  --infraops-status-down-solid-hover: #b91c1c;
  --infraops-status-idle: var(--c-slate-550);
  --infraops-status-info: #3b76e8;
}

[data-theme="dark"] {
  /* Semánticos — tema dark (PRIMARIO) */
  --infraops-bg: var(--infraops-surface-bg);
  --infraops-surface: var(--infraops-surface-base);
  --infraops-surface-raised: #1a2436;
  --infraops-surface-overlay: #223050;
  --infraops-border: var(--infraops-border-base);
  --infraops-border-strong: #5e789d;
  --infraops-text: var(--infraops-text-default);
  --infraops-text-muted: #a8b4c8;
  --infraops-text-subtle: #7a8ba3;
  --infraops-link: var(--infraops-accent-300);
  --infraops-accent: var(--infraops-accent-500);
  --infraops-accent-hover: var(--infraops-accent-400);
  --infraops-accent-solid: var(--infraops-accent-700);
  --infraops-accent-solid-hover: var(--infraops-accent-800);
  --infraops-on-accent-solid: #ffffff;
  --infraops-focus-ring: var(--infraops-accent-300);
  --infraops-status-ok: #0add8b;
  --infraops-status-warn: #f5b83d;
  --infraops-status-down: #f2617a;
  --infraops-status-down-solid: #c93356;
  --infraops-status-down-solid-hover: #b8264a;
  --infraops-status-idle: #7683a0;
  --infraops-status-info: #5e9cf8;
}
