:root{--brand-primary-src: #1c2b4a;--brand-accent-src: #ffb547;--brand-bg-src: #f6f5f1;--brand-primary: var(--brand-primary-src);--brand-accent: var(--brand-accent-src);--brand-bg: var(--brand-bg-src);--brand-display: "Sora", sans-serif;--brand-body: "Inter", sans-serif;--brand-mono: "IBM Plex Mono", ui-monospace, monospace;--ink: #1a1f2b;--ink-soft: #5a6376;--line: #e3e1da;--line-soft: #edeae1;--surface: #f1f0ea;--surface-sunken: #eae8e0;--card: #ffffff;--danger: #c0392b;--danger-soft: #fbe9e7;--success: #1e8e5a;--success-soft: #e8f5ee;--warning: #b8790a;--warning-soft: #fdf1de;--info: #2563eb;--info-soft: #e8f0fe;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-sm: 0 1px 2px rgba(20, 24, 38, .06);--shadow-md: 0 4px 16px rgba(20, 24, 38, .08);--shadow-lg: 0 16px 48px rgba(20, 24, 38, .16);--focus-ring: 0 0 0 3px color-mix(in srgb, var(--brand-primary) 30%, transparent);--ease-out: cubic-bezier(.16, 1, .3, 1);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--brand-bg: #0b0e17;--brand-primary: color-mix(in srgb, var(--brand-primary-src) 65%, white);--brand-accent: color-mix(in srgb, var(--brand-accent-src) 85%, white);--ink: #e8e9ee;--ink-soft: #9aa1b4;--line: #2b3348;--line-soft: #232a3d;--surface: #161b2c;--surface-sunken: #10141f;--card: #1c2338;--danger: #e5534b;--danger-soft: #3a1c19;--success: #34c281;--success-soft: #123527;--warning: #e0a53a;--warning-soft: #3a2c0f;--info: #5b8def;--info-soft: #16233f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--brand-bg: #0b0e17;--brand-primary: color-mix(in srgb, var(--brand-primary-src) 65%, white);--brand-accent: color-mix(in srgb, var(--brand-accent-src) 85%, white);--ink: #e8e9ee;--ink-soft: #9aa1b4;--line: #2b3348;--line-soft: #232a3d;--surface: #161b2c;--surface-sunken: #10141f;--card: #1c2338;--danger: #e5534b;--danger-soft: #3a1c19;--success: #34c281;--success-soft: #123527;--warning: #e0a53a;--warning-soft: #3a2c0f;--info: #5b8def;--info-soft: #16233f;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;font-family:var(--brand-body);background:var(--surface);color:var(--ink);font-size:15px;line-height:1.5}h1,h2,h3,h4{font-family:var(--brand-display);color:var(--ink);margin:0 0 var(--space-3);text-wrap:balance}h1{font-size:22px}h2{font-size:18px}h3{font-size:15px}h4{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-soft)}p{margin:0 0 var(--space-3);color:var(--ink-soft)}::selection{background:color-mix(in srgb,var(--brand-primary) 30%,transparent);color:var(--ink)}*{scrollbar-width:thin;scrollbar-color:var(--line) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:var(--ink-soft);background-clip:padding-box}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}input,select,textarea{font-family:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;min-height:38px;transition:border-color .12s ease,box-shadow .12s ease}input:hover,select:hover,textarea:hover{border-color:var(--ink-soft)}input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-sm)}.field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3)}.field>label,.field-label{font-size:13px;font-weight:600;color:var(--ink-soft)}.field-hint{font-size:12px;color:var(--ink-soft);margin:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}button,a.btn-primary,a.btn-ghost{font-family:inherit;font-size:14px;font-weight:600;padding:9px 16px;min-height:38px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;touch-action:manipulation;display:inline-flex;align-items:center;gap:var(--space-2);justify-content:center;text-decoration:none;transition:background-color .12s ease,border-color .12s ease,transform 80ms ease,box-shadow .12s ease}button:hover:not(:disabled),a.btn-primary:hover,a.btn-ghost:hover{border-color:var(--ink-soft)}button:active:not(:disabled),a.btn-primary:active,a.btn-ghost:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary,.login-form button{background:var(--brand-primary);border-color:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled){background:color-mix(in srgb,var(--brand-primary) 88%,black);border-color:color-mix(in srgb,var(--brand-primary) 88%,black);box-shadow:var(--shadow-sm)}.btn-ghost{background:transparent}.btn-sm{padding:5px 12px;min-height:30px;font-size:13px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-4);box-shadow:var(--shadow-sm)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.err{color:var(--danger);font-size:13px;background:var(--danger-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.ok{color:var(--success);font-size:13px;background:var(--success-soft);border-radius:var(--radius-sm);padding:var(--space-2) var(--space-3)}.login-form{max-width:420px;margin:clamp(24px,12vh,100px) auto;padding:0 40px 40px;background:var(--card);border-radius:var(--radius-md);border:1px solid var(--line);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:12px;overflow:hidden}.login-form h1{text-align:center}.login-form p{text-align:center;margin:0}.login-brand{margin:0 -40px 4px;padding:var(--space-5) 40px var(--space-4);background:var(--brand-primary);display:flex;justify-content:center}.login-brand img{max-width:260px;width:100%;height:auto}.login-form label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--ink-soft)}.app-shell-simple{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);background:var(--brand-primary-src);color:#ffffffeb}.topbar-brand{display:inline-flex;align-items:center;text-decoration:none}.topbar-logo{height:28px;width:auto;display:block}.topbar-actions{display:flex;align-items:center;gap:var(--space-3)}.topbar-user{font-size:13px;color:#ffffffd9}.topbar-user strong{color:#fff}.topbar .btn-ghost,.topbar .theme-toggle{color:#ffffffd9;border-color:#ffffff4d}.topbar .btn-ghost:hover:not(:disabled),.topbar .theme-toggle:hover:not(:disabled){color:#fff;border-color:#fff9;background:#ffffff14}.app-content-simple{flex:1;display:flex;align-items:flex-start;justify-content:center;padding:var(--space-6) var(--space-4)}.app-content-simple .card{max-width:640px;width:100%}.theme-toggle{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:38px;min-height:38px;padding:0;background:transparent}.simple-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.simple-list-item{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);flex-wrap:wrap}.simple-list-item-actions{display:flex;align-items:center;gap:var(--space-3)}.settings-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-4)}.settings-checkbox{display:flex;align-items:center;gap:var(--space-2);font-weight:400;cursor:pointer}.mode-choice{display:flex;flex-direction:column;gap:var(--space-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:var(--space-3);max-height:240px;overflow-y:auto}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 10px;border-radius:12px;background:var(--surface-sunken);color:var(--ink-soft);white-space:nowrap}.badge--in_progress,.badge--submitted_pending_review{background:var(--warning-soft);color:var(--warning)}.badge--fully_reviewed,.badge--submitted{background:var(--success-soft);color:var(--success)}.badge--past_due{background:var(--danger-soft);color:var(--danger)}.app-content-simple .attempt-card{max-width:720px}.attempt-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.countdown{font-family:var(--brand-mono);font-size:18px;font-weight:700;color:var(--brand-primary)}.attempt-progress{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}.attempt-progress-track{flex:1;height:6px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}.attempt-progress-fill{height:100%;background:var(--brand-primary);transition:width .2s ease}.attempt-review-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:var(--space-2)}.attempt-review-item{width:100%;display:flex;justify-content:space-between;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--card);color:var(--ink);font-size:13px;font-weight:600}.attempt-review-item:hover{border-color:var(--brand-primary)}.performance-chart{display:flex;flex-direction:column;gap:var(--space-4)}.performance-row{display:grid;grid-template-columns:140px 1fr;align-items:center;gap:var(--space-3)}.performance-label{font-size:13px;font-weight:600;text-transform:capitalize}.performance-bars{display:flex;flex-direction:column;gap:var(--space-1)}.performance-bar-track{height:10px;border-radius:999px;background:var(--surface-sunken);overflow:hidden}.performance-bar-fill{height:100%;border-radius:999px;transition:width .2s ease}.performance-bar-fill--you{background:var(--brand-primary)}.performance-bar-fill--cohort{background:var(--ink-soft)}.performance-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);font-size:12px;color:var(--ink-soft)}.performance-swatch{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:var(--space-1);vertical-align:middle}.performance-swatch--you{background:var(--brand-primary)}.performance-swatch--cohort{background:var(--ink-soft)}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.attempt-question{padding:var(--space-4) 0;border-top:1px solid var(--line)}.attempt-question:first-of-type{border-top:none;padding-top:0}.attempt-options{display:flex;flex-direction:column;gap:var(--space-2)}.attempt-option{display:flex;align-items:center;gap:var(--space-2);font-weight:400;font-size:14px;cursor:pointer}.admin-nav{display:flex;gap:var(--space-4)}.admin-nav a{color:#ffffffd9;text-decoration:none;font-weight:600;font-size:14px}.admin-nav a:hover{color:#fff;text-decoration:underline}.admin-content{flex:1;padding:var(--space-6) var(--space-5);max-width:1100px;margin:0 auto;width:100%}.admin-home-link{text-decoration:none;color:inherit;display:block;font-weight:700}.admin-home-link:hover{border-color:var(--brand-primary)}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.kpi-card{display:flex;flex-direction:column;gap:var(--space-1);text-decoration:none;color:inherit}.kpi-card--action{border-color:var(--warning)}.kpi-card--action:hover{box-shadow:var(--shadow-sm)}.kpi-card--wide{grid-column:1 / -1}.kpi-value{font-family:var(--brand-display);font-size:32px;font-weight:700;color:var(--ink);line-height:1}.kpi-label{font-size:13px;color:var(--ink-soft)}.kpi-breakdown{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-4)}.kpi-breakdown li{display:flex;align-items:center;gap:var(--space-2);font-weight:600}
