@font-face {
    font-family: Nunito;
    src: url('../fonts/nunito-variable.ttf') format('truetype');
    font-weight: 200 900;
    font-style: normal;
    font-display: swap;
}
:root, [data-theme="light"] {
    color-scheme: light;
    --quiz-bg: #eaf8ff;
    --quiz-surface: #fff;
    --quiz-surface-raised: #f5fbff;
    --quiz-text: #434343;
    --quiz-muted: #536b80;
    --quiz-border: #b8d9ed;
    --quiz-control-border: #6f93ab;
    --quiz-primary: #075aa7;
    --quiz-on-primary: #fff;
    --quiz-selected: #ddf6ff;
    --quiz-accent: #008afb;
    --quiz-danger: #a61b1b;
    --quiz-danger-bg: #fff1f1;
    --quiz-danger-hover-bg: #ffe0e0;
    --quiz-success: #087a58;
    --quiz-success-bg: #e9f8f0;
    --quiz-warning: #7a4300;
    --quiz-warning-bg: #fff1cc;
    --quiz-focus: #075aa7;
    --quiz-shadow: 0 8px 24px rgb(16 62 111 / 8%);
    --quiz-shadow-overlay: 0 8px 24px rgb(16 62 111 / 14%);
    --shadow-sm: var(--quiz-shadow);
    --shadow-md: var(--quiz-shadow);
    --shadow-lg: var(--quiz-shadow-overlay);
    --shadow-glow: none;
    --primary: var(--quiz-primary);
    --primary-dark: var(--quiz-primary);
    --primary-light: var(--quiz-primary);
    --secondary: var(--quiz-primary);
    --accent: var(--quiz-primary);
    --bg-dark: var(--quiz-bg);
    --bg-card: var(--quiz-surface);
    --bg-card-hover: var(--quiz-selected);
    --text-primary: var(--quiz-text);
    --text-secondary: var(--quiz-muted);
    --text-muted: var(--quiz-muted);
    --brand-ink: var(--quiz-text);
    --brand-deep: var(--quiz-primary);
    --danger: var(--quiz-danger);
    --danger-text: var(--quiz-danger);
    --success: var(--quiz-success);
    --success-text: var(--quiz-success);
    --warning-text: var(--quiz-warning);
    --info-text: var(--quiz-primary);
}
[data-theme="dark"] {
    color-scheme: dark;
    --quiz-bg: #101b2a;
    --quiz-surface: #19283b;
    --quiz-surface-raised: #203249;
    --quiz-text: #eef5fc;
    --quiz-muted: #b3c5d8;
    --quiz-border: #425971;
    --quiz-control-border: #60758d;
    --quiz-primary: #94caff;
    --quiz-on-primary: #11263a;
    --quiz-selected: #253f59;
    --quiz-danger: #ffb4b4;
    --quiz-danger-bg: #492a35;
    --quiz-danger-hover-bg: #5a303c;
    --quiz-success: #8edcb8;
    --quiz-success-bg: #183e35;
    --quiz-warning: #ffda8a;
    --quiz-warning-bg: #493b25;
    --quiz-focus: #94caff;
    --quiz-shadow: 0 8px 24px rgb(0 0 0 / 18%);
    --quiz-shadow-overlay: 0 8px 24px rgb(0 0 0 / 28%);
}
body {
    font: 600 16px/1.5 Nunito, system-ui, sans-serif;
    color: var(--quiz-text);
    background-color: var(--quiz-bg);
    background-image: none;
}
*, *::before, *::after { box-sizing: border-box; }
button, input, select, textarea { font: inherit; }
code, pre, .code-editor, [data-code] { font-family: 'Courier New', monospace; }
h1, h2, h3, h4 { font-weight: 800; line-height: 1.25; overflow-wrap: normal; }
p, label { overflow-wrap: break-word; }
td, th { overflow-wrap: normal; word-break: normal; }
body a { color: var(--quiz-primary); }
body a:not(.btn):not([class*="mq-btn"]):not(.mq-menu-action):not(.nav-link):hover { text-decoration: underline !important; }
body :is(.card, .auth-card, .mq-card, .quiz-card, .cq-question,
    .ap-card, .profile-section, .quiz-import-panel, .registration-choice) {
    background: var(--quiz-surface);
    color: var(--quiz-text);
    border: 1px solid var(--quiz-border);
    box-shadow: var(--quiz-shadow);
    border-radius: 20px;
}
body .navbar { background: var(--quiz-surface); border-bottom: 1px solid var(--quiz-border); }
body :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="file"]), select, textarea) {
    min-height: 44px;
    border: 1px solid var(--quiz-control-border);
    border-radius: 12px;
    background: var(--quiz-surface);
    color: var(--quiz-text);
    padding: 10px 12px;
    max-width: 100%;
}
body :is(select, .q-select) :is(option, optgroup) {
    color: var(--quiz-text);
    background-color: var(--quiz-surface);
}
body input::placeholder, body textarea::placeholder { color: var(--quiz-muted); opacity: 1; }
body :is(.btn, .mq-btn, .search-btn, .nav-toggle, .export-menu summary) {
    min-height: 44px;
    border-radius: 14px;
    padding: 10px 16px;
    font-weight: 800;
    line-height: 1.35;
    white-space: normal;
    text-align: center;
    box-shadow: none;
    text-decoration: none;
}
body :is(.btn-primary, .mq-btn-primary, .search-btn) {
    color: var(--quiz-on-primary);
    background: var(--quiz-primary);
    border: 1px solid var(--quiz-primary);
}
body :is(.btn-secondary, .mq-btn-secondary, .mq-btn-manage, .mq-btn-link) {
    color: var(--quiz-primary);
    background: var(--quiz-surface);
    border: 1px solid var(--quiz-border);
}
body :is(.btn-danger, .mq-menu-action-danger) {
    color: var(--quiz-danger);
    background: var(--quiz-danger-bg);
    border: 1px solid var(--quiz-danger);
}
body :is(.btn, .mq-btn):hover { transform: none; filter: brightness(.96); }
:where(button, input, select, textarea, a, summary):focus-visible {
    outline: 3px solid var(--quiz-focus);
    outline-offset: 3px;
}
body :is(button, input, select, textarea):disabled { opacity: .6; cursor: not-allowed; }
input[type="checkbox"], input[type="radio"] { accent-color: var(--quiz-primary); }
.theme-choice { min-width: 110px; }
.field-hint { margin-top: 8px; color: var(--quiz-muted); font-size: 14px; }
body :is(.form-errors, .alert-error) { color: var(--quiz-danger); background: var(--quiz-danger-bg); }
body :is(.alert-success, .lbadge-success) { color: var(--quiz-success); background: var(--quiz-success-bg); }
body :is(.alert-warning, .manual-pending) { color: var(--quiz-warning); background: var(--quiz-warning-bg); }
body :is(.export-menu-panel, .mq-actions-menu-panel, .qr-modal, [role="dialog"]) {
    color: var(--quiz-text); background-color: var(--quiz-surface); border-color: var(--quiz-border);
}
body .qr-modal-image, body .lobby-qr-preview img, body .game-connection-qr img { background: #fff; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

body .nav-link.btn-primary { color: var(--quiz-on-primary); background: var(--quiz-primary); }
body .nav-link.admin-link { color: var(--quiz-danger); background: var(--quiz-danger-bg); }
body .password-rules .is-ok, body .password-match.is-ok { color: var(--quiz-success); }
body .password-match.is-bad { color: var(--quiz-danger); }

/* Reader and empty states share the same surfaces in both themes. */
body :is(.quizzes-empty, .qd-meta-item, .qd-missing-text, .qd-answer) {
    background: var(--quiz-surface);
    color: var(--quiz-text);
    border-color: var(--quiz-border);
}
body .quizzes-empty h3 { color: var(--quiz-text); }
body .quizzes-empty p { color: var(--quiz-muted); }
body :is(.qd-answer-correct, .qd-reference-answer) {
    background: var(--quiz-success-bg);
    border-color: var(--quiz-success);
    color: var(--quiz-text);
}
body .qd-reference-answer span { background: var(--quiz-surface); color: var(--quiz-text); }
body .qd-correct-label { color: var(--quiz-success); }
body .qd-question-head span { background: var(--quiz-selected); color: var(--quiz-primary); }

body .btn-success { color: var(--quiz-success); background: var(--quiz-success-bg); border: 1px solid var(--quiz-success); }
body .btn-warning { color: var(--quiz-warning); background: var(--quiz-warning-bg); border: 1px solid var(--quiz-warning); }

body .qd-status-active { color: var(--quiz-success); background: var(--quiz-success-bg); }
body .qd-status-draft { color: var(--quiz-warning); background: var(--quiz-warning-bg); }

body :is(.tr-ans-ok, .tr-leg-opt-badge) { color: var(--quiz-success); background: var(--quiz-success-bg); border-color: var(--quiz-success); }
body .tr-ans-no { color: var(--quiz-danger); background: var(--quiz-danger-bg); border-color: var(--quiz-danger); }
body :is(.tr-ans-partial, .report-pending-notice) { color: var(--quiz-warning); background: var(--quiz-warning-bg); border-color: var(--quiz-warning); }
body .alert { box-shadow: none; backdrop-filter: none; margin: 0; }
body .flash-messages { display: grid; gap: 12px; padding: 0; background: transparent; box-shadow: none; }
body :is(.quiz-dialog, .mq-actions-menu-panel, .export-menu-panel) { box-shadow: var(--quiz-shadow-overlay); }

/* Interaction roles share motion; effective theme tokens keep every state readable. */
body :is(.btn, .mq-btn, .ap-btn, .search-btn, .nav-link, .mq-menu-action, .mq-actions-menu-trigger, .export-menu summary, .quiz-catalog-sections a) {
    transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, filter 140ms ease, scale 90ms ease;
}
@media (hover: hover) {
    body :is(.btn, .mq-btn, .ap-btn, .search-btn, .nav-link):not(:disabled):not([aria-disabled="true"]):hover { transform: none; box-shadow: none; filter: brightness(.96); }
    body .nav-link:not(.admin-link):hover, body .mq-actions-menu-trigger:hover { color: var(--quiz-primary); background: var(--quiz-selected); border-color: var(--quiz-primary); }
    body :is(.btn-secondary, .mq-btn-secondary, .mq-btn-view, .mq-btn-manage, .mq-btn-link):not(:disabled):not([aria-disabled="true"]):hover { background: var(--quiz-selected); color: var(--quiz-primary); }
    body .mq-card-actions .mq-btn-view:hover { background: var(--quiz-selected); color: var(--quiz-primary); }
    body :is(.btn-primary, .mq-btn-primary-action, .search-btn):not(:disabled):hover { background: var(--quiz-primary); color: var(--quiz-on-primary); border-color: var(--quiz-primary); }
    body :is(.card, .mq-card, .quiz-card, .quiz-card-compact, .feature-card, .stat-card, .profile-stat-card, .ap-stat-card, .ap-stat-card-reports):hover { transform: none; box-shadow: var(--quiz-shadow); }
}
body .close-alert:hover { transform: translateY(-50%); opacity: 1; }
body .grade-option span { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; background: var(--quiz-surface); color: var(--quiz-primary); border-color: var(--quiz-control-border); transition: background-color 140ms ease, color 140ms ease, scale 90ms ease; }
body .grade-option input:checked + span { background: var(--quiz-primary); color: var(--quiz-on-primary); border-color: var(--quiz-primary); }
body .grade-option:hover span { background: var(--quiz-selected); }
body .grade-option:has(input:checked):hover span { background: var(--quiz-primary); }
body .grade-option input:focus-visible + span { outline: 3px solid var(--quiz-focus); outline-offset: 3px; }
body .grade-picker { grid-template-columns: repeat(auto-fit, minmax(44px, 1fr)); }
body :is(.btn, .mq-btn, .ap-btn, .search-btn, .mq-actions-menu-trigger):not(:disabled):not([aria-disabled="true"]):active { transform: none; scale: .98; filter: brightness(.9); }
body :is(.mq-menu-action, .nav-link, .quiz-catalog-sections a):not(:disabled):not([aria-disabled="true"]):active { filter: brightness(.9); }
body :is(button, .btn, .mq-btn)[disabled], body [aria-disabled="true"] { transform: none; scale: 1; filter: none; }
@media (prefers-reduced-motion: reduce) {
    body :is(.btn, .mq-btn, .ap-btn, .search-btn, .mq-actions-menu-trigger):active { scale: 1; }
}
