/* ==========================================================================
   ENGENHARIA GLOBAL DE TEMAS DO MAVAJ - BOOTSTRAP 5.3
   (VERSÃO 3.0 - SÓ TOKENS, SEM COMPONENTES 💎)
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. TEMA LIGHT (Soft Light Warm - Confortável para Longas Jornadas)
   -------------------------------------------------------------------------- */
:root,
[data-bs-theme="light"] {
    color-scheme: light;
    --bs-secondary-color: #555C63;
    --bs-secondary-color-rgb: 85, 92, 99;
    --bs-link-color-rgb: 56, 98, 125;
    --bs-link-hover-color-rgb: 43, 82, 105;
    --bs-emphasis-color: var(--bs-body-color);
    --bs-emphasis-color-rgb: var(--bs-body-color-rgb);
    --bs-tertiary-color: var(--mavaj-text-muted);
    --bs-tertiary-color-rgb: 92, 98, 104;
    --bs-primary-text-emphasis: var(--bs-link-hover-color);
    --bs-primary-bg-subtle: var(--mavaj-surface-2);
    --bs-primary-border-subtle: var(--bs-primary);
    --bs-focus-ring-color: var(--bs-link-color);
    --bs-form-valid-color: var(--mavaj-status-success-color);

    /* Fundo geral */
    --bs-body-bg: #F3F2EF;
    --bs-body-bg-rgb: 243, 242, 239;

    /* Texto */
    --bs-body-color: #292D32;
    --bs-body-color-rgb: 41, 45, 50;

    /* Fundos Secundários */
    --bs-secondary-bg: #FAF9F7;
    --bs-secondary-bg-rgb: 250, 249, 247;
    --bs-tertiary-bg: #FFFFFF;
    --bs-tertiary-bg-rgb: 255, 255, 255;

    /* Bordas */
    --bs-border-color: #D8D6D1;
    --bs-border-color-translucent: rgba(41, 45, 50, 0.12);

    /* Cor Primária - AZUL JAVA */
    --bs-primary: #5382A1;
    --bs-primary-rgb: 83, 130, 161;
    --bs-link-color: #38627D;
    --bs-link-hover-color: #2B5269;

    /* Cor de Destaque - LARANJA JAVA */
    --mavaj-accent: #F89820;
    --mavaj-accent-rgb: 248, 152, 32;

    /* Tokens de Profundidade - LIGHT */
    --mavaj-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.04);
    --mavaj-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.06), 0 1px 2px rgba(0, 0, 0, 0.04);
    --mavaj-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.04);
    --mavaj-shadow-lg: 0 8px 24px rgba(41, 45, 50, 0.09), 0 2px 6px rgba(41, 45, 50, 0.04);
    --mavaj-shadow-xl: 0 16px 40px rgba(41, 45, 50, 0.12), 0 4px 12px rgba(41, 45, 50, 0.05);

    /* Tokens de Superfície */
    --mavaj-surface-0: var(--bs-body-bg);
    --mavaj-surface-1: var(--bs-secondary-bg);
    --mavaj-surface-2: #EAE8E3;
    --mavaj-surface-3: #E1DED8;

    /* Tokens de Marca */
    --mavaj-primary: var(--bs-primary);
    --mavaj-primary-text: var(--bs-link-color);
    --mavaj-primary-hover: var(--bs-link-color);
    --mavaj-primary-active: var(--bs-link-hover-color);

    --mavaj-accent-text: #995000;
    --mavaj-on-accent: #111111;
    --mavaj-accent-hover: #DD850D;
    --mavaj-accent-active: #C47508;

    /* Avatar da navbar */
    --mavaj-avatar-bg: var(--mavaj-surface-2);
    --mavaj-avatar-color: var(--mavaj-primary-text);
    --mavaj-avatar-border: var(--bs-primary);
    --mavaj-avatar-shadow: var(--mavaj-shadow-sm);
    --mavaj-avatar-hover-bg: var(--mavaj-surface-3);
    --mavaj-avatar-interactive-border: var(--bs-primary);
    --mavaj-avatar-focus-ring: var(--mavaj-primary-text);

    /* Tokens de Texto */
    --mavaj-text-primary: var(--bs-body-color);
    --mavaj-text-secondary: var(--bs-secondary-color);
    --mavaj-text-muted: #5C6268;

    /* Tokens de Borda */
    --mavaj-border: var(--bs-border-color);
    --mavaj-border-light: #E5E3DF;

    /* Tokens de Estado */
    --mavaj-state-hover: rgba(var(--bs-body-color-rgb), 0.025);
    --mavaj-state-selected: rgba(83, 130, 161, 0.12);
    --mavaj-state-danger: var(--mavaj-status-error-bg);
    --mavaj-state-disabled: rgba(0, 0, 0, 0.04);

    /* Tokens de Status */
    --mavaj-status-success-bg: rgba(76, 175, 80, 0.12);
    --mavaj-status-success-color: #236526;
    --mavaj-status-success-border: rgba(76, 175, 80, 0.25);

    --mavaj-status-warning-bg: rgba(255, 152, 0, 0.12);
    --mavaj-status-warning-color: #934600;
    --mavaj-status-warning-border: rgba(255, 152, 0, 0.25);

    --mavaj-status-error-bg: rgba(244, 67, 54, 0.12);
    --mavaj-status-error-color: #A21F1F;
    --mavaj-status-error-border: rgba(244, 67, 54, 0.25);

    --mavaj-status-info-bg: rgba(33, 150, 243, 0.12);
    --mavaj-status-info-color: #1459A6;
    --mavaj-status-info-border: rgba(33, 150, 243, 0.25);

    --mavaj-status-neutral-bg: rgba(158, 158, 158, 0.12);
    --mavaj-status-neutral-color: #585858;
    --mavaj-status-neutral-border: rgba(158, 158, 158, 0.25);
}

/* Isola os tokens que o Bootstrap já define no Dark, inclusive em :root. */
:root:not([data-bs-theme="dark"]),
[data-bs-theme="light"] {
    --bs-warning-text-emphasis: var(--mavaj-status-warning-color);
    --bs-form-valid-border-color: var(--bs-form-valid-color);
    --bs-form-invalid-color: var(--mavaj-status-error-color);
    --bs-form-invalid-border-color: var(--bs-form-invalid-color);
    --mavaj-control-border: #7C7B76;
    --bs-box-shadow-lg: var(--mavaj-shadow-lg);
}

/* --------------------------------------------------------------------------
   2. TEMA DARK (Dark Paper - Carvão Neutro Levemente Quente)
   -------------------------------------------------------------------------- */
[data-bs-theme="dark"] {
    /* Reaplica os valores Dark quando o tema está dentro de uma superfície Light. */
    --bs-box-shadow-lg: var(--mavaj-shadow-lg);
    --mavaj-control-border: color-mix(in srgb, var(--mavaj-text-muted) 75%, var(--bs-secondary-bg));
    color-scheme: dark;
    --bs-secondary-color: #B7B5AE;
    --bs-secondary-color-rgb: 183, 181, 174;
    --bs-link-color-rgb: 157, 180, 191;
    --bs-link-hover-color-rgb: 196, 209, 214;
    --bs-emphasis-color: var(--bs-body-color);
    --bs-emphasis-color-rgb: var(--bs-body-color-rgb);
    --bs-tertiary-color: var(--mavaj-text-muted);
    --bs-tertiary-color-rgb: 171, 168, 159;
    --bs-primary-text-emphasis: var(--bs-link-hover-color);
    --bs-primary-bg-subtle: var(--mavaj-surface-2);
    --bs-primary-border-subtle: var(--bs-primary);
    --bs-warning: var(--mavaj-accent);
    --bs-warning-rgb: var(--mavaj-accent-rgb);
    --bs-focus-ring-color: var(--bs-primary);
    --bs-success-text-emphasis: var(--mavaj-status-success-color);
    --bs-info-text-emphasis: var(--mavaj-status-info-color);
    --bs-danger-text-emphasis: var(--mavaj-status-error-color);
    --bs-form-valid-color: var(--mavaj-status-success-color);
    --bs-form-valid-border-color: var(--bs-form-valid-color);
    --bs-form-invalid-color: var(--mavaj-status-error-color);
    --bs-form-invalid-border-color: var(--bs-form-invalid-color);
    --bs-warning-text-emphasis: var(--mavaj-status-warning-color);
    /* Fundo geral */
    --bs-body-bg: #191918;
    --bs-body-bg-rgb: 25, 25, 24;

    /* Texto */
    --bs-body-color: #E8E5DF;
    --bs-body-color-rgb: 232, 229, 223;

    /* Fundos Secundários */
    --bs-secondary-bg: #242421;
    --bs-secondary-bg-rgb: 36, 36, 33;
    --bs-tertiary-bg: #2E2E2A;
    --bs-tertiary-bg-rgb: 46, 46, 42;

    /* Bordas */
    --bs-border-color: #41413D;
    --bs-border-color-translucent: rgba(232, 229, 223, 0.1);

    /* Azul complementar nas interações; textos usam uma variação mais clara. */
    --bs-primary: #7195AA;
    --bs-primary-rgb: 113, 149, 170;
    --bs-link-color: #9DB4BF;
    --bs-link-hover-color: #C4D1D6;

    /* Destaque dos componentes; a identidade institucional do logo é preservada. */
    --mavaj-accent: #C68B45;
    --mavaj-accent-rgb: 198, 139, 69;

    /* Tokens de Profundidade - DARK */
    --mavaj-shadow-xs: 0 1px 2px rgba(0, 0, 0, 0.16);
    --mavaj-shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.22), 0 1px 2px rgba(0, 0, 0, 0.16);
    --mavaj-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.28), 0 2px 4px rgba(0, 0, 0, 0.16);
    --mavaj-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.24), 0 2px 6px rgba(0, 0, 0, 0.16);
    --mavaj-shadow-xl: 0 16px 40px rgba(0, 0, 0, 0.28), 0 4px 12px rgba(0, 0, 0, 0.18);

    --mavaj-surface-0: var(--bs-body-bg);
    --mavaj-surface-1: var(--bs-secondary-bg);
    --mavaj-surface-2: var(--bs-tertiary-bg);
    --mavaj-surface-3: #383833;

    --mavaj-primary: #45677B;
    --mavaj-primary-text: var(--bs-link-color);
    --mavaj-primary-hover: var(--bs-link-hover-color);
    --mavaj-primary-active: #D7E1E5;

    --mavaj-accent-text: #DBA66B;
    --mavaj-on-accent: #191918;
    --mavaj-accent-hover: #D39A57;
    --mavaj-accent-active: #B67C37;

    /* Avatar da navbar */
    --mavaj-avatar-bg: var(--mavaj-surface-2);
    --mavaj-avatar-color: var(--bs-body-color);
    --mavaj-avatar-border: var(--bs-border-color);
    --mavaj-avatar-shadow: var(--mavaj-shadow-sm);
    --mavaj-avatar-hover-bg: var(--mavaj-surface-3);
    --mavaj-avatar-interactive-border: var(--bs-link-hover-color);
    --mavaj-avatar-focus-ring: var(--mavaj-primary-text);

    --mavaj-text-primary: var(--bs-body-color);
    --mavaj-text-secondary: var(--bs-secondary-color);
    /* Mantém 4,5:1 inclusive nos atalhos sobre a superfície elevada do Dark Paper. */
    --mavaj-text-muted: #ABA89F;

    --mavaj-border: var(--bs-border-color);
    --mavaj-border-light: #33332F;

    --mavaj-state-hover: rgba(var(--bs-body-color-rgb), 0.04);
    --mavaj-state-selected: rgba(var(--bs-body-color-rgb), 0.08);
    --mavaj-state-danger: var(--mavaj-status-error-bg);
    --mavaj-state-disabled: rgba(255, 255, 255, 0.04);

    --mavaj-status-success-bg: rgba(166, 194, 154, 0.10);
    --mavaj-status-success-color: #A6C29A;
    --mavaj-status-success-border: rgba(166, 194, 154, 0.3);

    --mavaj-status-warning-bg: rgba(var(--mavaj-accent-rgb), 0.10);
    --mavaj-status-warning-color: var(--mavaj-accent-text);
    --mavaj-status-warning-border: rgba(var(--mavaj-accent-rgb), 0.3);

    --mavaj-status-error-bg: rgba(219, 170, 162, 0.10);
    --mavaj-status-error-color: #DBAAA2;
    --mavaj-status-error-border: rgba(219, 170, 162, 0.3);

    --mavaj-status-info-bg: rgba(165, 189, 200, 0.10);
    --mavaj-status-info-color: #A5BDC8;
    --mavaj-status-info-border: rgba(165, 189, 200, 0.3);

    --mavaj-status-neutral-bg: rgba(183, 181, 174, 0.10);
    --mavaj-status-neutral-color: var(--bs-secondary-color);
    --mavaj-status-neutral-border: rgba(183, 181, 174, 0.3);
}
