/*
 * ARQUIVO: public/assets/css/tokens.css
 * MÓDULO: Telas — as variáveis do visual novo (cores, letras, espaços, cantos, sombras, tempos).
 * FAZ: cópia fiel dos tokens do design system (pasta design-system/tokens do projeto, D126): NÃO EDITE AQUI.
 *      Para mudar uma cor ou medida, mude no design system e rode `php local/copiar_design.php`.
 *      Só o caminho das fontes foi trocado para a pasta do site (/assets/fonts).
 * RECEBE: nada. DEVOLVE: nada (é lido pelo navegador, antes do site.css).
 * DEPENDE: public/assets/fonts/*.woff2. Conferido pelo tests/Estrutura/VisualTest.php (D138).
 */
/* ── design-system/tokens/fonts.css ── */
/* Arquivos: um por família (fonte "variável", todos os pesos no mesmo arquivo). Até 22/09/2026 o
   pacote trazia o mesmo arquivo repetido com um nome por peso; a tela fica igual (reorganização de 23/09/2026).
   Google Fonts substitutes (latin subset, self-hosted). No brand font binaries were provided.
   Montserrat ≈ Topdoramax wordmark geometry · DM Sans = UI/body · JetBrains Mono = IDs/figures. */
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/dm_sans.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/dm_sans.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/dm_sans.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/dm_sans.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jetbrains_mono.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jetbrains_mono.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/montserrat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/montserrat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:700;font-display:swap;src:url('../fonts/montserrat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Montserrat';font-style:normal;font-weight:800;font-display:swap;src:url('../fonts/montserrat.woff2') format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* ── design-system/tokens/colors.css ── */
:root{
/* Brand red — sampled from app icon (#E11D48) */
--red-50:#FFF1F3;--red-100:#FFE0E6;--red-200:#FFC2CE;--red-300:#FF8FA6;--red-400:#F5537A;--red-500:#E11D48;--red-600:#C4153C;--red-700:#A01232;--red-800:#7A0F28;--red-900:#4D0A1A;
/* Ink neutrals — cool-black, base sampled from logo background (#0B0B0D) */
--ink-0:#FFFFFF;--ink-50:#F4F4F6;--ink-100:#E6E6EB;--ink-200:#C9C9D1;--ink-300:#A3A3AD;--ink-400:#7A7A85;--ink-500:#55555F;--ink-600:#3A3A42;--ink-700:#2C2C33;--ink-750:#232329;--ink-800:#1C1C21;--ink-850:#16161A;--ink-900:#111114;--ink-950:#0B0B0D;
/* Preto puro: o fundo do app, pedido do dono em 24/09/2026 (mais contraste, estilo Netflix) */
--ink-1000:#000000;
/* Semantic hues */
--green-400:#4ADE8A;--green-500:#22B868;--green-900:#0E2A1B;
--amber-400:#FFC14D;--amber-500:#F5A524;--amber-900:#2E2210;
--blue-400:#6FA6FF;--blue-500:#4C8DFF;--blue-900:#0F1D36;
--violet-400:#A78BFA;--violet-900:#1E1733;
--orange-400:#FF7A45;--orange-500:#F2561D;--orange-900:#33170C;

/* Semantic aliases — dark (default) */
--brand:var(--red-500);--brand-hover:var(--red-400);--brand-press:var(--red-600);--brand-soft:rgba(225,29,72,.14);--brand-ring:rgba(225,29,72,.45);--on-brand:#FFFFFF;
--bg-app:var(--ink-1000);--surface-sidebar:var(--ink-900);--surface-card:var(--ink-900);--surface-raised:var(--ink-850);--surface-sunken:#08080A;--surface-hover:var(--ink-800);--surface-active:var(--ink-750);--surface-overlay:rgba(5,5,7,.72);--surface-input:var(--ink-850);
--text-strong:var(--ink-0);--text-body:var(--ink-100);--text-muted:var(--ink-300);--text-subtle:var(--ink-400);--text-disabled:var(--ink-500);--text-brand:var(--red-400);--text-link:var(--red-400);
--border-subtle:rgba(255,255,255,.06);--border-default:rgba(255,255,255,.10);--border-strong:rgba(255,255,255,.18);--border-focus:var(--red-500);
--success:var(--green-500);--success-fg:var(--green-400);--success-soft:rgba(34,184,104,.14);
--warning:var(--amber-500);--warning-fg:var(--amber-400);--warning-soft:rgba(245,165,36,.14);
--danger:var(--orange-500);--danger-fg:var(--orange-400);--danger-soft:rgba(242,86,29,.14);
--info:var(--blue-500);--info-fg:var(--blue-400);--info-soft:rgba(76,141,255,.14);
--neutral-soft:rgba(255,255,255,.07);
--chart-1:var(--red-500);--chart-2:var(--blue-400);--chart-3:var(--amber-400);--chart-4:var(--green-400);--chart-5:var(--violet-400);--chart-grid:rgba(255,255,255,.06);
}
[data-theme="light"]{
--bg-app:var(--ink-50);--surface-sidebar:#FFFFFF;--surface-card:#FFFFFF;--surface-raised:#FFFFFF;--surface-sunken:var(--ink-100);--surface-hover:var(--ink-50);--surface-active:var(--ink-100);--surface-overlay:rgba(11,11,13,.45);--surface-input:#FFFFFF;
--text-strong:var(--ink-950);--text-body:var(--ink-800);--text-muted:var(--ink-500);--text-subtle:var(--ink-400);--text-disabled:var(--ink-300);--text-brand:var(--red-600);--text-link:var(--red-600);
--border-subtle:rgba(11,11,13,.06);--border-default:rgba(11,11,13,.10);--border-strong:rgba(11,11,13,.18);
--brand-soft:rgba(225,29,72,.08);--neutral-soft:rgba(11,11,13,.05);
--success-fg:#15874B;--warning-fg:#B36B00;--danger-fg:#C23E0C;--info-fg:#2563D9;
--chart-grid:rgba(11,11,13,.07);
}

/* ── design-system/tokens/typography.css ── */
:root{
--font-display:'Montserrat',ui-sans-serif,system-ui,sans-serif;
--font-sans:'DM Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',sans-serif;
--font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;
--fw-regular:400;/* @kind other */--fw-medium:500;/* @kind other */--fw-semibold:600;/* @kind other */--fw-bold:700;/* @kind other */--fw-black:800;/* @kind other */
/* Scale — marketing steps from brand kit (64/48/32/24/16/14/12) + admin steps (28/20/18/13/11) */
--fs-display:64px;--fs-h1:48px;--fs-h2:32px;--fs-h3:28px;--fs-h4:24px;--fs-h5:20px;--fs-h6:18px;--fs-body-lg:16px;--fs-body:14px;--fs-sm:13px;--fs-caption:12px;--fs-micro:11px;
--lh-tight:1.1;/* @kind other */--lh-snug:1.25;/* @kind other */--lh-normal:1.45;/* @kind other */--lh-relaxed:1.6;/* @kind other */
--ls-tight:-0.02em;/* @kind other */--ls-normal:0;/* @kind other */--ls-wide:0.04em;/* @kind other */--ls-caps:0.08em;/* @kind other */
/* Semantic */
--text-page-title:var(--fw-bold) var(--fs-h3)/var(--lh-snug) var(--font-display);/* @kind font */
--text-section-title:var(--fw-semibold) var(--fs-h6)/var(--lh-snug) var(--font-display);/* @kind font */
--text-kpi:var(--fw-bold) var(--fs-h3)/var(--lh-tight) var(--font-display);/* @kind font */
--text-ui:var(--fw-medium) var(--fs-body)/var(--lh-normal) var(--font-sans);/* @kind font */
--text-body-default:var(--fw-regular) var(--fs-body)/var(--lh-normal) var(--font-sans);/* @kind font */
--text-label:var(--fw-medium) var(--fs-sm)/var(--lh-normal) var(--font-sans);/* @kind font */
--text-overline:var(--fw-semibold) var(--fs-micro)/1 var(--font-sans);/* @kind font */
}

/* ── design-system/tokens/spacing.css ── */
:root{
--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-2xl:22px;--radius-full:999px;
--control-sm:32px;--control-md:40px;--control-lg:48px;--touch-min:44px;
--sidebar-w:248px;--sidebar-w-collapsed:72px;--topbar-h:64px;--bottomnav-h:64px;--content-max:1440px;
--bp-sm:640px;/* @kind other */--bp-md:768px;/* @kind other */--bp-lg:1024px;/* @kind other */--bp-xl:1280px;/* @kind other */
}

/* ── design-system/tokens/effects.css ── */
:root{
--shadow-sm:0 1px 2px rgba(0,0,0,.4);
--shadow-md:0 4px 16px rgba(0,0,0,.45),0 1px 2px rgba(0,0,0,.3);
--shadow-lg:0 16px 48px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.35);
--shadow-brand:0 6px 20px rgba(225,29,72,.35);
--ring-focus:0 0 0 3px var(--brand-ring);
--inset-top:inset 0 1px 0 rgba(255,255,255,.04);
--gradient-hero:linear-gradient(135deg,#4D0A1A 0%,#1A0710 45%,#0B0B0D 100%);/* @kind color */
--gradient-scrim:linear-gradient(180deg,rgba(11,11,13,0) 0%,rgba(11,11,13,.85) 100%);/* @kind color */
--gradient-brand-glow:radial-gradient(120% 90% at 100% 0%,rgba(225,29,72,.22) 0%,rgba(225,29,72,0) 60%);/* @kind color */
--blur-overlay:12px;/* @kind other */
--ease-out:cubic-bezier(.2,.8,.2,1);/* @kind other */--ease-in-out:cubic-bezier(.65,0,.35,1);/* @kind other */
--dur-fast:120ms;/* @kind other */--dur-base:180ms;/* @kind other */--dur-slow:280ms;/* @kind other */
--z-sidebar:30;/* @kind other */--z-topbar:40;/* @kind other */--z-dropdown:50;/* @kind other */--z-overlay:60;/* @kind other */--z-modal:70;/* @kind other */--z-toast:80;/* @kind other */--z-tooltip:90;/* @kind other */
}
[data-theme="light"]{
--shadow-sm:0 1px 2px rgba(11,11,13,.06);--shadow-md:0 4px 16px rgba(11,11,13,.08),0 1px 2px rgba(11,11,13,.05);--shadow-lg:0 16px 48px rgba(11,11,13,.14);--inset-top:none;
}
