:root{--bg:#f4f5f1;--paper:#fff;--ink:#1a3030;--muted:#697773;--line:#dfe5df;--accent:#164e47;--pale:#e9f1ea;--warm:#f8eddb;--danger:#9b4440;--shadow:0 7px 28px #20312a06;font-family:ui-sans-serif,system-ui,-apple-system,"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;color:var(--ink);line-height:1.7;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg)}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);border-radius:12px;background:white;color:var(--ink);padding:11px 17px;cursor:pointer;font-size:14px;font-weight:600;transition:background .15s,transform .15s}button:hover{background:var(--pale)}button:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c79650;outline-offset:3px}.primary{background:var(--accent);color:white;border-color:var(--accent)}.primary:hover{background:#21675d}.flat{border:0;background:transparent}.small{font-size:12px;padding:7px 11px}.danger{color:var(--danger)}.muted{color:var(--muted)}.tiny{font-size:12px}.hidden,[hidden]{display:none!important}h1,h2,h3,p{margin-top:0}h1{font-size:32px;letter-spacing:-.025em;line-height:1.4;margin-bottom:12px}h2{font-size:18px;line-height:1.5;margin-bottom:12px}h3{font-size:15px;margin-bottom:10px}p{margin-bottom:16px}strong{font-weight:700}.eyebrow{font-size:11px;letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-bottom:10px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.stack{display:grid;gap:18px}.card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:25px;box-shadow:var(--shadow)}.chip{display:inline-flex;gap:7px;align-items:center;white-space:nowrap;font-size:11px;border-radius:999px;padding:5px 10px;background:var(--pale);color:var(--accent)}.chip.warm{background:var(--warm);color:#886126}.brandmark{background:var(--accent);color:white;display:inline-grid;place-items:center;width:42px;height:42px;border-radius:13px;font-family:serif;font-size:23px}.brand{display:flex;align-items:center;gap:11px}.brand strong{font-size:17px}.brand small{display:block;font-size:10px;letter-spacing:.16em;color:var(--muted)}.layout{min-height:100vh;display:grid;grid-template-columns:230px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:34px 22px;background:#fcfcf9;border-right:1px solid var(--line);display:flex;flex-direction:column}.sidebar nav{display:grid;gap:8px;margin-top:46px}.navbutton{text-align:left;display:flex;gap:13px;align-items:center;border:0;background:transparent;padding:13px 15px;color:var(--muted)}.navbutton.active{color:var(--accent);background:var(--pale)}.navicon{width:20px;height:20px;display:inline-block}.sidebarfoot{margin-top:auto;border-top:1px solid var(--line);padding-top:20px;font-size:11px;color:var(--muted)}.main{width:100%;max-width:1230px;padding:30px 44px 50px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;gap:12px}.topbar .appname{font-size:12px;color:var(--muted)}.notice{border:1px solid #e4d8bf;background:#fcf6e9;padding:12px 16px;border-radius:12px;margin-bottom:20px;font-size:12px}.notice.neutral{background:var(--pale);border-color:#d5e1d7}.dashboard{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(265px,1fr);gap:22px}.hero{background:var(--accent);color:white;border:0;padding:31px}.hero .eyebrow,.hero .muted{color:#cee0d9}.hero h1{font-size:29px}.hero .big{font-size:64px;font-weight:700;line-height:1.15;letter-spacing:-.06em}.hero .count-label{font-size:14px;margin-left:6px;color:#d5e2da}.hero button{width:100%;margin-top:24px;border:0;padding:14px;background:#f8fbf4;color:var(--accent)}.hero .row{align-items:baseline}.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #ffffff35;margin-top:24px;padding-top:19px}.stats strong{display:block;font-size:24px}.stats span{font-size:11px;color:#c9ded6}.scope-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.scope-row:last-child{border:0}.scope-row input{width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}.scope-row small{display:block;color:var(--muted);font-size:11px}.scope-row span:last-child{margin-left:auto;color:var(--muted);font-size:12px}.compact{display:flex;align-items:center;gap:8px;font-size:13px}.compact input{width:88px}.fields{display:grid;gap:16px}.fields label{font-size:13px;color:var(--muted)}input,select,textarea{border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);background:white;max-width:100%}input[type=number]{padding-right:5px}select{font-size:13px}textarea{width:100%;min-height:98px;resize:vertical;font-size:14px;line-height:1.8}.sectiontitle{margin:28px 0 14px;display:flex;align-items:center;justify-content:space-between}.topicitem{padding:16px 0;border-bottom:1px solid var(--line)}.topicitem:last-child{border:0}.topicitem .row{justify-content:space-between}.topicitem small{color:var(--muted);font-size:11px}.topicitem strong{font-size:13px}.progress{height:5px;border-radius:99px;background:var(--pale);margin:18px 0 25px;overflow:hidden}.progress div{height:100%;background:var(--accent);transition:width .2s}.studycard{padding:32px;max-width:880px;margin:auto}.question{font-size:23px;line-height:1.85;letter-spacing:.01em;margin:22px 0 24px;font-weight:600;white-space:pre-wrap;overflow-wrap:anywhere}.studycard .reveal{width:100%;margin-top:18px;padding:15px}.answer{border-top:1px solid var(--line);padding-top:26px;margin-top:25px}.answer p{font-size:16px;line-height:2;white-space:pre-wrap;overflow-wrap:anywhere}.checklist{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.checklist span{font-size:12px;padding:6px 10px;background:var(--pale);border-radius:8px}.notenote{border-left:3px solid #c79a58;padding:9px 15px;font-size:12px;background:#fbf7ef;margin:18px 0;white-space:pre-wrap}.sourcebox{padding:14px 0;border-top:1px solid var(--line);margin-top:19px}.ratinggrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.ratinggrid button{font-size:12px;padding:13px 4px}.ratinggrid small{display:block;font-weight:400;color:var(--muted);margin-top:4px}.ratinggrid button:first-child{background:#faf0ed;color:var(--danger);border-color:#eddbd5}.ratinggrid button:nth-child(3){background:var(--accent);color:white;border-color:var(--accent)}.ratinggrid button:nth-child(3) small{color:#d3e4dc}.listtools{display:flex;gap:10px;margin:20px 0}.listtools input{flex:1;min-width:0}.qitem{border-bottom:1px solid var(--line);padding:21px 0}.qitem:last-child{border:0}.qtitle{font-size:15px;line-height:1.8;margin:10px 0;overflow-wrap:anywhere}.qmeta{font-size:11px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;align-items:center}.qitem .actions{margin-top:11px;display:flex;gap:7px}.empty{text-align:center;padding:37px 20px;color:var(--muted);font-size:14px}.settingsgrid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.settingsgrid .wide{grid-column:1/-1}.kvrow{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.kvrow:last-child{border:0}.bigstat{font-size:40px;letter-spacing:-.03em}.authwrap{max-width:490px;margin:6vh auto;padding:20px}.authwrap>.brand{justify-content:center;margin-bottom:30px}.authwrap .card{padding:32px}.authwrap h1{font-size:27px}.authwrap label{display:grid;gap:7px;font-size:12px;color:var(--muted);margin-bottom:17px}.authwrap button.full{width:100%}.autherror{font-size:12px;color:var(--danger);margin-top:16px}.loading{text-align:center;padding:20vh 20px}.loading h1{font-size:23px;margin-top:20px}.loading p{color:var(--muted);font-size:13px}.mobilebrand{display:none}.mobileNav{display:none}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);max-width:min(90vw,630px);padding:14px 23px;background:#203631;color:white;box-shadow:0 8px 30px #0002;border-radius:12px;z-index:20;font-size:13px}dialog{border:1px solid var(--line);border-radius:20px;padding:0;width:min(1160px,96vw);max-height:94vh}dialog::backdrop{background:#142a2780}.dialoghead{padding:15px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:sticky;top:0;background:white;z-index:1}.dialoghead h2{font-size:14px;margin:0}.iconbutton{border:0;background:transparent;font-size:17px;padding:5px 10px}.sourcegrid{display:grid;grid-template-columns:300px 1fr}.sourcetext{padding:23px;border-right:1px solid var(--line);font-size:13px;line-height:1.95;white-space:pre-wrap}.sourcepane{background:#eaede8;padding:14px}.pagetabs{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:12px}.pagetabs .active{background:var(--accent);color:white}.pageholder{max-height:72vh;overflow:auto;text-align:center}.pageholder img{width:100%;height:auto;display:block;background:white;margin:auto}.offlinecount{margin:8px 0 0}.footerline{font-size:11px;color:var(--muted);margin-top:25px}.intro-note{padding:16px;background:var(--pale);border-radius:12px;font-size:12px;margin-top:20px}.finish{text-align:center;max-width:680px;margin:40px auto}.finish .brandmark{margin-bottom:20px}.finish h1{font-size:29px}a{color:var(--accent)}@media(max-width:1080px){.layout{grid-template-columns:195px 1fr}.sidebar{padding:28px 15px}.main{padding:25px}.dashboard{grid-template-columns:1fr}.settingsgrid{grid-template-columns:1fr}.settingsgrid .wide{grid-column:auto}.brand strong{font-size:15px}.sourcegrid{grid-template-columns:240px 1fr}}
@media(max-width:680px){.layout{display:block}.sidebar{display:none}.main{padding:20px 18px 110px}.mobilebrand{display:flex}.topbar{margin-bottom:23px;align-items:center}.topbar .appname{display:none}.topbar .row{gap:6px}.topbar .chip{font-size:10px}.brandmark{width:34px;height:34px;border-radius:10px;font-size:19px}.brand strong{font-size:14px}.brand small{font-size:9px}.topbar button.small{padding:5px 7px;font-size:11px}h1{font-size:25px}.hero{padding:24px}.hero h1{font-size:25px}.hero .big{font-size:57px}.card{padding:22px;border-radius:17px}.dashboard{gap:17px}.mobileNav{display:flex;position:fixed;bottom:0;left:0;right:0;background:#fcfcf9f5;border-top:1px solid var(--line);justify-content:space-around;padding:10px 10px calc(10px + env(safe-area-inset-bottom));z-index:10;backdrop-filter:blur(12px)}.mobileNav .navbutton{display:grid;justify-items:center;gap:3px;font-size:10px;padding:7px 24px;border-radius:10px}.navicon{width:19px;height:19px}.studycard{padding:22px 19px}.question{font-size:20px;line-height:1.9}.ratinggrid{grid-template-columns:1fr 1fr;gap:8px}.ratinggrid button{font-size:12px;padding:12px 5px}.answer p{font-size:15px}.checklist span{font-size:11px}.listtools{flex-wrap:wrap}.listtools input{flex-basis:100%}.listtools select{flex:1}.settingsgrid{gap:17px}.qtitle{font-size:14px}#toast{bottom:100px;font-size:12px;width:max-content}.sourcegrid{grid-template-columns:1fr}.sourcetext{border-right:0;border-bottom:1px solid var(--line);padding:17px;font-size:12px;max-height:200px;overflow:auto}.sourcepane{padding:10px}.dialoghead{padding:13px 15px}.dialoghead h2{font-size:12px}.pageholder{max-height:63vh}.authwrap{margin:3vh auto}.authwrap .card{padding:24px}.intro-note{font-size:11px}.notice{font-size:11px;padding:10px 12px}.footerline{line-height:1.9}.finish{margin:25px auto}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* v0.2.2: editorial rank, not difficulty. Text labels never rely on color alone. */
.rankbadge{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid;border-radius:7px;padding:5px 9px;font-weight:750;font-size:13px;line-height:1.5}
.rank-A{color:#194e47;background:#e4f1e9;border-color:#87b9a7}.rank-B{color:#795322;background:#fcf4df;border-color:#d8bf84}.rank-C{color:#5a6470;background:#eff2f4;border-color:#cbd1d7}.rank-U{color:#6b6972;background:#f5f3f7;border-color:#d5d0da}
.rankcontrols{border-bottom:1px solid var(--line,#e0e6e1);padding:2px 0 18px;margin:0 0 15px}.rankcontrols h3{font-size:15px;margin:8px 0}.rankbuttons{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.rankbuttons button{padding:10px 12px;min-height:42px}.rankbuttons button span{font-size:11px;margin-left:5px;opacity:.8}.rankbuttons button.selected{background:#194e47;color:white;border-color:#194e47}.rankcontrols p{margin:8px 0}.ranklegend{font-size:12px;line-height:1.8;color:#64726e}.ranklegend summary,.rankdetails summary{cursor:pointer;padding:6px 0;font-weight:600}.ranklegend dt{font-weight:750;color:#213c38}.ranklegend dd{margin:2px 0 9px}.rankdetails{border-left:3px solid #c5d6ce;padding:0 12px;margin:15px 0;font-size:14px;line-height:1.75}.rankdetails p{margin:9px 0}.rankdetails a{color:#235e54;text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.rankuses{display:inline-block;font-size:11px;color:#6d7773;font-weight:400;margin-left:8px}.qitem .rankdetails{font-size:13px}.libraryrank{padding-top:18px;padding-bottom:10px;margin-bottom:18px}.libraryrank .rankcontrols{border:0;margin:0;padding:0}.ranklegend p{font-size:12px}.studycard .question{margin-top:18px}@media(max-width:600px){.rankuses{display:block;margin-left:0}.rankbuttons{gap:6px}.rankbuttons button{flex:1;padding:10px 6px;white-space:nowrap}.rankbadge{font-size:12px}.qmeta{flex-wrap:wrap}}

/* v0.2.3: context stays in the revealed answer, not beside the question. */
.answer-basis{margin-top:8px}.case-section{margin:28px 0}.case-section>h3{margin-bottom:14px}.case-note{border:1px solid var(--line,#dce5df);border-radius:12px;padding:20px;margin:12px 0;background:var(--paper,#fafbf7)}.case-note h4{font-size:18px;margin:8px 0 12px}.case-note .case-facts{font-size:15px;line-height:1.95;margin:10px 0 16px}.case-details summary{cursor:pointer;font-weight:700;font-size:14px}.case-details dl{margin:16px 0 0}.case-details dt{font-weight:700;font-size:14px;margin-top:16px}.case-details dd{margin:5px 0 0;font-size:15px;line-height:1.95}.case-citation{border-top:1px solid var(--line,#dce5df);margin-top:18px;padding-top:12px;font-size:12px;line-height:1.8;color:var(--muted,#657a79)}.case-citation .small{margin-top:8px}.exam-explanation{margin:24px 0}.exam-explanation>h3{margin-bottom:10px}.studycard .question{white-space:pre-line}.answer:empty{padding:0;border:0}.rankuses{white-space:normal}@media(max-width:600px){.case-note{padding:16px}.case-note h4{font-size:17px}.case-note .case-facts,.case-details dd{font-size:14px}.case-citation{overflow-wrap:anywhere}}
/* v0.5: question, explanation and evaluation are separate reading surfaces. */
.main{max-width:1220px}.study-home{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:22px}.daily-goal{border-top:4px solid var(--accent)}.goal-picker{display:flex;gap:6px}.goal-picker button{padding:7px 15px}.goal-picker button[aria-pressed=true]{background:var(--accent);color:white;border-color:var(--accent)}.goal-count{font-size:60px;line-height:1.2;font-weight:650;letter-spacing:-.04em;margin:18px 0}.goal-count span{font-size:19px;font-weight:400;color:var(--muted);letter-spacing:0}.daily-goal .progress{margin:15px 0 20px;height:7px}.goal-start{width:100%;font-size:16px;padding:15px;margin:8px 0 18px}.queue-summary{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding:16px 0 8px}.queue-summary strong{font-size:17px;color:var(--ink)}.week-total strong{font-size:30px;padding-right:8px}.week-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:16px 0}.week-days div{display:grid;justify-items:center;gap:5px;font-size:12px;padding:10px 3px;border-radius:9px;color:var(--muted)}.week-days div.is-done{background:var(--pale);color:var(--accent)}.week-days strong{font-size:16px}.scope-settings{margin-top:22px}.scope-settings>summary{font-weight:600;cursor:pointer;min-height:44px;align-content:center}.chapter-checks{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin:14px 0}.chapter-checks .scope-row span:last-child{margin-left:0;font-size:13px;color:var(--ink)}.scope-settings .rankcontrols{border-top:1px solid var(--line);border-bottom:0;margin-top:24px;margin-bottom:0;padding:18px 0 0}.waiting-note{margin:14px 0 0}.topicitem p{margin:6px 0 10px}.study-stage{max-width:820px;margin:auto}.study-meta{font-size:12px;color:var(--muted)}.topic-title{font-size:26px;margin:12px 0 0}.study-stage>.progress{margin:17px 0 24px}.question-panel{border-top:4px solid var(--accent);padding:27px 30px}.step-label{font-size:13px;font-weight:650;color:var(--accent);letter-spacing:.055em}.question-panel .question{font-size:19px;line-height:1.95;font-weight:400;letter-spacing:.015em;white-space:pre-wrap;margin:22px 0 24px;font-family:'Yu Mincho','Hiragino Mincho ProN',serif}.response-prompt{font-size:13px;color:var(--muted);margin-bottom:12px}.answer-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.answer-choices button{font-size:17px;min-height:50px}.answer-choices button[aria-pressed=true]{background:var(--pale);border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.memo-details{margin:12px 0 18px}.memo-details summary{font-size:13px;cursor:pointer;color:var(--accent);padding:8px 0;min-height:40px}.memo-details textarea{font-size:16px;min-height:76px}.question-panel .reveal{width:100%;padding:14px;font-size:15px}.reveal small{font-size:11px;font-weight:400;opacity:.8;margin-left:12px}.your-answer{font-size:13px;color:var(--muted);margin-bottom:0;border-top:1px solid var(--line);padding-top:12px}.answer-panel{margin-top:22px;padding:26px 30px}#answerArea{scroll-margin-top:16px}.correct-banner{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:var(--pale);border-radius:12px;padding:17px 20px;margin:14px 0 20px}.correct-banner strong{font-size:24px;color:var(--accent);white-space:nowrap}.correct-banner span{font-size:13px;color:var(--accent)}.decisive-point{border:1px solid #bdcfc3;border-left:4px solid var(--accent);border-radius:10px;padding:17px 20px;margin:18px 0 24px}.decisive-point h3{font-size:14px;color:var(--accent);margin-bottom:8px}.decisive-point p{font-size:18px;line-height:1.8;margin:0}.explanation-body h3,.recall-checks h3{font-size:15px;margin-bottom:12px}.explanation-body p{font-size:16px;line-height:1.95;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 14px}.recall-checks{border-top:1px solid var(--line);margin-top:18px;padding-top:18px}.recall-checks ul{font-size:14px;padding-left:21px;margin-bottom:0}.recall-checks li{padding:3px 0}.study-caution{background:#fbf5e9;border-left:3px solid #bc914d;padding:12px 16px;font-size:13px;margin-top:18px}.study-caution p{white-space:pre-wrap;margin:6px 0 0}.editorial-label{font-size:11px;color:var(--muted);margin:20px 0 12px}.study-reference{border-top:1px solid var(--line);padding-top:10px;margin-top:14px}.study-reference>summary,.case-extra>summary{cursor:pointer;color:var(--accent);font-size:14px;padding:8px 0;min-height:44px}.study-reference .rankdetails{font-size:13px}.reference-ranks{margin:12px 0}.reference-ranks .rankbadge{font-size:11px}.reference-citation{font-size:13px;margin-top:18px}.study-reference>p{font-size:13px;overflow-wrap:anywhere}.study-reference small{font-size:11px;color:var(--muted)}.reference-notes{font-size:12px;color:var(--muted);margin-top:18px}.reference-notes summary{cursor:pointer;padding:8px 0}.reference-notes p{font-size:12px;line-height:1.8;margin:8px 0}.review-actions{background:#fcfdfa;border:1px solid #c8d9cc;border-radius:16px;padding:15px 18px;margin-top:18px;box-shadow:0 5px 20px #1a303010}.review-actions .ratinggrid{margin-top:12px;gap:9px}.review-actions .ratinggrid button,.review-actions .ratinggrid button:first-child,.review-actions .ratinggrid button:nth-child(3){background:white;color:var(--ink);border-color:var(--line);font-size:13px;padding:11px 6px;min-height:94px}.review-actions .ratinggrid button:hover{background:var(--pale);border-color:#87b9a7}.review-actions .ratinggrid button span{display:block;font-size:11px;font-weight:400;margin-top:5px;color:var(--muted)}.review-actions .ratinggrid button small,.review-actions .ratinggrid button:nth-child(3) small{font-size:11px;color:var(--muted);margin-top:3px}.study-footer{padding:12px 0 8px;margin-top:6px}.session-finish{max-width:780px;margin:20px auto;text-align:left}.session-finish h1{margin-top:12px}.finish-insight{background:var(--pale);border-radius:12px;padding:18px 22px;margin:18px 0}.finish-insight.warm{background:#fbf5e9}.finish-insight h2{font-size:16px}.finish-insight p:last-child{margin-bottom:0}.finish-controls{margin:24px 0 18px}.record-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.chapter-progress{border-top:1px solid var(--line);padding:17px 0 7px}.chapter-progress strong{font-size:14px}.chapter-progress .row>span{font-size:12px;color:var(--muted)}.chapter-progress .progress{margin:9px 0 7px}.chapter-progress p{margin-bottom:6px}.record-definition{font-size:12px;color:var(--muted);margin-bottom:20px}.record-definition summary{cursor:pointer;min-height:40px;align-content:center}.learn-select{display:grid;grid-template-columns:1.4fr 1.2fr .8fr;gap:15px;margin-bottom:22px}.learn-select label{display:grid;gap:7px;font-size:13px;align-content:start;min-width:0}.learn-select select{width:100%}.plan-question{padding:12px 0;border-top:1px solid var(--line);font-size:14px}.plan-question summary{display:list-item;cursor:pointer;min-height:44px;align-content:center}.plan-question summary .rankbadge{font-size:11px;margin:4px 8px 4px 0}.plan-question p{padding:12px 0;line-height:1.9}.enroll-help{margin-top:16px}.navbutton{gap:10px;padding:12px}.sidebar nav{margin-top:34px;gap:6px}.sidebarfoot{font-size:11px}.rankbadge{font-size:11px;font-weight:600}.qitem .actions{flex-wrap:wrap}.main,.card,.study-stage,.stack{min-width:0}button,input,select,textarea,summary,a{touch-action:manipulation}textarea:focus-visible,summary:focus-visible{outline:3px solid #c79650;outline-offset:3px}
@media(min-width:681px) and (min-height:750px){#ratingArea{position:sticky;bottom:12px;z-index:4}}
@media(max-width:1000px){.study-home{grid-template-columns:1fr}.learn-select{grid-template-columns:1fr 1fr}.learn-select label:last-child{grid-column:1/-1}.record-grid{grid-template-columns:1fr}}
@media(max-width:680px){.main{padding:18px 14px 112px}.topbar .brand small{display:none}.topbar .chip{max-width:100px;overflow:hidden;text-overflow:ellipsis}.mobileNav{padding:7px 3px calc(7px + env(safe-area-inset-bottom));gap:0}.mobileNav .navbutton{padding:7px 3px;flex:1;min-width:0;font-size:10px;gap:4px;white-space:nowrap}.study-meta{font-size:11px;gap:6px}.topic-title{font-size:23px}.question-panel,.answer-panel{padding:20px 18px}.question-panel .question{font-size:18px;line-height:1.95}.answer-panel{margin-top:16px}.correct-banner{padding:14px;gap:8px 14px}.correct-banner strong{font-size:22px}.correct-banner span{font-size:12px}.decisive-point{padding:14px}.decisive-point p{font-size:17px}.explanation-body p{font-size:15px}.review-actions{padding:14px 12px;margin-top:14px}.review-actions .ratinggrid{grid-template-columns:repeat(2,1fr);gap:8px}.review-actions .ratinggrid button{min-height:92px;font-size:13px;padding:10px 4px}.review-actions .row{gap:4px}.review-actions .step-label{font-size:12px}.study-footer{gap:4px}.study-footer .row{gap:0}.study-footer button{font-size:11px;padding:7px}.chapter-checks{grid-template-columns:1fr}.goal-count{font-size:54px}.goal-picker button{padding:8px 13px}.goal-start{font-size:15px}.learn-select{grid-template-columns:1fr}.learn-select label:last-child{grid-column:auto}.session-finish h1{font-size:24px}.finish-insight{padding:16px}.session-finish .finish-controls button{flex:1;min-width:120px}.learn-select select{font-size:16px}.record-grid{gap:16px}.chapter-progress strong{font-size:13px}.chapter-progress p{font-size:11px}.study-stage>.progress{margin:14px 0 18px}.question-panel .rankbadge{font-size:10px}.record-grid .card{padding:20px}}


/* Guided textbook course: one reading unit, three explicit steps. */
.home-course{border-top:4px solid #b78c4d;background:#fffdf8}.home-course h2{font-size:23px;margin-top:10px}.home-course button{width:100%}.course-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(250px,1fr);gap:34px;border-top:4px solid var(--accent);margin:24px 0}.course-hero h2{font-size:25px;margin:12px 0}.course-kicker{color:var(--accent);font-size:12px;font-weight:700}.course-hero h2 small,.course-lesson h1 small{display:block;font-size:14px;font-weight:400;margin-top:5px;color:var(--muted)}.course-hero p{font-size:14px}.course-total{border-left:1px solid var(--line);padding-left:30px;align-self:center}.course-total>strong{font-size:46px;font-weight:650;line-height:1.3}.course-total strong span{font-size:14px;font-weight:400;color:var(--muted)}.course-total p{font-size:12px;margin-bottom:8px}.course-total small{display:block;color:var(--muted);font-size:12px;line-height:1.8}.course-meter{height:8px;background:var(--pale);border-radius:20px;overflow:hidden;margin:16px 0}.course-meter span{display:block;height:100%;background:var(--accent)}.course-flow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:24px 0}.course-flow>span{background:#e9ede7;border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:12px;font-size:13px;text-align:center}.course-flow .current{background:white;color:var(--accent);border-color:var(--accent);font-weight:700}.course-flow .complete{background:var(--pale);color:var(--accent)}.course-map{display:grid;gap:26px;margin-top:35px}.course-group{border:1px solid var(--line);border-radius:18px;overflow:hidden;background:white}.course-group-head{display:flex;gap:16px;align-items:flex-start;padding:22px 24px;background:#eef2ea}.course-group-head>span{color:#789184;font-size:25px;font-weight:500;line-height:1.4}.course-group-head h2{font-size:19px;margin-bottom:5px}.course-group-head p{font-size:13px;margin:0;color:var(--muted)}.course-chapter+.course-chapter{border-top:1px solid var(--line)}.course-chapter>summary{cursor:pointer;padding:18px 24px;list-style:none;display:flex;gap:12px;align-items:center;font-size:14px;min-height:60px}.course-chapter>summary::-webkit-details-marker{display:none}.course-chapter>summary:before{content:'＋';color:var(--accent);font-size:17px}.course-chapter[open]>summary:before{content:'−'}.course-chapter>summary strong{flex:1}.course-chapter>summary>span{font-size:12px;color:var(--muted);white-space:nowrap}.chapter-guide{margin:0 24px 16px 55px;padding:12px 16px;background:#f6f7f3;border-radius:10px;font-size:13px}.chapter-guide h3{font-size:12px;color:var(--muted);margin-bottom:7px}.chapter-guide ul{padding-left:18px;margin:0}.chapter-guide li+li{margin-top:5px}.course-units{display:grid;gap:8px;padding:0 24px 22px 55px}.course-unit-link{display:grid;grid-template-columns:24px minmax(0,1fr) auto;align-items:center;gap:10px;text-align:left;border-radius:10px;padding:13px 14px;min-height:72px;font-size:13px;font-weight:400}.course-unit-link.suggested{border-color:#799e8d;background:#f5faf5}.course-unit-state{color:var(--accent);font-size:20px}.course-unit-link small{display:block;color:var(--muted);font-size:11px;margin-top:3px;font-weight:400}.course-unit-link strong small{display:inline;margin-left:7px}.course-unit-label{font-size:11px;color:var(--accent);white-space:nowrap}.course-note{margin-top:24px}.course-lesson{max-width:820px;margin:auto}.course-lesson>h1{font-size:29px;margin-top:18px;line-height:1.55}.course-step{margin-top:20px;border-top:3px solid #9fbcad}.course-step h2{font-size:20px}.course-step p{font-size:14px;line-height:1.9}.course-step .tiny{font-size:12px}.course-step>.row+ p{margin-top:0}.course-step .row+h2{margin-top:0}.course-step>.row:last-child{margin-top:18px}.course-step .row+p.tiny{margin:14px 0 0}.course-locked{background:#f9faf7;border-top-color:#d5ddd2}.course-locked h2{color:var(--muted);font-size:17px}.course-locked p:last-child{margin-bottom:0}.course-goals{background:var(--pale);border-radius:10px;padding:8px 14px;margin:16px 0}.course-goals>summary{font-size:13px;cursor:pointer;min-height:30px;align-content:center}.course-goals ul{padding-left:19px;font-size:13px}.course-prompts{padding-left:23px;margin:18px 0 20px;font-size:15px;line-height:1.9}.course-prompts li+li{margin-top:10px}.course-step label{display:block;font-size:13px;margin-bottom:8px}.course-step textarea{min-height:110px;font-size:16px}.course-step textarea+p{margin-top:8px}.course-question{border:1px solid var(--line);border-radius:10px;padding:5px 14px;margin:10px 0}.course-question summary{cursor:pointer;font-size:13px;min-height:40px;align-content:center}.course-question .rankbadge{font-size:11px;padding:3px 6px;margin-right:5px}.course-question p{margin-top:10px;overflow-wrap:anywhere}.course-step .full{width:100%;padding:14px;margin:16px 0}.course-step .full:disabled{cursor:default}.course-complete{border:1px solid #9ab8a6;border-radius:16px;background:#e7f0e7;padding:23px;margin:22px 0}.course-complete>strong{font-size:21px;color:var(--accent)}.course-complete p{font-size:14px;margin:8px 0 17px}.course-bottom{border-top:1px solid var(--line);padding-top:18px;margin-top:24px}.course-bottom+p{margin-top:12px}.course-reading-context{display:flex;align-items:center;justify-content:space-between;gap:12px}.course-reading-context p{font-size:12px;margin:4px 0 0}.course-reading-context button{white-space:nowrap;min-height:40px}.course-chapter>summary:focus-visible,.course-question>summary:focus-visible,.course-goals>summary:focus-visible{outline:3px solid #c79650;outline-offset:-3px}
@media(max-width:900px){.course-hero{grid-template-columns:1fr;gap:24px}.course-total{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.course-total>strong{font-size:36px}.course-total small{max-width:500px}}
@media(max-width:680px){.course-hero{padding:22px;gap:20px}.course-hero h2{font-size:22px}.course-hero button{width:100%}.course-flow{gap:5px;margin:20px 0}.course-flow>span{font-size:11px;padding:10px 3px}.course-group-head{padding:18px 16px;gap:12px}.course-group-head h2{font-size:17px}.course-chapter>summary{padding:16px 14px;font-size:13px;gap:8px}.course-chapter>summary>span{font-size:11px}.chapter-guide{margin:0 14px 14px;padding:12px;font-size:12px}.course-units{padding:0 12px 16px;gap:8px}.course-unit-link{padding:12px 10px;gap:7px;grid-template-columns:20px minmax(0,1fr)}.course-unit-link strong{font-size:13px}.course-unit-link strong small{display:block;margin-left:0}.course-unit-label{grid-column:2;font-size:11px;margin-top:-5px}.course-lesson>h1{font-size:24px}.course-lesson>.row>.tiny{max-width:100%}.course-step{padding:20px 17px}.course-step h2{font-size:18px}.course-step .row button{width:100%}.course-prompts{font-size:14px}.course-complete{padding:20px}.course-complete>strong{font-size:19px}.course-complete button{margin-bottom:5px}.course-reading-context{flex-wrap:wrap;gap:5px}.course-reading-context strong{font-size:12px}.course-reading-context button{padding:6px 10px;font-size:11px}.course-reading-context p{font-size:11px}.mobileNav .navbutton{white-space:nowrap;min-width:0;flex:1}.mobileNav{gap:2px;padding-left:5px;padding-right:5px}.course-bottom{gap:7px}.course-bottom button{font-size:11px;padding:7px 4px}}

/* Full textbook reader */
.book-shelf h2{font-size:25px;margin:18px 0}.book-shelf{border-top:4px solid var(--accent)}.book-shelf+.card{margin:20px 0}.book-toc{display:grid;grid-template-columns:1fr 1fr;gap:8px}.book-toc button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;text-align:left;padding:14px;font-size:14px}.book-toc small{color:var(--muted);font-size:11px;font-weight:400}.textbook-ref{border-top:1px solid var(--line);padding:16px 0 6px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center}.textbook-ref p{margin:6px 0}
/* v0.8: a single learning path, compact completed steps, separate study settings. */
.activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.activity-grid>div{background:#f2f6f1;border-radius:14px;padding:20px 10px;text-align:center}.activity-grid strong{display:block;font-size:30px;color:#194f49}.activity-grid span{display:block;font-size:12px;color:#536c69;margin-top:6px}.pace-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:22px 0}.pace-grid small{font-size:12px;color:#627975}.scope-policy{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:16px;align-items:center;padding:14px 0;border-top:1px solid #e0e8e0}.scope-policy .scope-row{margin:0}.scope-policy select{font-size:13px}.resume-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#e7f1ea;border:1px solid #b6d7c6;border-radius:16px;padding:20px;margin:24px 0}.resume-banner p{margin:5px 0 0}.resume-banner button{flex-shrink:0}.candidate-item{padding:16px 0;border-top:1px solid #dce7df}.candidate-item>label{display:flex;align-items:flex-start;gap:12px;cursor:pointer;margin:0}.candidate-item input[type=checkbox]{width:20px;height:20px;min-width:20px;margin:5px 0 0;accent-color:#1a554c}.candidate-item small{display:block;font-weight:400;color:#657c76;margin-top:4px}.candidate-item details{margin:10px 0 0 32px;font-size:14px}.candidate-item details p{margin:12px 0}.enroll-size{max-width:290px;margin:16px 0}.step-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.step-disclosure>summary:before{content:'›';font-size:23px;flex-shrink:0;color:#508274}.step-disclosure[open]>summary:before{content:'⌄'}.step-disclosure>summary h2{flex:1;font-size:19px;margin:0}.step-disclosure>summary::-webkit-details-marker{display:none}.step-disclosure[open]>summary{padding-bottom:20px;border-bottom:1px solid #dce7df;margin-bottom:20px}.step-disclosure .chip{font-size:11px;flex-shrink:0}.course-step[data-course-current]{scroll-margin-top:30px;border-color:#9dbdae}.related-exercise{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 0;border-top:1px solid #e0e8e0}.related-exercise>span{font-size:14px}.listtools{flex-wrap:wrap}.listtools select{max-width:100%}.step-disclosure:not([open]){padding-top:20px;padding-bottom:20px}.home-course>.flat{margin-top:12px}.settingsgrid>.wide:first-child{grid-column:1/-1}.mobileNav{grid-template-columns:repeat(4,1fr)}
@media(max-width:760px){.pace-grid{grid-template-columns:1fr}.scope-policy{grid-template-columns:1fr;gap:5px}.activity-grid{gap:6px}.activity-grid>div{padding:15px 4px}.activity-grid strong{font-size:26px}.activity-grid span{font-size:11px}.resume-banner{align-items:flex-start;flex-direction:column;gap:12px}.step-disclosure>summary h2{font-size:16px}.step-disclosure>summary{gap:8px}.step-disclosure .chip{font-size:10px;padding:5px}.candidate-item .rankbadge{font-size:10px}.related-exercise{align-items:flex-start}.topbar .appname{display:none}.topbar .mobilebrand{display:none}.topbar .row{width:100%;justify-content:flex-end}.mobileNav .navbutton{font-size:11px}.study-meta{font-size:11px}.goal-start{white-space:normal}.listtools{display:grid;grid-template-columns:1fr}.scope-settings>summary{white-space:normal}}
/* The reading surface uses the viewport; only the PDF and knowledge pane scroll. */
.book-dialog{--book-head-height:calc(56px + env(safe-area-inset-top));width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;inset:0;padding:0;border:0;border-radius:0;overflow:hidden;color:var(--ink);background:#eef2ed}
.book-dialog[open]{display:flex;flex-direction:column}.book-dialog::backdrop{background:#17352b88}
.book-dialog button{min-height:44px;white-space:nowrap}.book-dialog button:focus-visible,.book-canvas:focus-visible{outline:3px solid #c79650;outline-offset:-3px}
.book-head{height:var(--book-head-height);padding:6px max(6px,env(safe-area-inset-right)) 6px max(6px,env(safe-area-inset-left));padding-top:calc(6px + env(safe-area-inset-top));display:flex;align-items:center;gap:6px;background:white;border-bottom:1px solid var(--line);flex-shrink:0}
.book-title{flex:1;min-width:0}.book-head h2{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0}.book-head button{font-size:12px;padding:5px 8px;border-radius:9px}
.book-options{position:absolute;z-index:4;top:var(--book-head-height);left:0;right:0;max-height:calc(100% - var(--book-head-height) - 56px - env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain;background:white;border-bottom:1px solid var(--line);box-shadow:0 12px 22px #17352b33;padding-bottom:12px}.book-options[hidden]{display:none}
.book-options-head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;background:white;z-index:1;border-bottom:1px solid var(--line);font-size:14px}
.book-options-head button{font-size:12px;padding:6px 10px}
.book-context{padding:10px 12px;background:#e5efe9;font-size:13px}.book-context strong{font-size:13px}.book-context summary{font-size:12px;cursor:pointer;min-height:44px;align-content:center}.book-context p{font-size:13px;margin:9px 0;line-height:1.8;white-space:pre-wrap}
.reader-explanation{border-top:1px solid #c9d9cd;margin-top:16px;padding-top:12px}.reader-explanation h3{font-size:14px}.reader-explanation p{font-size:13px}
.book-toolbar{padding:10px 12px 5px;display:flex;align-items:end;gap:8px;flex-wrap:wrap}.book-toolbar label{font-size:12px;min-width:0;display:grid;gap:5px}.book-toolbar label:has(#bookChapter){flex-basis:100%}.book-toolbar label:has(#bookZoom){flex:1}.book-toolbar select{width:100%;font-size:16px;min-height:44px;padding:7px}.book-toolbar button{font-size:12px;padding:6px 10px}#bookUpdateText{width:100%}#bookUpdateText:empty{display:none}
.book-tools{padding:3px 12px;font-size:12px}.book-tools summary{min-height:44px;align-content:center;cursor:pointer}.book-jumps{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0 12px}.book-jumps form{display:flex;gap:6px;align-items:end}.book-jumps label{display:grid;gap:3px}.book-jumps input{width:90px;font-size:16px;padding:6px}.book-jumps button{min-height:44px}.book-tools #bookMarks{gap:6px;padding:5px 0 12px}.book-tools #bookMarks button{font-size:12px}
.book-stage{flex:1;min-height:0;min-width:0;position:relative;overflow:hidden}
#bookStatus{position:absolute;top:0;left:0;right:0;z-index:2;margin:0;text-align:center;font-size:12px;color:var(--muted);background:#fffef2;pointer-events:none}#bookStatus:not(:empty){padding:6px 12px}#bookStatus.reader-error{color:#8c312e;background:#fff1ef}
.book-canvas{width:100%;height:100%;overflow:auto;overscroll-behavior:contain;padding:2px;position:relative}.book-canvas canvas{display:block;background:white;margin:0 auto;box-shadow:0 2px 9px #1232;max-width:none}.book-canvas[aria-busy=true] canvas{opacity:.5}
.book-side{display:contents}.book-companion,.book-side-tools,.book-done-full{display:none}
.book-pager{display:flex;align-items:center;gap:6px;padding:6px max(6px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(6px,env(safe-area-inset-left));background:white;font-size:11px;border-top:1px solid var(--line);flex-shrink:0}
.book-pager button{padding:6px 10px;font-size:12px;border-radius:9px}.book-read-done{min-width:48px}#bookPageLabel{flex:1;min-width:0;text-align:center;line-height:1.4}#bookPageLabel span{display:block}#bookPageLabel span+span{font-size:10px;color:var(--muted);font-weight:400;margin-top:3px}
.book-mobile-related:not(.book-wide) .book-companion{display:flex;flex-direction:column;position:absolute;z-index:3;top:var(--book-head-height);left:0;right:0;bottom:calc(56px + env(safe-area-inset-bottom));background:white;min-height:0}
.book-related-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 10px;border-bottom:1px solid var(--line);flex-shrink:0}.book-related-head strong{font-size:14px}.book-related-head button{font-size:12px;padding:6px 8px}
.book-related-content{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 12px 12px;overflow-wrap:anywhere}.book-related-note{font-size:11px;color:var(--muted);line-height:1.6;margin:12px 0}.book-related-empty{font-size:13px;line-height:1.9;padding:8px 0}
.book-knowledge{border:1px solid #dce5de;background:#fafcf9;border-radius:10px;padding:12px;margin-bottom:12px}.book-knowledge-meta{display:flex;justify-content:space-between;gap:6px;color:var(--muted);font-size:11px;flex-wrap:wrap}.book-knowledge-meta span:first-child{color:var(--accent)}.book-knowledge h3{font-size:15px;line-height:1.6;margin:9px 0}.book-knowledge .book-key{font-size:14px;line-height:1.85;margin:10px 0;white-space:pre-wrap}.book-check-label{font-size:11px;color:var(--muted);margin:14px 0 4px}.book-knowledge .book-check{font-size:13px;line-height:1.8;margin:0 0 6px}.book-knowledge summary{font-size:13px;min-height:44px;align-content:center;cursor:pointer;color:var(--accent)}.book-card-answer,.book-card-pitfall{font-size:13px;line-height:1.9;white-space:pre-wrap}.book-card-pitfall{border-left:2px solid #c79650;padding-left:9px}.book-related-pages{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}.book-related-pages button{font-size:11px;padding:5px 8px;background:white}
.book-wide.book-dialog[open]{--book-side-width:clamp(236px,28vw,310px);display:grid;grid-template-columns:minmax(0,1fr) var(--book-side-width);grid-template-rows:var(--book-head-height) minmax(0,1fr)}
.book-wide .book-head{grid-column:1/-1;grid-row:1;padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));gap:12px}.book-wide .book-head h2{font-size:15px}.book-wide #bookOptionsToggle{display:none}
.book-wide .book-stage{grid-column:1;grid-row:2}.book-wide .book-canvas{padding:8px;scrollbar-gutter:stable}
.book-wide .book-side{grid-column:2;grid-row:2;display:flex;flex-direction:column;min-height:0;min-width:0;background:white;border-left:1px solid var(--line);padding-right:env(safe-area-inset-right)}
.book-wide .book-companion{display:flex;flex-direction:column;min-height:0;flex:1}
.book-wide .book-pager{display:grid;grid-template-columns:54px minmax(0,1fr) 54px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));gap:6px}
.book-wide .book-side-tools{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:6px}.book-wide .book-pager button{padding:6px;font-size:12px}.book-wide .book-read-done{grid-column:1/-1;width:100%}.book-wide .book-done-full{display:inline}.book-wide .book-done-short{display:none}
.book-wide .book-options{left:auto;width:min(380px,calc(100% - 88px));max-height:calc(100% - var(--book-head-height));border-left:1px solid var(--line);padding-bottom:calc(12px + env(safe-area-inset-bottom))}.book-wide .book-mobile-knowledge-button{display:none}
.book-wide.book-dialog.book-side-collapsed[open]{--book-side-width:88px}.book-wide.book-side-collapsed .book-related-head{padding:6px;justify-content:center}.book-wide.book-side-collapsed .book-related-head strong,.book-wide.book-side-collapsed .book-related-content{display:none}.book-wide.book-side-collapsed .book-related-head button{width:100%;font-size:11px;padding:5px}.book-wide.book-side-collapsed .book-companion{flex:0 0 auto}.book-wide.book-side-collapsed .book-pager{display:flex;flex-direction:column;flex:1;justify-content:end;padding:8px 6px calc(8px + env(safe-area-inset-bottom));gap:8px}.book-wide.book-side-collapsed .book-pager button{width:100%;white-space:normal}.book-wide.book-side-collapsed .book-side-tools{display:grid;grid-template-columns:1fr;width:100%;margin-bottom:auto}.book-wide.book-side-collapsed #bookPageLabel{flex:0;padding:2px 0}.book-wide.book-side-collapsed .book-done-full{display:none}.book-wide.book-side-collapsed .book-done-short{display:inline}
@media(max-width:680px){.book-toc{grid-template-columns:1fr}.textbook-ref{grid-template-columns:1fr}.book-shelf h2{font-size:21px}.mobileNav .navbutton{font-size:9px;padding:7px 1px}}

html.reading-book{overflow:hidden}

.brand strong{font-size:14px}.brand small{font-size:9px;letter-spacing:.1em}
.subject-bar{display:flex;align-items:end;gap:12px;padding-bottom:18px;margin-bottom:24px;border-bottom:1px solid var(--line)}
.subject-bar label{display:grid;gap:5px;font-size:11px;color:var(--muted);flex:1;max-width:300px}.subject-bar select{font-size:16px;font-weight:600;color:var(--accent);min-height:44px}.subject-bar button{min-height:44px}
.subject-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.subject-card h2{font-size:22px;margin:0}.subject-card p{margin:18px 0 7px;font-size:13px}.subject-card p.tiny{margin:7px 0 22px}.subject-card .row>strong{font-size:12px}.subject-card.selected-subject{border-color:#87aa99;background:#f7fbf6}.subject-mark{display:grid;place-items:center;width:42px;height:42px;background:var(--pale);color:var(--accent);border-radius:12px;font-weight:700}
.subject-empty{max-width:760px}.subject-empty ol{padding-left:24px;line-height:2.2;margin:20px 0 26px}.subject-empty .tiny{margin-top:20px}
.card-editor{max-width:840px}.editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.editor-fields .wide{grid-column:1/-1}.card-editor label{display:grid;gap:7px;font-size:13px}.card-editor input,.card-editor select,.card-editor textarea{font-size:16px;width:100%}.editor-cards{display:grid;gap:24px;margin:30px 0}.editor-cards fieldset{min-width:0;margin:0;padding:20px;border:1px solid var(--line);border-radius:12px;background:#f8faf6;display:grid;gap:16px}.editor-cards legend{padding:0 10px;font-size:13px;font-weight:700;color:var(--accent)}.editor-cards textarea{min-height:90px;background:white}.editor-cards select{max-width:240px}.card-editor>button.full{margin:12px 0;width:100%;min-height:48px}.card-editor>.tiny{margin:16px 0 0}
@media(max-width:680px){.subject-grid{grid-template-columns:1fr;gap:12px}.subject-card{padding:21px}.subject-bar{gap:9px;margin-bottom:22px}.subject-bar label{max-width:none}.subject-bar select{min-width:0}.editor-fields{grid-template-columns:1fr}.editor-fields .wide{grid-column:auto}.card-editor{padding:18px}.editor-cards fieldset{padding:16px}.subject-empty .row{align-items:stretch}.subject-empty .row button{width:100%}}

.book-law-note{border-left:3px solid #c08b38;background:#faf4e8;padding:14px 18px;margin:16px 0;font-size:14px;line-height:1.8}.book-law-note p{margin:6px 0}.book-law-note a{font-size:12px}.book-volume-toc{margin-top:22px}.book-volume-toc summary{cursor:pointer;font-weight:600}.book-update-button{border:0;border-radius:0;background:#faf0db;color:#704913;padding:6px 10px;font-size:12px;flex-shrink:0}.book-update-button[hidden]{display:none}

#bookUpdateText{flex-basis:100%;width:100%}#bookUpdateText:empty{display:none}.book-head .book-update-button{background:#faf0db;color:#704913;font-size:11px;white-space:nowrap}

.exercise-evidence{margin:18px 0;padding:18px;border:1px solid var(--line,#dce5df);border-radius:14px;background:var(--paper,#fff)}
.exercise-ref-list{list-style:none;padding:0;margin:12px 0}.exercise-ref-list li{padding:12px 0;border-bottom:1px solid var(--line,#dce5df)}.exercise-ref-list p{margin:6px 0;overflow-wrap:anywhere}.exercise-ref-list .row{gap:8px}.exercise-evidence a{overflow-wrap:anywhere}
/* Essay practice: keep case facts and the writing task visually distinct. */
.essay-entry{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0;background:linear-gradient(120deg,#e9f1ea,#fff);border-left:4px solid var(--accent)}
.essay-entry p{margin-bottom:0}.essay-entry button{flex-shrink:0}.essay-stats{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0 10px}.essay-stats>span{background:var(--pale);padding:14px 18px;border-radius:12px;font-size:12px}.essay-stats strong{display:block;font-size:24px;color:var(--accent)}
.essay-case-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0}.essay-case h2{font-size:21px;margin-top:8px}.essay-case details{border-top:1px solid var(--line);margin-top:18px;padding-top:10px}.essay-case summary,.essay-review summary{cursor:pointer;min-height:44px;align-content:center;font-size:14px}.essay-mini-steps{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.essay-mini-steps span{background:var(--bg);font-size:11px;padding:5px 7px;border-radius:6px}
.essay-history{max-height:520px;overflow:auto}.essay-history-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.essay-history-row p{margin:5px 0 0}.essay-history-row button{flex-shrink:0}.essay-storage{margin-top:24px}
.essay-stagebar{display:flex;gap:8px;margin:20px 0 12px}.essay-stagebar span{flex:1;border:1px solid var(--line);border-radius:10px;padding:10px;text-align:center;color:var(--muted);font-size:14px}.essay-stagebar .current{background:var(--accent);border-color:var(--accent);color:white;font-weight:700}
.essay-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:20px;margin:20px 0}.essay-facts{border-top:4px solid #c79650;background:#fffdf7}.essay-facts ol{padding-left:25px;margin:16px 0 0}.essay-facts li{padding-left:8px;margin:0 0 18px;line-height:1.9}.essay-facts li:last-child{margin-bottom:0}.essay-writing{border-top:4px solid var(--accent)}.essay-writing>p{font-size:15px;line-height:1.8}.essay-writing label,.essay-review>label{display:block;font-size:13px;font-weight:700;margin:16px 0 8px}.essay-writing textarea,.essay-review textarea{width:100%;min-width:0;font-size:16px;line-height:1.8;resize:vertical;border:1px solid #bbc9c2;border-radius:10px;padding:14px}.essay-writing textarea{min-height:290px}.essay-writing textarea[readonly]{background:var(--bg)}.essay-timer{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.essay-timer strong{font-variant-numeric:tabular-nums;font-size:20px}.essay-writing .full{margin-top:12px}.essay-review{border-top:4px solid #c79650;scroll-margin-top:20px}.essay-checks{display:grid;gap:10px;margin:20px 0}.essay-check{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:18px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:16px;background:var(--bg);font-size:15px}.essay-check strong{color:var(--accent);margin-right:6px}.essay-check select{width:100%;font-size:14px;padding:10px}.essay-example{background:var(--pale);padding:8px 18px;border-radius:12px;margin:20px 0}.essay-pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.9;margin-top:12px}.essay-scope{font-size:13px;border-left:3px solid #c79650;padding-left:14px;margin-top:24px}.essay-sources{border-top:1px solid var(--line);margin-top:22px;padding-top:12px}.essay-sources ul{padding-left:20px}.essay-sources a{overflow-wrap:anywhere}.essay-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}
@media(max-width:1050px){.essay-workspace{grid-template-columns:1fr}.essay-facts li{font-size:15px}.essay-writing textarea{min-height:240px}}
@media(max-width:680px){.essay-entry{display:block}.essay-entry button{margin-top:16px;width:100%}.essay-case-grid{grid-template-columns:1fr}.essay-stats{gap:6px}.essay-stats>span{flex:1;padding:10px;font-size:10px}.essay-stats strong{font-size:20px}.essay-stagebar{gap:5px}.essay-stagebar span{font-size:12px;padding:10px 4px}.essay-check{grid-template-columns:1fr;gap:10px;padding:14px}.essay-case,.essay-facts,.essay-writing,.essay-review{padding:20px 16px}.essay-case .row button,.essay-storage .row button{flex:1}.essay-history-row{align-items:flex-start}.essay-history-row strong{font-size:13px}.essay-bottom button{width:100%}}
/* A calm daily path, with the full schedule kept on its own page. */
.roadmap-home,.roadmap-page,.roadmap-task-detail{max-width:1140px;margin:24px auto;min-width:0}.roadmap-home h1,.roadmap-page h1{font-size:30px;line-height:1.5;margin:20px 0 10px}.roadmap-home h2,.roadmap-page h2{font-size:21px;line-height:1.6}.roadmap-home p,.roadmap-page p,.roadmap-task-detail p{line-height:1.85}.roadmap-lead{padding:30px 34px;margin:28px 0;background:#184f49;color:#fff;border-radius:20px}.roadmap-lead .step-label{color:#c7e4d5}.roadmap-lead h2{color:#fff;font-size:25px;margin:12px 0}.roadmap-lead p{max-width:750px;color:#e3eee6}.roadmap-lead button.primary{background:#fff;color:#174e47;border-color:#fff;min-height:48px;padding:13px 22px}.roadmap-lead .flat{color:#fff}.roadmap-today{margin:30px 0}.roadmap-today>p{margin-top:0}.roadmap-tasks{list-style:none;padding:0;margin:12px 0}.roadmap-tasks>li{display:grid;grid-template-columns:36px minmax(0,1fr);gap:18px;padding:23px 0;border-bottom:1px solid var(--line)}.roadmap-tasks h3{font-size:17px;margin:0;line-height:1.7;overflow-wrap:anywhere}.roadmap-tasks p{font-size:14px;color:#536b65;margin:8px 0 14px}.task-number{border-radius:50%;background:#e4eee5;color:#174e47;width:34px;height:34px;display:grid;place-items:center;font-weight:600}.roadmap-tasks .is-done .task-number{background:#235e51;color:white}.roadmap-tasks .is-done h3{color:#657c72}.roadmap-bottom{display:grid;grid-template-columns:1fr 1fr;gap:36px;padding:28px 0;border-bottom:1px solid var(--line)}.roadmap-bottom h2{margin:12px 0}.roadmap-bottom p{font-size:14px}.roadmap-other{padding:24px 0}.roadmap-other summary{padding:12px 0;cursor:pointer}.roadmap-other .row{margin-top:16px}.plan-exams{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0 12px}.plan-exams>div{background:white;border:1px solid var(--line);border-radius:14px;padding:20px}.plan-exams span,.plan-exams strong,.plan-exams small{display:block}.plan-exams strong{font-size:23px;margin:8px 0;color:#184f49;line-height:1.5}.plan-exams small{color:#516961}.plan-week{display:grid;grid-template-columns:1.1fr 1fr;gap:32px;background:#e8f0e8;padding:26px;border-radius:16px;margin:28px 0}.plan-week h2{margin:10px 0}.plan-week p:last-child{margin-bottom:0}.plan-budget{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-content:center}.plan-budget>div{padding:10px 0;border-bottom:1px solid #bccfc4}.plan-budget span,.plan-budget strong{display:block}.plan-budget span{font-size:12px}.plan-budget strong{font-size:22px;margin-top:5px;color:#184f49}.plan-chart{margin-top:36px}.gantt-scroll{overflow-x:auto;overscroll-behavior-inline:contain;border:1px solid #d4dfd6;border-radius:12px;background:white;padding-top:18px;max-width:100%}.gantt-table{min-width:890px;font-size:12px}.gantt-row{display:grid;grid-template-columns:132px minmax(0,1fr);min-height:48px}.gantt-label{position:sticky;left:0;z-index:4;background:#fff;padding:13px 14px;font-weight:600;border-bottom:1px solid #edf1eb;line-height:1.5}.gantt-label small{font-size:10px;color:#60766b;font-weight:400;display:block}.gantt-row.is-selected .gantt-label{background:#e4efe6}.gantt-axis{position:relative;height:38px}.gantt-axis>span{position:absolute;top:5px;text-align:center;font-size:11px}.gantt-track{position:relative;border-bottom:1px solid #edf1eb;min-width:0}.gantt-gridline{position:absolute;top:0;bottom:0;width:1px;background:#e8ede6;pointer-events:none}.gantt-today{position:absolute;top:0;bottom:0;border-left:2px dashed #b66031;z-index:2;pointer-events:none}.gantt-today span{display:none}.gantt-row:nth-child(2) .gantt-today span{display:block;position:absolute;top:-19px;left:3px;white-space:nowrap;color:#984d20;font-size:11px;font-style:normal}.gantt-bar{position:absolute;top:8px;bottom:8px;min-height:30px;padding:4px 3px;border:0;border-radius:5px;font-size:11px;font-weight:500;z-index:1;white-space:nowrap;overflow:hidden;text-overflow:clip;cursor:pointer;color:#17382e}.gantt-bar:focus-visible{z-index:5;outline:3px solid #986032;outline-offset:1px}.gantt-bar[aria-pressed=true]{box-shadow:inset 0 0 0 2px #194f49}.gantt-learn{background:#b9daca}.gantt-review{background:#dbe6ef;color:#234a61}.gantt-write{background:#ede0c1;color:#5e4921}.gantt-oral{background:#ddd9ec;color:#47395e}.gantt-bar:hover{filter:brightness(.97)}.gantt-milestone{position:absolute;top:17px;height:12px;min-width:10px;max-width:100%;background:#335c52;border-radius:2px;transform:translateX(-3px) rotate(45deg);z-index:3}.gantt-milestone.range{transform:none;min-width:4px;height:12px;top:18px;border-radius:3px;background:#7c9890}.gantt-legend{display:flex;gap:12px 20px;flex-wrap:wrap;font-size:12px;margin:17px 0}.gantt-legend span:before{content:'';display:inline-block;width:14px;height:10px;border-radius:2px;margin-right:6px}.gantt-legend .legend-learn:before{background:#b9daca}.gantt-legend .legend-review:before{background:#dbe6ef}.gantt-legend .legend-write:before{background:#ede0c1}.gantt-legend .legend-oral:before{background:#ddd9ec}.plan-selection{border-left:4px solid #5d927e;background:#eef4ed;padding:18px 24px;margin:22px 0}.plan-selection h3{margin:0;font-size:18px}.plan-selection p,.plan-selection li{font-size:13px}.plan-selection ul{padding-left:20px;line-height:1.9}.plan-dates,.plan-settings,.plan-storage{padding:20px 0;border-top:1px solid var(--line);margin-top:16px}.plan-dates>summary,.plan-settings>summary,.plan-storage>summary{cursor:pointer;font-weight:600;min-height:44px;align-content:center}.plan-dates table{width:100%;border-collapse:collapse;font-size:13px}.plan-dates th,.plan-dates td{text-align:left;padding:12px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.plan-feasibility{margin:30px 0;padding:24px;background:white;border:1px solid var(--line);border-radius:14px}.plan-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:20px 0}.plan-fields label,.plan-subject-inputs label{display:grid;gap:7px;font-size:13px;min-width:0}.plan-fields input,.plan-fields select,.plan-subject-inputs input,.plan-subject-inputs select{width:100%;min-width:0;box-sizing:border-box;font-size:16px}.plan-subject-inputs{display:grid;gap:20px;margin:24px 0}.plan-subject-inputs fieldset{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.plan-subject-inputs legend{font-size:15px;font-weight:600;padding:0 10px}.plan-note{grid-column:1/-1}.plan-file{font-size:13px}.plan-file input{display:block;max-width:100%;margin-top:6px}.roadmap-task-detail .eyebrow{display:block;margin:22px 0}.roadmap-task-detail li{padding:12px 0;line-height:1.9}.roadmap-task-detail h1{font-size:26px;line-height:1.6}.mobileNav{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:850px){.plan-week{grid-template-columns:1fr;gap:18px}.roadmap-bottom{gap:24px}.plan-exams strong{font-size:19px}.gantt-table{min-width:900px}.roadmap-home h1,.roadmap-page h1{font-size:27px}.roadmap-lead h2{font-size:23px}}
@media(max-width:680px){.roadmap-home,.roadmap-page{margin-top:16px}.roadmap-home h1,.roadmap-page h1{font-size:25px}.roadmap-lead{padding:22px;margin-top:20px;border-radius:16px}.roadmap-lead h2{font-size:21px}.roadmap-lead p{font-size:14px}.roadmap-lead .primary{width:100%}.roadmap-tasks>li{grid-template-columns:28px minmax(0,1fr);gap:12px;padding:20px 0}.task-number{width:28px;height:28px;font-size:13px}.roadmap-tasks h3{font-size:16px}.roadmap-tasks p{font-size:13px}.roadmap-tasks .row{gap:8px}.roadmap-tasks button{min-height:44px;font-size:12px;padding:9px 13px}.roadmap-bottom{grid-template-columns:1fr;gap:18px}.plan-exams{gap:6px}.plan-exams>div{padding:13px 9px;border-radius:10px}.plan-exams strong{font-size:15px;overflow-wrap:anywhere}.plan-exams span,.plan-exams small{font-size:11px}.plan-week{padding:20px}.plan-feasibility{padding:18px}.plan-fields{grid-template-columns:1fr}.plan-subject-inputs fieldset{grid-template-columns:1fr;padding:16px}.plan-selection{padding:17px}.plan-selection .row{align-items:flex-start}.gantt-row{grid-template-columns:110px minmax(0,1fr)}.gantt-label{padding:13px 10px}.plan-dates td,.plan-dates th{padding:10px 5px;font-size:12px}.roadmap-page h2,.roadmap-home h2{font-size:19px}.plan-chart>p{font-size:13px}.plan-budget strong{font-size:21px}.plan-local{font-size:12px}.plan-file{min-width:0}.roadmap-task-detail h1{font-size:23px}.mobileNav .navbutton{font-size:10px}.roadmap-home .eyebrow,.roadmap-page .eyebrow{font-size:11px}}


@media(min-width:681px) and (max-width:1000px){.roadmap-layout{grid-template-columns:1fr}.roadmap-layout>.sidebar{display:none}.roadmap-layout>.main{max-width:none;padding:24px 26px 110px}.roadmap-layout>.mobileNav{display:grid;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fcfcf9;border-top:1px solid var(--line);padding:8px 16px calc(8px + env(safe-area-inset-bottom));gap:5px}.roadmap-layout>.mobileNav .navbutton{display:flex;justify-content:center;flex-direction:column;gap:4px;font-size:12px;padding:7px}.roadmap-layout .plan-week{grid-template-columns:1fr 1fr}.roadmap-layout .topbar{margin-bottom:18px}}
@media(max-width:360px){.plan-exams{grid-template-columns:1fr}.plan-exams>div{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:7px}.plan-exams strong{font-size:15px;margin:0}.plan-exams small{font-size:11px}.plan-exams span{font-size:12px}}
