/* =========================================================
   Tokens do CapriCar

   Linguagem visual: sóbria e corporativa. Superfícies sólidas
   (sem vidro/blur), cor da marca reservada para ação e estado
   selecionado, sombras curtas, cantos moderados e movimento
   mínimo. Nenhum componente deve declarar cor solta - tudo sai
   daqui, e é isso que mantém os dois temas homogêneos.

   Tudo abaixo é TOKEN SEMÂNTICO - nomeado pela FUNÇÃO que exerce
   (--primary, --danger, --surface), não pela cor. É o que impede a
   volta dos bugs de contraste que um nome como --vermelho não
   evitaria por si só.

   Os valores de :root são o tema claro (o padrão - ver
   js/theme-init.js). css/themes.css redefine as cores para o
   tema escuro; escalas (raio, tipografia, espaçamento, movimento)
   são as mesmas nos dois temas.
   ========================================================= */
:root{
    color-scheme:light;

    /* ---- Marca Capricórnio (miniguia oficial de marca) ----
       Azul Principal (Pantone 286 C), Azul Escuro (2756 C),
       Azul Claro (284 C) e Verde (555 C). Laranja/rosa não fazem
       parte da paleta institucional. */
    --brand:#0033a0;

    /* ---- Tipografia ----
       Source Sans é a fonte de apoio oficial da marca (a
       institucional, Facit, é paga e não tem CDN). */
    --font-sans:'Source Sans 3','Source Sans Pro','Segoe UI',system-ui,-apple-system,sans-serif;
    --font-heading:var(--font-sans);

    /* ---- Superfícies e traços ----
       bg-1 = fundo da página; surface = cartões; surface-2 =
       blocos aninhados dentro de um cartão; surface-hover =
       linha/opção sob o mouse. */
    --bg-1:#f4f5f7;
    --surface:#ffffff;
    --surface-solid:#ffffff;
    --surface-2:#f8f9fa;
    --surface-hover:#f1f3f5;
    --surface-sunken:#f1f3f5;
    --border:#e1e4e8;
    --border-strong:#c9ced5;

    /* ---- Texto ---- */
    --text:#1a2230;
    --text-muted:#5a6472;
    --text-subtle:#687180;
    --on-primary:#ffffff;

    /* ---- Ação primária ----
       --primary é FUNDO de botão (texto branco por cima): o Azul
       Principal da marca, 10.7:1 com branco. --accent é cor de
       TEXTO/ÍCONE de destaque (links, abas ativas por sublinhado). */
    --primary:#0033a0;
    --primary-hover:#002a85;
    --primary-strong:#151f6d;
    --primary-soft:rgba(0,51,160,.07);
    --primary-soft-strong:rgba(0,51,160,.12);
    --accent:#0033a0;
    --focus-ring:rgba(0,51,160,.30);

    /* ---- Estados semânticos ----
       --x é a cor SÓLIDA (ícone, bolinha, borda de destaque);
       --x-text é o TEXTO sobre --x-surface. */
    --info:#2c5aa0;
    --info-text:#1d3f78;
    --info-surface:#eef3fb;
    --info-border:#c8d6ee;

    --success:#28724f;
    --success-text:#1e5a3e;
    --success-surface:#edf6f1;
    --success-border:#bfdccc;

    --warning:#a26a00;
    --warning-text:#6f4a00;
    --warning-surface:#fdf6e6;
    --warning-border:#ecd7a4;

    --danger:#b42318;
    --danger-text:#912018;
    --danger-surface:#fdf1f0;
    --danger-border:#f0c7c2;
    --danger-solid:#b42318;
    --danger-solid-hover:#991d14;

    --neutral-surface:#f1f3f5;
    --neutral-border:#dde1e6;
    --neutral-text:#434c58;

    /* ---- Overlay de modal ---- */
    --overlay:rgba(17,24,39,.45);

    /* ---- Sombras ----
       Curtas e neutras. sm = cartão; md = elemento flutuante
       pequeno (dropdown); lg = modal/painel. */
    --shadow-sm:0 1px 2px rgba(16,24,40,.05);
    --shadow-md:0 4px 12px rgba(16,24,40,.08),0 1px 3px rgba(16,24,40,.05);
    --shadow-lg:0 16px 40px rgba(16,24,40,.14),0 2px 6px rgba(16,24,40,.06);

    /* ---- Forma ---- */
    --radius-lg:12px;
    --radius-md:10px;
    --radius-sm:8px;
    --radius-xs:6px;
    --radius-pill:999px;

    /* ---- Movimento ---- */
    --ease:cubic-bezier(.2,0,0,1);
    --dur-fast:120ms;
    --dur:180ms;

    /* Escala tipográfica. --fs-2xs é o piso legível (13px) - nenhum texto
       com informação real deveria usar algo menor que isso. */
    --fs-2xs:0.8125rem;
    --fs-xs:0.875rem;
    --fs-sm:0.9375rem;
    --fs-base:1rem;
    --fs-md:1.125rem;
    --fs-xl:1.4rem;
  }
