:root{--bg:#0f1115;--panel:#1b2029;--panel2:#222834;--line:#2d3544;--ink:#e8ecf2;--mute:#9aa6b8;--acc:#7cc4ff;--violet:#b69cff;--ok:#4cd07d;--bad:#ff6b6b;--warn:#f5c451}
[data-theme="dark"]{--bg:#0f1115;--panel:#1b2029;--panel2:#222834;--line:#2d3544;--ink:#e8ecf2;--mute:#9aa6b8;--acc:#7cc4ff;--violet:#b69cff;--ok:#4cd07d;--bad:#ff6b6b;--warn:#f5c451}
.topic-option.answer-correct input,.topic-option.answer-wrong input{accent-color:currentColor}
.topin{max-width:1180px}.top .brand{color:var(--ink)}.nav{overflow:auto;flex-wrap:nowrap;scrollbar-width:thin}.nav a{white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.topin>.lab-home{display:inline-flex;align-items:center;min-height:44px;flex-shrink:0;white-space:nowrap}.topin>.nav{min-width:0;flex:1}main#app{max-width:1180px;padding:30px 24px 70px}.local-flag{color:var(--violet);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.topic-head{display:flex;gap:24px;align-items:center;justify-content:space-between;margin-bottom:26px}.topic-head h1{font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.035em;line-height:1.13;max-width:820px;margin:8px 0 12px}.topic-head p{max-width:72ch;color:var(--mute);line-height:1.65}.topic-counter{width:120px;flex-shrink:0;text-align:center;border:1px solid var(--line);border-radius:14px;padding:16px;background:var(--panel)}.topic-counter strong{display:block;font-size:2rem;color:var(--acc)}.topic-counter span{font-size:.8rem;color:var(--mute)}.topic-shell{max-width:100%}.topic-shell .btn{min-height:44px;display:inline-flex;justify-content:center;align-items:center;gap:7px}.topic-shell .btn.primary{background:#205f95;border-color:#3980b8;color:#f3f8ff}.topic-shell .btn.danger{color:var(--bad)}.topic-shell .row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.topic-shell .card{padding:22px;border-radius:14px;background:var(--panel);border:1px solid var(--line);margin:16px 0}.topic-shell .small{font-size:.85rem}.topic-shell .muted{color:var(--mute)}.topic-shell h2{font-size:1.3rem}.topic-shell h3{font-size:1.06rem}.topic-shell p{line-height:1.65}.film-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:18px;align-items:start}.film-player{background:#0b0e14;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-width:0}.film-player video{width:100%;aspect-ratio:16/9;display:block;background:#0f1115}.film-caption{padding:16px 20px}.film-caption h2{margin:0 0 5px}.film-stages{display:flex;flex-direction:column;gap:7px}.film-stages .btn{justify-content:flex-start;text-align:left;padding:10px 12px;font-size:.9rem;gap:12px}.film-stages .btn span{color:var(--violet);font:12px ui-monospace,monospace}.film-stages .btn.active{border-color:var(--acc);background:#182f44}.film-stages>p{margin:0 0 6px}.film-note{font-size:.82rem;color:var(--mute);line-height:1.5;margin-top:14px}.topic-tabs{display:flex;gap:7px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:20px 0;margin:14px 0 22px}.topic-tabs a{text-decoration:none;border:1px solid transparent;border-radius:9px;padding:10px 13px;min-height:44px;color:var(--mute)}.topic-tabs a.active{border-color:var(--line);background:var(--panel2);color:var(--acc)}.topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.topic-grid>.card{margin:0}.topic-table{width:100%;border-collapse:collapse;font-size:.93rem}.topic-table td,.topic-table th{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.topic-table th{color:var(--mute);font-weight:600}.topic-table td:first-child{font-weight:600;width:22%}.topic-shell .tablewrap{overflow:auto;max-width:100%}.topic-table{min-width:620px}.feature-list{counter-reset:feature;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feature{border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:18px}.feature>span{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;color:var(--violet);background:#29263b;font-weight:700}.feature h3{margin:12px 0 8px}.feature p{color:var(--mute);font-size:.9rem}.source-box{border-top:1px solid var(--line);padding-top:10px;margin-top:18px}.source-box summary{cursor:pointer;color:var(--acc);padding:10px 0}.source-box pre{white-space:pre-wrap;font:14px/1.65 system-ui,sans-serif;background:#11151c;padding:16px;border-radius:9px;overflow-wrap:anywhere}.source-box img{display:block;max-width:100%;max-height:480px;object-fit:contain;background:white;border-radius:8px;margin:14px auto}.source-box figure{margin:12px 0}.source-box figcaption{font-size:.8rem;color:var(--mute)}.source-box h3{font-size:.95rem}.callout-cas{padding:15px 18px;border-left:3px solid var(--warn);background:#272319;border-radius:0 9px 9px 0;margin:22px 0}.callout-cas p{margin:0}.topic-shell textarea{width:100%;max-width:100%;min-height:100px;padding:12px;border-radius:9px;border:1px solid var(--line);background:#11151c;color:var(--ink);font:inherit}.topic-shell label{line-height:1.55}.topic-shell .qcard{max-width:890px;margin:20px auto;padding:26px}.qmeta{display:flex;align-items:center;justify-content:space-between;color:var(--mute);font-size:.85rem;gap:14px;flex-wrap:wrap;margin-bottom:18px}.qstem{font-size:1.18rem;line-height:1.6;margin:10px 0 22px}.topic-options{display:grid;gap:9px}.topic-option{display:grid;grid-template-columns:18px 22px 1fr;gap:12px;align-items:center;border:1px solid var(--line);border-radius:10px;background:var(--panel2);padding:14px 16px;min-height:50px;cursor:pointer}.topic-option input{width:16px;height:16px;margin:0;accent-color:var(--acc)}.topic-option .letter{font-size:.8rem;color:var(--mute)}.topic-option:has(input:checked){border-color:var(--acc);background:#192e41}.topic-option.answer-correct{--answer-color:var(--ok);--answer-bg:#14271e}.topic-option.answer-wrong{--answer-color:var(--bad);--answer-bg:#301b20}.topic-option.answer-correct,.topic-option.answer-wrong,.topic-option.answer-correct:has(input:checked),.topic-option.answer-wrong:has(input:checked){color:var(--answer-color);background:var(--answer-bg);border-color:var(--answer-color)}.topic-option.answer-correct .letter,.topic-option.answer-wrong .letter{color:inherit}.topic-option.answer-correct input,.topic-option.answer-wrong input{appearance:none;border:2px solid currentColor;border-radius:50%;background:transparent;color:inherit;opacity:1}.topic-option.answer-correct input:checked,.topic-option.answer-wrong input:checked{background:currentColor;box-shadow:inset 0 0 0 3px var(--answer-bg)}.choice-result{font-size:.76rem;display:block;margin-top:3px}.topic-conf{border-top:1px dashed var(--line);padding-top:16px;margin-top:22px}.topic-conf>p{margin:0 0 10px;font-size:.9rem;color:var(--mute)}.topic-conf .btn.on{border-color:var(--acc);background:#192e41}.topic-feedback{border:1px solid var(--line);border-radius:12px;margin-top:22px;padding:18px;background:#141922}.topic-feedback .correct-answer{color:var(--ok);font-weight:700}.topic-feedback .verdict.ok{color:var(--ok)}.topic-feedback .verdict.no{color:var(--bad)}.topic-feedback .verdict{font-size:1.1rem;font-weight:700}.topic-feedback .correct-answer,.topic-feedback .verdict{margin:0 0 10px}.topic-feedback .distractors{color:var(--mute);font-size:.9rem}.topic-feedback .distractors li{margin:8px 0}.correction{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.correction .topic-option{border-color:var(--line);color:var(--ink);background:var(--panel2)}.topic-pair{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:center;margin-bottom:12px}.topic-pair select{width:100%;min-height:44px;border-radius:8px;background:#11151c;color:var(--ink);border:1px solid var(--line);padding:10px}.rubric label{display:flex;gap:12px;align-items:flex-start;margin:12px 0}.rubric input{margin-top:5px;width:18px;height:18px;accent-color:var(--ok)}.mini-bar{height:6px;background:var(--panel2);border-radius:6px;overflow:hidden;margin:12px 0 22px}.mini-bar i{display:block;background:linear-gradient(90deg,var(--acc),var(--violet));height:100%}.saved-text{color:var(--mute);font-size:.8rem}.run-scores{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.run-scores div{border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--panel)}.run-scores strong{display:block;font-size:1.7rem;color:var(--acc)}.run-scores span{color:var(--mute);font-size:.85rem}.skill-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.skill-state{color:var(--mute);font-size:.85rem}.skill-state.earned{color:var(--ok)}.review-tag{color:var(--warn);font-size:.8rem;margin-left:8px}.topic-session{max-width:890px;margin:auto}.history-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.history-row p{margin:0}.topic-shell .qnav{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.qnav .btn{min-width:44px;padding:7px}.qnav .btn.checked{border-color:#485b69}.qnav .btn.current{border-color:var(--acc);color:var(--acc)}.screen-reader{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.topic-error{color:var(--bad)}.topic-shell .lead-actions{margin:20px 0}.topic-shell .notes-hint{margin:8px 0}.film-transcript{max-width:860px}.film-transcript p{font-size:.94rem}.topic-shell blockquote{border-left:3px solid var(--violet);margin:14px 0;padding:8px 16px;color:var(--mute)}
@media(max-width:760px){main#app{padding:22px 16px 55px}.topin{padding:8px 14px;gap:10px}.brand{font-size:1rem}.nav{width:100%;max-width:100%;font-size:.85rem}.topic-head{gap:12px;align-items:flex-start}.topic-counter{width:80px;padding:12px 8px}.topic-counter strong{font-size:1.5rem}.topic-head h1{font-size:1.9rem}.film-layout{grid-template-columns:1fr}.film-stages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.film-stages>p,.film-stages>.film-note{grid-column:1/-1}.topic-grid,.feature-list{grid-template-columns:1fr}.topic-shell .card,.topic-shell .qcard{padding:18px}.topic-tabs{gap:4px}.topic-tabs a{padding:9px 11px;font-size:.88rem}.topic-pair{grid-template-columns:1fr;gap:5px}.topic-option{padding:13px 12px;gap:9px}.run-scores{grid-template-columns:1fr}.skill-row{grid-template-columns:1fr;gap:3px}.film-caption{padding:14px 16px}h1,h2,h3,p,button,a,label{overflow-wrap:break-word}.topic-shell{min-width:0}.film-stages .btn{min-height:50px}.topic-head p{font-size:.92rem}}
[data-theme="light"]{--bg:#f4f7fb;--panel:#fff;--panel2:#e8eef6;--line:#cdd7e2;--ink:#182435;--mute:#54687d;--acc:#235f96;--violet:#6f4db2;--ok:#187647;--bad:#b82739;--warn:#826513}
[data-theme="light"] .topic-shell textarea,[data-theme="light"] .topic-pair select,[data-theme="light"] .source-box pre,[data-theme="light"] .topic-feedback{background:#f0f4fa;color:var(--ink)}
[data-theme="light"] .topic-option.answer-correct{--answer-bg:#e0f3e7}[data-theme="light"] .topic-option.answer-wrong{--answer-bg:#ffe8ec}[data-theme="light"] .callout-cas{background:#fff5d9}[data-theme="light"] .topic-option:has(input:checked),[data-theme="light"] .topic-conf .btn.on{background:#dcebf9}
@media print{.top,.topic-tabs,.film-player,.film-stages,.topic-shell button,.topic-shell .qnav,footer{display:none}body,.topic-shell .card{background:white;color:#111}.topic-shell{color:#111}.topic-shell .muted,.topic-head p,.feature p{color:#333}.topic-shell .source-box pre{background:white;color:#111}.topic-table{min-width:0}.topic-option{background:white;color:#111}.topic-feedback .correct-answer{color:#111}.source-box details{display:block}.feature-list{grid-template-columns:1fr}.card,.feature{break-inside:avoid}}


/* Actual NU545 layout reused; Diagnostics content and storage remain its own. */
:root[data-theme="dark"]{--bg:#0f1115;--bg2:#11151c;--card:#1b2029;--card2:#222834;--panel:#1b2029;--panel2:#222834;--line:#2d3544;--ink:#e8ecf2;--text:#e8ecf2;--mute:#9aa6b8;--muted:#9aa6b8;--acc:#7cc4ff;--accink:#e8ecf2;--violet:#b69cff;--ok:#4cd07d;--bad:#ff6b6b;--warn:#f5c451;--shadow:none}
.topin{max-width:1180px;padding:12px 20px;gap:20px}.brand small{display:block;font-size:.75rem;font-weight:400}.nav a{font-size:.9rem;color:var(--mute);min-height:44px}.nav a.active{background:var(--panel2);color:var(--acc)}.nav #themebtn{min-height:44px;font-size:.8rem}.topic-shell .card{padding:20px;box-shadow:none}.topic-shell .grid .card{max-width:565px}.topic-shell .stat strong{color:var(--ink)}.topic-shell .lesson{max-width:920px}.topic-shell .lesson video{width:100%;aspect-ratio:16/9;background:#0f1115;display:block;margin:16px 0;border-radius:12px}.topic-shell .movie-stage{margin:12px 0}.topic-shell .movie-stage .btn{flex:1 1 8rem}.topic-shell .lede{color:var(--mute);line-height:1.6;max-width:78ch}.topic-shell h1{font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.15;letter-spacing:-.025em;margin:10px 0 16px}.topic-shell .tabs{margin:20px 0}.topic-shell .topic-option{background:#141922;border-radius:10px;grid-template-columns:18px 22px 1fr}.topic-shell .topic-feedback{border-left:3px solid var(--acc);background:#152432;padding:16px;border-radius:0 10px 10px 0}.topic-shell .topic-session{max-width:850px}.paper-question{margin:24px 0;break-inside:avoid}.paper-question li{margin:8px 0}.topic-shell .tablewrap:focus-visible{outline:3px solid var(--acc)}footer{max-width:1180px;margin:auto;border-top:1px solid var(--line);padding:18px 20px;color:var(--mute)}
@media(max-width:800px){.topin{flex-direction:column;align-items:stretch;gap:7px}.brand small{display:inline;margin-left:8px}.nav{width:100%}.topic-shell .card{padding:16px}main#app{padding:18px 14px}.topic-shell .stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.topic-shell .row .btn{flex:1}.topic-shell .movie-stage .btn{flex:1 1 9rem}.topic-shell .tabs .btn{flex:0 0 auto}.topic-shell .topic-options{font-size:.95rem}.topic-shell .qcard{padding:16px}.topic-shell .grid{grid-template-columns:1fr}}
@media print{.topic-shell h1,.topic-shell h2,.topic-shell h3,.topic-shell p,.topic-shell label,.topic-shell li{color:#111!important}.paper-question{break-inside:avoid}.topic-shell .card{box-shadow:none;border-color:#ccc}}

@media(max-width:800px){.topin>.lab-home{align-self:flex-start}.topin>.nav{flex:auto}}

/* Select-all rows have a checkbox and answer text, without an option-letter
   cell. Match the control itself so older saved runs get the same repair. */
.topic-shell .topic-option:has(>input[type="checkbox"]){grid-template-columns:18px minmax(0,1fr)}
.topic-shell .topic-option>span:last-child{min-width:0}
.topic-shell .topic-option input[type="checkbox"]{border-radius:3px}

/* Keep saved and new questions readable in either theme. Answer-state colors
   must outrank the shared row background, including unselected correct rows. */
.topic-shell .topic-option:has(input:checked){background:#192e41}
.topic-shell .topic-option.answer-correct,
.topic-shell .topic-option.answer-wrong,
.topic-shell .topic-option.answer-correct:has(input:checked),
.topic-shell .topic-option.answer-wrong:has(input:checked){color:var(--answer-color);background:var(--answer-bg);border-color:var(--answer-color)}
[data-theme="light"] .topic-shell .topic-option{background:var(--panel2)}
[data-theme="light"] .topic-shell .topic-option:has(input:checked){background:#dcebf9}
[data-theme="light"] .topic-shell .topic-option.answer-correct,
[data-theme="light"] .topic-shell .topic-option.answer-wrong,
[data-theme="light"] .topic-shell .topic-option.answer-correct:has(input:checked),
[data-theme="light"] .topic-shell .topic-option.answer-wrong:has(input:checked){color:var(--answer-color);background:var(--answer-bg);border-color:var(--answer-color)}
[data-theme="light"] .topic-shell .topic-feedback,
[data-theme="light"] .topic-shell .builder select{background:#f0f4fa;color:var(--ink)}

.builder .formrow{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:10px 0}.builder .formrow>label:first-child,.builder .formrow>span{min-width:190px;color:var(--mute)}.builder select{min-height:44px;min-width:180px;border-radius:8px;background:#11151c;color:var(--ink);border:1px solid var(--line);padding:8px 12px;font:inherit}.pick-group{border-top:1px solid var(--line);padding:4px 0}.pick-group summary{cursor:pointer;color:var(--acc);padding:12px 0;font-size:1.02rem;min-height:44px}.pick-all{display:flex;gap:10px;align-items:center;margin:2px 0 8px;font-weight:600}.pick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;margin:0 0 14px}.pick{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:8px;border:1px solid transparent;cursor:pointer}.pick:has(input:checked){border-color:var(--line);background:var(--panel2)}.builder input[type=checkbox]{width:18px;height:18px;margin-top:3px;flex-shrink:0;accent-color:var(--acc)}.pick span:first-of-type{flex:1}.pick-badge{font-size:.72rem;white-space:nowrap;border:1px solid var(--line);border-radius:20px;padding:2px 8px;color:var(--mute)}.pick-badge.done{color:var(--ok);border-color:var(--ok)}.pick-badge.due{color:var(--warn);border-color:var(--warn)}.pick-badge.learn{color:var(--acc)}#pick-status{margin:14px 0 8px}@media(max-width:700px){.pick-grid{grid-template-columns:1fr}.pick-badge{display:none}}
