/* SWC — Design tokens globais
   Extraidos do comercial.css (commit 3dff048) e promovidos para :root.
   Toda paleta em OKLCH; neutros tintados em direcao ao violeta para coesao.

   Estes tokens sao opt-in: nada se aplica por si so. Quem precisar consome
   via var(--swc-...). Cores Bootstrap continuam intactas.

   Tema (Fase C.1):
     :root                                 → tema claro (default).
     :root[data-theme="escuro"]            → tema escuro fixo.
     @media (prefers-color-scheme: dark) +
       :root[data-theme="auto"]            → escuro quando SO esta em dark.
     Bootstrap 5.3 ganha data-bs-theme via header.php.

   Convencao de cor:
     bg-app   = fundo da pagina
     surface  = card / superficie principal
     surface-2 = camada secundaria (sidebar, header de bloco)
     ink-1/2/3 = texto principal / secundario / atenuado
     line / line-soft = bordas
     violet   = identidade da marca
     blue     = acoes primarias
     orange   = promocao, alerta brando, urgencia
     ok / warn / danger / info = status semantico
*/

:root {
    /* Fundos e superficies */
    --swc-bg-app:           oklch(0.985 0.005 285);
    --swc-bg-deep:          oklch(0.965 0.008 285);
    --swc-surface:          oklch(1     0.003 285);
    --swc-surface-2:        oklch(0.975 0.006 285);
    --swc-surface-3:        oklch(0.97  0.008 285);

    /* Texto */
    --swc-ink-1:            oklch(0.22  0.020 285);
    --swc-ink-2:            oklch(0.45  0.015 285);
    --swc-ink-3:            oklch(0.62  0.012 285);

    /* Linhas */
    --swc-line:             oklch(0.92  0.012 285);
    --swc-line-soft:        oklch(0.95  0.010 285);

    /* Violeta (identidade) */
    --swc-violet:           oklch(0.55  0.18  285);
    --swc-violet-700:       oklch(0.45  0.18  285);
    --swc-violet-tint:      oklch(0.96  0.04  285);
    --swc-violet-tint-2:    oklch(0.93  0.06  285);

    /* Azul (acoes) */
    --swc-blue:             oklch(0.58  0.18  255);
    --swc-blue-700:         oklch(0.48  0.18  255);
    --swc-blue-tint:        oklch(0.96  0.04  255);

    /* Laranja (promo / urgencia / cupom) */
    --swc-orange:           oklch(0.72  0.16  55);
    --swc-orange-700:       oklch(0.60  0.16  55);
    --swc-orange-tint:      oklch(0.97  0.05  70);

    /* Status semantico */
    --swc-ok:               oklch(0.62  0.14  155);
    --swc-ok-tint:          oklch(0.95  0.05  155);
    --swc-warn:             oklch(0.72  0.14  85);
    --swc-warn-tint:        oklch(0.97  0.06  85);
    --swc-danger:           oklch(0.58  0.20  25);
    --swc-danger-tint:      oklch(0.96  0.05  25);
    --swc-info:             oklch(0.60  0.14  225);
    --swc-info-tint:        oklch(0.96  0.04  225);

    /* Canais RGB companheiros para Bootstrap/utilitarios com opacidade */
    --swc-blue-rgb:          23, 121, 225;
    --swc-violet-rgb:        107, 90, 212;
    --swc-orange-rgb:        239, 133, 46;
    --swc-ok-rgb:            38, 158, 95;
    --swc-warn-rgb:          205, 156, 31;
    --swc-danger-rgb:        215, 51, 55;
    --swc-info-rgb:          0, 143, 190;
    --swc-bg-app-rgb:        250, 250, 253;
    --swc-surface-2-rgb:     246, 246, 251;
    --swc-surface-3-rgb:     244, 244, 250;
    --swc-ink-1-rgb:         25, 25, 36;

    /* Semantica financeira */
    --swc-money-in:          var(--swc-ok);
    --swc-money-out:         var(--swc-danger);
    --swc-saldo-pos:         var(--swc-ok);
    --swc-saldo-neg:         var(--swc-danger);

    /* Gradiente de marca (violeta -> azul). Uso decorativo,
       nunca em texto. */
    --swc-grad-brand: linear-gradient(135deg, var(--swc-violet) 0%, var(--swc-blue) 100%);
    --swc-grad-brand-soft: linear-gradient(135deg, var(--swc-violet-tint) 0%, var(--swc-blue-tint) 100%);

    /* Raios */
    --swc-radius-xs: 6px;
    --swc-radius-sm: 8px;
    --swc-radius:    14px;
    --swc-radius-lg: 22px;
    --swc-radius-pill: 999px;

    /* Sombras (sutis, em violeta para coesao) */
    --swc-shadow-1: 0 1px 2px oklch(0.20 0.02 285 / 0.04), 0 1px 0 oklch(0.20 0.02 285 / 0.03);
    --swc-shadow-2: 0 4px 14px oklch(0.20 0.02 285 / 0.06);
    --swc-shadow-3: 0 18px 38px oklch(0.20 0.02 285 / 0.10);

    /* Easing (exponencial, sem bounce) */
    --swc-ease:        cubic-bezier(0.16, 1, 0.3, 1);
    --swc-duration-fast: 150ms;
    --swc-duration:      220ms;

    /* Tipografia (stack do sistema, sem display fonts) */
    --swc-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, Roboto, "Helvetica Neue", Arial, sans-serif;
    --swc-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;

    /* Escala fixa (rem) — razao ~1.2, deliberadamente discreta para produto */
    --swc-fs-xs:  0.75rem;
    --swc-fs-sm:  0.85rem;
    --swc-fs-md:  0.95rem;
    --swc-fs-lg:  1.05rem;
    --swc-fs-xl:  1.25rem;
    --swc-fs-2xl: 1.55rem;
    --swc-fs-3xl: 1.85rem;

    --swc-lh-tight: 1.2;
    --swc-lh-normal: 1.45;
    --swc-lh-relaxed: 1.6;

    --swc-fw-regular: 400;
    --swc-fw-medium: 500;
    --swc-fw-semibold: 600;
    --swc-fw-bold: 700;

    /* Espacamento — opt-in, modulos podem ignorar */
    --swc-space-1: 0.25rem;
    --swc-space-2: 0.5rem;
    --swc-space-3: 0.75rem;
    --swc-space-4: 1rem;
    --swc-space-5: 1.5rem;
    --swc-space-6: 2rem;
    --swc-space-7: 3rem;

    /* Compatibilidade com nomes legados do Financeiro UI v4.
       Os aliases acompanham automaticamente os valores do tema ativo. */
    --swc-bg:           var(--swc-bg-app);
    --swc-card:         var(--swc-surface);
    --swc-border:       var(--swc-line);
    --swc-text:         var(--swc-ink-1);
    --swc-muted:        var(--swc-ink-3);
    --swc-primary:      var(--swc-blue);
    --swc-success:      var(--swc-ok);
    --swc-warning:      var(--swc-warn);
    --swc-receita:      var(--swc-ok);
    --swc-despesa:      var(--swc-danger);
    --swc-shadow-sm:    var(--swc-shadow-1);
    --swc-shadow:       var(--swc-shadow-2);
    --swc-shadow-lg:    var(--swc-shadow-3);
    --swc-transition:   all var(--swc-duration) var(--swc-ease);
}

/* ───── Tema escuro ─────────────────────────────────────────────────────
   Dark navy/grafite tintado para violeta. Chroma reduzida nas extremidades
   pra evitar "neon". Identidade violet/blue permanece — mais saturada e
   um pouco mais clara, ja que vai sobre fundo escuro.                  */

:root[data-theme="escuro"] {
    --swc-bg-app:           oklch(0.18  0.025 285);
    --swc-bg-deep:          oklch(0.15  0.025 285);
    --swc-surface:          oklch(0.22  0.025 285);
    --swc-surface-2:        oklch(0.25  0.025 285);
    --swc-surface-3:        oklch(0.28  0.025 285);

    --swc-ink-1:            oklch(0.95  0.012 285);
    --swc-ink-2:            oklch(0.78  0.015 285);
    --swc-ink-3:            oklch(0.62  0.015 285);

    --swc-line:             oklch(0.32  0.025 285);
    --swc-line-soft:        oklch(0.28  0.025 285);

    --swc-violet:           oklch(0.72  0.16  285);
    --swc-violet-700:       oklch(0.80  0.14  285);
    --swc-violet-tint:      oklch(0.30  0.06  285);
    --swc-violet-tint-2:    oklch(0.35  0.08  285);

    --swc-blue:             oklch(0.72  0.14  255);
    --swc-blue-700:         oklch(0.80  0.12  255);
    --swc-blue-tint:        oklch(0.30  0.05  255);

    --swc-orange:           oklch(0.78  0.14  55);
    --swc-orange-700:       oklch(0.84  0.12  55);
    --swc-orange-tint:      oklch(0.32  0.06  60);

    --swc-ok:               oklch(0.74  0.13  155);
    --swc-ok-tint:          oklch(0.28  0.06  155);
    --swc-warn:             oklch(0.80  0.13  85);
    --swc-warn-tint:        oklch(0.30  0.07  85);
    --swc-danger:           oklch(0.70  0.16  25);
    --swc-danger-tint:      oklch(0.32  0.08  25);
    --swc-info:             oklch(0.72  0.12  225);
    --swc-info-tint:        oklch(0.30  0.06  225);

    --swc-blue-rgb:          101, 167, 250;
    --swc-violet-rgb:        156, 147, 255;
    --swc-orange-rgb:        251, 157, 89;
    --swc-ok-rgb:            94, 195, 134;
    --swc-warn-rgb:          228, 183, 80;
    --swc-danger-rgb:        242, 113, 106;
    --swc-info-rgb:          57, 180, 221;
    --swc-bg-app-rgb:        16, 16, 28;
    --swc-surface-2-rgb:     32, 32, 45;
    --swc-surface-3-rgb:     39, 39, 53;
    --swc-ink-1-rgb:         237, 237, 246;

    --swc-grad-brand: linear-gradient(135deg, var(--swc-violet) 0%, var(--swc-blue) 100%);
    --swc-grad-brand-soft: linear-gradient(135deg, oklch(0.32 0.08 285) 0%, oklch(0.32 0.06 255) 100%);

    --swc-shadow-1: 0 1px 2px oklch(0.08 0.02 285 / 0.5),  0 1px 0 oklch(0.05 0.02 285 / 0.4);
    --swc-shadow-2: 0 4px 14px oklch(0.05 0.02 285 / 0.55);
    --swc-shadow-3: 0 18px 38px oklch(0.05 0.02 285 / 0.7);
}

@media (prefers-color-scheme: dark) {
    :root[data-theme="auto"] {
        --swc-bg-app:           oklch(0.18  0.025 285);
        --swc-bg-deep:          oklch(0.15  0.025 285);
        --swc-surface:          oklch(0.22  0.025 285);
        --swc-surface-2:        oklch(0.25  0.025 285);
        --swc-surface-3:        oklch(0.28  0.025 285);

        --swc-ink-1:            oklch(0.95  0.012 285);
        --swc-ink-2:            oklch(0.78  0.015 285);
        --swc-ink-3:            oklch(0.62  0.015 285);

        --swc-line:             oklch(0.32  0.025 285);
        --swc-line-soft:        oklch(0.28  0.025 285);

        --swc-violet:           oklch(0.72  0.16  285);
        --swc-violet-700:       oklch(0.80  0.14  285);
        --swc-violet-tint:      oklch(0.30  0.06  285);
        --swc-violet-tint-2:    oklch(0.35  0.08  285);

        --swc-blue:             oklch(0.72  0.14  255);
        --swc-blue-700:         oklch(0.80  0.12  255);
        --swc-blue-tint:        oklch(0.30  0.05  255);

        --swc-orange:           oklch(0.78  0.14  55);
        --swc-orange-700:       oklch(0.84  0.12  55);
        --swc-orange-tint:      oklch(0.32  0.06  60);

        --swc-ok:               oklch(0.74  0.13  155);
        --swc-ok-tint:          oklch(0.28  0.06  155);
        --swc-warn:             oklch(0.80  0.13  85);
        --swc-warn-tint:        oklch(0.30  0.07  85);
        --swc-danger:           oklch(0.70  0.16  25);
        --swc-danger-tint:      oklch(0.32  0.08  25);
        --swc-info:             oklch(0.72  0.12  225);
        --swc-info-tint:        oklch(0.30  0.06  225);

        --swc-blue-rgb:          101, 167, 250;
        --swc-violet-rgb:        156, 147, 255;
        --swc-orange-rgb:        251, 157, 89;
        --swc-ok-rgb:            94, 195, 134;
        --swc-warn-rgb:          228, 183, 80;
        --swc-danger-rgb:        242, 113, 106;
        --swc-info-rgb:          57, 180, 221;
        --swc-bg-app-rgb:        16, 16, 28;
        --swc-surface-2-rgb:     32, 32, 45;
        --swc-surface-3-rgb:     39, 39, 53;
        --swc-ink-1-rgb:         237, 237, 246;

        --swc-grad-brand-soft: linear-gradient(135deg, oklch(0.32 0.08 285) 0%, oklch(0.32 0.06 255) 100%);

        --swc-shadow-1: 0 1px 2px oklch(0.08 0.02 285 / 0.5),  0 1px 0 oklch(0.05 0.02 285 / 0.4);
        --swc-shadow-2: 0 4px 14px oklch(0.05 0.02 285 / 0.55);
        --swc-shadow-3: 0 18px 38px oklch(0.05 0.02 285 / 0.7);
    }
}

/* Compatibilidade Bootstrap 5.3 - chrome e paleta SWC.
   Pares cor+rgb mantem utilitarios solidos e com opacidade coerentes. */
:root,
[data-bs-theme="light"],
[data-bs-theme="dark"] {
    --bs-primary: var(--swc-blue);
    --bs-primary-rgb: var(--swc-blue-rgb);
    --bs-success: var(--swc-ok);
    --bs-success-rgb: var(--swc-ok-rgb);
    --bs-danger: var(--swc-danger);
    --bs-danger-rgb: var(--swc-danger-rgb);
    --bs-warning: var(--swc-warn);
    --bs-warning-rgb: var(--swc-warn-rgb);
    --bs-info: var(--swc-info);
    --bs-info-rgb: var(--swc-info-rgb);
    --bs-body-bg: var(--swc-bg-app);
    --bs-body-bg-rgb: var(--swc-bg-app-rgb);
    --bs-body-color: var(--swc-ink-1);
    --bs-body-color-rgb: var(--swc-ink-1-rgb);
    --bs-emphasis-color: var(--swc-ink-1);
    --bs-secondary-color: var(--swc-ink-2);
    --bs-secondary-bg: var(--swc-surface-2);
    --bs-secondary-bg-rgb: var(--swc-surface-2-rgb);
    --bs-tertiary-color: var(--swc-ink-3);
    --bs-tertiary-bg: var(--swc-surface-3);
    --bs-tertiary-bg-rgb: var(--swc-surface-3-rgb);
    --bs-border-color: var(--swc-line);
}
