:root,
[data-theme-mode="light"] {
    --theme-brand: #0c6b43;
    --theme-brand-dark: #084d32;
    --theme-brand-rgb: 12, 107, 67;
    --theme-ink: #17221d;
    --theme-muted: #607068;
    --theme-surface: #f3f7f4;
    --theme-panel: #ffffff;
    --theme-border: #dce6e0;
    --theme-shadow: rgba(20, 52, 37, .12);
}

[data-theme-mode="dark"] {
    --theme-brand: #34b97b;
    --theme-brand-dark: #18734d;
    --theme-brand-rgb: 52, 185, 123;
    --theme-ink: #eef8f2;
    --theme-muted: #a8bbb1;
    --theme-surface: #111814;
    --theme-panel: #1a2520;
    --theme-border: #30443a;
    --theme-shadow: rgba(0, 0, 0, .35);
}

[data-theme-mode="neutral"] {
    --theme-brand: #59636e;
    --theme-brand-dark: #3e4750;
    --theme-brand-rgb: 89, 99, 110;
    --theme-ink: #252a2e;
    --theme-muted: #697078;
    --theme-surface: #eff0f1;
    --theme-panel: #fafafa;
    --theme-border: #d4d7da;
    --theme-shadow: rgba(45, 50, 55, .12);
}

html, body { min-height: 100%; }
body { background: var(--theme-surface); color: var(--theme-ink); }
.theme-navbar, .theme-footer, .card, .dropdown-menu { background-color: var(--theme-panel) !important; color: var(--theme-ink); border-color: var(--theme-border) !important; }
.theme-muted, .text-secondary { color: var(--theme-muted) !important; }

.navbar-brand-mark {
    display: inline-grid;
    width: 2rem;
    height: 2rem;
    place-items: center;
    border-radius: .65rem;
    background: var(--theme-brand);
    color: #fff;
    font-weight: 800;
}

.auth-shell {
    min-height: 100vh;
    background: radial-gradient(circle at 15% 15%, rgba(var(--theme-brand-rgb), .18), transparent 35rem), linear-gradient(145deg, var(--theme-panel), var(--theme-surface));
}

.auth-card { width: min(100%, 28rem); border: 1px solid var(--theme-border); border-radius: 1.25rem; box-shadow: 0 1.25rem 4rem var(--theme-shadow); }
.btn-brand { --bs-btn-color: #fff; --bs-btn-bg: var(--theme-brand); --bs-btn-border-color: var(--theme-brand); --bs-btn-hover-color: #fff; --bs-btn-hover-bg: var(--theme-brand-dark); --bs-btn-hover-border-color: var(--theme-brand-dark); }
.btn-theme-control { color: var(--theme-ink); background: var(--theme-panel); border: 1px solid var(--theme-border); }
.theme-select { width: auto; min-width: 6.5rem; }
.theme-dropdown { width: min(18rem, calc(100vw - 2rem)); }
.account-menu-button { display: flex; align-items: center; gap: .5rem; max-width: 15rem; }
.account-avatar { display: inline-grid; width: 1.5rem; height: 1.5rem; place-items: center; border-radius: 50%; background: var(--theme-brand); color: #fff; font-size: .75rem; font-weight: 700; }
.account-dropdown { width: min(19rem, calc(100vw - 2rem)); }
.theme-control-label { margin-right: .25rem; }
.dashboard-hero { border: 0; border-radius: 1.25rem; background: linear-gradient(135deg, var(--theme-brand-dark), var(--theme-brand)); color: #fff; }

@media (max-width: 575.98px) {
    .auth-card .card-body, .dashboard-hero .card-body { padding: 1.5rem !important; }
    .guest-toolbar { left: 0; justify-content: center; flex-wrap: wrap; }
    .theme-select { min-width: 5.5rem; max-width: 7rem; }
}
