/**
 * DKVirtual LimeSurvey Theme — Brand Stylesheet
 * Navy (#0a1d3d) + Gold (#ffad00) palette with Nexa/NexaText typography.
 * Supports light mode (default) and dark mode (OS preference + data attribute).
 */

/* ==========================================================================
   1. Font Loading (@font-face)
   ========================================================================== */

@font-face {
    font-family: 'Nexa';
    src: url('https://fonts.dkvirtualcdn.com/nexa-regular.woff2') format('woff2'),
         url('https://fonts.dkvirtualcdn.com/nexa-regular.woff') format('woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'Nexa';
    src: url('https://fonts.dkvirtualcdn.com/nexa-bold.woff2') format('woff2'),
         url('https://fonts.dkvirtualcdn.com/nexa-bold.woff') format('woff');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: 'NexaText';
    src: url('https://fonts.dkvirtualcdn.com/nexatext-light.woff2') format('woff2'),
         url('https://fonts.dkvirtualcdn.com/nexatext-light.woff') format('woff');
    font-style: normal;
    font-weight: 300;
    font-display: swap;
}

@font-face {
    font-family: 'NexaText';
    src: url('https://fonts.dkvirtualcdn.com/nexatext-regular.woff2') format('woff2'),
         url('https://fonts.dkvirtualcdn.com/nexatext-regular.woff') format('woff');
    font-style: normal;
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: 'NexaText';
    src: url('https://fonts.dkvirtualcdn.com/nexatext-bold.woff2') format('woff2'),
         url('https://fonts.dkvirtualcdn.com/nexatext-bold.woff') format('woff');
    font-style: normal;
    font-weight: 700;
    font-display: swap;
}

/* ==========================================================================
   2. Light Mode — CSS Variable Overrides
   ========================================================================== */

:root {
    /* Bootstrap overrides */
    --bs-primary: #0a1d3d;
    --bs-primary-rgb: 10, 29, 61;
    --bs-secondary: #ffad00;
    --bs-secondary-rgb: 255, 173, 0;
    --bs-body-font-family: 'NexaText', Arial, Helvetica, sans-serif;
    --bs-body-color: #0a1d3d;
    --bs-body-bg: #f5f5f5;
    --bs-link-color: #52627c;
    --bs-link-hover-color: #414e63;
    --bs-border-color: #b0b0b0;

    /* DKV custom properties */
    --dkv-navy: #0a1d3d;
    --dkv-gold: #ffad00;
    --dkv-gold-hover: #ffbd32;
    --dkv-midnight: #071029;
    --dkv-whale-blue: #52627c;
    --dkv-marble-blue: #414e63;
    --dkv-electric-blue: #0968f6;
    --dkv-sky-blue: #73859f;
    --dkv-grey-1: #f5f5f5;
    --dkv-grey-2: #ebebeb;
    --dkv-grey-3: #dcdcdc;
    --dkv-border: #b0b0b0;
    --dkv-success: #417505;
    --dkv-error: #cc0000;
    --dkv-card-bg: #ffffff;
    --dkv-input-bg: #ffffff;
    --dkv-input-border: #b0b0b0;
    --dkv-text-muted: #52627c;
}

/* ==========================================================================
   3. Dark Mode
   ========================================================================== */

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) {
        --bs-body-bg: #0f1318;
        --bs-body-color: #ffffff;
        --bs-primary: #d4a020;
        --bs-primary-rgb: 212, 160, 32;
        --bs-secondary: #52627c;
        --bs-secondary-rgb: 82, 98, 124;
        --bs-link-color: #73859f;
        --bs-link-hover-color: #8d9db5;
        --bs-border-color: #2a3040;

        --dkv-card-bg: #1a1f28;
        --dkv-input-bg: #1a1f28;
        --dkv-input-border: #3a4050;
        --dkv-text-muted: #cccccc;

        color-scheme: dark;
    }
}

[data-thememode="dark"] {
    --bs-body-bg: #0f1318;
    --bs-body-color: #ffffff;
    --bs-primary: #d4a020;
    --bs-primary-rgb: 212, 160, 32;
    --bs-secondary: #52627c;
    --bs-secondary-rgb: 82, 98, 124;
    --bs-link-color: #73859f;
    --bs-link-hover-color: #8d9db5;
    --bs-border-color: #2a3040;

    --dkv-card-bg: #1a1f28;
    --dkv-input-bg: #1a1f28;
    --dkv-input-border: #3a4050;
    --dkv-text-muted: #cccccc;

    color-scheme: dark;
}

/* ==========================================================================
   4. Typography
   ========================================================================== */

body {
    font-family: 'NexaText', Arial, Helvetica, sans-serif;
    font-weight: 400;
}

h1, h2, h3 {
    font-family: 'Nexa', Arial, Helvetica, sans-serif;
    font-weight: 700;
}

h4, h5, h6 {
    font-family: 'NexaText', Arial, Helvetica, sans-serif;
    font-weight: 700;
}

/* ==========================================================================
   5. Navigation Bar
   ========================================================================== */

.navbar,
#survey-nav.navbar {
    background-color: var(--dkv-navy) !important;
    border-bottom: 3px solid var(--dkv-gold);
}

.navbar .navbar-brand,
.navbar .navbar-brand:hover {
    color: #ffffff;
}

.navbar .navbar-toggler {
    color: #ffffff;
    border-color: rgba(255, 255, 255, 0.25);
}

.navbar .navbar-toggler .ri-more-fill {
    color: #ffffff;
}

.navbar .logo-container .logo {
    max-height: 36px;
    width: auto;
}

/* ==========================================================================
   6. Buttons
   ========================================================================== */

.btn-primary,
.btn-default {
    background-color: var(--dkv-gold);
    border-color: var(--dkv-gold);
    color: var(--dkv-navy);
    font-weight: 600;
    border-radius: 6px;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-default:hover,
.btn-default:focus {
    background-color: var(--dkv-gold-hover);
    border-color: var(--dkv-gold-hover);
    color: var(--dkv-navy);
}

.btn-primary:active,
.btn-default:active {
    background-color: #e69e00;
    border-color: #e69e00;
    color: var(--dkv-navy);
}

.btn-secondary {
    background-color: var(--dkv-navy);
    border-color: var(--dkv-navy);
    color: #ffffff;
    font-weight: 600;
    border-radius: 6px;
}

.btn-secondary:hover,
.btn-secondary:focus {
    background-color: #0d2550;
    border-color: #0d2550;
    color: #ffffff;
}

/* Dark mode buttons */
@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .btn-primary,
    body:not([data-thememode="light"]) .btn-default {
        background-color: #d4a020;
        border-color: #d4a020;
        color: var(--dkv-navy);
    }
    body:not([data-thememode="light"]) .btn-primary:hover,
    body:not([data-thememode="light"]) .btn-default:hover {
        background-color: #e0ad30;
        border-color: #e0ad30;
    }
    body:not([data-thememode="light"]) .btn-secondary {
        background-color: #2a3040;
        border-color: #3a4050;
        color: #ffffff;
    }
    body:not([data-thememode="light"]) .btn-secondary:hover {
        background-color: #3a4050;
        border-color: #4a5060;
    }
}

[data-thememode="dark"] .btn-primary,
[data-thememode="dark"] .btn-default {
    background-color: #d4a020;
    border-color: #d4a020;
    color: var(--dkv-navy);
}
[data-thememode="dark"] .btn-primary:hover,
[data-thememode="dark"] .btn-default:hover {
    background-color: #e0ad30;
    border-color: #e0ad30;
}
[data-thememode="dark"] .btn-secondary {
    background-color: #2a3040;
    border-color: #3a4050;
    color: #ffffff;
}
[data-thememode="dark"] .btn-secondary:hover {
    background-color: #3a4050;
    border-color: #4a5060;
}

/* ==========================================================================
   7. Progress Bar
   ========================================================================== */

.progress {
    height: 4px;
    background-color: var(--dkv-grey-2);
    border-radius: 2px;
    overflow: hidden;
}

.progress-bar {
    background-color: var(--dkv-gold);
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .progress {
        background-color: #2a3040;
    }
    body:not([data-thememode="light"]) .progress-bar {
        background-color: #d4a020;
    }
}

[data-thememode="dark"] .progress {
    background-color: #2a3040;
}
[data-thememode="dark"] .progress-bar {
    background-color: #d4a020;
}

/* ==========================================================================
   8. Question Containers
   ========================================================================== */

.question-container {
    background-color: var(--dkv-card-bg);
    border-radius: 6px;
    border-left: 4px solid var(--dkv-gold);
    box-shadow: 0 1px 3px rgba(10, 29, 61, 0.08);
    padding: 1.25rem;
    margin-bottom: 1rem;
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .question-container {
        background-color: #1a1f28;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
        border-left-color: #d4a020;
    }
}

[data-thememode="dark"] .question-container {
    background-color: #1a1f28;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
    border-left-color: #d4a020;
}

/* ==========================================================================
   9. Form Inputs
   ========================================================================== */

.form-control,
.form-select {
    background-color: var(--dkv-input-bg);
    border: 1px solid var(--dkv-input-border);
    border-radius: 6px;
    color: var(--bs-body-color);
}

.form-control:focus,
.form-select:focus {
    border-color: var(--dkv-navy);
    box-shadow: 0 0 0 0.2rem rgba(10, 29, 61, 0.15);
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .form-control,
    body:not([data-thememode="light"]) .form-select {
        background-color: #1a1f28;
        border-color: #3a4050;
        color: #ffffff;
    }
    body:not([data-thememode="light"]) .form-control:focus,
    body:not([data-thememode="light"]) .form-select:focus {
        border-color: #4a6090;
        box-shadow: 0 0 0 0.2rem rgba(9, 104, 246, 0.2);
    }
    body:not([data-thememode="light"]) .form-control::placeholder {
        color: #888;
    }
}

[data-thememode="dark"] .form-control,
[data-thememode="dark"] .form-select {
    background-color: #1a1f28;
    border-color: #3a4050;
    color: #ffffff;
}
[data-thememode="dark"] .form-control:focus,
[data-thememode="dark"] .form-select:focus {
    border-color: #4a6090;
    box-shadow: 0 0 0 0.2rem rgba(9, 104, 246, 0.2);
}
[data-thememode="dark"] .form-control::placeholder {
    color: #888;
}

/* ==========================================================================
   10. Alerts
   ========================================================================== */

.alert {
    border-radius: 6px;
    border-left-width: 4px;
    border-left-style: solid;
}

.alert-danger {
    border-left-color: var(--dkv-error);
}

.alert-success {
    border-left-color: var(--dkv-success);
}

.alert-warning {
    border-left-color: var(--dkv-gold);
}

.alert-info {
    border-left-color: var(--dkv-electric-blue);
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .alert {
        background-color: #1a1f28;
        color: #ffffff;
        border-color: #2a3040;
    }
    body:not([data-thememode="light"]) .alert-danger {
        border-left-color: #e04040;
    }
    body:not([data-thememode="light"]) .alert-success {
        border-left-color: #50a010;
    }
    body:not([data-thememode="light"]) .alert-warning {
        border-left-color: #d4a020;
    }
    body:not([data-thememode="light"]) .alert-info {
        border-left-color: #3080f0;
    }
}

[data-thememode="dark"] .alert {
    background-color: #1a1f28;
    color: #ffffff;
    border-color: #2a3040;
}
[data-thememode="dark"] .alert-danger {
    border-left-color: #e04040;
}
[data-thememode="dark"] .alert-success {
    border-left-color: #50a010;
}
[data-thememode="dark"] .alert-warning {
    border-left-color: #d4a020;
}
[data-thememode="dark"] .alert-info {
    border-left-color: #3080f0;
}

/* ==========================================================================
   11. Links
   ========================================================================== */

a {
    color: var(--dkv-whale-blue);
    text-decoration: none;
}

a:hover {
    color: var(--dkv-marble-blue);
    text-decoration: underline;
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) a {
        color: var(--dkv-sky-blue);
    }
    body:not([data-thememode="light"]) a:hover {
        color: #8d9db5;
    }
}

[data-thememode="dark"] a {
    color: var(--dkv-sky-blue);
}
[data-thememode="dark"] a:hover {
    color: #8d9db5;
}

/* ==========================================================================
   12. Footer
   ========================================================================== */

.dkv-footer {
    border-top: 2px solid var(--dkv-gold);
    padding: 1rem 0;
    margin-top: 2rem;
    text-align: center;
}

.dkv-footer-links {
    font-size: 0.85rem;
    color: var(--dkv-whale-blue);
}

.dkv-footer-links a {
    color: var(--dkv-whale-blue);
}

.dkv-footer-links a:hover {
    color: var(--dkv-marble-blue);
}

.dkv-footer-separator {
    margin: 0 0.5rem;
    color: var(--dkv-border);
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .dkv-footer {
        border-top-color: #d4a020;
    }
    body:not([data-thememode="light"]) .dkv-footer-links,
    body:not([data-thememode="light"]) .dkv-footer-links a {
        color: #8d9db5;
    }
    body:not([data-thememode="light"]) .dkv-footer-links a:hover {
        color: #a0b0c8;
    }
    body:not([data-thememode="light"]) .dkv-footer-separator {
        color: #3a4050;
    }
}

[data-thememode="dark"] .dkv-footer {
    border-top-color: #d4a020;
}
[data-thememode="dark"] .dkv-footer-links,
[data-thememode="dark"] .dkv-footer-links a {
    color: #8d9db5;
}
[data-thememode="dark"] .dkv-footer-links a:hover {
    color: #a0b0c8;
}
[data-thememode="dark"] .dkv-footer-separator {
    color: #3a4050;
}

/* ==========================================================================
   13. Spacing & Layout
   ========================================================================== */

#outerframeContainer {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

/* ==========================================================================
   14. Dark Mode — Body & General
   ========================================================================== */

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) {
        background-color: #0f1318;
        color: #ffffff;
    }
    body:not([data-thememode="light"]) .dropdown-menu {
        background-color: #1a1f28;
        border-color: #2a3040;
    }
    body:not([data-thememode="light"]) .dropdown-menu .dropdown-item {
        color: #ffffff;
    }
    body:not([data-thememode="light"]) .dropdown-menu .dropdown-item:hover,
    body:not([data-thememode="light"]) .dropdown-menu .dropdown-item:focus {
        background-color: #252b38;
        color: #ffffff;
    }
    body:not([data-thememode="light"]) .dropdown-header {
        color: #cccccc;
    }
    body:not([data-thememode="light"]) .text-muted {
        color: #cccccc !important;
    }
    body:not([data-thememode="light"]) .card {
        background-color: #1a1f28;
        border-color: #2a3040;
    }
}

[data-thememode="dark"] {
    background-color: #0f1318;
    color: #ffffff;
}
[data-thememode="dark"] .dropdown-menu {
    background-color: #1a1f28;
    border-color: #2a3040;
}
[data-thememode="dark"] .dropdown-menu .dropdown-item {
    color: #ffffff;
}
[data-thememode="dark"] .dropdown-menu .dropdown-item:hover,
[data-thememode="dark"] .dropdown-menu .dropdown-item:focus {
    background-color: #252b38;
    color: #ffffff;
}
[data-thememode="dark"] .dropdown-header {
    color: #cccccc;
}
[data-thememode="dark"] .text-muted {
    color: #cccccc !important;
}
[data-thememode="dark"] .card {
    background-color: #1a1f28;
    border-color: #2a3040;
}

/* ==========================================================================
   15. Checkbox & Radio Overrides (DKV Colors)
   ========================================================================== */

.checkbox-item input[type="checkbox"]:checked + label::before,
.radio-item input[type="radio"]:checked + label::before {
    border-color: var(--dkv-gold);
    background-color: var(--dkv-gold);
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .checkbox-item input[type="checkbox"]:checked + label::before,
    body:not([data-thememode="light"]) .radio-item input[type="radio"]:checked + label::before {
        border-color: #d4a020;
        background-color: #d4a020;
    }
    body:not([data-thememode="light"]) .checkbox-item label,
    body:not([data-thememode="light"]) .radio-item label {
        color: #ffffff;
    }
}

[data-thememode="dark"] .checkbox-item input[type="checkbox"]:checked + label::before,
[data-thememode="dark"] .radio-item input[type="radio"]:checked + label::before {
    border-color: #d4a020;
    background-color: #d4a020;
}
[data-thememode="dark"] .checkbox-item label,
[data-thememode="dark"] .radio-item label {
    color: #ffffff;
}

/* ==========================================================================
   16. Table Styling
   ========================================================================== */

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .table {
        --bs-table-bg: #1a1f28;
        --bs-table-color: #ffffff;
        --bs-table-border-color: #2a3040;
        --bs-table-striped-bg: #1f2530;
        --bs-table-hover-bg: #252b38;
    }
}

[data-thememode="dark"] .table {
    --bs-table-bg: #1a1f28;
    --bs-table-color: #ffffff;
    --bs-table-border-color: #2a3040;
    --bs-table-striped-bg: #1f2530;
    --bs-table-hover-bg: #252b38;
}

/* ==========================================================================
   17. Landing Page
   ========================================================================== */

.dkv-landing {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: calc(100vh - 80px);
    padding: 2rem 1rem;
}

.dkv-landing-content {
    text-align: center;
}

.dkv-landing-spinner {
    margin-bottom: 1.25rem;
}

.dkv-spinner {
    width: 36px;
    height: 36px;
    border: 3px solid var(--dkv-grey-2);
    border-top-color: var(--dkv-gold);
    border-radius: 50%;
    margin: 0 auto;
    animation: dkv-spin 0.8s linear infinite;
}

@keyframes dkv-spin {
    to { transform: rotate(360deg); }
}

.dkv-landing-status {
    font-size: 0.95rem;
    color: var(--dkv-whale-blue);
    margin: 0;
}

@media (prefers-color-scheme: dark) {
    body:not([data-thememode="light"]) .dkv-spinner {
        border-color: #2a3040;
        border-top-color: #d4a020;
    }
    body:not([data-thememode="light"]) .dkv-landing-status {
        color: #8d9db5;
    }
}

[data-thememode="dark"] .dkv-spinner {
    border-color: #2a3040;
    border-top-color: #d4a020;
}
[data-thememode="dark"] .dkv-landing-status {
    color: #8d9db5;
}
