:root{--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;color:#17202a;font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--bg:#f7f8fa;--surface:#fff;--surface-strong:#f1f5f9;--surface-muted:#f4f6f8;--text:#17202a;--muted:#657386;--border:#e2e8f0;--accent:#13795b;--accent-strong:#0f684d;--accent-pressed:#0b543f;--accent-soft:#edf8f4;--action:#2664c7;--action-pressed:#1e4f9f;--action-soft:#eef4ff;--indigo:#2664c7;--indigo-soft:#eef4ff;--danger:#b42318;--danger-soft:#fff1f0;--success:#13795b;--success-soft:#edf8f4;--warning:#b65c00;--warning-soft:#fff7e8;--focus-ring:#2664c757;--surface-hover:#f6f8fa;--surface-row:#fff;--radius:8px;--shadow:0 10px 24px #0f172a0d;--shadow-soft:0 1px 3px #0f172a0d;--shadow-nav:0 -10px 24px #0f172a12;--interactive-transition:background-color .14s ease, border-color .14s ease, color .14s ease, transform .12s ease, box-shadow .14s ease;background:#f7f8fa}*{box-sizing:border-box}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}html{background:var(--bg);overscroll-behavior-y:contain;min-width:320px}body{background:var(--bg);overscroll-behavior-y:contain;min-width:320px;min-height:100dvh;margin:0}button{cursor:pointer;font:inherit;border:0}button:disabled{cursor:not-allowed}button:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}:root[data-input-modality=pointer] .bottom-nav button:focus-visible,:root[data-input-modality=pointer] .choice-button:focus-visible{outline:0}.app-shell,.session-shell{background:var(--bg);min-height:100dvh}.primary-panel,.section-block,.question-panel,.passage-block,.inline-stat,.metric-card,.icon-button,.choice-button,.recovery-complete-panel{border:1px solid var(--border);border-radius:var(--radius)}.primary-action,.secondary-action,.icon-button,.choice-button,.sentence-button,.bottom-nav button{transition:var(--interactive-transition);-webkit-tap-highlight-color:transparent}.session-header,.session-content,.sticky-action,.session-complete{width:min(100%,480px);margin:0 auto}.session-content,.passage-text,.choice-list{flex-direction:column;display:flex}.bottom-nav,.sticky-action{box-shadow:var(--shadow-nav);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fffffff5;position:fixed;bottom:0;left:0;right:0}.screen{width:min(100%,480px);padding:calc(18px + env(safe-area-inset-top)) 16px calc(89px + env(safe-area-inset-bottom));margin:0 auto}.stack{flex-direction:column;gap:16px;display:flex}.top-header{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.top-header>div:first-child{min-width:0}.top-header h1,.question-panel h1,.session-complete h1{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;margin:3px 0 0;font-size:24px;line-height:1.25}.muted,.empty-text{color:var(--muted)}.muted,.label{margin:0;font-size:13px;line-height:1.5}.label{color:var(--muted);font-weight:700}.streak-chip{border:1px solid var(--border);background:var(--surface);min-height:34px;color:var(--accent-strong);white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:13px;font-weight:750;display:inline-flex}.primary-panel,.section-block,.question-panel,.passage-block{background:var(--surface);box-shadow:var(--shadow-soft)}.primary-panel{flex-direction:column;gap:14px;padding:16px;display:flex}.primary-panel.quiet{background:var(--surface);box-shadow:var(--shadow-soft);border-style:dashed}.primary-panel.quiet p{margin:0}.primary-panel h2,.section-block h2,.passage-block h1{color:var(--text);letter-spacing:0;margin:0;font-size:17px;line-height:1.35}.goal-panel{background:var(--surface);gap:12px}.goal-panel.has-active-session{gap:10px}.goal-dashboard{grid-template-columns:108px minmax(0,1fr);align-items:center;gap:12px;display:grid}.goal-panel.has-active-session .goal-dashboard{grid-template-columns:90px minmax(0,1fr);gap:10px}.goal-ring{aspect-ratio:1;border-radius:50%;place-items:center;width:108px;display:grid;box-shadow:inset 0 0 0 1px #2664c714,0 8px 18px #0f172a0f}.goal-ring>div{aspect-ratio:1;background:var(--surface);text-align:center;border-radius:50%;align-content:center;place-items:center;width:80px;display:grid}.goal-panel.has-active-session .goal-ring{width:90px}.goal-panel.has-active-session .goal-ring>div{width:66px}.goal-ring span,.goal-ring em{color:var(--muted);font-size:12px;font-style:normal;font-weight:750;line-height:1.25}.goal-ring strong{color:var(--text);font-size:27px;line-height:1.05}.goal-panel.has-active-session .goal-ring strong{font-size:24px}.today-recommendation{border-left:1px solid var(--border);flex-direction:column;gap:7px;min-width:0;padding-left:12px;display:flex}.today-recommendation strong{color:var(--text);overflow-wrap:anywhere;font-size:19px;line-height:1.2}.today-recommendation span{color:var(--text);overflow-wrap:anywhere;font-size:13px;font-weight:800;line-height:1.35}.today-recommendation small{color:var(--muted);overflow-wrap:anywhere;font-size:12px;font-weight:750;line-height:1.35}.today-stat-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.today-stat-row.resume-stat-row{grid-template-columns:repeat(2,minmax(0,1fr))}.today-stat-row .inline-stat{box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 9px}.today-stat-row .inline-stat+.inline-stat{border-left:1px solid var(--border)}.resume-progress-strip{grid-template-columns:clamp(46px,13vw,54px) minmax(0,1fr) auto;align-items:center;gap:9px;padding:2px 0 0;display:grid}.resume-progress-character{width:clamp(46px,13vw,54px);height:clamp(46px,13vw,54px);overflow:hidden}.resume-progress-copy{min-width:0}.resume-progress-copy span,.resume-progress-score span{color:var(--muted);font-size:10px;font-weight:850;line-height:1.25;display:block}.resume-progress-copy strong{color:var(--text);overflow-wrap:anywhere;margin-top:2px;font-size:13px;font-weight:850;line-height:1.25;display:block}.resume-progress-copy p{color:var(--muted);overflow-wrap:anywhere;margin:2px 0 0;font-size:12px;font-weight:750;line-height:1.3}.resume-progress-score{border-left:1px solid var(--border);text-align:right;min-width:58px;padding-left:9px}.resume-progress-score strong{color:var(--text);white-space:nowrap;margin-top:1px;font-size:22px;font-weight:900;line-height:1;display:block}.today-reading-snapshot{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(116px,.72fr);align-items:center;gap:12px;padding:10px 0;display:grid}.today-reading-score,.today-reading-progress{min-width:0}.today-reading-score span,.today-reading-progress span,.today-reading-progress em{color:var(--muted);font-size:11px;font-style:normal;font-weight:850;line-height:1.3;display:block}.today-reading-score strong{color:var(--text);margin-top:2px;font-size:32px;line-height:1;display:block}.today-reading-score p{color:var(--text);overflow-wrap:anywhere;margin:4px 0 0;font-size:13px;font-weight:800;line-height:1.35}.today-reading-progress{gap:6px;display:grid}.today-reading-progress-track{height:8px}.today-achievement-score{border-radius:var(--radius);background:var(--surface-muted);grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"label score""detail score";align-items:center;gap:4px 10px;padding:9px 10px;display:grid}.today-achievement-score span{color:var(--muted);grid-area:label;font-size:11px;font-weight:850;line-height:1.25}.today-achievement-score strong{color:var(--text);white-space:nowrap;grid-area:score;place-self:center end;align-items:baseline;gap:2px;font-size:20px;font-weight:900;line-height:1.1;display:inline-flex}.today-achievement-score small{color:var(--muted);font-size:12px;font-weight:750;line-height:1}.today-achievement-score p{color:var(--muted);overflow-wrap:anywhere;grid-area:detail;margin:0;font-size:12px;font-weight:750;line-height:1.35}.today-achievement-score.strong{background:var(--success-soft)}.today-achievement-score.strong strong{color:var(--success)}.today-achievement-score.strong small{color:var(--muted)}.today-reading-meta{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.today-reading-meta span{background:var(--surface-muted);min-height:24px;color:var(--text);white-space:nowrap;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:850;line-height:1.2;display:inline-flex}.today-companion{--companion-bg:#f8f5ee;--companion-color:#345a6b;--companion-soft:#f4df9a;background:0 0;grid-template-columns:clamp(104px,30vw,120px) minmax(0,1fr);align-items:center;gap:10px;padding:0;display:grid}.today-companion.tone-ready,.today-companion.tone-progress{--companion-bg:#f8f5ee;--companion-color:#345a6b;--companion-soft:#f4df9a}.today-companion.tone-goal-complete,.today-companion.tone-milestone{--companion-bg:#fff7e8;--companion-color:#8a5300;--companion-soft:#ffd978}.today-companion.tone-review-clear{--companion-bg:#f1f7f4;--companion-color:#38624e;--companion-soft:#dcece3}.today-companion.tone-evidence{--companion-bg:#f2f8fb;--companion-color:#2d6170;--companion-soft:#d8eef2}.today-companion.tone-weak-focus{--companion-bg:var(--warning-soft);--companion-color:#8a4300;--companion-soft:#ffe5b4}.today-companion-mark{width:clamp(102px,29vw,116px);height:clamp(102px,29vw,116px);color:var(--companion-color);background:0 0;border-radius:0;place-items:center;display:grid;position:relative;overflow:hidden}.today-companion-copy{min-width:0}.today-companion-stage{color:var(--companion-color);font-size:11px;font-weight:850;line-height:1.25;display:block}.today-companion-copy strong{color:var(--text);overflow-wrap:anywhere;margin-top:2px;font-size:14px;font-weight:850;line-height:1.25;display:block}.today-companion-copy p{color:var(--muted);overflow-wrap:anywhere;margin:3px 0 0;font-size:12px;font-weight:750;line-height:1.35}.study-character-image{object-fit:contain;object-position:center bottom;width:100%;height:100%;display:block}.celebration{color:var(--accent-strong);margin:0;font-size:14px;font-weight:800}.study-plan-card{flex-direction:column;gap:9px;display:flex}.mock-followup-card{background:var(--surface);grid-template-columns:86px minmax(0,1fr);align-items:center;gap:12px;display:grid}.mock-followup-ring{aspect-ratio:1;border-radius:50%;place-items:center;width:86px;display:grid;box-shadow:inset 0 0 0 1px #2664c714,0 8px 18px #0f172a0f}.mock-followup-ring>div{aspect-ratio:1;background:var(--surface);text-align:center;border-radius:50%;align-content:center;place-items:center;width:64px;display:grid}.mock-followup-ring span,.mock-followup-ring em{color:var(--muted);font-size:11px;font-style:normal;font-weight:750;line-height:1.2}.mock-followup-ring strong{color:var(--text);font-size:24px;line-height:1.05}.mock-followup-main{flex-direction:column;gap:9px;min-width:0;display:flex}.mock-followup-kicker{color:var(--muted);align-items:center;gap:5px;font-size:12px;font-weight:850;line-height:1.2;display:inline-flex}.mock-followup-card h2{margin-top:4px}.mock-followup-card p{color:var(--muted);margin:5px 0 0;font-size:13px;line-height:1.5}.mock-followup-footer{justify-content:space-between;align-items:center;gap:10px;display:flex}.mock-followup-footer>span{color:var(--muted);white-space:nowrap;font-size:12px;font-weight:800}.plan-heading-row{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.plan-heading-row .section-heading{min-width:0;margin-bottom:0}.plan-day-chip{background:var(--surface-muted);min-height:30px;color:var(--text);white-space:nowrap;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:850;display:inline-flex}.plan-day-chip strong,.plan-day-chip small{line-height:1}.plan-day-chip strong{color:var(--text);font-size:13px;font-weight:900}.plan-day-chip small{color:var(--muted);font-size:11px;font-weight:800}.plan-stat-row{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) minmax(0,1fr);display:grid}.plan-stat-row .inline-stat{box-shadow:none;background:0 0;border:0;border-radius:0;padding:8px 10px}.plan-stat-row .inline-stat+.inline-stat{border-left:1px solid var(--border)}.plan-guidance{gap:8px;display:grid}.plan-guidance>div{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:42px;padding-top:8px;display:flex}.plan-guidance span{color:var(--muted);flex-shrink:0;font-size:12px;font-weight:850}.plan-guidance strong{min-width:0;color:var(--text);overflow-wrap:anywhere;text-align:right;font-size:13px;font-weight:850;line-height:1.35}.plan-guidance>div:last-child{padding-bottom:0}.inline-stat{background:var(--surface-muted);min-width:0;padding:8px;box-shadow:0 1px #17202a05}.inline-stat span{color:var(--muted);font-size:11px;font-weight:800;line-height:1.3;display:block}.inline-stat strong{overflow-wrap:anywhere;color:var(--text);margin-top:3px;font-size:14px;line-height:1.2;display:block}.progress-track{background:var(--surface-muted);border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--action);height:100%;transition:width .18s;display:block}.primary-action,.secondary-action{border-radius:var(--radius);justify-content:center;align-items:center;gap:8px;width:100%;min-height:50px;padding:0 14px;font-size:15px;font-weight:850;display:inline-flex}.primary-action svg,.secondary-action svg{flex-shrink:0}.primary-action{background:var(--action);color:#fff;box-shadow:0 8px 18px #2664c72e}.primary-action:disabled{color:#5f6f7e;box-shadow:none;cursor:not-allowed;background:#dbe4ec}.primary-action:disabled,.secondary-action:disabled{transform:none}.secondary-action{border:1px solid var(--border);background:var(--surface);color:var(--text)}.secondary-action:disabled{color:#98a6b6;cursor:not-allowed;background:#f3f6f9;border-color:#e3e9ef}.secondary-action.danger{color:var(--danger)}.secondary-action.danger:focus-visible{outline-color:#b4231847}.section-block{padding:15px}.section-heading{margin-bottom:10px}.section-heading p{color:var(--muted);margin:4px 0 0;font-size:13px;line-height:1.45}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.metric-grid.weekly-kpis{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;overflow:hidden}.metric-card{background:var(--surface);min-height:78px;padding:11px;box-shadow:0 1px #17202a05}.metric-card p{color:var(--muted);margin:0 0 7px;font-size:12px;font-weight:700}.metric-card strong{color:var(--text);overflow-wrap:anywhere;font-size:20px;line-height:1.1}.weekly-kpis .metric-card{min-height:72px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:10px}.weekly-kpis .metric-card+.metric-card{border-left:1px solid var(--border)}.weekly-kpis .metric-card strong{font-size:18px}.sample-note{border-radius:var(--radius);background:var(--warning-soft);color:#7a3b00;border:1px solid #b65c002e;margin:-2px 0 0;padding:9px 10px;font-size:12px;font-weight:750;line-height:1.45}.analytics-empty-note{border-top:1px dashed var(--border);padding-top:12px}.reading-progress-card{border-top:1px solid var(--border);gap:10px;padding-top:12px;display:grid}.reading-progress-card span{color:var(--muted);font-size:11px;font-weight:850}.reading-progress-card strong{color:var(--text);margin-top:2px;font-size:28px;line-height:1;display:block}.reading-progress-card p{color:var(--text);margin:5px 0 0;font-size:13px;font-weight:800}.ability-row span{color:var(--ability-status-color);font-size:11px;font-weight:850}.ability-list{gap:0;display:grid}.ability-row{--ability-status-color:var(--accent-strong);border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:11px 0;display:grid}.ability-row:last-child{padding-bottom:0}.ability-row.needsWork{--ability-status-color:var(--danger);border-color:#b423183d}.ability-row.collecting{--ability-status-color:var(--warning);border-color:#b65c003d}.ability-row>div:first-child{min-width:0}.ability-row strong{color:var(--text);margin-top:2px;font-size:15px;line-height:1.25;display:block}.ability-row p{color:var(--muted);margin:3px 0 0;font-size:12px;line-height:1.4}.ability-row-score{text-align:right;min-width:74px}.ability-row-score strong{color:var(--ability-status-color);font-size:20px}.ability-row-score small{color:var(--muted);margin-top:3px;font-size:11px;font-weight:750;line-height:1.25;display:block}.reset-dialog{width:min(100% - 28px,360px);max-width:none;max-height:calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);overscroll-behavior:contain;margin:auto;padding:0;position:fixed;inset:0;overflow:auto;box-shadow:0 20px 48px #17202a3d}.reset-dialog::backdrop{background:#17202a85}.reset-dialog-panel{padding:16px}.reset-dialog-panel>h2{letter-spacing:0;margin:0;font-size:18px;line-height:1.45}.reset-dialog-panel>p{color:var(--muted);margin:8px 0 0;font-size:14px;line-height:1.65}.reset-dialog-actions{gap:10px;margin-top:18px;display:grid}.reset-confirm-action{background:var(--danger-soft);border-color:#b4231847;box-shadow:0 6px 14px #b4231814}.reset-confirm-action:focus-visible{outline-color:#b4231857}.session-switch-panel{box-shadow:none;border-color:#b423183d}.switch-actions{gap:10px;display:grid}.review-history-section{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.review-controls{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);gap:10px;padding:12px;display:grid}.review-control-heading{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-size:12px;font-weight:800;display:flex}.review-day-switcher{grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:6px;display:grid}.review-day-button{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);height:48px;color:var(--action);place-items:center;padding:0;display:grid}.review-day-button:disabled{background:var(--surface-muted);color:#a6b0bd;opacity:.7}.review-day-select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);min-width:0;height:48px;color:var(--text);font:inherit;text-align:center;text-align-last:center;padding:0 8px;font-size:14px;font-weight:850}.review-day-select:focus-visible{outline:3px solid var(--focus-ring);outline-offset:1px}.review-wrong-toggle{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-muted);min-height:48px;color:var(--muted);text-align:left;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:0 12px;font-size:13px;font-weight:800;display:grid}.review-wrong-toggle.active{background:var(--danger-soft);color:var(--danger);border-color:#b4231833}:root[data-input-modality=pointer] .review-day-button:focus-visible,:root[data-input-modality=pointer] .review-day-select:focus-visible,:root[data-input-modality=pointer] .review-wrong-toggle:focus-visible{outline:0}.review-filter-empty{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);color:var(--muted);text-align:center;margin:12px 0 0;padding:24px 12px;font-size:13px;line-height:1.5}.review-history-item{border-top:1px solid var(--border);padding:18px 2px 22px}.review-history-item:last-child{padding-bottom:0}.review-history-item>h2{color:var(--text);letter-spacing:0;overflow-wrap:anywhere;margin:0;font-size:15px;font-weight:750;line-height:1.45}.review-disclosure{margin:0}.review-history-item>.review-disclosure{margin-bottom:12px}.review-disclosure summary{cursor:pointer;min-height:44px;color:var(--action);align-items:center;gap:7px;padding:0 4px;font-size:13px;font-weight:800;list-style:none;display:flex}.review-disclosure summary::-webkit-details-marker{display:none}.review-disclosure summary:focus-visible{outline:3px solid var(--focus-ring);outline-offset:-2px;border-radius:6px}:root[data-input-modality=pointer] .review-disclosure summary:focus-visible{outline:0}.review-disclosure-chevron{color:var(--muted);margin-left:auto}.review-disclosure[open] .review-disclosure-chevron{transform:rotate(180deg)}@media (prefers-reduced-motion:no-preference){.review-disclosure-chevron{transition:transform .14s}}.review-disclosure>.passage-block{--session-gutter:12px;background:var(--surface);margin-inline:0}.review-passage .passage-title-row h3{min-width:0;color:var(--text);letter-spacing:0;margin:0;font-size:17px;font-weight:700;line-height:1.35}.review-answer-panel .choice-button:disabled{cursor:default}.review-answer-panel .choice-list,.review-answer-panel .feedback-panel{margin-top:12px}.review-answer-panel .explanation-box p{margin:0;font-size:14px;line-height:1.55}.bottom-nav{z-index:20;border-top:1px solid var(--border);padding:7px 10px calc(7px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.bottom-nav button{border-radius:var(--radius);min-height:58px;color:var(--muted);background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:750;transition:background-color .14s,color .14s,transform .12s;display:inline-flex}.bottom-nav button.active{background:var(--action-soft);color:var(--action);box-shadow:inset 0 0 0 1px #2664c714}.bottom-nav button:active{transform:translateY(1px)}.session-shell{overflow-anchor:none;flex-direction:column;display:flex}.session-header{z-index:10;border-bottom:1px solid var(--border);padding:calc(10px + env(safe-area-inset-top)) 16px 10px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#f8fafcf5;grid-template-columns:44px 1fr auto;align-items:center;gap:12px;display:grid;position:sticky;top:0}.session-header p,.session-header strong{margin:0;display:block}.session-header p{color:var(--muted);font-size:12px;font-weight:700}.session-header strong{color:var(--text);font-size:19px;line-height:1.08}.session-position{align-items:baseline;gap:4px;display:flex}.session-position-total{color:var(--muted);font-size:12px}.session-progress-area{flex-direction:column;gap:7px;min-width:0;display:flex}.session-title-row{justify-content:space-between;align-items:center;gap:8px;min-width:0;display:flex}.session-title-row>div{min-width:0}.session-type-chip{max-width:100%;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:800;line-height:1.3;overflow:hidden}.session-progress-track{height:6px}.icon-button{background:var(--surface);width:44px;height:44px;color:var(--text);place-items:center;display:grid}.session-content{--session-gutter:16px;flex:1 0 auto;gap:18px;padding:14px 16px 18px}.session-content.has-passage{padding-top:0}.passage-block,.question-panel{box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.passage-block{margin-inline:calc(var(--session-gutter) * -1);padding:18px var(--session-gutter) 18px;background:#ffffffc7;box-shadow:inset 0 -1px #6573861f}.passage-title-row{margin-bottom:12px}.passage-title-row h2{min-width:0}#question-panel,#answer-feedback,.passage-document-heading,.sentence-button{scroll-margin-top:96px}.question-panel{overflow-anchor:none}.passage-text{gap:4px}.passage-document-section{flex-direction:column;gap:4px;display:flex}.passage-text.multiple-documents{gap:10px}.passage-text.multiple-documents .passage-document-section{border-left:3px solid #23355b1f;padding-left:9px}.passage-document-heading{min-height:0;color:var(--text);scroll-margin-top:calc(276px + env(safe-area-inset-top));background:0 0;border-radius:0;gap:2px;padding:3px 0;display:grid}.passage-document-heading>span{color:var(--accent-strong);font-size:11px;font-weight:900;line-height:1.2}.passage-document-heading>strong{font-size:14px;font-weight:900;line-height:1.35}.passage-document-heading.expected{background:var(--indigo-soft);border-radius:6px}.sentence-button{isolation:isolate;width:100%;min-height:0;color:var(--text);text-align:left;overflow-wrap:anywhere;scroll-margin-top:calc(276px + env(safe-area-inset-top));background:0 0;border-radius:6px;margin:0;padding:2px 0;font-size:15px;line-height:1.6;position:relative}.sentence-button.expected{box-shadow:none;background:0 0;border-radius:6px;padding:2px 0}.sentence-button.expected:after{content:"";z-index:-1;background:var(--indigo-soft);border-radius:6px;position:absolute;inset:-3px -8px}.sentence-button-text{display:block}.document-line-document-kind{padding-top:0;padding-bottom:0}.document-line-content-document-kind{color:var(--muted);align-items:baseline;gap:8px;display:flex}.document-kind-label{letter-spacing:.02em;font-size:11.5px;font-weight:800;line-height:1.45}.document-kind-value{color:var(--text);font-size:14px;line-height:1.45}.document-line-metadata,.document-line-field{padding-top:1px;padding-bottom:1px;font-size:14.5px;line-height:1.45}.document-line-content-metadata{grid-template-columns:60px minmax(0,1fr);align-items:start;column-gap:8px;display:grid}.document-line-label{color:var(--muted);font-size:12.5px;font-weight:700;line-height:1.65}.document-line-value{overflow-wrap:anywhere;min-width:0}.document-line-metadata+.document-line-body{margin-top:8px}.document-line-metadata.is-emphasis .document-line-value,.document-line-field.is-emphasis .document-line-value{font-weight:700}.document-line-content-message{grid-template-columns:40px minmax(0,1fr);align-items:start;column-gap:7px;display:grid}.document-line-message.without-time .document-line-content-message{grid-template-columns:minmax(0,1fr)}.document-message-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px;line-height:2}.document-message-body{min-width:0}.document-message-body>strong{font-weight:750}.document-line-field .document-line-label{margin-right:5px}.document-line-field .document-line-value{font-variant-numeric:tabular-nums}.document-advertisement .passage-document-heading>strong{font-size:15.5px;line-height:1.35}.document-line-content-headline{gap:2px;display:grid}.document-line-headline .document-kind-label{color:var(--accent-strong)}.document-line-headline .document-kind-value{font-size:15.5px;line-height:1.4}.document-line-cta{color:var(--accent-strong);margin-top:4px;font-weight:700}.sentence-button:disabled{opacity:1}.question-panel h1,.question-panel h2{margin:0;font-size:16.5px;font-weight:650;line-height:1.45}.review-note{color:var(--indigo);margin:0 0 8px;font-size:12px;font-weight:800}.choice-list{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);border:1px solid #65738629;gap:0;margin-top:14px;overflow:hidden}.question-panel.awaiting-feedback:after{content:"";min-height:clamp(100px,22dvh,132px);display:block}.choice-button{background:var(--surface);width:100%;min-height:54px;color:var(--text);box-shadow:none;text-align:left;border:0;border-bottom:1px solid #65738624;border-radius:0;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:10px 8px;display:grid}.choice-button:last-child{border-bottom:0}.choice-button span{width:32px;height:32px;color:var(--muted);background:#edf2f7;border-radius:999px;place-items:center;font-size:13px;font-weight:900;transition:background-color .14s,color .14s;display:grid}.choice-button strong{overflow-wrap:anywhere;min-width:0;font-size:14.5px;font-weight:650;line-height:1.4}.choice-button.selected{background:var(--action-soft);box-shadow:none}.choice-button.selected span{background:var(--action);color:#fff}.choice-button.correct{background:var(--success-soft);box-shadow:none}.choice-button.wrong{background:var(--danger-soft);box-shadow:none}.choice-button.correct span{background:var(--success);color:#fff}.choice-button.wrong span{background:var(--danger);color:#fff}.choice-button:disabled:not(.selected):not(.correct):not(.wrong){color:var(--muted);box-shadow:none;background:#ffffff85}.choice-button:disabled:not(.selected):not(.correct):not(.wrong) span{color:var(--muted);background:#f1f5f9}.feedback-panel{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow-soft);border:1px solid #65738629;gap:0;margin-top:16px;padding:12px;display:grid}.feedback-panel.correct{background:var(--surface);color:var(--text);border-color:#13795b29}.feedback-panel.wrong{background:var(--surface);color:var(--text);border-color:#b4231829}.feedback-title{align-items:center;gap:7px;margin-bottom:0;padding-bottom:10px;display:flex}.answer-time-result{color:var(--muted);white-space:nowrap;margin-left:auto;font-size:12px;font-weight:800;line-height:1.2}.feedback-panel.correct .feedback-title{color:var(--success)}.feedback-panel.wrong .feedback-title{color:var(--danger)}.feedback-panel p{margin:0;font-size:14px;line-height:1.55}.explanation-box{color:var(--text);background:0 0;border:0;border-top:1px solid #65738624;border-radius:0;margin-top:0;padding:8px 0 0}.explanation-box>strong{color:var(--text);margin-bottom:4px;font-size:13px;display:block}.evidence-jump-link{width:fit-content;min-height:44px;color:var(--action);text-underline-offset:3px;align-items:center;gap:3px;margin:4px 0 0 auto;padding:0 2px;font-size:12px;font-weight:850;line-height:1.2;text-decoration-line:underline;text-decoration-thickness:1px;display:flex}.evidence-jump-link:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.sticky-action{z-index:15;border-top:1px solid var(--border);padding:12px 18px;padding-bottom:max(12px, env(safe-area-inset-bottom));overflow-anchor:none;position:sticky;left:auto;right:auto}.sticky-action.feedback-action{box-shadow:var(--shadow-nav);background:#fffffff5}.sticky-action.passage-awaiting-answer{background:var(--surface);box-shadow:none;position:static}.session-complete{text-align:center;flex-direction:column;justify-content:center;gap:14px;min-height:100dvh;padding:24px 18px;display:flex}.completion-mark{background:var(--success-soft);width:64px;height:64px;color:var(--accent-strong);border:1px solid #13795b3d;border-radius:999px;place-items:center;margin:0 auto;display:grid}.session-complete p{color:var(--muted);margin:0;line-height:1.6}.completion-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.completion-stats.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.completion-actions{gap:10px;display:grid}.recovery-complete-panel{background:var(--surface-muted);text-align:left;gap:9px;padding:12px;display:grid}.recovery-complete-panel strong{color:var(--text);font-size:15px;line-height:1.35}.recovery-complete-panel p{font-size:13px}.recovery-complete-panel.achieved{background:#f3fbf7;border-color:#237b5c38}.recovery-complete-panel.achieved strong{color:#1f7a59}.empty-text{border-top:1px dashed var(--border);border-bottom:1px dashed var(--border);text-align:center;margin:0;padding:10px 0;font-size:13px;line-height:1.5}.part-stat-row:last-child{border-bottom:0;padding-bottom:0}.part-stat-row{border-bottom:1px solid var(--border);grid-template-columns:76px minmax(0,1fr) 52px;align-items:center;gap:10px;padding:12px 0;display:grid}.part-stat-row strong,.part-stat-row p{margin:0}.part-stat-row p,.part-stat-row span{color:var(--muted);font-size:12px}.weekly-chart{border-radius:var(--radius);background:var(--surface-muted);grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:7px;height:154px;padding:12px 10px 10px;display:grid}.weekly-bar-item{grid-template-rows:18px 1fr 18px;place-items:end center;gap:5px;min-width:0;height:100%;display:grid}.weekly-bar-value{color:var(--muted);white-space:nowrap;font-size:10px;font-weight:800;line-height:1}.weekly-bar-track{justify-content:center;align-items:flex-end;width:100%;height:96px;display:flex}.weekly-bar-track span{background:#cbd5e1;border-radius:7px 7px 3px 3px;width:min(100%,26px)}.weekly-bar-item.empty .weekly-bar-track span{background:0 0}.weekly-bar-item.empty .weekly-bar-value{color:#94a3b8}.weekly-bar-item.today .weekly-bar-track span{background:var(--action)}.weekly-bar-item strong{color:var(--muted);font-size:11px;line-height:1}.weekly-bar-item.today strong{color:var(--action)}.loading-screen{width:min(100% - 36px,420px);min-height:100vh;padding:calc(20px + env(safe-area-inset-top)) 0 calc(20px + env(safe-area-inset-bottom));color:var(--accent-strong);text-align:center;align-content:center;place-items:center;gap:10px;margin:0 auto;display:grid}.loading-indicator{color:var(--accent);place-items:center;display:inline-grid}.storage-error-screen{color:var(--text);gap:12px}.storage-error-screen h1{margin:0 0 8px;font-size:20px;line-height:1.35}.storage-error-screen p{color:var(--muted);margin:0;font-size:14px;line-height:1.6}.storage-error-screen .secondary-action{width:min(100%,240px)}@media (hover:hover) and (pointer:fine){.primary-action:not(:disabled):hover{background:var(--action-pressed);box-shadow:0 10px 22px #2664c73d}.secondary-action:not(:disabled):hover,.icon-button:hover{background:var(--surface-hover);border-color:#cbd7e4}.secondary-action.danger:not(:disabled):hover{background:var(--danger-soft);border-color:#b423184d}.choice-button:not(:disabled):not(.selected):hover{background:var(--surface-hover)}.bottom-nav button:not(.active):hover{background:var(--surface-muted);color:var(--text)}}.primary-action:not(:disabled):active,.secondary-action:not(:disabled):active,.icon-button:active{transform:translateY(1px)}.choice-button:not(:disabled):active{background:var(--surface-hover)}:root[data-input-modality=pointer] .bottom-nav button:active,:root[data-input-modality=pointer] .choice-button:not(:disabled):active{transform:none}@media (prefers-reduced-motion:no-preference){.loading-indicator{animation:1.2s ease-in-out infinite loading-pulse}@keyframes loading-pulse{0%,to{opacity:.55;transform:scale(.96)}50%{opacity:1;transform:scale(1)}}}@media (width<=360px){.screen,.session-header,.session-content,.sticky-action{padding-left:14px;padding-right:14px}.session-content{--session-gutter:14px;padding-bottom:16px}.sticky-action{padding-top:10px;padding-bottom:10px;padding-bottom:max(10px, env(safe-area-inset-bottom))}.sticky-action .primary-action,.sticky-action .secondary-action{min-height:46px}.top-header h1,.session-complete h1{font-size:22px}.metric-card strong{font-size:20px}.goal-dashboard{grid-template-columns:104px minmax(0,1fr);gap:10px}.goal-ring{width:104px}.goal-ring>div{width:76px}.goal-ring strong{font-size:26px}.weekly-kpis .metric-card strong{font-size:17px}.weekly-kpis .metric-card{padding:10px 8px}.today-stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.today-stat-row:not(.resume-stat-row) .inline-stat:last-child{border-top:1px solid var(--border);border-left:0;grid-column:1/-1}.today-reading-snapshot{grid-template-columns:1fr}.part-stat-row{grid-template-columns:68px minmax(0,1fr) 50px}}@media (width<=340px){.goal-dashboard{grid-template-columns:1fr}.goal-ring{justify-self:center}.mock-followup-card{grid-template-columns:1fr}.mock-followup-ring{justify-self:center}.mock-followup-footer{flex-direction:column;align-items:stretch}.today-recommendation{border-top:1px solid var(--border);border-left:0;padding-top:12px;padding-left:0}.goal-panel.has-active-session{gap:10px}.goal-panel.has-active-session .goal-dashboard{grid-template-columns:88px minmax(0,1fr);gap:10px}.goal-panel.has-active-session .goal-ring{justify-self:start;width:88px}.goal-panel.has-active-session .goal-ring>div{width:66px}.goal-panel.has-active-session .goal-ring strong{font-size:23px}.completion-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.goal-panel.has-active-session .today-recommendation{border-top:0;border-left:1px solid var(--border);padding-top:0;padding-left:10px}.today-stat-row,.metric-grid.weekly-kpis,.today-stat-row{gap:0}}@media (width>=768px){.screen,.session-header,.session-content,.sticky-action,.session-complete{width:min(100%,520px)}.bottom-nav{border-right:1px solid var(--border);border-left:1px solid var(--border);width:min(100%,520px);left:50%;right:auto;transform:translate(-50%)}}
