:root {
    --nova-bg-900: #0a1721;
    --nova-bg-800: #12273a;
    --nova-bg-700: #18354c;
    --nova-surface-600: #1d415b;
    --nova-card-500: #1f4b64;
    --nova-card-400: linear-gradient(155deg, rgba(31,75,100,0.92) 0%, rgba(12,41,60,0.94) 100%);
    --nova-overlay: rgba(11,29,45,0.72);
    --nova-border: rgba(89,151,220,0.32);
    --nova-border-soft: rgba(69,178,163,0.3);
    --nova-text-primary: #ecf4ff;
    --nova-text-secondary: #a7bbd3;
    --nova-text-muted: #6f849b;
    --nova-accent: #5997dc;
    --nova-accent-soft: #45b2a3;
    --nova-accent-strong: #74caff;
    --nova-warning: #ffc374;
    --nova-success: #4ad8b0;
    --nova-danger: #ff6682;
    --nova-shadow-lg: 0 28px 60px rgba(4, 10, 16, 0.7);
    --nova-shadow-md: 0 18px 40px rgba(4, 10, 16, 0.55);
    --nova-shadow-sm: 0 12px 28px rgba(4, 10, 16, 0.4);
    --nova-blur: 24px;
    --nova-radius-lg: 26px;
    --nova-radius-md: 20px;
    --nova-radius-sm: 14px;
}

body.theme-dark {
    background: linear-gradient(150deg, #0c1c2a 0%, #123b53 55%, #081621 100%);
    color: var(--nova-text-primary);
    font-family: "Raleway", "Segoe UI", sans-serif;
    letter-spacing: 0.1px;
    -webkit-font-smoothing: antialiased;
}

body.theme-dark ::selection {
    background: rgba(89,151,220,0.35);
    color: #ffffff;
}

body.theme-dark a {
    color: var(--nova-accent);
    transition: color 0.25s ease, opacity 0.25s ease;
}

body.theme-dark a:hover,
body.theme-dark a:focus {
    color: #7cb4ff;
    text-decoration: none;
}

body.theme-dark .text-muted,
body.theme-dark .txt-tertiary,
body.theme-dark .font-sm {
    color: var(--nova-text-secondary) !important;
}

body.theme-dark .card,
body.theme-dark .nova-card,
body.theme-dark .shadow-card {
    background: var(--nova-card-400);
    border: 1px solid rgba(89,151,220,0.28);
    border-radius: var(--nova-radius-lg);
    box-shadow: var(--nova-shadow-md);
    color: var(--nova-text-primary);
}

body.theme-dark .card .card-title,
body.theme-dark h1,
body.theme-dark h2,
body.theme-dark h3,
body.theme-dark h4,
body.theme-dark h5,
body.theme-dark h6 {
    color: var(--nova-text-primary);
    font-weight: 600;
}

body.theme-dark .card hr,
body.theme-dark hr {
    border-color: rgba(255,255,255,0.08);
}

body.theme-dark p,
body.theme-dark span,
body.theme-dark li {
    color: var(--nova-text-secondary);
}

/* Profile details: prevent dark value text from custom.css */
body.theme-dark.page-profile-details ul.data>li>span {
    color: var(--nova-text-secondary);
}

body.theme-dark .btn,
body.theme-dark .btn:focus {
    border-radius: var(--nova-radius-sm);
    letter-spacing: 0.35px;
    font-weight: 600;
    transition: all 0.25s ease;
}

body.theme-dark .btn-primary,
body.theme-dark .btn-dark,
body.theme-dark .btn-outline-primary:hover {
    background: linear-gradient(140deg, rgba(89,151,220,0.92) 0%, rgba(69,178,163,0.82) 100%);
    border-color: transparent;
    color: #ffffff;
    box-shadow: 0 18px 40px rgba(89,151,220,0.4);
}

body.theme-dark .btn-outline-primary {
    border-color: rgba(89,151,220,0.6);
    color: var(--nova-accent);
    background: transparent;
}

body.theme-dark .btn-outline-primary:hover {
    color: #ffffff;
}

body.theme-dark .badge,
body.theme-dark .chip,
body.theme-dark .label {
    background: rgba(89,151,220,0.22);
    color: var(--nova-text-primary);
    border-radius: 999px;
    border: 1px solid rgba(69,178,163,0.35);
}

body.theme-dark .form-control,
body.theme-dark .custom-select,
body.theme-dark input,
body.theme-dark textarea {
    background-color: rgba(14,27,38,0.55);
    border: 1px solid rgba(89,151,220,0.32);
    color: var(--nova-text-primary);
    border-radius: var(--nova-radius-sm);
}

body.theme-dark .form-control:focus,
body.theme-dark .custom-select:focus,
body.theme-dark input:focus,
body.theme-dark textarea:focus {
    background: rgba(12,30,44,0.72);
    border-color: rgba(69,178,163,0.65);
    box-shadow: 0 0 0 0.2rem rgba(89,151,220,0.25);
    color: var(--nova-text-primary);
}

body.theme-dark .pagination .page-link {
    background: rgba(17,36,52,0.7);
    border-color: rgba(89,151,220,0.3);
    color: var(--nova-text-secondary);
}

body.theme-dark .pagination .page-link:hover,
body.theme-dark .pagination .page-item.active .page-link {
    background: linear-gradient(135deg, var(--nova-accent) 0%, var(--nova-accent-soft) 100%);
    color: #ffffff;
    border-color: transparent;
    box-shadow: 0 12px 26px rgba(69,178,163,0.35);
}

body.theme-dark .modal-content,
body.theme-dark .dropdown-menu,
body.theme-dark .language_dropdown .dropdown-content {
    background: rgba(13,33,49,0.95);
    border: 1px solid rgba(89,151,220,0.32);
    box-shadow: var(--nova-shadow-lg);
}

body.theme-dark .table {
    color: var(--nova-text-secondary);
}

body.theme-dark .table thead th {
    border-bottom: 1px solid rgba(89,151,220,0.35);
    color: var(--nova-text-primary);
}

body.theme-dark .table td,
body.theme-dark .table th {
    border-top: 1px solid rgba(89,151,220,0.12);
}

body.theme-dark .alert {
    border-radius: var(--nova-radius-md);
    border: 1px solid rgba(255,255,255,0.08);
    background: rgba(10,23,33,0.9);
    color: var(--nova-text-primary);
}

body.theme-dark .topbar {
    background: linear-gradient(135deg, rgba(10,23,33,0.92), rgba(31,75,100,0.92));
    border-bottom: 1px solid rgba(89,151,220,0.28);
    color: var(--nova-text-secondary);
    backdrop-filter: blur(var(--nova-blur));
}

body.theme-dark .navbar {
    background: linear-gradient(140deg, rgba(10,23,33,0.95), rgba(31,75,100,0.9)) !important;
    border-bottom: 1px solid rgba(89,151,220,0.3);
    box-shadow: var(--nova-shadow-sm);
}

body.theme-dark .navbar .nav-link,
body.theme-dark .navbar-brand,
body.theme-dark .navbar-toggler {
    color: var(--nova-text-secondary) !important;
    font-weight: 500;
}

body.theme-dark .navbar .nav-link.active,
body.theme-dark .navbar .nav-link:hover {
    color: #ffffff !important;
}

body.theme-dark .navbar-toggler-icon,
body.theme-dark .navbar-toggler {
    border-color: rgba(89,151,220,0.35);
}

body.theme-dark .language_dropdown button,
body.theme-dark .language_dropdown .dropdown-content a {
    color: var(--nova-text-secondary);
}

body.theme-dark .language_dropdown .dropdown-content a:hover {
    background: rgba(89,151,220,0.18);
    color: #ffffff;
}

/* utility helpers */
body.theme-dark .glass-card {
    background: rgba(13,27,38,0.65);
    border-radius: var(--nova-radius-lg);
    border: 1px solid rgba(89,151,220,0.18);
    backdrop-filter: blur(var(--nova-blur));
    box-shadow: var(--nova-shadow-lg);
}

body.theme-dark .accent-text {
    color: var(--nova-accent);
}

body.theme-dark .accent-chip {
    background: rgba(69,178,163,0.18);
    border: 1px solid rgba(69,178,163,0.4);
    color: #e3fff7;
}

body.theme-dark .surface-muted {
    background: rgba(12,28,40,0.6);
    border: 1px solid rgba(89,151,220,0.16);
    border-radius: var(--nova-radius-md);
}

body.theme-dark .shadow-soft {
    box-shadow: var(--nova-shadow-sm);
}

body.theme-dark .gradient-pill {
    background: linear-gradient(120deg, rgba(89,151,220,0.55), rgba(69,178,163,0.6));
    box-shadow: 0 12px 34px rgba(69,178,163,0.4);
    border-radius: 999px;
    color: #ffffff;
}

@media (max-width: 768px) {
    body.theme-dark {
        font-size: 15px;
    }
}
