:root {
    --orb-1-color: #10B981;
    --orb-2-color: #38BDF8;
}

[v-cloak] { display: none !important; }
html { scroll-behavior: smooth; }

body {
    font-family: 'Inter', sans-serif;
    min-height: 100vh;
    overflow-x: hidden;
    transition: background-color 0.35s ease, color 0.35s ease;
}

body.financist-dark { background-color: #0B0F19; color: #F8FAFC; color-scheme: dark; }
body.financist-light { background-color: #F1F5F9; color: #0F172A; color-scheme: light; }

.tracking-tight { letter-spacing: -0.05em; }
.v-application { background: transparent !important; }

/* Animated Background Orbs */
.orb {
    position: fixed; border-radius: 50%; filter: blur(100px); opacity: 0.15;
    z-index: -1; pointer-events: none; transition: background 0.5s ease;
}
.orb-1 { width: 600px; height: 600px; background: var(--orb-1-color); top: -200px; left: -200px; animation: float 15s ease-in-out infinite; }
.orb-2 { width: 700px; height: 700px; background: var(--orb-2-color); bottom: -300px; right: -300px; animation: float 18s ease-in-out infinite reverse; }
body.financist-light .orb { opacity: 0.12; }

@keyframes float {
    0%, 100% { transform: translate(0, 0) scale(1); }
    50% { transform: translate(50px, -30px) scale(1.1); }
}

/* ======================================================================
   NUCLEAR INVARIANT HEADER & FOOTER
   Forces all text, icons, and internal Vuetify wrappers to stay white.
   ====================================================================== */
.glass-header, .glass-footer {
    background: rgba(11, 15, 25, 0.95) !important;
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.glass-footer { border-top: 1px solid rgba(255, 255, 255, 0.08); border-bottom: none; }

/* Target Vuetify's internal wrappers with high specificity to beat theme engine */
body .glass-header .v-btn__content,
body .glass-footer .v-btn__content,
body .glass-header .v-icon,
body .glass-footer .v-icon,
body .glass-header .v-list-item-title,
body .glass-footer .v-list-item-title {
    color: #FFFFFF !important;
    fill: #FFFFFF !important;
    opacity: 1 !important;
}

body .glass-header .v-list-item-subtitle,
body .glass-footer .v-list-item-subtitle {
    color: #94A3B8 !important;
    opacity: 1 !important;
}

/* Glass Surfaces & Cards */
.glass-card, .glass-menu {
    backdrop-filter: blur(16px) saturate(180%);
    -webkit-backdrop-filter: blur(16px) saturate(180%);
}
.glass-card {
    background: rgba(22, 30, 46, 0.60) !important;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 24px !important;
    box-shadow: 0 10px 40px 0 rgba(0, 0, 0, 0.4) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, border-color 0.3s ease;
}
.glass-card:hover { transform: translateY(-4px); box-shadow: 0 15px 50px 0 rgba(0, 0, 0, 0.5) !important; }

.glass-menu { background: rgba(11, 15, 25, 0.98) !important; border: 1px solid rgba(255, 255, 255, 0.08); }
.glass-menu .v-list-item--active { background: rgba(255, 255, 255, 0.08); }

/* Light Mode Content Only */
body.financist-light .v-main { background: transparent !important; }
body.financist-light .glass-card {
    background: rgba(255, 255, 255, 0.78) !important;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 10px 40px 0 rgba(15, 23, 42, 0.05) !important;
}
body.financist-light .glass-card:hover { box-shadow: 0 15px 50px 0 rgba(15, 23, 42, 0.08) !important; }
body.financist-light .glass-card, body.financist-light .v-main { color: #1E293B; }
body.financist-light .text-white { color: #0F172A !important; }
body.financist-light .text-grey, body.financist-light .text-grey-lighten-1 { color: #475569 !important; }
body.financist-light .v-field__input { color: #0F172A !important; }
body.financist-light .v-label { color: #475569 !important; opacity: 0.85; }
body.financist-light .v-field__outline { color: rgba(15, 23, 42, 0.15) !important; }
body.financist-light .v-field--focused .v-field__outline {
    border-color: var(--v-theme-primary) !important;
    box-shadow: 0 0 0 1px var(--v-theme-primary) !important;
}

/* Utilities */
.text-emerald, .text-primary { color: rgb(var(--v-theme-primary)) !important; }
.text-sky, .text-secondary { color: rgb(var(--v-theme-secondary)) !important; }
.bg-emerald { background-color: rgb(var(--v-theme-primary)) !important; }
.v-field__input { color: #F8FAFC !important; font-size: 1rem !important; }
.v-label { color: #94A3B8 !important; opacity: 0.8; }
.v-field--focused .v-label { color: rgb(var(--v-theme-primary)) !important; opacity: 1; }
.v-field__outline { color: rgba(255, 255, 255, 0.1) !important; }
.v-field--focused .v-field__outline {
    border-color: rgb(var(--v-theme-primary)) !important;
    box-shadow: 0 0 0 1px rgb(var(--v-theme-primary)) !important;
}

@media (max-width: 960px) { .orb { opacity: 0.10; } }