.session-screen,.session-finish{max-width:760px;margin:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}.session-head{display:flex;justify-content:space-between;align-items:center}.session-head button,.lesson-link{color:var(--brand);background:transparent;padding:5px 0}.session-progress{height:8px;background:var(--bar-bg);border-radius:var(--r-sm);margin:14px 0}.session-progress i{display:block;height:100%;background:var(--brand);border-radius:inherit}.session-meta{color:var(--ink-2);font-size:var(--t-sm)}.session-meta em{font-style:normal;background:var(--brand-soft);color:var(--brand);padding:3px 8px;border-radius:var(--r-md);margin-left:8px}.session-screen h1{font-size:var(--t-lg);line-height:1.6}.choices{display:grid;gap:10px;margin:24px 0}.choices button{display:flex;gap:13px;align-items:center;text-align:left;padding:15px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper);color:var(--ink)}.choices button.selected{border-color:var(--brand);background:var(--brand-soft)}.choices button.correct{border-color:var(--brand-line);background:var(--ok-soft)}.choices button.wrong{border-color:var(--ng);background:var(--ng-soft)}.choices button.answered{cursor:default}.choices kbd{min-width:28px;text-align:center;background:var(--paper);border:1px solid var(--key-line);color:var(--key);padding:4px 7px;border-radius:var(--r-xs)}.choices .selected kbd{background:var(--brand);border-color:var(--brand);color:var(--paper)}.choices .correct kbd{background:var(--ok);border-color:var(--ok);color:var(--paper)}.choices .wrong kbd{background:var(--ng);border-color:var(--ng);color:var(--paper)}.session-actions{display:flex;justify-content:space-between;gap:12px}.session-actions button,.ratings button,.session-finish>button{padding:11px 17px;border-radius:var(--r-sm);background:var(--bar-bg)}.session-actions .primary,.session-finish>button{background:var(--brand);color:var(--paper);font-weight:700}.explanation{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.answer-right>b{color:var(--ok)}.answer-wrong>b{color:var(--ng)}.explanation textarea{display:block;width:100%;min-height:75px;margin-top:6px;padding:9px;font:inherit;border:1px solid var(--line);border-radius:var(--r-sm)}.explanation label{display:block;color:var(--ink-2);font-size:var(--t-sm);margin-top:16px}.ratings{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.ratings p{width:100%;font-size:var(--t-sm);color:var(--ink-2)}.ratings button{display:flex;flex-direction:column;gap:4px;text-align:left}.ratings small{color:inherit}.ratings .rating-2{background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn)}.ratings .rating-3{background:var(--brand-soft);border:1px solid var(--brand-line);color:var(--brand)}.ratings .rating-4{background:var(--soft);border:1px solid var(--easy);color:var(--easy)}.ratings .rating-1{background:var(--ng-soft);border:1px solid var(--ng);color:var(--ng)}.session-finish{text-align:center;padding:50px 25px}.session-finish h1{font-size:var(--t-xl)}.session-totals{display:flex;justify-content:center;gap:12px;margin:28px 0}.session-totals b{display:flex;flex:1;min-width:0;flex-direction:column;align-items:center;background:var(--soft);border-radius:var(--r-lg);padding:14px;color:var(--ink);font-size:var(--t-xl)}.session-totals b:nth-child(2){color:var(--ok)}.session-totals b:nth-child(3){color:var(--ng)}.session-totals small{display:block;font-size:var(--t-xs);color:var(--ink-3);font-weight:400}.finish-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.finish-actions button{padding:11px 17px;border-radius:var(--r-sm);font-weight:800}.finish-actions .home-action{background:var(--brand);color:var(--paper)}.finish-actions .continue-action{border:1.5px solid var(--brand);background:transparent;color:var(--brand)}.finish-actions .extra-action{border:1.5px solid var(--warn);background:transparent;color:var(--warn)}.choices button.cursor,.ratings button.cursor{outline:3px solid var(--ink);outline-offset:2px}.recall{margin:24px 0;background:var(--soft);border:1px solid var(--line);border-radius:var(--r-md);padding:20px}.recall b{font-size:var(--t-md)}.recall b+p{color:var(--ink-2);font-size:var(--t-sm)}.recall-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.recall-actions button{padding:11px 17px;border-radius:var(--r-sm);background:var(--bar-bg)}.recall-actions button.cursor{outline:3px solid var(--ink);outline-offset:2px}.keyboard-hint{color:var(--ink-3);font-size:var(--t-xs);line-height:1.8;margin:12px 0}.keyboard-hint kbd{padding:2px 5px;border:1px solid var(--key-line);border-radius:var(--r-xs);background:var(--paper);color:var(--key)}.choices button,.ratings button{scroll-margin:16px}.contrast{margin:16px 0;background:var(--soft);border:1px solid var(--line);border-radius:var(--r-md);padding:16px}.contrast>b{font-size:var(--t-sm);color:var(--ink-2);display:block;margin-bottom:10px}.contrast div{display:flex;gap:12px;flex-wrap:wrap}.contrast div+div{margin-top:10px}.contrast div>b{flex:0 0 auto;min-width:96px;font-size:var(--t-sm)}.contrast div>span{color:var(--ink-2);font-size:var(--t-sm);line-height:1.7}.lesson-first{background:var(--ink);color:var(--paper);border-color:var(--ink)}.weak-services{margin:20px 0;text-align:left}.weak-services>b{display:block;font-size:var(--t-md)}.weak-services>p{color:var(--ink-2);font-size:var(--t-sm);margin:6px 0 12px}.weak-services div{display:flex;gap:8px;flex-wrap:wrap}.weak-services button{padding:11px 17px;border-radius:var(--r-sm);font-weight:800}.lessons{display:block}.lesson-grid{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;align-items:start}.lesson-list,.lesson-detail{background:var(--paper);border:1px solid var(--line)}.lesson-filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px}.lesson-filters select,.lesson-filters input{font:inherit;font-size:var(--t-base);color:var(--ink);padding:10px 13px;border:1.5px solid var(--line);border-radius:var(--r-sm);background:var(--paper);cursor:pointer}.lesson-filters input{flex:1;min-width:200px;padding:10px 14px;cursor:text}.lesson-filters .num{font-size:var(--t-sm);color:var(--ink-3)}.lesson-list{border-radius:var(--r-lg);padding:8px;max-height:72vh;overflow:auto}.lesson-list>button{display:block;width:100%;text-align:left;background:transparent;padding:11px 13px;border-radius:var(--r-sm);margin-bottom:2px;color:var(--ink)}.lesson-list>button.active{background:var(--brand-soft)}.lesson-row{display:flex;align-items:center;gap:8px}.lesson-list b{font-size:var(--t-base);font-weight:500;color:var(--ink)}.lesson-list>button.active b{font-weight:700;color:var(--brand)}.lesson-list small{display:block;font-size:var(--t-xs);color:var(--ink-3);margin-top:2px}.lesson-list .lesson-fullname{font-size:var(--t-xs);color:var(--ink-2);line-height:1.4}.lesson-status{flex:none;font-size:var(--t-xs);font-weight:700;padding:2px 7px;border-radius:var(--r-sm);font-style:normal}.lesson-status.weak{color:var(--ng);background:var(--ng-soft)}.lesson-status.young{color:var(--warn);background:var(--warn-soft)}.lesson-status.mature{color:var(--ok);background:var(--ok-soft)}.lesson-status.fresh{color:var(--ink-3);background:var(--soft)}.lesson-detail{border-radius:var(--r-lg);padding:28px}.lesson-detail>header{display:flex;justify-content:space-between;gap:12px;margin-bottom:4px}.lesson-detail header p{font-size:var(--t-xs);font-weight:700;color:var(--brand);margin:0}.lesson-detail header h1{font-size:var(--t-xl);font-weight:800;line-height:1.25;margin:4px 0}.lesson-detail header div>p:nth-of-type(2){font-size:var(--t-base);font-weight:400;color:var(--ink-2);line-height:1.45;margin-top:4px}.lesson-detail header small{font-size:var(--t-sm);color:var(--ink-3);margin:2px 0 14px}.lesson-detail>header>span{font-size:var(--t-sm);color:var(--ink-3)}.lesson-detail h2{font-size:var(--t-sm);font-weight:700;color:var(--ink-2);margin:0 0 8px}.lesson-detail h2 span{font-weight:500;color:var(--ink-3)}.lesson-summary{font-size:var(--t-base)!important;line-height:1.85!important;color:var(--ink);margin:0 0 18px}.lesson-detail ul{margin:0 0 18px;padding-left:20px;display:flex;flex-direction:column;gap:7px}.lesson-detail li{font-size:var(--t-base);line-height:1.65;color:var(--ink)}.review-list{display:flex;flex-direction:column;gap:7px;background:var(--ng-soft);border:1px solid var(--ng);border-radius:var(--r-md);padding:14px 16px;margin-bottom:18px}.review-list>b{font-size:var(--t-sm);font-weight:800;color:var(--ng)}.review-list button{font-size:var(--t-sm);line-height:1.55;text-align:left;color:var(--ng);background:transparent;text-decoration:underline}.integration-list{display:flex;flex-direction:column;gap:8px;margin-bottom:18px}.integration-list button{display:flex;gap:11px;align-items:flex-start;text-align:left;background:var(--soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 13px;color:var(--ink)}.integration-list button:hover{border-color:var(--brand);background:var(--brand-soft)}.integration-list b{flex:none;font-size:var(--t-xs);font-weight:800;color:var(--brand);background:var(--brand-soft);padding:3px 9px;border-radius:var(--r-sm);white-space:nowrap}.integration-list span{font-size:var(--t-sm);line-height:1.65;color:var(--ink)}.integration-list small{font-size:var(--t-xs);color:var(--ink-3);margin-right:5px}.lesson-compare{background:var(--brand-soft);border-left:3px solid var(--brand);border-radius:var(--r-sm);padding:12px 15px;font-size:var(--t-sm);line-height:1.7;color:var(--ink);margin:0 0 18px}.reading-list{display:flex;flex-wrap:wrap;gap:6px 10px;margin-bottom:18px}.reading-list span{font-size:var(--t-sm);color:var(--ink-2);background:var(--soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:5px 10px}.lesson-detail footer{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:16px;border-top:1px solid var(--soft)}.lesson-detail footer>div{display:flex;gap:8px;align-items:center}.lesson-detail footer button{border:1.5px solid var(--field-line);background:transparent;color:var(--ink-2);font:inherit;font-weight:600;font-size:var(--t-sm);padding:10px 16px;border-radius:var(--r-sm)}.lesson-detail footer small{font-size:var(--t-xs);color:var(--ink-3)}.lesson-detail footer .practice{border:0;background:var(--brand);color:var(--paper);font-weight:800;padding:11px 20px}.practice-block{flex-direction:column;align-items:flex-end!important}.lesson-empty{text-align:center;padding:55px 20px}.lesson-empty button{border:1.5px solid var(--field-line);background:transparent;color:var(--ink-2);padding:10px 16px;border-radius:var(--r-sm);font-weight:600}.lesson-empty small{display:block;color:var(--ink-3);margin-top:25px}@media(max-width:760px){.lesson-grid{grid-template-columns:1fr}.lesson-list{max-height:72vh}.lesson-detail footer{align-items:flex-start;flex-direction:column}.practice-block{align-items:flex-start!important}}.notes{max-width:760px;margin:auto}.notes>h1{font-size:var(--t-xl);font-weight:800;margin:0 0 6px}.notes-intro{font-size:var(--t-sm);color:var(--ink-2);line-height:1.7;margin:0 0 22px}.notes-empty{background:var(--paper);border:1px dashed var(--line);border-radius:var(--r-lg);padding:40px 24px;text-align:center;color:var(--ink-3);font-size:var(--t-base)}.notes-list{display:flex;flex-direction:column;gap:12px}.notes article{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:18px 20px}.notes article header{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;margin-bottom:8px}.notes article h2{font-size:var(--t-base);font-weight:700;line-height:1.5;margin:0}.notes article button{flex:none;border:0;background:transparent;color:var(--ink-3);font:inherit;font-size:var(--t-xs);cursor:pointer}.notes article>small{display:block;font-size:var(--t-xs);color:var(--ink-3);margin-bottom:8px}.notes article p{font-size:var(--t-sm);line-height:1.7;color:var(--ink);white-space:pre-wrap;margin:0}.progress,.settings{display:grid;gap:18px}.progress>h1,.settings>h1{font-size:var(--t-xl);font-weight:800;margin:0}.progress-card,.settings-card,.progress-stats article{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px}.progress-card h2,.settings-card h2{font-size:var(--t-base);font-weight:700;margin:0 0 12px}.progress-intro,.empty-note{font-size:var(--t-sm);color:var(--ink-3);line-height:1.7;margin:0}.achievement-num{display:flex;align-items:baseline;gap:8px;margin:10px 0}.achievement-num strong{font-size:var(--t-hero);font-weight:500;color:var(--brand)}.achievement-num span{font-size:var(--t-md);color:var(--ink-2)}.progress-bar{display:flex;height:14px;overflow:hidden;border-radius:var(--r-sm);background:var(--bar-bg);margin:12px 0}.progress-bar i{display:block}.bucket-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}.bucket-grid div{background:var(--soft);border-radius:var(--r-md);padding:11px 13px;font-size:var(--t-xs)}.bucket-grid i{display:inline-block;width:9px;height:9px;border-radius:var(--r-xs);margin-right:7px}.bucket-grid b{display:block;font-size:var(--t-md);margin-top:3px}.achievement small{display:block;font-size:var(--t-xs);color:var(--ink-3);line-height:1.6;margin-top:14px}.progress-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.progress-stats article{border-radius:var(--r-lg);padding:18px}.progress-stats b{display:block;font-size:var(--t-xl);font-weight:500}.progress-stats span{font-size:var(--t-xs);color:var(--ink-3)}.domain-list,.gap-list{display:grid;gap:13px}.domain-list header,.gap-list header{display:flex;justify-content:space-between;gap:10px;font-size:var(--t-sm);margin-bottom:6px}.domain-list>div>div{height:9px;border-radius:var(--r-xs);background:var(--bar-bg);overflow:hidden}.domain-list i{display:block;height:100%;border-radius:var(--r-xs)}.gap-list header{font-size:var(--t-xs)}.gap-bars{display:grid;gap:3px}.gap-bars i{display:block;height:6px;border-radius:var(--r-xs);background:var(--warn)}.gap-bars i+i{background:var(--brand)}.source-list{display:flex;flex-wrap:wrap;gap:8px}.source-list a{color:var(--brand);background:var(--soft);border:1px solid var(--line);border-radius:var(--r-sm);padding:8px 11px;font-size:var(--t-sm)}.settings-card input[type=date],.settings-card textarea{width:100%;font:inherit;border:1.5px solid var(--field-line);border-radius:var(--r-sm);background:var(--paper);padding:10px 12px;color:var(--ink)}.segments{display:flex;margin-bottom:14px}.segments button{padding:10px 14px;background:transparent;color:var(--ink-3);border:1px solid var(--field-line)}.segments button:first-child{border-radius:var(--r-sm) var(--r-none) var(--r-none) var(--r-sm)}.segments button:last-child{border-radius:var(--r-none) var(--r-sm) var(--r-sm) var(--r-none)}.segments .selected{background:var(--brand);color:var(--paper);border-color:var(--brand)}.cap-auto b,.cap-manual b{font-size:var(--t-xl);font-weight:500;color:var(--brand)}.cap-auto p,.new-per-day,.setting-note{font-size:var(--t-sm);color:var(--ink-3);line-height:1.65}.cap-manual{display:flex;align-items:center;gap:8px}.cap-manual input{flex:1}.io-counts,.reset-card p{font-size:var(--t-sm);color:var(--ink-2)}.io-actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.io-actions button,.reset-card button{padding:10px 14px;border:1px solid var(--field-line);border-radius:var(--r-sm);background:transparent;color:var(--ink-2);font-weight:700}.reset-card button{color:var(--ng);border-color:var(--ng)}.file-input{display:none}.reset-card{border-color:var(--ng)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:20px;background:var(--scrim)}.modal{width:min(560px,100%);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:22px;box-shadow:var(--shadow-2)}.modal h2{font-size:var(--t-md);margin:0 0 13px}.modal-body{font-size:var(--t-base);line-height:1.75;color:var(--ink);white-space:pre-line}.modal footer{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.modal footer button{padding:10px 16px;border-radius:var(--r-sm);font-weight:700}.modal-cancel{background:transparent;color:var(--ink-2);border:1px solid var(--field-line)}.modal-confirm{color:var(--paper);background:var(--brand)}.modal-confirm.amber{background:var(--warn)}.modal-confirm.danger{background:var(--ng)}.toast{position:fixed;z-index:40;bottom:22px;left:50%;transform:translate(-50%);background:var(--brand);color:var(--paper);padding:11px 16px;border-radius:var(--r-sm);font-size:var(--t-sm);box-shadow:var(--shadow-1)}@media(max-width:520px){.progress-stats{grid-template-columns:repeat(2,1fr)}.progress-stats article{padding:14px}.modal footer{align-items:stretch;flex-direction:column-reverse}.modal footer button{width:100%}}.daily-scale{color:var(--ink-3);font-size:var(--t-xs);margin:0 0 4px}.daily-chart{display:block;width:100%;height:auto}.daily-line{stroke:var(--brand);stroke-width:2;fill:none;stroke-linejoin:round}.daily-dot{fill:var(--brand)}.daily-average{stroke:var(--ink-3);stroke-width:1;stroke-dasharray:3 3}.daily-baseline{stroke:var(--line);stroke-width:1}.daily-axis{display:flex;justify-content:space-between;color:var(--ink-3);font-size:var(--t-xs);margin-top:4px}.daily-summary{font-size:var(--t-sm);margin:12px 0 4px}.daily small{color:var(--ink-3);font-size:var(--t-xs)}.exam-intro,.exam-running,.exam-result{max-width:760px;margin:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px}.exam-intro{text-align:center}.exam-intro>p{color:var(--ink-2);line-height:1.7}.exam-intro h1{font-size:var(--t-xl)}.exam-intro label{display:block;margin:28px auto;max-width:430px;text-align:left;color:var(--brand);font-weight:700}.exam-intro output{float:right;font-size:var(--t-xl)}.exam-intro input{display:block;width:100%;accent-color:var(--brand);margin-top:14px}.exam-intro button,.exam-home{background:var(--brand);color:var(--paper);padding:12px 20px;border-radius:var(--r-sm);font-weight:800}.exam-running>header{display:flex;justify-content:space-between}.exam-running>header button{padding:0;background:transparent;color:var(--brand)}.exam-progress{height:8px;background:var(--bar-bg);border-radius:var(--r-sm);margin:14px 0}.exam-progress i{display:block;height:100%;background:var(--brand);border-radius:inherit}.exam-nav{display:flex;flex-wrap:wrap;gap:5px}.exam-nav button{width:30px;height:30px;padding:0;display:grid;place-items:center;border:1px solid var(--line);border-radius:var(--r-xs);background:var(--paper);color:var(--ink-3);font-size:var(--t-xs);line-height:1}.exam-nav button.current{background:var(--brand);border-color:var(--brand);color:var(--paper)}.exam-nav button.answered{background:var(--brand-soft);border-color:var(--brand-line);color:var(--brand)}.exam-category{color:var(--ink-2);font-size:var(--t-sm);margin-top:25px}.exam-category em{font-style:normal;margin-left:8px;border-radius:var(--r-md);padding:3px 8px;background:var(--brand-soft);color:var(--brand)}.exam-running h1{font-size:var(--t-lg);line-height:1.6}.exam-choices{display:grid;gap:10px;margin:24px 0}.exam-choices button{display:flex;align-items:center;gap:13px;text-align:left;padding:15px;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);color:var(--ink)}.exam-choices button.selected{background:var(--brand-soft);border-color:var(--brand)}.exam-choices kbd{min-width:28px;padding:4px 7px;border:1px solid var(--key-line);border-radius:var(--r-xs);background:var(--paper);color:var(--key);text-align:center}.exam-choices .selected kbd{background:var(--brand);border-color:var(--brand);color:var(--paper)}.exam-running footer{display:flex;justify-content:space-between}.exam-running footer button{padding:11px 17px;border-radius:var(--r-sm);background:var(--bar-bg)}.exam-running footer .next{background:var(--brand);color:var(--paper);font-weight:700}.exam-result{text-align:center}.result-kicker{color:var(--ink-2)}.score{display:block;font-size:var(--t-hero);font-weight:500;line-height:1}.score.on-track,.exam-result .on-track{color:var(--ok)}.score.below-track{color:var(--ng)}.exam-result .near{color:var(--warn)}.result-bars{text-align:left}.result-bars p{display:grid;grid-template-columns:36px 1fr;gap:8px;align-items:center;color:var(--ink-2);font-size:var(--t-sm)}.result-bars i,.domain-results i{height:9px;background:var(--bar-bg);border-radius:var(--r-sm);overflow:hidden}.result-bars i:before{content:"";display:block;width:100%;height:100%;background:var(--warn)}.result-bars p:nth-child(2) i:before{background:var(--brand)}.result-bars i{position:relative}.result-bars i:before{position:absolute;top:0;right:0;bottom:0;left:0}.result-bars i{clip-path:inset(0 calc(100% - var(--width,100%)) 0 0)}.calibration{padding:9px 12px;background:var(--soft);border-radius:var(--r-sm);color:var(--ink-2);font-size:var(--t-sm)}.domain-results{text-align:left;display:grid;gap:11px;margin:24px 0}.domain-results article{display:grid;grid-template-columns:1fr auto;gap:5px;font-size:var(--t-sm)}.domain-results i{grid-column:1/3;height:8px}.domain-results em{display:block;height:100%}.review-toggle{background:transparent;border:1.5px solid var(--brand);border-radius:var(--r-sm);padding:10px 15px;color:var(--brand);font-weight:700;margin:8px}.wrong-list{text-align:left;display:grid;gap:12px;margin:20px 0}.wrong-list article{background:var(--paper);border:1px solid var(--line);border-left:3px solid var(--ng);border-radius:var(--r-lg);padding:18px 20px}.wrong-list small{color:var(--ink-3);font-size:var(--t-xs)}.wrong-list h2{font-size:var(--t-base);line-height:1.55}.your-answer{font-size:var(--t-sm);color:var(--ng);margin-bottom:4px}.right-answer{font-size:var(--t-sm);color:var(--ok)}.wrong-explanation{background:var(--soft);border-radius:var(--r-sm);padding:11px 13px;color:var(--ink);font-size:var(--t-sm);line-height:1.6}@media(max-width:760px){.exam-intro,.exam-running,.exam-result{padding:20px}.exam-nav button{width:28px}.score{font-size:var(--t-hero)}}.score-note{margin:12px 0 20px;color:var(--ink-2);font-size:var(--t-sm);line-height:1.7}.score-split{margin:0;font-weight:700}.split-note,.returned-note{margin:8px 0;color:var(--ink-2);font-size:var(--t-sm);line-height:1.6}.split-note{white-space:pre-line}.returned-note{color:var(--brand)}.exam-choices button.cursor{outline:3px solid var(--ink);outline-offset:2px}.exam-running .keyboard-hint{color:var(--ink-3);font-size:var(--t-xs);line-height:1.8;margin:12px 0}.exam-running .keyboard-hint kbd{padding:2px 5px;border:1px solid var(--key-line);border-radius:var(--r-xs);background:var(--paper);color:var(--key)}.exam-choices button{scroll-margin:16px}.exam-intro .exam-timed{display:flex;align-items:center;gap:10px;margin:-8px auto 24px;max-width:430px;color:var(--ink);font-weight:700}.exam-intro .exam-timed input{display:block;flex:0 0 auto;width:18px;height:18px;margin:0;accent-color:var(--brand)}.exam-timer{margin:12px 0 10px;text-align:right;color:var(--ink);font-size:var(--t-lg);font-weight:700;line-height:1.2;white-space:nowrap}.exam-timer.urgent{color:var(--ng)}.timed-result{margin:12px 0;color:var(--ink);font-weight:700}@media(max-width:420px){.exam-intro .exam-timed{margin-top:-4px}.exam-running>header{align-items:flex-start;gap:12px}.exam-running>header button{text-align:left}.exam-timer{font-size:var(--t-base)}}.reverse{max-width:760px;margin:auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px}.reverse .reverse-head{display:flex;justify-content:space-between;align-items:center}.reverse .reverse-head button{color:var(--brand);background:transparent;padding:5px 0}.reverse .reverse-progress{height:8px;background:var(--bar-bg);border-radius:var(--r-sm);margin:14px 0}.reverse .reverse-progress i{display:block;height:100%;background:var(--brand);border-radius:inherit}.reverse .reverse-fullname{color:var(--ink-2);margin-bottom:4px}.reverse h1{margin:0;font-size:var(--t-xl)}.reverse .reverse-prompt{font-size:var(--t-lg);line-height:1.6}.reverse .choices button.cursor{outline:3px solid var(--ink);outline-offset:2px}.reverse .reverse-result{margin-top:24px;border-top:1px solid var(--line);padding-top:20px;display:flex;justify-content:space-between;align-items:center;gap:12px}.reverse .reverse-next,.reverse .reverse-answer,.reverse .reverse-home,.reverse .reverse-again{padding:11px 17px;border-radius:var(--r-sm);font-weight:700}.reverse .reverse-next,.reverse .reverse-answer,.reverse .reverse-home{background:var(--brand);color:var(--paper)}.reverse.reverse-finish{text-align:center;padding:50px 25px}.reverse.reverse-finish div{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.reverse .reverse-again{border:1.5px solid var(--brand);background:transparent;color:var(--brand)}:root{--bg:#cfd5d1;--soft:#e6e8e3;--paper:#fbfaf6;--line:#b9c2bd;--ink:#242b2f;--ink-2:#5c6670;--ink-3:#626d76;--brand:#2f6b63;--brand-dark:#234b46;--bar-mature:#6d9c94;--bar-young:#7c9fbe;--bar-lapse:#c08c84;--brand-soft:#e7efed;--brand-line:#b9d4cd;--ok:#2f6b63;--ok-soft:#e2ede7;--ng:#9a443b;--ng-soft:#f7eae6;--warn:#86601c;--warn-soft:#f4ead7;--easy:#3c668b;--key:#a59c88;--key-line:#cfc8b8;--field-line:#e0d6c8;--bar-bg:#ece8dd;--scrim:#242b2f80;--shadow-1:0 2px 8px #242b2f1f;--shadow-2:0 12px 32px #242b2f2b;--r-none:0;--r-xs:0;--r-sm:0;--r-md:0;--r-lg:0;--t-xs:11px;--t-sm:13px;--t-base:14px;--t-md:18px;--t-lg:22px;--t-xl:28px;--t-hero:56px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Hiragino Kaku Gothic ProN,Yu Gothic UI,Yu Gothic,Meiryo,system-ui,-apple-system,Segoe UI,sans-serif}.num{font-family:ui-monospace,Cascadia Mono,Consolas,SF Mono,Courier New,monospace;font-feature-settings:"tnum"}.header{position:sticky;top:0;z-index:10;background:var(--paper);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header-inner,.main{max-width:1080px;margin:auto}.header-inner{padding:11px 20px;display:flex;justify-content:space-between;gap:16px;align-items:center}.brand-row,.header .history,.header nav{display:flex;align-items:center;gap:4px}button{font:inherit;cursor:pointer;border:0}button:disabled{cursor:default;opacity:.35}.header .history button,.header nav button{background:transparent;color:var(--ink-2);padding:8px 11px;border-radius:var(--r-sm)}.brand{display:flex;align-items:center;gap:11px;background:transparent;text-align:left}.brand b{background:var(--brand);color:var(--paper);padding:10px 7px;border-radius:var(--r-sm);font-size:var(--t-sm)}.brand span{font-weight:700}.brand small{display:block;font-size:var(--t-xs);color:var(--ink-3);font-weight:500}.active{background:var(--brand-soft)!important;color:var(--brand)!important;font-weight:700}.exam-pill{margin-left:6px;font-weight:700}.main{padding:28px 20px 80px}.resume,.hero{display:grid;gap:18px}.resume{grid-template-columns:1fr auto;align-items:center;background:var(--brand-soft);border:1px solid var(--brand-line);border-radius:var(--r-lg);padding:14px 18px;margin-bottom:20px}.resume p{margin:3px 0 0;color:var(--brand-dark);font-size:var(--t-sm)}.resume button,.queue-card button,.path footer button{background:var(--brand);color:var(--paper);padding:11px 20px;border-radius:var(--r-sm);font-weight:800}.hero{grid-template-columns:1.6fr 1fr}.countdown,.panel,.tiles button,.placeholder{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg)}.queue-card{background:var(--brand);color:var(--paper);padding:30px;box-shadow:var(--shadow-2)}.queue-card small{display:block;line-height:1.6;opacity:.82}.queue-card div{display:flex;align-items:baseline;gap:12px;margin:8px 0}.queue-card strong{font-size:var(--t-hero);font-weight:500;line-height:1}.queue-card p{font-size:var(--t-sm)}.queue-card button{background:var(--paper);color:var(--brand-dark);font-size:var(--t-base);margin-bottom:14px}.countdown{padding:26px}.countdown>small,.countdown p,.panel span,.panel small,.tiles span,.tiles small{color:var(--ink-3)}.deadline{display:flex;align-items:baseline;gap:8px}.deadline strong{font-size:var(--t-hero);color:var(--brand);font-weight:500}.stats{display:flex;gap:8px}.stats div{flex:1;background:var(--soft);padding:12px;border-radius:var(--r-md)}.stats b{display:block;font-size:var(--t-lg)}.stats small{font-size:var(--t-xs)}.panel{padding:18px 20px;margin-top:18px}.panel b{font-size:var(--t-md)}.panel>small{float:right}.panel b span{font-weight:500}.panel i,.tiles i{font-style:normal;color:var(--brand)}.bar{display:flex;height:12px;background:var(--bar-bg);border-radius:var(--r-xs);overflow:hidden;margin:11px 0}.bar i:nth-child(1){background:var(--brand)}.bar i:nth-child(2){background:var(--easy)}.bar i:nth-child(3){background:var(--ng)}.panel p{font-size:var(--t-xs);color:var(--ink-2)}.path{position:relative}.path>em{float:right;background:var(--brand-soft);color:var(--brand);padding:4px 11px;border-radius:var(--r-lg);font-size:var(--t-xs);font-style:normal}.steps{display:flex;justify-content:space-between;clear:both;padding-top:20px}.steps div{flex:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;color:var(--ink-3);font-size:var(--t-xs)}.steps i{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--line);border-radius:50%;font-style:normal}.steps .done,.steps .current{color:var(--ink)}.steps .done i{background:var(--brand);color:var(--paper);border-color:var(--brand)}.steps .current i{border-color:var(--brand);color:var(--brand)}.path footer{display:flex;gap:14px;align-items:center;border-top:1px solid var(--soft);padding-top:16px;margin-top:20px;color:var(--ink-2);font-size:var(--t-sm)}.tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.tiles button{padding:20px;text-align:left;display:flex;flex-direction:column;gap:8px}.tiles button:hover{border-color:var(--brand)}.tiles b{font-size:var(--t-base)}.tiles span{font-size:var(--t-sm);text-align:left}.placeholder{text-align:center;padding:60px 24px}.placeholder p{color:var(--ink-2)}@media(max-width:760px){.header-inner{align-items:flex-start;flex-direction:column}nav{flex-wrap:wrap}.hero,.resume,.tiles{grid-template-columns:1fr}.steps{overflow:auto}.steps div{min-width:120px}.path footer{align-items:flex-start;flex-direction:column}.panel>small{float:none;display:block;margin-top:8px}}.bar i:nth-child(1),.legend-swatch.mature{background:var(--bar-mature)}.bar i:nth-child(2),.legend-swatch.young{background:var(--bar-young)}.bar i:nth-child(3),.legend-swatch.weak{background:var(--bar-lapse)}.retention-legend{display:flex;flex-wrap:wrap;gap:4px 14px}.retention-legend span{display:inline-flex;align-items:center;gap:5px}.legend-swatch{display:inline-block;width:9px;height:9px;background:var(--bar-bg);border-radius:var(--r-xs)}body{background:var(--bg)}.header{background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:none;backdrop-filter:none}.header .history button,.header nav button{color:var(--ink-2)}.header .history button:hover:not(:disabled),.header nav button:hover{background:var(--soft)}.brand b{background:var(--brand);color:var(--paper)}.brand span{color:var(--ink)}.brand small{color:var(--ink-3)}.active{background:var(--brand-soft)!important;color:var(--brand)!important}.exam-pill{background:var(--soft)!important;color:var(--ink-2)!important;border:1px solid var(--line)}.resume{background:var(--paper);border-color:var(--brand-line)}.resume p{color:var(--ink-2)}.resume button,.review-toggle{background:var(--soft);border:1px solid var(--line);color:var(--ink)}.resume-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.resume .resume-discard{background:transparent;border:1px solid var(--ng);color:var(--ng)}.resume.save-failed{background:var(--ng-soft);border-color:var(--ng)}.resume.save-failed b{color:var(--ng)}.panel,.tiles button,.lesson-filters select,.lesson-filters input{border-radius:var(--r-none)}@media(max-width:760px){.resume-actions{justify-content:flex-start}}
