:root{--navy-950:#0a1128;--navy-900:#0f1b3c;--navy-800:#16244f;--navy-700:#1e3163;--navy-600:#2a4180;--gold-500:#c9a343;--gold-400:#dab85e;--gold-300:#e8cd8a;--cream-50:#faf8f3;--cream-100:#f2ede1;--ink-900:#14171f;--ink-700:#3a3f4d;--ink-500:#6b7080;--green-600:#1f8a55;--amber-600:#b8791a;--red-600:#c0392b;--surface:#fff;--border:#e4dfd1;--radius-lg:16px;--radius-md:10px;--radius-sm:6px;--shadow-sm:0 1px 3px #0f1b3c14;--shadow-md:0 6px 20px #0f1b3c1a;--shadow-lg:0 16px 40px #0f1b3c29;--font-serif:"Cormorant Garamond", Georgia, serif;--font-sans:"DM Sans", "Segoe UI", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--on-dark:#f5f3ec}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);background:var(--cream-50);color:var(--ink-900);-webkit-font-smoothing:antialiased}#root{text-align:left;width:100%;max-width:100%;min-height:100vh}h1,h2,h3,h4{font-family:var(--font-serif);color:var(--navy-900);margin:0 0 .4em;font-weight:700}h1{font-size:2.4rem}h2{font-size:1.7rem}h3{font-size:1.3rem}p{color:var(--ink-700);margin:0 0 12px;line-height:1.6}a{color:var(--ink-900)}.app-shell{min-height:100vh;display:flex}.sidebar{background:linear-gradient(180deg, var(--navy-950), var(--navy-800));width:250px;color:var(--on-dark);flex-shrink:0;height:100vh;padding:24px 16px;position:sticky;top:0;overflow-y:auto}.sidebar-brand{font-family:var(--font-serif);color:var(--gold-300);border-bottom:1px solid #ffffff1f;margin-bottom:16px;padding:0 12px 20px;font-size:1.4rem;font-weight:700}.sidebar-brand span{letter-spacing:.08em;color:var(--on-dark);opacity:.7;font-size:.72rem;font-family:var(--font-sans);text-transform:uppercase;margin-top:2px;display:block}.nav-link{border-radius:var(--radius-sm);color:var(--on-dark);opacity:.9;align-items:center;gap:10px;margin-bottom:2px;padding:10px 12px;font-size:.92rem;text-decoration:none;transition:background .15s,opacity .15s;display:flex}.nav-link:hover{opacity:1;background:#ffffff0f}.nav-link.active{background:var(--gold-500);color:var(--navy-950);opacity:1;font-weight:600}.nav-section-label{text-transform:uppercase;letter-spacing:.08em;color:#ffffff73;margin:18px 12px 6px;font-size:.7rem}.main-content{flex:1;max-width:1100px;padding:32px 40px 80px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:24px}.card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;display:grid}.btn{font-family:var(--font-sans);cursor:pointer;border:none;border-radius:999px;align-items:center;gap:8px;padding:10px 20px;font-size:.9rem;font-weight:600;transition:transform .1s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.98)}.btn-primary{background:var(--navy-900);color:var(--on-dark)}.btn-primary:hover{box-shadow:var(--shadow-md)}.btn-gold{background:var(--gold-500);color:var(--navy-950)}.btn-gold:hover{box-shadow:var(--shadow-md)}.btn-outline{border:1.5px solid var(--ink-500);color:var(--ink-900);background:0 0}.btn-danger{background:var(--red-600);color:#fff}.btn-sm{padding:6px 14px;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}.badge{letter-spacing:.03em;text-transform:uppercase;border-radius:999px;align-items:center;padding:3px 10px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-navy{background:var(--navy-900);color:var(--on-dark)}.badge-gold{background:var(--gold-300);color:var(--navy-950)}.badge-green{color:var(--green-600);background:#e3f4ea}.badge-amber{color:var(--amber-600);background:#fbeed9}.badge-red{color:var(--red-600);background:#fbe2de}.progress-track{background:var(--cream-100);border-radius:999px;height:8px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--gold-500), var(--gold-400));border-radius:999px;height:100%;transition:width .4s}.stat-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px}.stat-tile .stat-value{font-family:var(--font-serif);color:var(--ink-900);font-size:2.1rem;font-weight:700}.stat-tile .stat-label{color:var(--ink-500);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem}textarea,input[type=text],select{font-family:var(--font-sans);border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--ink-900);padding:10px 12px;font-size:.95rem}textarea:focus,input:focus,select:focus{border-color:var(--gold-500);outline:none}.pill-question{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--cream-50);margin-bottom:14px;padding:16px}.timer-chip{background:var(--navy-900);color:var(--on-dark);font-variant-numeric:tabular-nums;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-weight:700;display:inline-flex}.timer-chip.warn{background:var(--red-600)}.topbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;display:flex}.tag-row{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tab-row{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin-bottom:20px;display:flex}.tab-btn{cursor:pointer;color:var(--ink-500);background:0 0;border:none;border-bottom:2px solid #0000;padding:10px 16px;font-size:.9rem;font-weight:600}.tab-btn.active{color:var(--ink-900);border-bottom-color:var(--gold-500)}table.band-table{border-collapse:collapse;width:100%;font-size:.88rem}table.band-table th,table.band-table td{border:1px solid var(--border);text-align:left;padding:8px 10px}table.band-table th{background:var(--navy-900);color:var(--on-dark)}table.band-table tr:nth-child(2n){background:var(--cream-100)}.divider{background:var(--border);height:1px;margin:24px 0}.passage-box{background:var(--cream-50);border:1px solid var(--border);border-radius:var(--radius-md);max-height:560px;padding:20px;font-size:.96rem;line-height:1.7;overflow-y:auto}.split-layout{grid-template-columns:1fr 1fr;align-items:start;gap:24px;display:grid}.mobile-topbar,.nav-overlay{display:none}.table-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=900px){.app-shell{display:block}.mobile-topbar{z-index:30;background:linear-gradient(180deg, var(--navy-950), var(--navy-800));align-items:center;gap:14px;padding:14px 16px;display:flex;position:sticky;top:0}.mobile-topbar-brand{font-family:var(--font-serif);color:var(--gold-300);font-size:1.15rem;font-weight:700}.hamburger-btn{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;padding:0;display:flex}.hamburger-btn span{background:var(--on-dark);border-radius:2px;width:22px;height:2px;display:block}.nav-overlay{z-index:39;background:#00000080;display:block;position:fixed;inset:0}.sidebar{z-index:40;width:280px;max-width:82vw;height:100vh;box-shadow:var(--shadow-lg);transition:left .22s;position:fixed;top:0;left:-300px}.sidebar.open{left:0}.main-content{max-width:100%;padding:20px 16px 60px}.split-layout{grid-template-columns:1fr}h1{font-size:1.7rem}h2{font-size:1.35rem}h3{font-size:1.15rem}.passage-box{max-height:320px}.btn{min-height:44px;padding:11px 18px}.btn-sm{min-height:38px;padding:8px 14px}input[type=text],select,textarea{min-height:44px;font-size:16px}textarea{min-height:160px}.topbar{align-items:flex-start}.result-box .band-number{font-size:3rem}table.band-table{font-size:.82rem}}.result-box{text-align:center;padding:28px}.result-box .band-number{font-family:var(--font-serif);color:var(--gold-500);font-size:4rem;font-weight:700;line-height:1}.chip{background:var(--cream-100);border:1px solid var(--border);border-radius:6px;margin:2px;padding:4px 10px;font-size:.8rem;display:inline-block}.chip.correct{border-color:var(--green-600);color:var(--green-600);background:#e3f4ea}.chip.incorrect{border-color:var(--red-600);color:var(--red-600);background:#fbe2de}ul.clean-list{padding-left:20px}ul.clean-list li{color:var(--ink-700);margin-bottom:6px}@media (prefers-color-scheme:dark){:root{--cream-50:#10131c;--cream-100:#171b28;--surface:#161a26;--border:#262c3d;--ink-900:#f0eee6;--ink-700:#c7c9d4;--ink-500:#9298a8}h1,h2,h3,h4{color:var(--gold-300)}}
