:root {
    /* Transitions */
    --t-fast: 0.12s ease;
    --t-base: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    --t-slow: 0.35s cubic-bezier(0.4, 0, 0.2, 1);

    --font-display: "Outfit", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
    --font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    --font-mono: var(--font-sans);
    --text-xs:   0.72rem;
    --text-sm:   0.8125rem;
    --text-base: 1rem;
    --text-lg:   1.125rem;
    --text-xl:   1.375rem;
    --text-2xl:  1.75rem;
    --text-3xl:  2.25rem;

    /* Radii */
    --r-xs:   3px;
    --r-sm:   6px;
    --r-md:   10px;
    --r-lg:   14px;
    --r-xl:   20px;
    --r-full: 9999px;

    /* Pure Monochromatic VIP Tokens (Zero Color Carnaval) */
    --accent:          var(--ucm-text-primary, #ffffff);
    --accent-light:    var(--ucm-text-primary, #f1f5f9);
    --accent-dim:      var(--ucm-text-secondary, #94a3b8);
    --accent-muted:    var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
    --accent-glow:     none;
    --accent-gradient: none;
    --accent-gradient-vivid: none;
    --violet:          var(--ucm-text-primary, #ffffff);
    --purple:          var(--ucm-text-primary, #ffffff);
    --ucm-purple:      var(--ucm-text-primary, #ffffff);
    --ucm-purple-light:var(--ucm-text-secondary, #cbd5e1);
    --ucm-purple-hover:var(--ucm-text-primary, #ffffff);
    --ucm-purple-subtle:var(--ucm-bg-card, #111827);
    --ucm-purple-border:var(--ucm-border, #1f293d);

    /* Executive Midnight Coal Buttons (Tom B - Master Tokens #1E2837) */
    --ucm-btn-primary-bg:       linear-gradient(180deg, #212C3D 0%, #192330 100%);
    --ucm-btn-primary-border:   #2E3D52;
    --ucm-btn-primary-text:     #FFFFFF;
    --ucm-btn-primary-hover:    linear-gradient(180deg, #263345 0%, #1C2635 100%);
    --ucm-btn-primary-shadow:   0 1px 3px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12);

    --btn-primary-bg:           var(--ucm-btn-primary-bg);
    --btn-primary-color:        var(--ucm-btn-primary-text, #FFFFFF);
    --btn-primary-border:       var(--ucm-btn-primary-border, #2E3D52);
    --btn-primary-hover-bg:     var(--ucm-btn-primary-hover);
    --btn-primary-hover-shadow: var(--ucm-btn-primary-shadow);

    --success:       var(--ucm-text-primary, #e2e8f0);
    --success-light: var(--ucm-text-primary, #f1f5f9);
    --success-muted: var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
    --warning:       var(--ucm-text-secondary, #94a3b8);
    --warning-light: var(--ucm-text-primary, #e2e8f0);
    --warning-muted: var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
    --danger:        var(--ucm-text-secondary, #94a3b8);
    --danger-light:  var(--ucm-text-primary, #e2e8f0);
    --danger-muted:  var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
    --info:          var(--ucm-text-secondary, #94a3b8);
    --info-muted:    var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
    --cyan:          var(--ucm-text-primary, #e2e8f0);
    --cyan-muted:    var(--ucm-bg-hover, rgba(255, 255, 255, 0.05));
}

/* ==========================================================
   DARK THEME (Default)
   ========================================================== */
:root, [data-theme="dark"] {
    --void:     hsl(228, 20%, 5%);
    --base:     hsl(228, 18%, 7%);
    --surface:  hsl(228, 16%, 10%);
    --elevated: hsl(228, 14%, 13%);
    --raised:   hsl(228, 13%, 16%);
    --hover:    hsl(228, 14%, 19%);
    --selected: #1e293b;

    --glass:        hsla(228, 22%, 12%, 0.72);
    --glass-strong: hsla(228, 22%, 14%, 0.88);

    --text-primary:   hsl(220, 22%, 96%);
    --text-secondary: hsl(220, 14%, 66%);
    --text-muted:     hsl(220, 10%, 40%);
    --text-disabled:  hsl(220, 8%, 26%);

    --border:        hsla(220, 22%, 100%, 0.07);
    --border-strong: hsla(220, 22%, 100%, 0.14);
    --border-accent: rgba(59, 130, 246, 0.35);

    --shadow-sm:   0 1px 3px hsla(228, 28%, 2%, 0.6);
    --shadow-md:   0 4px 20px hsla(228, 28%, 2%, 0.65);
    --shadow-lg:   0 8px 40px hsla(228, 28%, 2%, 0.75);
    --shadow-xl:   0 20px 60px hsla(228, 28%, 2%, 0.82);
    --shadow-card: 0 1px 0 hsla(220,100%,100%,0.04) inset, 0 4px 20px hsla(228, 28%, 2%, 0.65);

    --ucm-bg:              hsl(228, 18%, 7%);
    --ucm-surface-1:       hsl(228, 16%, 10%);
    --ucm-surface-2:       hsl(228, 14%, 13%);
    --ucm-surface-card:    hsla(228, 22%, 12%, 0.72);
    --ucm-surface-hover:   hsla(228, 22%, 18%, 0.88);
    --ucm-border:          hsla(220, 22%, 100%, 0.07);
    --ucm-border-subtle:   hsla(220, 22%, 100%, 0.04);
    --ucm-border-glow:     rgba(59, 130, 246, 0.35);
    --ucm-text-primary:    hsl(220, 22%, 96%);
    --ucm-text-secondary:  hsl(220, 14%, 66%);
    --ucm-text-muted:      hsl(220, 10%, 40%);
    --ucm-purple:          var(--ucm-text-primary, #f1f5f9);
    --ucm-purple-light:    var(--ucm-text-secondary, #94a3b8);
    --ucm-cyan:            var(--ucm-text-primary, #f1f5f9);
    --ucm-blue:            var(--ucm-text-secondary, #94a3b8);
    --ucm-emerald:         var(--ucm-text-primary, #f1f5f9);
    --ucm-amber:           var(--ucm-text-secondary, #94a3b8);
    --ucm-rose:            var(--ucm-text-secondary, #94a3b8);
    --ucm-shadow:          0 8px 32px hsla(228, 28%, 2%, 0.72);
    --ucm-table-hover:     hsla(220, 22%, 100%, 0.03);
    --ucm-tab-bar-bg:      hsla(228, 22%, 8%, 0.94);
    --ucm-tab-active-bg:   hsl(228, 18%, 17%);

    /* Primary Key Identifier (Info Mais Importante em Azul Executivo) */
    --ucm-primary-id:           #38bdf8;
    --ucm-primary-id-hover:     #7dd3fc;

    --btn-primary-bg:           #22293B;
    --btn-primary-color:        #FFFFFF;
    --btn-primary-border:       #3E4A63;
    --btn-primary-hover-bg:     #2E374D;
    --btn-primary-hover-shadow: 0 4px 16px rgba(34, 41, 59, 0.45);

    color-scheme: dark;
}

/* ==========================================================
   LIGHT & CLEAN THEME (Universal 100% Crisp Light Mode)
   ========================================================== */
[data-theme="light"],
[data-theme="clean"] {
    --void:     #ffffff;
    --base:     #f8fafc;
    --surface:  #ffffff;
    --elevated: #ffffff;
    --raised:   #f1f5f9;
    --hover:    #f8fafc;
    --selected: #f5f3ff;

    /* Primary Key Identifier (Info Mais Importante em Azul Executivo) */
    --ucm-primary-id:           #2563eb;
    --ucm-primary-id-hover:     #1d4ed8;

    --glass:        rgba(255, 255, 255, 0.92);
    --glass-strong: rgba(255, 255, 255, 0.98);

    --text-primary:   #0f172a;
    --text-secondary: #475569;
    --text-muted:     #64748b;
    --text-disabled:  #94a3b8;

    --border:        #e2e8f0;
    --border-strong: #cbd5e1;
    --border-accent: #cbd5e1;

    --shadow-sm:   0 1px 2px rgba(0, 0, 0, 0.05);
    --shadow-md:   0 4px 12px rgba(0, 0, 0, 0.08);
    --shadow-lg:   0 8px 24px rgba(0, 0, 0, 0.12);
    --shadow-xl:   0 20px 40px rgba(0, 0, 0, 0.15);
    --shadow-card: 0 2px 8px rgba(0, 0, 0, 0.05);

    --ucm-bg:              #f8fafc;
    --ucm-surface-1:       #ffffff;
    --ucm-surface-2:       #f1f5f9;
    --ucm-surface-card:    #ffffff;
    --ucm-surface-hover:   #f8fafc;
    --ucm-border:          #e2e8f0;
    --ucm-border-subtle:   #f1f5f9;
    --ucm-border-glow:     rgba(37, 99, 235, 0.15);
    --ucm-text-primary:    #0f172a;
    --ucm-text-secondary:  #475569;
    --ucm-text-muted:      #64748b;
    --ucm-purple:          var(--ucm-text-primary, #0f172a);
    --ucm-purple-light:    var(--ucm-text-secondary, #475569);
    --ucm-purple-hover:    var(--ucm-text-primary, #0f172a);
    --ucm-purple-subtle:   var(--ucm-bg-card, #ffffff);
    --ucm-purple-border:   var(--ucm-border, #e2e8f0);
    --ucm-cyan:            var(--ucm-text-secondary, #475569);
    --ucm-blue:            var(--ucm-text-secondary, #475569);
    --ucm-emerald:         var(--ucm-text-primary, #0f172a);
    --ucm-amber:           var(--ucm-text-secondary, #475569);
    --ucm-rose:            var(--ucm-text-secondary, #475569);
    --ucm-shadow:          0 4px 20px rgba(0, 0, 0, 0.06);
    --ucm-table-hover:     rgba(0, 0, 0, 0.02);
    --ucm-tab-bar-bg:      #f8fafc;
    --ucm-tab-active-bg:   #ffffff;

    --btn-primary-bg:           var(--ucm-btn-primary-bg, linear-gradient(180deg, #212C3D 0%, #192330 100%));
    --btn-primary-color:        var(--ucm-btn-primary-text, #ffffff);
    --btn-primary-border:       var(--ucm-btn-primary-border, #2E3D52);
    --btn-primary-hover-bg:     var(--ucm-btn-primary-hover, linear-gradient(180deg, #263345 0%, #1C2635 100%));
    --btn-primary-hover-shadow: var(--ucm-btn-primary-shadow, 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.12));

    color-scheme: light;
}

/* Universal Light & Clean Mode High-Contrast Overrides */
[data-theme="light"] .text-slate-100,
[data-theme="clean"] .text-slate-100,
[data-theme="light"] .text-slate-200,
[data-theme="clean"] .text-slate-200 {
    color: #0f172a !important;
}
[data-theme="light"] .text-slate-300,
[data-theme="clean"] .text-slate-300 {
    color: #334155 !important;
}
[data-theme="light"] .text-slate-400,
[data-theme="clean"] .text-slate-400 {
    color: #64748b !important;
}
[data-theme="light"] .text-slate-500,
[data-theme="clean"] .text-slate-500 {
    color: #94a3b8 !important;
}
[data-theme="light"] .text-cyan,
[data-theme="clean"] .text-cyan,
[data-theme="light"] .text-emerald,
[data-theme="clean"] .text-emerald,
[data-theme="light"] .text-amber,
[data-theme="clean"] .text-amber,
[data-theme="light"] .text-rose,
[data-theme="clean"] .text-rose {
    color: var(--ucm-text-secondary, #475569) !important;
}

/* Background utilities in Clean/Light mode */
[data-theme="light"] .bg-slate-900,
[data-theme="clean"] .bg-slate-900,
[data-theme="light"] .bg-slate-950,
[data-theme="clean"] .bg-slate-950 {
    background-color: #ffffff !important;
    border-color: #e2e8f0 !important;
    color: #0f172a !important;
}
[data-theme="light"] .bg-slate-800,
[data-theme="clean"] .bg-slate-800 {
    background-color: #f8fafc !important;
    border-color: #e2e8f0 !important;
}
[data-theme="light"] .border-slate-800,
[data-theme="clean"] .border-slate-800,
[data-theme="light"] .border-slate-700,
[data-theme="clean"] .border-slate-700 {
    border-color: #e2e8f0 !important;
}

