/* ==========================================================================
   SlimNOC2 — Design tokens
   ========================================================================== */

:root {
  /*
   * SLIMNOC_THEME_DARK_SLIMISP_V1
   * Paleta do tema escuro do SLIM ISP NO AR, convertida dos tokens oklch
   * reais dele:
   *   --background oklch(20% 0 0)      → cinza NEUTRO (sem matiz azul)
   *   --card       oklch(26% 0 0/.92)
   *   --sidebar    oklch(24.5% 0 0/.94) → sidebar um tom ACIMA do fundo
   *   --primary    oklch(56% .19 250)   → #0075dd (branco = 4,57:1)
   *   --border     oklch(100% 0 0/.12)
   *   --muted-foreground oklch(72% 0 0)
   */
  --bg-body: #161616;
  --bg-sidebar: #202020;
  --bg-topbar: #232323;
  --bg-surface: #232323;
  --bg-surface-2: #2b2b2b;
  --bg-surface-3: #2e2e2e;
  --bg-inset: #292929;

  /* Borders */
  --border: #323232;
  --border-soft: #292929;
  --border-strong: #454545;

  /* Text */
  --text: #eeeeee;
  --text-soft: #e0e0e0;
  /* muted 7,3:1 / dim 4,97:1 sobre o fundo (hierarquia por contraste) */
  --text-muted: #a4a4a4;
  --text-dim: #949494;

  /* Brand / accents */
  --primary: #0075dd;
  --primary-hover: #0085ef;
  --primary-press: #0066c2;
  --primary-soft: rgba(0, 117, 221, 0.14);
  --primary-soft-2: rgba(0, 117, 221, 0.24);
  /* Fundo de botão primário = o azul do SLIM ISP (branco sobre ele = 4,57:1) */
  --primary-solid: #0075dd;
  --primary-solid-hover: #006acb;
  /* Texto em azul de marca (6,8:1 sobre a superfície) */
  --primary-text: #58b0ff;
  /* Fundo de botão destrutivo acessível (branco sobre ele = 5,31:1) */
  --danger-solid: #d21f1f;
  --danger-solid-hover: #dc2626;

  /* Texto de status com contraste AA (usado por .text-* e .badge--*) */
  --success-text: #4ade80;
  --warning-text: #fbbf24;
  --danger-text: #f87171;
  --info-text: #7fb2ff;

  /* SLIMNOC_THEME_ACCENTS_V1 — cores de destaque para TEXTO/ícones, com
     variante por tema. Sem isso, valores como o sinal da ONU e vários
     contadores usavam verde/âmbar/vermelho do tema escuro e ficavam
     ilegíveis no tema claro (~2:1 sobre branco). */
  --accent-green: #4ade80;
  --accent-amber: #fbbf24;
  --accent-orange: #fb923c;
  --accent-red: #f87171;
  --accent-blue: #7fb2ff;
  --accent-purple: #a78bfa;
  --accent-cyan: #67e8f9;

  /* Anel de foco de teclado (≥3:1 sobre as superfícies do tema) */
  --focus-ring: #58b0ff;

  --success: #22c55e;
  --success-soft: rgba(34, 197, 94, 0.14);
  --warning: #f5a623;
  --warning-soft: rgba(245, 166, 35, 0.14);
  --danger: #ef4444;
  --danger-soft: rgba(239, 68, 68, 0.14);
  --purple: #8b5cf6;
  --purple-soft: rgba(139, 92, 246, 0.14);
  --cyan: #22d3ee;
  --cyan-soft: rgba(34, 211, 238, 0.14);
  --pink: #ec4899;

  /*
   * SLIMNOC_TOKEN_ALIAS_SURFACE_V1
   * `--surface` era usada em ~10 regras de pages.css (background, fill e
   * base de color-mix) mas NUNCA existiu nos tokens: a declaração era
   * inválida e o fundo/preenchimento era descartado, deixando esses
   * elementos transparentes. Agora aponta para a superfície real.
   */
  --surface: var(--bg-surface);

  /* Effects */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow: 0 6px 20px rgba(0, 0, 0, 0.35);
  --shadow-lg: 0 18px 50px rgba(0, 0, 0, 0.5);
  --ring: 0 0 0 3px rgba(0, 117, 221, 0.25);

  /* Metrics */
  --sidebar-w: 228px;
  --sidebar-w-collapsed: 72px;
  --topbar-h: 68px;
  --footer-h: 44px;
  --radius-sm: 6px;
  --radius: 10px;
  --radius-lg: 14px;

  --font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
    "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;

  --transition: 160ms cubic-bezier(0.4, 0, 0.2, 1);
}

/* --------------------------------------------------------------------------
   Light theme
   -------------------------------------------------------------------------- */
[data-theme="light"] {
  /*
   * SLIMNOC_THEME_LIGHT_SLIMISP_V1
   * Paleta do tema claro do SLIM ISP NO AR (sistema.slimweb.com.br),
   * convertida dos tokens oklch reais dele:
   *   --background oklch(94.5% 0 0)  → cinza NEUTRO (sem matiz azul)
   *   --card       oklch(100% 0 0/.92)
   *   --sidebar    oklch(93% 0 0/.94) → sidebar CLARA, texto escuro
   *   --primary    oklch(52% .2 250)  → #0067d5
   *   --border     oklch(0% 0 0/.1)
   * As cores de STATUS continuam nas variantes acessíveis: o verde/âmbar
   * do SLIM ISP dariam 2,7–3,5:1 como texto, abaixo de 4,5:1.
   */
  --bg-body: #ededed;
  --bg-sidebar: #e8e8e8;
  --bg-topbar: #fbfbfb;
  --bg-surface: #fefefe;
  --bg-surface-2: #e8e8e8;
  --bg-surface-3: #e5e5e5;
  --bg-inset: #e7e7e7;

  --border: #d5d5d5;
  --border-soft: #e0e0e0;
  --border-strong: #c4c4c4;

  --text: #1b1b1b;
  --text-soft: #1f1f1f;
  /* ≥4,5:1 sobre o fundo #ededed (muted 5,13:1 / dim 4,55:1) */
  --text-muted: #636363;
  --text-dim: #666666;

  /* Azul de marca do SLIM ISP */
  --primary: #0067d5;
  --primary-hover: #0074ea;
  --primary-press: #0056b3;
  --primary-solid: #0067d5;
  --primary-solid-hover: #0059bb;
  --primary-text: #0059bb;
  --focus-ring: #0067d5;
  --ring: 0 0 0 3px rgba(0, 103, 213, 0.25);
  /* vermelho destrutivo do SLIM ISP (branco sobre ele = 5,20:1) */
  --danger-solid: #d81327;
  --danger-solid-hover: #b91021;

  /* Status legíveis sobre superfícies claras */
  --success-text: #166534;
  --warning-text: #92400e;
  --danger-text: #b91c1c;
  --info-text: #0059bb;

  /* Equivalentes legíveis sobre superfície clara (≥4,5:1 sobre branco) */
  --accent-green: #166534;
  --accent-amber: #92400e;
  --accent-orange: #9a3412;
  --accent-red: #b91c1c;
  --accent-blue: #0059bb;
  --accent-purple: #6d28d9;
  --accent-cyan: #155e75;
  --primary-soft: rgba(0, 103, 213, 0.1);
  --primary-soft-2: rgba(0, 103, 213, 0.18);
  --success-soft: rgba(34, 197, 94, 0.12);
  --warning-soft: rgba(245, 166, 35, 0.14);
  --danger-soft: rgba(239, 68, 68, 0.1);
  --purple-soft: rgba(139, 92, 246, 0.12);
  --cyan-soft: rgba(34, 211, 238, 0.14);

  --shadow-sm: 0 1px 2px rgba(20, 35, 60, 0.06);
  --shadow: 0 6px 20px rgba(20, 35, 60, 0.08);
  --shadow-lg: 0 18px 50px rgba(20, 35, 60, 0.14);
}
