/*
  theme.css — Design System Base do Boilerplate
  ================================================
  Define tokens de design (CSS custom properties) consumidos por todos os temas.
  Cada tema sobrescreve as variaveis em :root para aplicar sua paleta.
  Uso: incluir no base.html junto com o tema ativo.
*/

/* ------------------------------------------------------------------
   Fontes self-hosted (PCS Onda 2) — sem CDN, sem risco LGPD
   woff2 (formato moderno, compressao maxima). Fallback: system fonts.
   ------------------------------------------------------------------ */

/* Inter (corpo / UI) */
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/inter/inter-400.da03732a27e1.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/inter/inter-500.51205681a1ba.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/inter/inter-600.2ede57db1a3a.woff2") format("woff2");
}
@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/inter/inter-700.8ca0a5155296.woff2") format("woff2");
}

/* Space Grotesk (display / H1-H4 / KPI) */
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/space-grotesk/space-grotesk-500.ab4861869c91.woff2") format("woff2");
}
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/space-grotesk/space-grotesk-600.49f2dd2d2132.woff2") format("woff2");
}
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/space-grotesk/space-grotesk-700.f9e147a59a93.woff2") format("woff2");
}

/* JetBrains Mono (codigo / hash / badges mono) */
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono/jetbrains-mono-400.caf0dfde4e44.woff2") format("woff2");
}
@font-face {
  font-family: "JetBrains Mono";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono/jetbrains-mono-500.a21e038a03f7.woff2") format("woff2");
}

/* ------------------------------------------------------------------
   Tokens de Cor (sobrescritos pelo tema ativo)
   ------------------------------------------------------------------ */
:root {
  /* Primaria — Evidentia teal */
  --color-primary-50:  #e6f3f6;
  --color-primary-100: #c2e2e9;
  --color-primary-200: #8fc8d5;
  --color-primary-300: #4da7bc;
  --color-primary-400: #17acc5;
  --color-primary-500: #01536b;
  --color-primary-600: #014a60;
  --color-primary-700: #013f52;
  --color-primary-800: #012f3d;
  --color-primary-900: #011f3b;

  /* Secundaria — navy / graphite */
  --color-secondary-50:  #f5f5f7;
  --color-secondary-100: #e6e8ec;
  --color-secondary-200: #cfd3db;
  --color-secondary-300: #a8b0bd;
  --color-secondary-400: #6b7382;
  --color-secondary-500: #252a35;
  --color-secondary-600: #1c212b;
  --color-secondary-700: #141922;
  --color-secondary-800: #0b1524;
  --color-secondary-900: #011f3b;

  /* Semantica */
  --color-success: #198754;
  --color-success-bg: #d1e7dd;
  --color-success-border: #a3cfbb;
  --color-danger: #dc3545;
  --color-danger-bg: #f8d7da;
  --color-danger-border: #f1aeb5;
  --color-warning: #ffc107;
  --color-warning-bg: #fff3cd;
  --color-warning-border: #ffe69c;
  --color-info: #17acc5;
  --color-info-bg: #e6f3f6;
  --color-info-border: #8fc8d5;
  /* Fundo e texto — Evidentia light */
  --color-bg-body: #f5f5f7;
  --color-bg-surface: #ffffff;
  --color-bg-elevated: #ffffff;
  /* Superficie muted fria (teal-tint) — chrome/neutro; nao champagne/gold */
  --color-bg-muted: #e6f3f6;
  --color-text-primary: #011f3b;
  --color-text-secondary: #252a35;
  --color-text-muted: #252a35;
  --color-text-inverse: #f5f5f7;
  --color-border: rgba(1, 31, 59, 0.16);
  --color-border-subtle: rgba(37, 42, 53, 0.12);

  /* Sidebar */
  --sidebar-width: 280px;
  --sidebar-bg: var(--color-bg-surface);
  --sidebar-border: var(--color-border);
  --sidebar-text: var(--color-text-secondary);
  --sidebar-text-active: var(--color-primary-600);
  --sidebar-bg-active: var(--color-primary-50);

  /* Menu/Topbar */
  --menu-height: 56px;
  --menu-bg: var(--color-bg-surface);
  --menu-border: var(--color-border);

  /* Footer */
  --footer-height: 48px;
  --footer-bg: var(--color-bg-muted);
  --footer-border: var(--color-border);

  /* ----------------------------------------------------------------
     Tokens de Tipografia
     ---------------------------------------------------------------- */
  --font-family-base: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-display: "Space Grotesk", "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --font-family-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Monaco, Consolas, monospace;

  --font-size-xs: 0.75rem;   /* 12px */
  --font-size-sm: 0.875rem;  /* 14px */
  --font-size-base: 1rem;    /* 16px */
  --font-size-md: 1.125rem;  /* 18px */
  --font-size-lg: 1.25rem;   /* 20px */
  --font-size-xl: 1.5rem;    /* 24px */
  --font-size-2xl: 2rem;     /* 32px */

  --font-weight-light: 300;
  --font-weight-normal: 400;
  --font-weight-medium: 500;
  --font-weight-semibold: 600;
  --font-weight-bold: 700;

  --line-height-tight: 1.25;
  --line-height-normal: 1.5;
  --line-height-relaxed: 1.75;

  /* ----------------------------------------------------------------
     Tokens de Espacamento
     ---------------------------------------------------------------- */
  --space-1: 0.25rem;  /* 4px */
  --space-2: 0.5rem;   /* 8px */
  --space-3: 0.75rem;  /* 12px */
  --space-4: 1rem;     /* 16px */
  --space-5: 1.25rem;  /* 20px */
  --space-6: 1.5rem;   /* 24px */
  --space-8: 2rem;     /* 32px */
  --space-10: 2.5rem;  /* 40px */
  --space-12: 3rem;    /* 48px */
  --space-16: 4rem;    /* 64px */

  /* ----------------------------------------------------------------
     Tokens de Sombra
     ---------------------------------------------------------------- */
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.04);
  --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
  --shadow-lg: 0 10px 15px rgba(0, 0, 0, 0.08), 0 4px 6px rgba(0, 0, 0, 0.04);
  --shadow-xl: 0 20px 25px rgba(0, 0, 0, 0.1), 0 10px 10px rgba(0, 0, 0, 0.04);
  --shadow-inset: inset 0 2px 4px rgba(0, 0, 0, 0.04);

  /* ----------------------------------------------------------------
     Tokens de Borda
     ---------------------------------------------------------------- */
  --radius-sm: 0.25rem;  /* 4px */
  --radius-md: 0.375rem; /* 6px */
  --radius-lg: 0.5rem;   /* 8px */
  --radius-xl: 0.75rem;  /* 12px */
  --radius-2xl: 1rem;    /* 16px */
  --radius-full: 9999px;

  /* ----------------------------------------------------------------
     Tokens de Transicao
     ---------------------------------------------------------------- */
  --transition-fast: 150ms ease;
  --transition-base: 250ms ease;
  --transition-slow: 350ms ease;

  /* ----------------------------------------------------------------
     Tokens de Z-Index
     ---------------------------------------------------------------- */
  --z-dropdown: 1000;
  --z-sticky: 1020;
  --z-fixed: 1030;
  --z-modal-backdrop: 1040;
  --z-modal: 1050;
  --z-popover: 1060;
  --z-tooltip: 1070;
  --z-toast: 1080;

  /* ----------------------------------------------------------------
     Tokens semanticos (IntGest PCM Onda 1) — OKLCH com fallback HEX
     Arquitetura: --background/--foreground/--surface/--primary/etc.
     Fallback HEX garante legibilidade em browser sem OKLCH.
     ---------------------------------------------------------------- */
  /* Brand primitives Evidentia (referencia; preferir tokens semanticos) */
  --brand-navy: #011f3b;
  --brand-navy: oklch(0.235 0.065 250);
  --brand-teal: #01536b;
  --brand-teal: oklch(0.412 0.078 226);
  --brand-cyan: #17acc5;
  --brand-cyan: oklch(0.685 0.117 213);
  --brand-gold: #d5a44c;
  --brand-gold: oklch(0.747 0.120 80);
  --brand-champagne: #f4e0b3;
  --brand-champagne: oklch(0.912 0.062 87);
  --brand-offwhite: #f5f5f7;
  --brand-offwhite: oklch(0.971 0.003 286);
  --brand-graphite: #252a35;
  --brand-graphite: oklch(0.285 0.021 266);

  /* Light default — Evidentia */
  --background: #f5f5f7;
  --background: oklch(0.971 0.003 286);
  --foreground: #011f3b;
  --foreground: oklch(0.235 0.065 250);
  --surface: #ffffff;
  --surface: oklch(1 0 0);
  /* surface-2 frio teal — chrome/neutro; champagne fica em brand-* */
  --surface-2: #e6f3f6;
  --surface-2: oklch(0.955 0.018 213);
  --card: #ffffff;
  --card: oklch(1 0 0);
  --card-foreground: #011f3b;
  --card-foreground: oklch(0.235 0.065 250);
  --popover: #ffffff;
  --popover: oklch(1 0 0);
  --popover-foreground: #011f3b;
  --popover-foreground: oklch(0.235 0.065 250);
  --primary: #01536b;
  --primary: oklch(0.412 0.078 226);
  --primary-foreground: #ffffff;
  --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(1, 83, 107, 0.12);
  --primary-soft: oklch(0.412 0.078 226 / 0.12);
  --secondary: #011f3b;
  --secondary: oklch(0.235 0.065 250);
  --secondary-foreground: #f5f5f7;
  --secondary-foreground: oklch(0.971 0.003 286);
  --muted: #f5f5f7;
  --muted: oklch(0.971 0.003 286);
  --muted-foreground: #252a35;
  --muted-foreground: oklch(0.285 0.021 266);
  --accent: #d5a44c;
  --accent: oklch(0.747 0.120 80);
  --accent-foreground: #011f3b;
  --accent-foreground: oklch(0.235 0.065 250);
  --destructive: #dc3545;
  --destructive: oklch(0.58 0.22 25);
  --destructive-foreground: #ffffff;
  --destructive-foreground: oklch(1 0 0);
  --success: #198754;
  --success: oklch(0.62 0.15 150);
  --success-foreground: #ffffff;
  --success-foreground: oklch(1 0 0);
  --warning: #ffc107;
  --warning: oklch(0.82 0.17 85);
  --warning-foreground: #011f3b;
  --warning-foreground: oklch(0.235 0.065 250);
  --info: #17acc5;
  --info: oklch(0.685 0.117 213);
  --info-foreground: #011f3b;
  --info-foreground: oklch(0.235 0.065 250);
  --border: rgba(1, 31, 59, 0.16);
  --border: oklch(0.235 0.065 250 / 0.16);
  --input: rgba(1, 31, 59, 0.22);
  --input: oklch(0.235 0.065 250 / 0.22);
  --ring: #01536b;
  --ring: oklch(0.412 0.078 226);
  --color-border-focus: var(--ring);
  --radius: 0.7rem;
  --radius-sm: calc(0.7rem - 4px);
  --radius-md: calc(0.7rem - 2px);
  --radius-lg: 0.7rem;
  --radius-xl: calc(0.7rem + 4px);
  --radius-2xl: calc(0.7rem + 8px);
  /* Chart palette */
  --chart-1: #01536b;
  --chart-1: oklch(0.412 0.078 226);
  --chart-2: #198754;
  --chart-2: oklch(0.62 0.15 150);
  --chart-3: #d5a44c;
  --chart-3: oklch(0.747 0.120 80);
  --chart-4: #17acc5;
  --chart-4: oklch(0.685 0.117 213);
  --chart-5: #011f3b;
  --chart-5: oklch(0.235 0.065 250);
  /* Sidebar tokens semanticos — light: teal suave + ativo teal (sem champagne) */
  --sidebar: #e6f3f6;
  --sidebar: oklch(0.955 0.018 213);
  --sidebar-foreground: #011f3b;
  --sidebar-foreground: oklch(0.235 0.065 250);
  --sidebar-primary: #01536b;
  --sidebar-primary: oklch(0.412 0.078 226);
  --sidebar-accent: #01536b;
  --sidebar-accent: oklch(0.412 0.078 226);
  --sidebar-accent-foreground: #f5f5f7;
  --sidebar-accent-foreground: oklch(0.971 0.003 286);
  --sidebar-border: rgba(1, 31, 59, 0.16);
  --sidebar-border: oklch(0.235 0.065 250 / 0.16);
  --sidebar-ring: #01536b;
  --sidebar-ring: oklch(0.412 0.078 226);

  /* Mapeamento para hooks nativos do Bootstrap 5.3 */
  --bs-body-bg: var(--background);
  --bs-body-color: var(--foreground);
  --bs-primary: var(--primary);
  --bs-primary-rgb: 1, 83, 107;  /* teal Evidentia */
  --bs-secondary: var(--secondary);
  --bs-secondary-rgb: 1, 31, 59;
  --bs-success: var(--success);
  --bs-success-rgb: 25, 135, 84;
  --bs-danger: var(--destructive);
  --bs-danger-rgb: 220, 53, 69;
  --bs-warning: var(--warning);
  --bs-warning-rgb: 255, 193, 7;
  --bs-info: var(--info);
  --bs-info-rgb: 23, 172, 197;
  --bs-border-color: var(--border);
  --bs-border-radius: var(--radius);
  --bs-border-radius-sm: var(--radius-sm);
  --bs-border-radius-lg: var(--radius-lg);
  --bs-link-color: var(--primary);
  --bs-link-hover-color: var(--primary);
  --bs-emphasis-color: var(--foreground);
  --bs-secondary-color: var(--muted-foreground);
  --bs-secondary-bg: var(--muted);
  --bs-tertiary-bg: var(--surface-2);
  --bs-tertiary-color: var(--muted-foreground);
  --bs-card-bg: var(--card);
  --bs-card-border-color: var(--border);
}

/* ------------------------------------------------------------------
   Reset leve + base
   ------------------------------------------------------------------ */
*, *::before, *::after {
  box-sizing: border-box;
}

html {
  font-family: var(--font-family-base);
  font-size: var(--font-size-base);
  line-height: var(--line-height-normal);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

body {
  background-color: var(--color-bg-body);
  color: var(--color-text-primary);
}

/* ------------------------------------------------------------------
   Utilitarios de layout
   ------------------------------------------------------------------ */
.app-layout {
  display: flex;
  min-height: 100vh;
}

.app-sidebar {
  width: var(--sidebar-width);
  flex-shrink: 0;
  background: var(--sidebar-bg);
  border-right: 1px solid var(--sidebar-border);
}

.app-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.app-content {
  flex: 1;
  padding: var(--space-6);
}

/* ------------------------------------------------------------------
   Utilitarios de tipografia
   ------------------------------------------------------------------ */
.text-xs   { font-size: var(--font-size-xs); }
.text-sm   { font-size: var(--font-size-sm); }
.text-base { font-size: var(--font-size-base); }
.text-md   { font-size: var(--font-size-md); }
.text-lg   { font-size: var(--font-size-lg); }
.text-xl   { font-size: var(--font-size-xl); }
.text-2xl  { font-size: var(--font-size-2xl); }

.font-light    { font-weight: var(--font-weight-light); }
.font-normal   { font-weight: var(--font-weight-normal); }
.font-medium   { font-weight: var(--font-weight-medium); }
.font-semibold { font-weight: var(--font-weight-semibold); }
.font-bold     { font-weight: var(--font-weight-bold); }

/* ------------------------------------------------------------------
   Utilitarios de cor
   ------------------------------------------------------------------ */
.bg-surface   { background-color: var(--color-bg-surface) !important; }
.bg-elevated  { background-color: var(--color-bg-elevated) !important; }
.bg-muted     { background-color: var(--color-bg-muted) !important; }
.text-primary { color: var(--color-text-primary) !important; }
.text-secondary { color: var(--color-text-secondary) !important; }
.text-muted   { color: var(--color-text-muted) !important; }
.border-theme { border-color: var(--color-border) !important; }

/* ------------------------------------------------------------------
   Utilitarios de sombra
   ------------------------------------------------------------------ */
.shadow-theme-sm  { box-shadow: var(--shadow-sm) !important; }
.shadow-theme-md  { box-shadow: var(--shadow-md) !important; }
.shadow-theme-lg  { box-shadow: var(--shadow-lg) !important; }

/* ------------------------------------------------------------------
   Utilitarios de transicao
   ------------------------------------------------------------------ */
.transition-theme { transition: all var(--transition-base); }

/* ------------------------------------------------------------------
   Componentes genericos
   ------------------------------------------------------------------ */
.card-theme {
  background: var(--color-bg-elevated);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-sm);
}

.card-theme:hover {
  box-shadow: var(--shadow-md);
}

.btn-theme-primary {
  background: var(--color-primary-500);
  border-color: var(--color-primary-500);
  color: var(--color-text-inverse);
}

.btn-theme-primary:hover {
  background: var(--color-primary-600);
  border-color: var(--color-primary-600);
}

.badge-theme {
  font-size: var(--font-size-xs);
  font-weight: var(--font-weight-medium);
  padding: var(--space-1) var(--space-2);
  border-radius: var(--radius-full);
}

/* ------------------------------------------------------------------
   Scrollbar customizada
   ------------------------------------------------------------------ */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}
::-webkit-scrollbar-track {
  background: var(--color-bg-muted);
}
::-webkit-scrollbar-thumb {
  background: var(--color-secondary-300);
  border-radius: var(--radius-full);
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-secondary-400);
}

/* ------------------------------------------------------------------
   HTMX indicadores
   ------------------------------------------------------------------ */
.htmx-request .htmx-indicator {
  display: inline-block !important;
}
.htmx-indicator {
  display: none;
}

/* ------------------------------------------------------------------
   Alpine.js transicoes
   ------------------------------------------------------------------ */
[x-cloak] {
  display: none !important;
}

/* ------------------------------------------------------------------
   Animacoes de icones
   ------------------------------------------------------------------ */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.spin {
  animation: spin 1s linear infinite;
  display: inline-block;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: .5; }
}
.pulse {
  animation: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;
}

/* ------------------------------------------------------------------
   Temas (IntGest PCM Onda 1) — mecanismo data-theme
   .theme-pcs / [data-theme="pcs"]: tema default Evidentia (light)
   .theme-pcs-dark / [data-theme="pcs-dark"]: tema escuro GitHub Dark
   Classe legada preservada; atributo e o seletor efetivo do runtime.
   ------------------------------------------------------------------ */

.theme-pcs,
[data-theme="pcs"] {
  /* Evidentia light */
  --background: #f5f5f7;
  --background: oklch(0.971 0.003 286);
  --foreground: #011f3b;
  --foreground: oklch(0.235 0.065 250);
  --primary: #01536b;
  --primary: oklch(0.412 0.078 226);
  --primary-foreground: #ffffff;
  --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(1, 83, 107, 0.12);
  --primary-soft: oklch(0.412 0.078 226 / 0.12);
  --secondary: #011f3b;
  --secondary: oklch(0.235 0.065 250);
  --secondary-foreground: #f5f5f7;
  --secondary-foreground: oklch(0.971 0.003 286);
  --surface: #ffffff;
  --surface: oklch(1 0 0);
  /* surface-2 frio teal — sem champagne no chrome light */
  --surface-2: #e6f3f6;
  --surface-2: oklch(0.955 0.018 213);
  --card: #ffffff;
  --card: oklch(1 0 0);
  --card-foreground: #011f3b;
  --card-foreground: oklch(0.235 0.065 250);
  --border: rgba(1, 31, 59, 0.16);
  --border: oklch(0.235 0.065 250 / 0.16);
  --muted: #f5f5f7;
  --muted: oklch(0.971 0.003 286);
  --muted-foreground: #252a35;
  --muted-foreground: oklch(0.285 0.021 266);
  /* accent brand gold preservado (landing/status); chrome nao consome */
  --accent: #d5a44c;
  --accent: oklch(0.747 0.120 80);
  --accent-foreground: #011f3b;
  --accent-foreground: oklch(0.235 0.065 250);
  --ring: #01536b;
  --ring: oklch(0.412 0.078 226);
  --color-border-focus: var(--ring);
  --info: #17acc5;
  --info: oklch(0.685 0.117 213);
  --sidebar: #e6f3f6;
  --sidebar: oklch(0.955 0.018 213);
  --sidebar-foreground: #011f3b;
  --sidebar-foreground: oklch(0.235 0.065 250);
  --sidebar-primary: #01536b;
  --sidebar-primary: oklch(0.412 0.078 226);
  /* item ativo: teal, nao champagne */
  --sidebar-accent: #01536b;
  --sidebar-accent: oklch(0.412 0.078 226);
  --sidebar-accent-foreground: #f5f5f7;
  --sidebar-accent-foreground: oklch(0.971 0.003 286);
  --sidebar-border: rgba(1, 31, 59, 0.16);
  --sidebar-ring: #01536b;
  --bs-primary: var(--primary);
  --bs-primary-rgb: 1, 83, 107;
  --bs-secondary: var(--secondary);
  --bs-secondary-rgb: 1, 31, 59;
  --bs-info-rgb: 23, 172, 197;
  --bs-link-color: var(--primary);
  --bs-body-bg: var(--background);
  --bs-body-color: var(--foreground);
  --bs-border-color: var(--border);
}

.theme-pcs-dark,
[data-theme="pcs-dark"] {
  /* Fonte canonica dos tokens dark (GitHub Dark default). themes/* so consome. */
  color-scheme: dark;
  --background: #0d1117;
  --foreground: #f0f6fc;
  --primary: #4493f8;
  --primary-foreground: #ffffff;
  --primary-soft: rgba(68, 147, 248, 0.18);
  --secondary: #212830;
  --secondary-foreground: #f0f6fc;
  --surface: #212830;
  --surface-2: #151b23;
  --card: #212830;
  --card-foreground: #f0f6fc;
  --popover: #212830;
  --popover-foreground: #f0f6fc;
  --border: #3d444d;
  --input: #3d444d;
  --muted: #151b23;
  --muted-foreground: #9198a1;
  --accent: #4493f8;
  --accent-foreground: #ffffff;
  --destructive: #f85149;
  --destructive-foreground: #ffffff;
  --success: #3fb950;
  --success-foreground: #ffffff;
  --warning: #d29922;
  --warning-foreground: #0d1117;
  --ring: #1f6feb;
  --color-border-focus: var(--ring);
  --info: #4493f8;
  --info-foreground: #ffffff;
  --sidebar: #010409;
  --sidebar-foreground: #f0f6fc;
  --sidebar-primary: #4493f8;
  --sidebar-accent: #212830;
  --sidebar-accent-foreground: #f0f6fc;
  --sidebar-border: #3d444d;
  --sidebar-ring: #1f6feb;
  --chart-1: #4493f8;
  --chart-2: #3fb950;
  --chart-3: #d29922;
  --chart-4: #1f6feb;
  --chart-5: #9198a1;

  /* Bridge legado --color-* / layout (body, utilities, modern.css) */
  --color-primary-400: var(--primary);
  --color-primary-500: var(--primary);
  --color-primary-600: var(--ring);
  --color-bg-body: var(--background);
  --color-bg-surface: var(--surface);
  --color-bg-elevated: var(--card);
  --color-bg-muted: var(--muted);
  --color-bg-overlay: rgba(1, 4, 9, 0.6);
  --color-text-primary: var(--foreground);
  --color-text-secondary: var(--muted-foreground);
  --color-text-muted: var(--muted-foreground);
  --color-text-inverse: var(--background);
  --color-text-placeholder: var(--muted-foreground);
  --color-border: var(--border);
  --color-border-subtle: color-mix(in oklab, var(--border) 70%, transparent);
  --color-border-hover: color-mix(in oklab, var(--border) 88%, var(--foreground));
  --color-success: var(--success);
  --color-danger: var(--destructive);
  --color-warning: var(--warning);
  --color-info: var(--info);
  --sidebar-bg: var(--sidebar);
  --sidebar-text: var(--sidebar-foreground);
  --sidebar-text-active: var(--sidebar-primary);
  --sidebar-bg-active: var(--sidebar-accent);
  --sidebar-bg-hover: #262c36;
  --menu-bg: var(--surface-2);
  --menu-border: var(--border);
  --footer-bg: var(--sidebar);
  --footer-border: var(--border);

  --bs-body-bg: var(--background);
  --bs-body-color: var(--foreground);
  --bs-body-color-rgb: 240, 246, 252;
  --bs-border-color: var(--border);
  --bs-tertiary-bg: var(--surface-2);
  --bs-secondary-bg: var(--muted);
  --bs-primary: var(--primary);
  --bs-primary-rgb: 68, 147, 248;
  --bs-secondary: var(--secondary);
  --bs-secondary-rgb: 33, 40, 48;
  --bs-success: var(--success);
  --bs-success-rgb: 63, 185, 80;
  --bs-danger: var(--destructive);
  --bs-danger-rgb: 248, 81, 73;
  --bs-warning: var(--warning);
  --bs-warning-rgb: 210, 153, 34;
  --bs-info: var(--info);
  --bs-info-rgb: 68, 147, 248;
  --bs-light: var(--muted);
  --bs-dark: var(--foreground);
  --bs-link-color: var(--primary);
  --bs-link-hover-color: var(--ring);
  --bs-secondary-color: var(--muted-foreground);
  --bs-emphasis-color: var(--foreground);
  --bs-card-bg: var(--card);
}

/* ------------------------------------------------------------------
   Temas extras — Guia IntGest PCM (Onda 4A)
   Inativos por padrao; ativam quando o seletor aplica
   [data-theme="amanhecer" | "linho" | "salvia" | "uena" |
   "cacau" | "ardosia" | "indigo"] em um ancestral.
   ------------------------------------------------------------------ */

.theme-amanhecer {
  --background: #f5f1ea; --background: oklch(0.97 0.012 75);
  --foreground: #3d3530; --foreground: oklch(0.26 0.02 55);
  --surface: #ffffff; --surface: oklch(1 0 0);
  --surface-2: #ede8e0; --surface-2: oklch(0.95 0.012 70);
  --card: #ffffff; --card: oklch(1 0 0);
  --card-foreground: #3d3530; --card-foreground: oklch(0.26 0.02 55);
  --primary: #c4623a; --primary: oklch(0.66 0.15 45);
  --primary-foreground: #ffffff; --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(196, 98, 58, 0.12); --primary-soft: oklch(0.66 0.15 45 / 0.12);
  --secondary: #ede8e0; --secondary: oklch(0.95 0.012 70);
  --secondary-foreground: #3d3530; --secondary-foreground: oklch(0.26 0.02 55);
  --muted: #ede8e0; --muted: oklch(0.95 0.012 70);
  --muted-foreground: #8a7f75; --muted-foreground: oklch(0.6 0.02 55);
  --accent: #f5ede3; --accent: oklch(0.95 0.02 50);
  --accent-foreground: #c4623a; --accent-foreground: oklch(0.66 0.15 45);
  --destructive: #c0392b; --destructive: oklch(0.55 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #198754; --success: oklch(0.62 0.15 150);
  --success-foreground: #ffffff; --success-foreground: oklch(1 0 0);
  --warning: #d4a017; --warning: oklch(0.78 0.15 85);
  --warning-foreground: #3d3530; --warning-foreground: oklch(0.26 0.02 55);
  --info: #2e86ab; --info: oklch(0.6 0.1 230);
  --info-foreground: #ffffff; --info-foreground: oklch(1 0 0);
  --border: #d9d2c8; --border: oklch(0.9 0.01 60);
  --input: #d9d2c8; --input: oklch(0.9 0.01 60);
  --ring: #c4623a; --ring: oklch(0.66 0.15 45);
  --sidebar: #ede8e0; --sidebar: oklch(0.93 0.018 70);
  --sidebar-foreground: #3d3530; --sidebar-foreground: oklch(0.26 0.02 55);
  --sidebar-primary: #c4623a; --sidebar-primary: oklch(0.66 0.15 45);
  --sidebar-accent: #f5ede3; --sidebar-accent: oklch(0.95 0.02 50);
  --sidebar-accent-foreground: #c4623a; --sidebar-accent-foreground: oklch(0.66 0.15 45);
  --sidebar-border: #d9d2c8; --sidebar-border: oklch(0.88 0.012 60);
  --sidebar-ring: #c4623a; --sidebar-ring: oklch(0.66 0.15 45);
  --chart-1: #c4623a; --chart-1: oklch(0.66 0.15 45);
  --chart-2: #4a8b5c; --chart-2: oklch(0.6 0.13 155);
  --chart-3: #d4a017; --chart-3: oklch(0.7 0.14 70);
  --chart-4: #2e86ab; --chart-4: oklch(0.62 0.12 230);
  --chart-5: #8b5cf6; --chart-5: oklch(0.55 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 196, 98, 58;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-linho {
  --background: #faf8f3; --background: oklch(0.975 0.01 85);
  --foreground: #2d2a24; --foreground: oklch(0.25 0.015 75);
  --surface: #ffffff; --surface: oklch(1 0 0);
  --surface-2: #f2efe7; --surface-2: oklch(0.95 0.012 80);
  --card: #ffffff; --card: oklch(1 0 0);
  --card-foreground: #2d2a24; --card-foreground: oklch(0.25 0.015 75);
  --primary: #b8742e; --primary: oklch(0.68 0.13 70);
  --primary-foreground: #ffffff; --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(184, 116, 46, 0.12); --primary-soft: oklch(0.68 0.13 70 / 0.12);
  --secondary: #f2efe7; --secondary: oklch(0.95 0.012 80);
  --muted: #f2efe7; --muted: oklch(0.95 0.012 80);
  --muted-foreground: #8a847a; --muted-foreground: oklch(0.6 0.01 75);
  --accent: #f9f3e8; --accent: oklch(0.95 0.02 75);
  --accent-foreground: #b8742e; --accent-foreground: oklch(0.68 0.13 70);
  --destructive: #c0392b; --destructive: oklch(0.55 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #198754; --success: oklch(0.62 0.15 150);
  --success-foreground: #ffffff; --success-foreground: oklch(1 0 0);
  --warning: #d4a017; --warning: oklch(0.78 0.15 85);
  --warning-foreground: #2d2a24; --warning-foreground: oklch(0.25 0.015 75);
  --info: #2e86ab; --info: oklch(0.6 0.1 230);
  --info-foreground: #ffffff; --info-foreground: oklch(1 0 0);
  --border: #e0dcd0; --border: oklch(0.91 0.01 80);
  --input: #e0dcd0; --input: oklch(0.91 0.01 80);
  --ring: #b8742e; --ring: oklch(0.68 0.13 70);
  --sidebar: #f2efe7; --sidebar: oklch(0.94 0.018 80);
  --sidebar-foreground: #2d2a24; --sidebar-foreground: oklch(0.25 0.015 75);
  --sidebar-primary: #b8742e; --sidebar-primary: oklch(0.68 0.13 70);
  --sidebar-accent: #f9f3e8; --sidebar-accent: oklch(0.95 0.02 75);
  --sidebar-accent-foreground: #b8742e; --sidebar-accent-foreground: oklch(0.68 0.13 70);
  --sidebar-border: #e0dcd0; --sidebar-border: oklch(0.88 0.012 80);
  --sidebar-ring: #b8742e; --sidebar-ring: oklch(0.68 0.13 70);
  --chart-1: #b8742e; --chart-1: oklch(0.68 0.13 70);
  --chart-2: #4a8b5c; --chart-2: oklch(0.6 0.13 155);
  --chart-3: #d4a017; --chart-3: oklch(0.7 0.14 70);
  --chart-4: #2e86ab; --chart-4: oklch(0.62 0.12 230);
  --chart-5: #8b5cf6; --chart-5: oklch(0.55 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 184, 116, 46;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-salvia {
  --background: #f0f4f0; --background: oklch(0.955 0.014 145);
  --foreground: #2a3a2e; --foreground: oklch(0.25 0.02 145);
  --surface: #ffffff; --surface: oklch(1 0 0);
  --surface-2: #e4ece4; --surface-2: oklch(0.94 0.014 145);
  --card: #ffffff; --card: oklch(1 0 0);
  --card-foreground: #2a3a2e; --card-foreground: oklch(0.25 0.02 145);
  --primary: #d4574a; --primary: oklch(0.68 0.13 35);
  --primary-foreground: #ffffff; --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(212, 87, 74, 0.12); --primary-soft: oklch(0.68 0.13 35 / 0.12);
  --secondary: #e4ece4; --secondary: oklch(0.94 0.014 145);
  --muted: #e4ece4; --muted: oklch(0.94 0.014 145);
  --muted-foreground: #6b7d6e; --muted-foreground: oklch(0.58 0.02 145);
  --accent: #eaf0ea; --accent: oklch(0.95 0.015 145);
  --accent-foreground: #d4574a; --accent-foreground: oklch(0.68 0.13 35);
  --destructive: #c0392b; --destructive: oklch(0.55 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #2d7a4f; --success: oklch(0.6 0.13 155);
  --success-foreground: #ffffff; --success-foreground: oklch(1 0 0);
  --warning: #d4a017; --warning: oklch(0.78 0.15 85);
  --warning-foreground: #2a3a2e; --warning-foreground: oklch(0.25 0.02 145);
  --info: #2e86ab; --info: oklch(0.6 0.1 230);
  --info-foreground: #ffffff; --info-foreground: oklch(1 0 0);
  --border: #d4dcd4; --border: oklch(0.9 0.012 145);
  --input: #d4dcd4; --input: oklch(0.9 0.012 145);
  --ring: #d4574a; --ring: oklch(0.68 0.13 35);
  --sidebar: #dde6dd; --sidebar: oklch(0.91 0.025 145);
  --sidebar-foreground: #2a3a2e; --sidebar-foreground: oklch(0.25 0.02 145);
  --sidebar-primary: #d4574a; --sidebar-primary: oklch(0.68 0.13 35);
  --sidebar-accent: #eaf0ea; --sidebar-accent: oklch(0.95 0.015 145);
  --sidebar-accent-foreground: #d4574a; --sidebar-accent-foreground: oklch(0.68 0.13 35);
  --sidebar-border: #d4dcd4; --sidebar-border: oklch(0.88 0.014 145);
  --sidebar-ring: #d4574a; --sidebar-ring: oklch(0.68 0.13 35);
  --chart-1: #d4574a; --chart-1: oklch(0.68 0.13 35);
  --chart-2: #4a8b5c; --chart-2: oklch(0.6 0.13 155);
  --chart-3: #d4a017; --chart-3: oklch(0.7 0.14 70);
  --chart-4: #2e86ab; --chart-4: oklch(0.62 0.12 230);
  --chart-5: #8b5cf6; --chart-5: oklch(0.55 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 212, 87, 74;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-uena {
  --background: #fcfaf5; --background: oklch(0.985 0.003 80);
  --foreground: #1a1a1a; --foreground: oklch(0.15 0 0);
  --surface: #ffffff; --surface: oklch(1 0 0);
  --surface-2: #f5f3ee; --surface-2: oklch(0.97 0.005 75);
  --card: #ffffff; --card: oklch(1 0 0);
  --card-foreground: #1a1a1a; --card-foreground: oklch(0.15 0 0);
  --primary: #e8742e; --primary: oklch(0.72 0.19 48);
  --primary-foreground: #ffffff; --primary-foreground: oklch(1 0 0);
  --primary-soft: rgba(232, 116, 46, 0.12); --primary-soft: oklch(0.72 0.19 48 / 0.12);
  --secondary: #f5f3ee; --secondary: oklch(0.97 0.005 75);
  --muted: #f5f3ee; --muted: oklch(0.97 0.005 75);
  --muted-foreground: #7a7a7a; --muted-foreground: oklch(0.55 0.005 75);
  --accent: #fdf0e6; --accent: oklch(0.97 0.02 55);
  --accent-foreground: #e8742e; --accent-foreground: oklch(0.72 0.19 48);
  --destructive: #dc3545; --destructive: oklch(0.58 0.22 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #198754; --success: oklch(0.62 0.15 150);
  --success-foreground: #ffffff; --success-foreground: oklch(1 0 0);
  --warning: #ffc107; --warning: oklch(0.82 0.17 85);
  --warning-foreground: #1a1a1a; --warning-foreground: oklch(0.15 0 0);
  --info: #0dcaf0; --info: oklch(0.82 0.12 220);
  --info-foreground: #1a1a1a; --info-foreground: oklch(0.15 0 0);
  --border: #ebe8e0; --border: oklch(0.93 0.005 75);
  --input: #ebe8e0; --input: oklch(0.93 0.005 75);
  --ring: #e8742e; --ring: oklch(0.72 0.19 48);
  --sidebar: #f9f6ef; --sidebar: oklch(0.975 0.012 55);
  --sidebar-foreground: #1a1a1a; --sidebar-foreground: oklch(0.15 0 0);
  --sidebar-primary: #e8742e; --sidebar-primary: oklch(0.72 0.19 48);
  --sidebar-accent: #fdf0e6; --sidebar-accent: oklch(0.97 0.02 55);
  --sidebar-accent-foreground: #e8742e; --sidebar-accent-foreground: oklch(0.72 0.19 48);
  --sidebar-border: #ebe8e0; --sidebar-border: oklch(0.93 0.005 75);
  --sidebar-ring: #e8742e; --sidebar-ring: oklch(0.72 0.19 48);
  --chart-1: #e8742e; --chart-1: oklch(0.72 0.19 48);
  --chart-2: #4a8b5c; --chart-2: oklch(0.6 0.13 155);
  --chart-3: #d4a017; --chart-3: oklch(0.7 0.14 70);
  --chart-4: #2e86ab; --chart-4: oklch(0.62 0.12 230);
  --chart-5: #8b5cf6; --chart-5: oklch(0.55 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 232, 116, 46;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-cacau {
  --background: #2a2420; --background: oklch(0.21 0.018 45);
  --foreground: #d4c4b8; --foreground: oklch(0.78 0.02 50);
  --surface: #332b26; --surface: oklch(0.26 0.02 45);
  --surface-2: #3d342e; --surface-2: oklch(0.3 0.02 45);
  --card: #332b26; --card: oklch(0.26 0.02 45);
  --card-foreground: #d4c4b8; --card-foreground: oklch(0.78 0.02 50);
  --primary: #e8945a; --primary: oklch(0.72 0.15 50);
  --primary-foreground: #2a2420; --primary-foreground: oklch(0.21 0.018 45);
  --primary-soft: rgba(232, 148, 90, 0.15); --primary-soft: oklch(0.72 0.15 50 / 0.15);
  --secondary: #3d342e; --secondary: oklch(0.3 0.02 45);
  --muted: #3d342e; --muted: oklch(0.3 0.02 45);
  --muted-foreground: #a89888; --muted-foreground: oklch(0.65 0.02 50);
  --accent: #4a3d35; --accent: oklch(0.35 0.02 45);
  --accent-foreground: #e8945a; --accent-foreground: oklch(0.72 0.15 50);
  --destructive: #e85040; --destructive: oklch(0.6 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #4ade80; --success: oklch(0.7 0.15 150);
  --success-foreground: #2a2420; --success-foreground: oklch(0.21 0.018 45);
  --warning: #fbbf24; --warning: oklch(0.82 0.15 85);
  --warning-foreground: #2a2420; --warning-foreground: oklch(0.21 0.018 45);
  --info: #60a5fa; --info: oklch(0.7 0.12 250);
  --info-foreground: #2a2420; --info-foreground: oklch(0.21 0.018 45);
  --border: #4a3d35; --border: oklch(0.38 0.02 45);
  --input: #4a3d35; --input: oklch(0.38 0.02 45);
  --ring: #e8945a; --ring: oklch(0.72 0.15 50);
  --sidebar: #241f1b; --sidebar: oklch(0.18 0.018 40);
  --sidebar-foreground: #d4c4b8; --sidebar-foreground: oklch(0.78 0.02 50);
  --sidebar-primary: #e8945a; --sidebar-primary: oklch(0.72 0.15 50);
  --sidebar-accent: #3d342e; --sidebar-accent: oklch(0.3 0.02 45);
  --sidebar-accent-foreground: #e8945a; --sidebar-accent-foreground: oklch(0.72 0.15 50);
  --sidebar-border: #4a3d35; --sidebar-border: oklch(0.35 0.02 45);
  --sidebar-ring: #e8945a; --sidebar-ring: oklch(0.72 0.15 50);
  --chart-1: #e8945a; --chart-1: oklch(0.72 0.15 50);
  --chart-2: #4ade80; --chart-2: oklch(0.7 0.15 150);
  --chart-3: #fbbf24; --chart-3: oklch(0.82 0.15 85);
  --chart-4: #60a5fa; --chart-4: oklch(0.7 0.12 250);
  --chart-5: #c084fc; --chart-5: oklch(0.65 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 232, 148, 90;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-ardosia {
  --background: #1e2228; --background: oklch(0.22 0.012 250);
  --foreground: #c4ccd4; --foreground: oklch(0.78 0.015 250);
  --surface: #272c33; --surface: oklch(0.26 0.012 250);
  --surface-2: #313841; --surface-2: oklch(0.3 0.014 250);
  --card: #272c33; --card: oklch(0.26 0.012 250);
  --card-foreground: #c4ccd4; --card-foreground: oklch(0.78 0.015 250);
  --primary: #d4884a; --primary: oklch(0.7 0.13 55);
  --primary-foreground: #1e2228; --primary-foreground: oklch(0.22 0.012 250);
  --primary-soft: rgba(212, 136, 74, 0.15); --primary-soft: oklch(0.7 0.13 55 / 0.15);
  --secondary: #313841; --secondary: oklch(0.3 0.014 250);
  --muted: #313841; --muted: oklch(0.3 0.014 250);
  --muted-foreground: #8b96a3; --muted-foreground: oklch(0.6 0.015 250);
  --accent: #3a4250; --accent: oklch(0.34 0.014 250);
  --accent-foreground: #d4884a; --accent-foreground: oklch(0.7 0.13 55);
  --destructive: #e85040; --destructive: oklch(0.6 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #4ade80; --success: oklch(0.7 0.15 150);
  --success-foreground: #1e2228; --success-foreground: oklch(0.22 0.012 250);
  --warning: #fbbf24; --warning: oklch(0.82 0.15 85);
  --warning-foreground: #1e2228; --warning-foreground: oklch(0.22 0.012 250);
  --info: #60a5fa; --info: oklch(0.7 0.12 250);
  --info-foreground: #1e2228; --info-foreground: oklch(0.22 0.012 250);
  --border: #3a4250; --border: oklch(0.36 0.014 250);
  --input: #3a4250; --input: oklch(0.36 0.014 250);
  --ring: #d4884a; --ring: oklch(0.7 0.13 55);
  --sidebar: #1a1e24; --sidebar: oklch(0.19 0.014 250);
  --sidebar-foreground: #c4ccd4; --sidebar-foreground: oklch(0.78 0.015 250);
  --sidebar-primary: #d4884a; --sidebar-primary: oklch(0.7 0.13 55);
  --sidebar-accent: #313841; --sidebar-accent: oklch(0.3 0.014 250);
  --sidebar-accent-foreground: #d4884a; --sidebar-accent-foreground: oklch(0.7 0.13 55);
  --sidebar-border: #3a4250; --sidebar-border: oklch(0.33 0.014 250);
  --sidebar-ring: #d4884a; --sidebar-ring: oklch(0.7 0.13 55);
  --chart-1: #d4884a; --chart-1: oklch(0.7 0.13 55);
  --chart-2: #4ade80; --chart-2: oklch(0.7 0.15 150);
  --chart-3: #fbbf24; --chart-3: oklch(0.82 0.15 85);
  --chart-4: #60a5fa; --chart-4: oklch(0.7 0.12 250);
  --chart-5: #c084fc; --chart-5: oklch(0.65 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 212, 136, 74;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

.theme-indigo {
  --background: #1a1d35; --background: oklch(0.19 0.03 265);
  --foreground: #c4c8d4; --foreground: oklch(0.78 0.02 265);
  --surface: #242840; --surface: oklch(0.23 0.03 265);
  --surface-2: #2e3350; --surface-2: oklch(0.28 0.03 265);
  --card: #242840; --card: oklch(0.23 0.03 265);
  --card-foreground: #c4c8d4; --card-foreground: oklch(0.78 0.02 265);
  --primary: #f0c050; --primary: oklch(0.78 0.14 75);
  --primary-foreground: #1a1d35; --primary-foreground: oklch(0.19 0.03 265);
  --primary-soft: rgba(240, 192, 80, 0.15); --primary-soft: oklch(0.78 0.14 75 / 0.15);
  --secondary: #2e3350; --secondary: oklch(0.28 0.03 265);
  --muted: #2e3350; --muted: oklch(0.28 0.03 265);
  --muted-foreground: #8b90a8; --muted-foreground: oklch(0.6 0.02 265);
  --accent: #383d5e; --accent: oklch(0.32 0.03 265);
  --accent-foreground: #f0c050; --accent-foreground: oklch(0.78 0.14 75);
  --destructive: #e85040; --destructive: oklch(0.6 0.2 25);
  --destructive-foreground: #ffffff; --destructive-foreground: oklch(1 0 0);
  --success: #4ade80; --success: oklch(0.7 0.15 150);
  --success-foreground: #1a1d35; --success-foreground: oklch(0.19 0.03 265);
  --warning: #fbbf24; --warning: oklch(0.82 0.15 85);
  --warning-foreground: #1a1d35; --warning-foreground: oklch(0.19 0.03 265);
  --info: #60a5fa; --info: oklch(0.7 0.12 250);
  --info-foreground: #1a1d35; --info-foreground: oklch(0.19 0.03 265);
  --border: #383d5e; --border: oklch(0.34 0.03 265);
  --input: #383d5e; --input: oklch(0.34 0.03 265);
  --ring: #f0c050; --ring: oklch(0.78 0.14 75);
  --sidebar: #161930; --sidebar: oklch(0.16 0.032 265);
  --sidebar-foreground: #c4c8d4; --sidebar-foreground: oklch(0.78 0.02 265);
  --sidebar-primary: #f0c050; --sidebar-primary: oklch(0.78 0.14 75);
  --sidebar-accent: #2e3350; --sidebar-accent: oklch(0.28 0.03 265);
  --sidebar-accent-foreground: #f0c050; --sidebar-accent-foreground: oklch(0.78 0.14 75);
  --sidebar-border: #383d5e; --sidebar-border: oklch(0.3 0.03 265);
  --sidebar-ring: #f0c050; --sidebar-ring: oklch(0.78 0.14 75);
  --chart-1: #f0c050; --chart-1: oklch(0.78 0.14 75);
  --chart-2: #4ade80; --chart-2: oklch(0.7 0.15 150);
  --chart-3: #fbbf24; --chart-3: oklch(0.82 0.15 85);
  --chart-4: #60a5fa; --chart-4: oklch(0.7 0.12 250);
  --chart-5: #c084fc; --chart-5: oklch(0.65 0.15 300);
  --bs-body-bg: var(--background); --bs-body-color: var(--foreground);
  --bs-primary: var(--primary); --bs-primary-rgb: 240, 192, 80;
  --bs-border-color: var(--border); --bs-tertiary-bg: var(--surface-2);
  --bs-link-color: var(--primary); --bs-link-hover-color: var(--primary);
}

/* ------------------------------------------------------------------
   Aplicacao tipografica (PCS Onda 2)
   ------------------------------------------------------------------ */
body {
  font-feature-settings: "cv02", "cv03", "cv04", "cv11";
}

h1, h2, h3, h4 {
  font-family: var(--font-display);
  letter-spacing: -0.01em;
}

.painel-card__count,
.painel-kpi__value {
  font-family: var(--font-display);
  letter-spacing: -0.015em;
}

code, pre, .font-mono, .badge-mono {
  font-family: var(--font-family-mono);
}
