/* Patrimo 7.0 — gerado a partir de tokens.json */
:root, [data-theme="light"], .pt-app {
  --canvas: #F5F7FA;
  --surface-1: #FFFFFF;
  --logo-plate: #FFFFFF; /* 7.2.1: fundo fixo claro sob logos de empresas (os logos são desenhados para fundo branco, inclusive no tema escuro) */
  --surface-2: #EFF2F6;
  --surface-3: #E3E8EF;
  --border-subtle: #DCE1E8;
  --border-strong: #7A8696;
  --text-primary: #111827;
  --text-secondary: #435062;
  --text-muted: #5B6779;
  --text-disabled: #9AA4B2;
  --brand-gold: #D4AF37;
  --brand-ui: #A47C32;
  --brand-text: #7A5A16;
  --on-brand: #07111F;
  --action: var(--brand-gold);
  --action-hover: #C29E2C;
  --action-active: #AE8B20;
  --nav-bg: #07111F;
  --nav-surface: #0E1D31;
  --nav-border: #1B2C44;
  --nav-text: #C5CEDA;
  --nav-text-strong: #F2F5F9;
  --nav-muted: #8C99AB;
  --nav-accent: #D4AF37;
  --nav-focus: #F0D77A;
  --positive: #087264;
  --positive-bg: #E1F3EF;
  --negative: #B42318;
  --negative-bg: #FDECEA;
  --warning: #8A5A00;
  --warning-bg: #FFF4D6;
  --info: #175CD3;
  --info-bg: #E7EFFD;
  --simulation: #0E6574;
  --simulation-bg: #E1F1F4;
  --focus-ring: #1A56B8;
  --overlay-scrim: rgba(7,17,31,0.48);
  --chart-1: #A47C32;
  --chart-2: #14365C;
  --chart-3: #1F7A8C;
  --chart-4: #5C7CA8;
  --chart-5: #7A5C7E;
  --chart-6: #8C7B6B;
  --chart-bench-cdi: var(--chart-2);
  --chart-bench-ibov: var(--chart-3);
  --chart-bench-ipca: var(--chart-4);
  --chart-grid: #E3E8EF;
  --heat-neg: #A47C32;
  --heat-mid: #F5F7FA;
  --heat-pos: #14365C;
  --heat-p1-bg: #E4EBF4;
  --heat-p1-ink: #14233A;
  --heat-p2-bg: #B9CCE4;
  --heat-p2-ink: #14233A;
  --heat-p3-bg: #3C6496;
  --heat-p3-ink: #FFFFFF;
  --heat-p4-bg: #14365C;
  --heat-p4-ink: #FFFFFF;
  --heat-n1-bg: #F6EBD3;
  --heat-n1-ink: #3A2A08;
  --heat-n2-bg: #E6C98F;
  --heat-n2-ink: #3A2A08;
  --heat-n3-bg: #8A6016;
  --heat-n3-ink: #FFFFFF;
  --heat-n4-bg: #66460D;
  --heat-n4-ink: #FFFFFF;
  --heat-z-bg: #EDF0F5;
  --heat-z-ink: #14233A;
  --shadow-1: 0 1px 2px rgba(7, 17, 31, 0.06);
  --shadow-popover: 0 8px 24px rgba(7, 17, 31, 0.12);
  --shadow-modal: 0 20px 48px rgba(7, 17, 31, 0.20);
}
[data-theme="dark"], [data-theme="dark"] .pt-app {
  --canvas: #0A1523;
  --surface-1: #101D30;
  --surface-2: #15253B;
  --surface-3: #1C3049;
  --border-subtle: #243750;
  --border-strong: #6F8097;
  --text-primary: #F2F5F9;
  --text-secondary: #B6C1CF;
  --text-muted: #98A6B9;
  --text-disabled: #5E6E85;
  --brand-gold: #D4AF37;
  --brand-ui: #D4AF37;
  --brand-text: #E3C565;
  --on-brand: #07111F;
  --action: var(--brand-gold);
  --action-hover: #E2C158;
  --action-active: #BE9C2D;
  --nav-bg: #050C16;
  --nav-surface: #0D1B2E;
  --nav-border: #17263B;
  --nav-text: #C5CEDA;
  --nav-text-strong: #F2F5F9;
  --nav-muted: #8C99AB;
  --nav-accent: #D4AF37;
  --nav-focus: #F0D77A;
  --positive: #4CCBB5;
  --positive-bg: #0E2E29;
  --negative: #FF8A7F;
  --negative-bg: #3A1A1C;
  --warning: #E7B955;
  --warning-bg: #3A2E10;
  --info: #78AEFF;
  --info-bg: #112A4D;
  --simulation: #5EC4D6;
  --simulation-bg: #0F2F36;
  --focus-ring: #8DB8FF;
  --overlay-scrim: rgba(0,0,0,0.64);
  --chart-1: #D4AF37;
  --chart-2: #6E9CD3;
  --chart-3: #4FB3C4;
  --chart-4: #9DB4D6;
  --chart-5: #C09CC4;
  --chart-6: #B3A394;
  --chart-bench-cdi: var(--chart-2);
  --chart-bench-ibov: var(--chart-3);
  --chart-bench-ipca: var(--chart-4);
  --chart-grid: #1F3149;
  --heat-neg: #D4AF37;
  --heat-mid: #15253B;
  --heat-pos: #6E9CD3;
  --heat-p1-bg: #1C2D47;
  --heat-p1-ink: #E8EEF7;
  --heat-p2-bg: #2F5586;
  --heat-p2-ink: #FFFFFF;
  --heat-p3-bg: #86AEDF;
  --heat-p3-ink: #0C1A2E;
  --heat-p4-bg: #B7D0F0;
  --heat-p4-ink: #0C1A2E;
  --heat-n1-bg: #3A2E14;
  --heat-n1-ink: #F5E9C8;
  --heat-n2-bg: #6E5218;
  --heat-n2-ink: #FFFFFF;
  --heat-n3-bg: #D1A63E;
  --heat-n3-ink: #1E1500;
  --heat-n4-bg: #EBC86A;
  --heat-n4-ink: #1E1500;
  --heat-z-bg: #22324A;
  --heat-z-ink: #E8EEF7;
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.40);
  --shadow-popover: 0 8px 24px rgba(0, 0, 0, 0.50);
  --shadow-modal: 0 20px 48px rgba(0, 0, 0, 0.60);
}
:root, .pt-app {
  --space-0: 0;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-10: 40px;
  --space-12: 48px;
  --space-16: 64px;
  --radius-xs: 4px;
  --radius-sm: 6px;
  --radius-md: 8px;
  --radius-lg: 12px;
  --radius-xl: 16px;
  --radius-pill: 999px;
  --control-h-comfortable: 44px;
  --control-h-compact: 32px;
  --row-h-comfortable: 48px;
  --row-h-compact: 36px;
  --target-min: 44px;
  --sidebar-w: 264px;
  --sidebar-w-rail: 72px;
  --topbar-h: 64px;
  --bottom-nav-h: 64px;
  --content-w-max: 1600px;
  --reading-w: 720px;
  --bp-mobile-l: 480px;
  --bp-tablet: 768px;
  --bp-desktop: 1024px;
  --bp-desktop-l: 1280px;
  --bp-wide: 1536px;
  --gutter-mobile: 16px;
  --gutter-tablet: 24px;
  --gutter-desktop: 32px;
  --z-sticky: 20;
  --z-nav: 30;
  --z-drawer: 40;
  --z-modal: 50;
  --z-popover: 60;
  --z-toast: 70;
  --z-tooltip: 80;
  --duration-fast: 120ms;
  --duration-normal: 180ms;
  --duration-slow: 260ms;
  --ease-standard: cubic-bezier(.2, 0, 0, 1);
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-num: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
  --font-numalt: "Roboto Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;
}
.title-xl { font-family: var(--font-sans); font-size: 32px; line-height: 40px; font-weight: 600; letter-spacing: -0.015em; }
.title-lg { font-family: var(--font-sans); font-size: 24px; line-height: 32px; font-weight: 600; letter-spacing: -0.01em; }
.title-md { font-family: var(--font-sans); font-size: 20px; line-height: 28px; font-weight: 600; }
.title-sm { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 600; }
.body-lg { font-family: var(--font-sans); font-size: 16px; line-height: 24px; font-weight: 400; }
.body { font-family: var(--font-sans); font-size: 14px; line-height: 22px; font-weight: 400; }
.body-strong { font-family: var(--font-sans); font-size: 14px; line-height: 22px; font-weight: 600; }
.body-sm { font-family: var(--font-sans); font-size: 13px; line-height: 20px; font-weight: 400; }
.label { font-family: var(--font-sans); font-size: 13px; line-height: 16px; font-weight: 500; }
.caption { font-family: var(--font-sans); font-size: 12px; line-height: 16px; font-weight: 400; }
.overline { font-family: var(--font-sans); font-size: 11px; line-height: 16px; font-weight: 600; letter-spacing: 0.06em; }
.num-kpi-xl { font-family: var(--font-num); font-size: 32px; line-height: 40px; font-weight: 500; letter-spacing: -0.01em; }
.num-kpi-lg { font-family: var(--font-num); font-size: 24px; line-height: 32px; font-weight: 500; letter-spacing: -0.005em; }
.num-md { font-family: var(--font-num); font-size: 16px; line-height: 24px; font-weight: 500; }
.num-table { font-family: var(--font-num); font-size: 13px; line-height: 20px; font-weight: 400; }
.num-table-compact { font-family: var(--font-num); font-size: 12px; line-height: 16px; font-weight: 400; }
.num-caption { font-family: var(--font-num); font-size: 12px; line-height: 16px; font-weight: 400; }
.numalt-kpi-xl { font-family: var(--font-numalt); font-size: 32px; line-height: 40px; font-weight: 500; letter-spacing: -0.01em; }
.numalt-md { font-family: var(--font-numalt); font-size: 16px; line-height: 24px; font-weight: 500; }
.numalt-table { font-family: var(--font-numalt); font-size: 13px; line-height: 20px; font-weight: 400; }
@font-face { font-family: "Inter"; src: url("fonts/Inter-Variable.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/IBMPlexMono-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/IBMPlexMono-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "IBM Plex Mono"; src: url("fonts/IBMPlexMono-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto Mono"; src: url("fonts/RobotoMono-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Roboto Mono"; src: url("fonts/RobotoMono-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
/* ===== 7.9.0 — Cor de destaque escolhida pelo usuário (Configurações → Aparência) =====
   Só troca a família de “ação” (botões, realces, gráfico 1, item ativo do menu). Cores de status (positivo, negativo, aviso) nunca mudam.
   Cada par foi conferido: texto sobre o preenchimento ≥ 4,5:1; traço de interface ≥ 3:1; texto de destaque ≥ 4,5:1 em canvas e superfícies. */
:root, .pt-app {
  --swatch-ouro: #D4AF37;
  --swatch-azul: #6FA8FF;
  --swatch-verde: #3CC8B4;
  --swatch-roxo: #A98BF0;
  --swatch-grafite: #9AA7B8;
}
[data-accent="azul"], [data-accent="azul"] .pt-app {
  --brand-gold: #6FA8FF; --brand-ui: #1F5FC4; --brand-text: #174EA6; --action-hover: #5E9BF7; --action-active: #4B8AEB;
  --nav-accent: #8DBBFF; --nav-focus: #8DBBFF; --chart-1: #1F5FC4;
}
[data-accent="azul"][data-theme="dark"], [data-accent="azul"][data-theme="dark"] .pt-app {
  --brand-gold: #6FA8FF; --brand-ui: #6FA8FF; --brand-text: #A8C8FF; --action-hover: #8DBBFF; --action-active: #5B97F0;
  --nav-accent: #8DBBFF; --nav-focus: #8DBBFF; --chart-1: #6FA8FF;
}
[data-accent="verde"], [data-accent="verde"] .pt-app {
  --brand-gold: #3CC8B4; --brand-ui: #0E7C6E; --brand-text: #0A6155; --action-hover: #30B8A4; --action-active: #25A592;
  --nav-accent: #5AD6C4; --nav-focus: #5AD6C4; --chart-1: #0E7C6E;
}
[data-accent="verde"][data-theme="dark"], [data-accent="verde"][data-theme="dark"] .pt-app {
  --brand-gold: #3CC8B4; --brand-ui: #3CC8B4; --brand-text: #7FE0D2; --action-hover: #5AD6C4; --action-active: #2FB3A0;
  --nav-accent: #5AD6C4; --nav-focus: #5AD6C4; --chart-1: #3CC8B4;
}
[data-accent="roxo"], [data-accent="roxo"] .pt-app {
  --brand-gold: #A98BF0; --brand-ui: #6B46C1; --brand-text: #55329E; --action-hover: #9A78EA; --action-active: #9068E4;
  --nav-accent: #B9A0F4; --nav-focus: #B9A0F4; --chart-1: #6B46C1;
}
[data-accent="roxo"][data-theme="dark"], [data-accent="roxo"][data-theme="dark"] .pt-app {
  --brand-gold: #A98BF0; --brand-ui: #A98BF0; --brand-text: #CBB8F7; --action-hover: #B9A0F4; --action-active: #9577E6;
  --nav-accent: #B9A0F4; --nav-focus: #B9A0F4; --chart-1: #A98BF0;
}
[data-accent="grafite"], [data-accent="grafite"] .pt-app {
  --brand-gold: #9AA7B8; --brand-ui: #4A5568; --brand-text: #374151; --action-hover: #8D9AAC; --action-active: #7F8DA0;
  --nav-accent: #B8C2D0; --nav-focus: #B8C2D0; --chart-1: #4A5568;
}
[data-accent="grafite"][data-theme="dark"], [data-accent="grafite"][data-theme="dark"] .pt-app {
  --brand-gold: #A9B4C4; --brand-ui: #A9B4C4; --brand-text: #CBD3DE; --action-hover: #B8C2D0; --action-active: #97A4B6;
  --nav-accent: #B8C2D0; --nav-focus: #B8C2D0; --chart-1: #A9B4C4;
}
