:root{color-scheme:light;--navy:#143b5b;--blue:#175f91;--ink:#203342;--muted:#657785;--line:#d7e0e7;--bg:#f2f5f8;--good:#177352;--bad:#ab3434;--amber:#896000;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:16px;line-height:1.65}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}button,a,input,label,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:1px solid var(--line);background:#fff;border-radius:8px;padding:9px 16px;color:var(--ink)}button:hover{border-color:var(--blue)}button:disabled{cursor:default;opacity:.5}button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.danger{color:var(--bad)}a{color:var(--blue);text-underline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #da9b25;outline-offset:3px}input,select,textarea{border:1px solid #bdcbd6;border-radius:7px;background:white;padding:10px 12px;max-width:100%;min-height:44px;color:var(--ink)}input[type=checkbox],input[type=radio]{min-height:22px;width:22px;height:22px;flex-shrink:0;accent-color:var(--blue);padding:0}textarea{width:100%;min-height:180px;resize:vertical}h1,h2,h3,p{margin-top:0}h1{font-size:28px;line-height:1.4;margin-bottom:10px}h2{font-size:22px;margin-bottom:12px}h3{font-size:18px;margin-bottom:8px}small,.meta{font-size:13px;color:var(--muted)}.muted{color:var(--muted)}.loading{padding:70px;text-align:center}.shell{display:grid;grid-template-columns:228px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:white;padding:30px 18px;position:sticky;top:0;height:100vh}.brand{font-size:25px;font-weight:700;letter-spacing:1px;margin:0 12px 4px}.brand-sub{font-size:13px;color:#bfd4e3;margin:0 12px 28px}.nav{display:grid;gap:8px}.nav button{background:transparent;border:0;color:#dce7ef;text-align:left;padding:12px 16px;font-size:16px}.nav button.active{background:#2c5878;color:white}.account{margin:30px 12px 0;font-size:14px;color:#bfd4e3}.account button{margin-top:10px;background:transparent;color:#dce7ef;font-size:13px;padding:6px 10px;min-height:34px;border-color:#547087}.content{padding:30px 36px;max-width:1450px;width:100%;margin:auto}.topline{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px}.topline p{margin:0}.pill{font-size:13px;background:#e8f0f6;color:#23516f;display:inline-block;border-radius:5px;padding:3px 8px}.pill.warn{background:#fff1d3;color:var(--amber)}.pill.good{background:#e3f3ec;color:var(--good)}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px}.stat{font-size:32px;font-weight:650;line-height:1.4;margin:6px 0}.stat span{font-size:15px;font-weight:400;color:var(--muted)}.card p:last-child{margin-bottom:0}.section{margin-top:26px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.notice{border-left:4px solid #638fac;background:#e8f0f6;padding:12px 16px;font-size:14px;margin:18px 0}.notice.warn{background:#fff5df;border-color:#cf9b37;color:#70521a}.empty{padding:32px;color:var(--muted);text-align:center;border:1px dashed #becbd5;border-radius:10px;background:#fff}.list{display:grid;gap:12px}.list-item{background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px 20px}.list-item p{margin:6px 0}.label{display:grid;gap:6px;font-size:14px}.fields{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.fields .label{min-width:140px;flex:1}.fields input[type=number]{width:100%}.error{color:var(--bad);background:#fff0f0;padding:12px 14px;border-radius:7px;white-space:pre-wrap}.error:empty{display:none}.success{color:var(--good)}.login{min-height:100vh;display:grid;place-items:center;padding:24px}.login-box{width:100%;max-width:420px;background:#fff;padding:34px;border:1px solid var(--line);border-radius:16px}.login-box h1{margin:0 0 8px}.login-box .label{margin:18px 0}.login-box button{width:100%}.login-box .muted{font-size:14px}.progress{height:7px;border-radius:7px;background:#e4ebf0;overflow:hidden;margin-top:12px}.progress>span{display:block;height:100%;background:var(--blue)}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-weight:500}td input{width:80px}.plan-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.plan-day{background:white;border:1px solid var(--line);border-radius:10px;padding:16px}.plan-day.mock{border-color:#91adc2;background:#eaf2f7}.plan-day .day{font-size:20px;font-weight:650}.plan-day p{font-size:14px;margin:8px 0}.plan-day button{width:100%;font-size:14px;margin-top:8px}.session-wrap{max-width:1200px;margin:auto;padding:24px}.session-top{position:sticky;top:0;z-index:5;background:var(--bg);padding:12px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.timer{font-size:22px;font-variant-numeric:tabular-nums;font-weight:650;white-space:nowrap}.timer.urgent{color:var(--bad)}.session-body{display:grid;grid-template-columns:minmax(0,1fr) 236px;gap:22px;margin-top:22px}.question-card{padding:28px;background:white;border:1px solid var(--line);border-radius:12px}.qstem{white-space:pre-wrap;font-size:18px;line-height:1.95;margin:20px 0}.passage{white-space:pre-wrap;background:#f2f6f9;padding:16px;border-radius:8px;line-height:1.85;font-size:16px;overflow-wrap:anywhere}.option{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:9px;padding:13px 15px;margin:10px 0;cursor:pointer;min-height:52px}.option.selected{background:#eaf3f9;border-color:var(--blue)}.option input{margin-top:3px}.option-text{white-space:pre-wrap;overflow-wrap:anywhere}.choice-letter{font-weight:650;margin-right:6px}.uncertain{display:flex;gap:10px;align-items:center;margin-top:20px;font-size:14px}.answer-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:14px 0}.answer-grid button{min-height:36px;padding:4px;font-size:13px;border-radius:5px;font-variant-numeric:tabular-nums}.answer-grid button.done{background:#dcebf5;border-color:#b4cbdb}.answer-grid button.marked{background:#fff0cc;border-color:#d6b864}.answer-grid button.current{outline:2px solid var(--blue);outline-offset:0}.save-status{font-size:13px;color:var(--muted);margin-top:6px}.answer-panel{position:sticky;top:96px;align-self:start}.result-row{margin:14px 0;padding:20px;background:#fff;border:1px solid var(--line);border-left:4px solid #4e8e76;border-radius:10px}.result-row.wrong{border-left-color:#b34c4c}.result-row.pending{border-left-color:#b88b31}.result-row .stem{white-space:pre-wrap;font-size:17px}.result-row .explanation{white-space:pre-wrap;padding:14px;background:#f2f6f8;border-radius:7px;line-height:1.8}.correct-text{color:var(--good)}.wrong-text{color:var(--bad)}.source-links{font-size:13px;color:var(--muted);overflow-wrap:anywhere;margin-top:12px}.rubric{display:grid;gap:10px;margin:15px 0}.rubric label{display:flex;align-items:flex-start;gap:10px}.review-details{margin-top:12px}.review-details summary{cursor:pointer;color:var(--blue);font-size:14px;min-height:32px}.review-details p{white-space:pre-wrap}.inline-message{white-space:pre-wrap}.preview-summary{background:#eef5f9;border:1px solid #b8cdda;padding:20px;border-radius:10px;margin-top:20px}.hidden{display:none!important}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#173749;color:white;border-radius:8px;max-width:min(90vw,650px);padding:12px 20px;z-index:100;display:none}#toast.show{display:block}.version-note{font-size:13px;color:var(--muted);margin-top:24px}.print-only{display:none}@media(max-width:1050px){.content{padding:24px}.plan-grid{grid-template-columns:repeat(3,1fr)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;padding:16px 16px 10px}.brand{font-size:21px;margin:0}.brand-sub{margin:0;font-size:12px}.nav{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;background:#143b5b;padding:6px 4px calc(6px + env(safe-area-inset-bottom));gap:1px;justify-content:space-around}.nav button{font-size:14px;padding:9px 10px;text-align:center;min-height:44px}.account{position:absolute;right:16px;top:15px;margin:0;font-size:12px;display:flex;align-items:center;gap:8px}.account button{margin:0;font-size:12px}.content{padding:20px 14px 100px}.topline{align-items:flex-start;margin-bottom:18px}h1{font-size:24px}h2{font-size:21px}.grid,.grid.two{grid-template-columns:1fr}.card{padding:18px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat{font-size:28px}.stats-grid .card{padding:15px}.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fields{align-items:stretch}.fields .label{min-width:120px}.session-wrap{padding:12px 12px 30px}.session-top{gap:8px;padding:8px 0}.session-top h2{font-size:17px;margin:0}.session-top button{padding:7px 10px;font-size:14px}.timer{font-size:20px}.session-body{display:flex;flex-direction:column;gap:15px;margin-top:14px}.answer-panel{position:static;order:2}.question-card{padding:18px 15px}.qstem{font-size:17px}.option{padding:12px 10px}.answer-grid{grid-template-columns:repeat(10,minmax(0,1fr));gap:5px}.answer-grid button{min-height:32px;font-size:12px}.result-row{padding:16px}.notice{padding:11px 13px}.topline .pill{font-size:12px}.row.between{align-items:flex-start}.source-links{font-size:12px}#toast{bottom:90px}}@media(max-width:370px){.nav button{padding:9px 8px;font-size:13px}.answer-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.plan-grid{gap:8px}.plan-day{padding:12px}.topline{flex-direction:column;gap:8px}.account{right:12px}.account .name{display:none}}@media print{.sidebar,.nav,.actions,.session-top button,.toolbar{display:none}.shell{display:block}.content{padding:0}.result-row,.card{break-inside:avoid}body{background:#fff}}
:root .label input,:root .label select,:root .label textarea{width:100%;min-width:0}.fields>.label{min-width:0;flex:1 1 160px}
.question-image{margin:20px 0}.question-image button{display:block;width:100%;padding:8px;background:white}.question-image img{display:block;max-width:100%;height:auto;margin:auto}.question-image figcaption{font-size:13px;color:var(--muted);margin-top:6px}.review-filters{display:flex;gap:8px;flex-wrap:wrap}.review-filters button{padding:8px 12px;font-size:14px}.review-card{background:white;padding:12px;border:1px solid var(--line);border-radius:8px}.review-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.review-grid button{min-height:44px}.answer-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}.answer-comparison>div{padding:14px;border:1px solid var(--line);background:#f4f7fa;border-radius:8px}.answer-comparison>div:last-child{border-color:#afd8c6;background:#eef8f3}.answer-comparison p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0}.result-option{white-space:pre-wrap;padding:10px 12px;border:1px solid var(--line);border-radius:7px}.result-option.is-correct{border-color:#94c5af;background:#f0f9f4}.result-option.is-wrong{border-color:#d4a4a4;background:#fff4f4}.option-tags{display:flex;gap:8px;flex-wrap:wrap;font-size:12px;margin-top:5px}.option-tags span{padding:1px 6px;border-radius:4px;background:white;border:1px solid var(--line)}.teaching{font-size:17px;line-height:1.9}.teaching h3{font-size:21px}.teaching-part{margin:20px 0}.teaching h4{font-size:17px;margin:0 0 8px}.teaching p,.teaching li,.teaching dd{white-space:pre-wrap;overflow-wrap:anywhere}.teaching p{margin-bottom:10px}.teaching ol,.teaching ul{padding-left:25px}.teaching li{padding-left:4px;margin-bottom:14px}.teaching .notice p{margin:8px 0 0}.option-analysis{display:grid;gap:10px}.option-analysis>div{padding:12px;border-left:3px solid #b8c9d5;background:#f3f6f8}.option-analysis dt{font-weight:650}.option-analysis dd{margin:6px 0 0}.option-analysis .correct-analysis{border-color:var(--good)}.takeaway{background:#eaf3f9;border-radius:8px;padding:16px}.takeaway p{margin:8px 0 0}.review-navigation{position:sticky;bottom:0;background:var(--bg);padding:12px 0 calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);align-items:center}.image-dialog{max-width:min(1100px,96vw);width:96vw;max-height:94dvh;padding:18px;border:1px solid var(--line);border-radius:10px;color:var(--ink)}.image-dialog::backdrop{background:#142a40b8}.image-dialog h2{margin:0;font-size:20px}.image-viewport{overflow:auto;max-height:65dvh;overscroll-behavior:contain;margin-top:12px;background:white;touch-action:pan-x pan-y pinch-zoom}.image-viewport img{display:block;max-width:100%;height:auto;margin:auto}.image-viewport.natural img{max-width:none;width:auto}.result-row:focus{outline:none}@media(max-width:760px){.answer-comparison{grid-template-columns:1fr}.review-navigation button{padding:9px 10px;font-size:14px}.review-navigation span{font-size:14px}.teaching{font-size:16px;line-height:1.95}.result-option{font-size:16px}.image-dialog{padding:12px}.review-filters button{flex:1 1 40%}}

.material-table{border:1px solid var(--line);border-radius:7px;margin-top:8px;background:white;max-width:100%;overscroll-behavior-x:contain}.material-table table{width:max-content;min-width:100%;font-size:15px;font-variant-numeric:tabular-nums}.material-table th,.material-table td{min-width:90px;max-width:320px;white-space:pre-wrap;overflow-wrap:anywhere}.material-table thead th{background:#eaf1f6;color:var(--ink);font-weight:650}.material-table tbody th{font-weight:500;background:#f5f8fa;color:var(--ink);position:sticky;left:0;border-right:1px solid var(--line)}
.material-table{max-height:520px;max-height:min(58dvh,520px)}.material-table thead th{position:sticky;top:0;z-index:2}.material-table tbody th{z-index:1}.material-table thead th:first-child{left:0;z-index:3}
.image-scale-controls button[aria-pressed="true"]{background:#e8f0f6;border-color:var(--blue);color:var(--navy);font-weight:650}.image-viewport:focus-visible{outline:3px solid #da9b25;outline-offset:2px}.feedback-question{white-space:pre-wrap;overflow-wrap:anywhere}.list-item .notice{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:760px){.answer-panel{align-self:stretch;width:100%}.answer-panel .answer-grid{grid-template-columns:repeat(5,minmax(44px,1fr));gap:8px;max-height:276px;overflow-y:auto;overscroll-behavior:contain;padding:2px}.answer-panel .answer-grid button{min-height:44px;font-size:14px}}

/* Warm study workspace */
:root{--navy:#174d49;--blue:#1c665d;--ink:#233c38;--muted:#667a72;--line:#dce6dc;--bg:#f8f7f1;--good:#257253;--bad:#a9423a;--amber:#90642c;font-family:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Noto Sans CJK SC",sans-serif}
body{background:var(--bg);background-image:radial-gradient(circle at 80% 0%,#f5eddc 0,transparent 34rem)}
button{border-radius:12px;font-weight:600;transition:background-color .2s,border-color .2s,color .2s,transform .18s,box-shadow .2s}
button:not(:disabled):active{transform:scale(.97)}
button:not(:disabled):hover{border-color:var(--blue);box-shadow:0 4px 14px #174d4917}
button.primary{background:var(--navy);border-color:var(--navy)}
button.primary:hover{background:#236d64;color:white}
a{color:var(--blue)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline-color:#e1a96e}
input,select,textarea{border-color:#c7d5cb;border-radius:10px}
input[type=checkbox],input[type=radio]{accent-color:var(--blue)}
h1,h2,h3{letter-spacing:-.02em;color:#153d38}
h1{font-size:clamp(26px,2.7vw,38px);line-height:1.3}
h2{font-size:clamp(20px,2vw,25px)}
h3{font-size:19px}
.shell{grid-template-columns:246px minmax(0,1fr)}
.sidebar{background:linear-gradient(160deg,#174d49,#123b39 65%,#1b4b43);display:flex;flex-direction:column;border-right:1px solid #ffffff2b}
.brand{display:flex;align-items:center;gap:12px;margin:0 4px;font-size:24px;letter-spacing:.02em}
.brand small{display:block;color:#c0d5c5;font-size:12px;font-weight:500;letter-spacing:.12em;line-height:1}
.logo-icon{display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff75;border-radius:11px;color:#fffaf1;font-size:23px;font-family:Georgia,serif;font-weight:600;line-height:1;transform:rotate(-4deg);flex:none}
.brand-sub{margin:10px 0 36px 54px;color:#bad4c9}
.nav{gap:8px}
.nav button{display:flex;align-items:center;gap:14px;color:#deece5;border-radius:12px;min-height:48px}
.nav button:hover{background:#ffffff1a;box-shadow:none;border-color:transparent}
.nav button.active{background:#f8f7ef;color:#174d49;box-shadow:0 8px 24px #092a2529;font-weight:700}
.nav-icon{display:grid;place-items:center;width:23px;font-size:20px;line-height:1}
.sidebar-note{margin:auto 12px 0;color:#c6dbc8;font-size:13px;line-height:1.8;padding:18px;border:1px solid #ffffff30;border-radius:14px;background:#ffffff0d}
.account{margin:22px 12px 0;padding-top:16px;border-top:1px solid #ffffff30}
.account button{min-height:44px;border-color:#9ec5b7;color:#f1fbf2}
.content{max-width:1440px;padding:40px clamp(22px,3.5vw,56px)}
.eyebrow{display:block;color:#648474;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin-bottom:9px}
.topline{margin-bottom:25px}
.pill{background:#e7eee7;color:#245d55;border-radius:999px;padding:5px 11px;font-weight:650}
.pill.warn{background:#fff0db;color:#966323}
.pill.good{background:#e2f2e8;color:#1d704d}
.card,.list-item,.plan-day,.question-card,.result-row{border-color:var(--line);box-shadow:0 8px 28px #204b3710;border-radius:16px}
.card{padding:24px}
.stat{color:#174d49;font-size:34px;font-variant-numeric:tabular-nums}
.stat-label{color:#526b61;font-size:14px;font-weight:650}
.progress{height:9px;background:#e9eee5;margin:14px 0 9px}
.progress>span{background:linear-gradient(90deg,#75ab83,#216c61);border-radius:inherit;transition:width .65s ease}
.notice{background:#edf3e9;border-color:#75a596;border-radius:0 12px 12px 0;color:#365a50}
.notice.warn{background:#fff3e2;border-color:#d7a760;color:#79532c}
.empty{background:#fffdf9;border-color:#c8d9cd}
.login{grid-template-columns:minmax(0,1fr) minmax(320px,430px);gap:clamp(30px,7vw,130px);padding:max(32px,5vw);background:radial-gradient(circle at 12% 17%,#e8f0e1,transparent 34rem),radial-gradient(circle at 95% 90%,#fae9d8,transparent 28rem),#f8f7f1}
.login-intro{width:min(100%,590px);justify-self:center}
.login-intro .logo-lockup{display:flex;align-items:center;gap:12px;color:#174d49;font-size:13px;font-weight:750;letter-spacing:.14em;margin-bottom:80px}
.login-intro .logo-icon{background:#174d49}
.login-intro h1{font-size:clamp(37px,5vw,66px);line-height:1.22;margin-bottom:24px}
.login-intro p{font-size:17px;color:#60756d;max-width:480px}
.login-steps{display:flex;gap:9px;flex-wrap:wrap;margin-top:38px;color:#426b5c;font-size:13px}
.login-steps span{padding:8px 13px;border:1px solid #ccdbcc;background:#ffffffa6;border-radius:999px}
.login-box{max-width:430px;padding:clamp(24px,3vw,38px);box-shadow:0 28px 70px #174d4920;border-radius:22px;background:#fffefa}
.login-box h2{margin:16px 0 6px}
.login-box .label{font-weight:650;color:#3b5c51}
.login-box button{margin-top:10px}
.login-box>small{display:block;text-align:center;margin-top:16px}
.today-hero{display:flex;justify-content:space-between;align-items:center;gap:22px;min-height:185px;padding:30px 36px;border-radius:24px;background:radial-gradient(circle at 82% 30%,#ffffff24 0,#ffffff00 24%),linear-gradient(115deg,#174d49,#267469);color:#f5f8ee;overflow:hidden;position:relative}
.today-hero:after{content:"";position:absolute;right:-75px;bottom:-160px;width:330px;height:330px;border:1px solid #ffffff2d;border-radius:50%;box-shadow:0 0 0 45px #ffffff09,0 0 0 90px #ffffff07;pointer-events:none}
.today-hero h1{color:#fffdf5;margin:0 0 10px}
.today-hero p{color:#d9eadd;margin:0;max-width:590px}
.today-hero .eyebrow{color:#d3e8d6}
.hero-seal{width:116px;height:116px;border-radius:50%;border:1px solid #ffffff82;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:none;color:#fff;z-index:1}
.hero-seal span{font-size:42px;line-height:1;font-family:Georgia,serif}
.hero-seal small{color:#e4eee3;letter-spacing:.12em}
.today-stats{margin-top:20px}
.today-stats .card{min-height:158px}
.learning-guide{margin-top:20px;background:#fffaf1;border:1px solid #e8dec8;border-radius:16px}
.learning-guide summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:10px 20px;list-style:none;cursor:pointer;color:#22554c;font-weight:700;font-size:14px}
.learning-guide summary::-webkit-details-marker{display:none}
.learning-guide summary::after{content:'⌄';flex:none;font-size:20px;line-height:1;color:#63806d}
.learning-guide[open] summary::after{transform:rotate(180deg)}
.learning-guide .guide-body{padding:0 20px 18px}
.learning-guide p{margin:5px 0;color:#415d53}
.learning-guide small{display:block}
.today-hero .hero-actions{margin-top:21px;position:relative;z-index:1}
.today-hero .hero-actions button{min-width:176px;border-color:#fff8e9;background:#fff8e9;color:#174d49;box-shadow:0 8px 20px #0d403a2b}
.today-hero .hero-actions button:hover{background:#fff;color:#174d49;border-color:#fff;box-shadow:0 10px 24px #0d403a40}
.due-quiet{margin:16px 0 0;padding:10px 14px;border-left:3px solid #a4bca8;color:#61746a;background:#edf3eb;border-radius:0 9px 9px 0;font-size:13px}
.section-head{display:flex;gap:15px;align-items:flex-start;margin-bottom:16px}
.section-head h2{margin:0 0 3px}
.section-head p{margin:0;color:var(--muted);font-size:14px}
.step-num{display:grid;place-items:center;min-width:34px;height:34px;padding:0 5px;border-radius:10px;background:#e5eee6;color:#286354;font-size:12px;font-weight:750}
.resume-item{display:flex;align-items:center;justify-content:space-between;gap:16px}
.resume-item p{margin:4px 0 0}
.priority-card,.review-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 28px;background:#fffefa;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 28px #204b3710}
.priority-card{border-left:5px solid #e6b07d}
.priority-card h3{margin:12px 0 4px}
.priority-card p,.review-cta p{color:var(--muted);margin:3px 0 0}
.review-cta{background:#edf4ed}
.daily-board{padding:26px;background:#fffefa;border:1px solid var(--line);border-radius:20px;box-shadow:0 12px 35px #204b3714}
.daily-board-top{display:flex;justify-content:space-between;gap:24px;align-items:center;margin-bottom:16px}
.daily-board-top h3{font-size:23px;margin:12px 0 4px}
.daily-board-top p{margin:0;color:var(--muted)}
.daily-action{flex:none}
.subject-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}
.subject-tile{display:flex;align-items:center;gap:11px;min-width:0;padding:15px;border:1px solid #e0e9df;border-radius:13px;background:#f9faf5;animation:cardIn .34s both;animation-delay:calc(var(--order)*45ms)}
.subject-mark{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;flex:none;background:#e0ece1;color:#2b6656;font-weight:750}
.subject-tile:nth-child(2n) .subject-mark{background:#f5e8d7;color:#946747}
.subject-detail{display:flex;flex-direction:column;min-width:0;line-height:1.35}
.subject-detail b{white-space:nowrap}
.subject-detail span{color:var(--muted);font-size:12px;line-height:1.5}
.subject-state{margin-left:auto;color:#47705e;font-size:12px;white-space:nowrap}
.aptitude-note{margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:#64776e}
.review-stage{padding:24px 28px;background:#fffefa;border:1px solid var(--line);border-left:5px solid #dfaf79;border-radius:18px;box-shadow:0 8px 28px #204b3710}
.review-stage p{margin:14px 0 0;color:#506b5f}
.review-stage .actions{margin-top:15px}
.review-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.review-metrics>div{display:flex;align-items:baseline;gap:5px;padding:13px 15px;background:#f7f8f1;border:1px solid #e3eade;border-radius:12px;min-width:0}
.review-metrics span{display:block;margin-right:auto;color:#5c7668;font-size:13px}
.review-metrics strong{font-size:27px;color:#1a6557;font-variant-numeric:tabular-nums;line-height:1}
.review-summary{display:flex;flex-direction:column;gap:4px;margin-top:8px;padding:12px;border-radius:11px;background:#f7f8f1;border:1px solid #e1e9dd}
.review-summary b{font-size:13px;color:#2a6657}
.review-summary p{margin:2px 0;font-size:12px}
.review-summary small{display:block}
.review-summary button{margin-top:8px;width:100%}
.catchup{background:#fffefa;border:1px solid #e7dbc9;padding:16px 20px;border-radius:14px}
.catchup summary{font-weight:650;color:#755637;cursor:pointer;min-height:44px;display:flex;align-items:center}
.catchup .list{margin-top:12px}
.plan-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.plan-day{display:flex;flex-direction:column;gap:8px;padding:20px;background:#fffefa}
.plan-day.today-day{border-color:#8eb6a0;box-shadow:0 0 0 2px #e0eee3,0 12px 28px #204b371a}
.plan-day.mock{background:#f5f7ef;border-color:#d6e3d0}
.plan-day .day{font-size:19px;color:#1c5147}
.day-date{font-size:13px;color:var(--muted)}
.plan-day p{margin:3px 0;font-size:14px;color:#435d51}
.plan-day small{line-height:1.5}
.day-modules{display:flex;flex-wrap:wrap;gap:5px}
.day-modules span{font-size:11px;padding:3px 6px;background:#f0f4ec;border-radius:5px;color:#527267}
.day-action{margin-top:auto}
.plan-day button{margin-top:8px}
.session-wrap{padding:28px 24px}
.session-top{background:#f8f7f1e8;backdrop-filter:blur(12px)}
.question-card,.answer-panel{background:#fffefa}
.question-card{animation:questionIn .2s both}
.option{min-height:58px;border-radius:12px;background:#fffdfa;transition:border-color .18s,background-color .18s,transform .18s}
.option:hover{border-color:#8ab8a5;background:#f8fbf5}
.option.selected{background:#eaf4ea;border-color:#37816b;box-shadow:inset 0 0 0 1px #37816b}
.option:active{transform:scale(.992)}
.choice-letter{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 3px;margin-right:9px;border-radius:7px;background:#e7eee7;color:#2b685b}
.option.selected .choice-letter{background:#287763;color:white}
.subject-jumps{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:18px;padding:12px;background:#f3f7ef;border:1px solid #e1eadf;border-radius:12px}
.subject-jumps>span{font-size:13px;color:#587469;margin-right:3px}
.subject-jumps button{min-height:44px;padding:7px 11px;font-size:13px;background:#fffefa}
.subject-jumps button[aria-current=true]{background:#236b5d;border-color:#236b5d;color:#fff}
.answer-grid button{min-height:44px;border-radius:8px}
.answer-grid button.done{background:#dceee4;border-color:#a6cbb6}
.answer-grid button.marked{background:#fff0d7;border-color:#d9bc7e}
.answer-grid button.current{outline-color:#257966}
.passage,.result-row .explanation{background:#f4f6ef}
.result-row,.preview-summary{background:#fffefa}
.result-row{border-left-color:#488a6c}
.result-row.wrong{border-left-color:#b65c50}
.result-row.pending{border-left-color:#c29c55}
.session-wrap>.card.section:first-of-type{animation:cardIn .3s both}
.teaching,.qstem{overflow-wrap:anywhere}
.takeaway{background:#e8f1e7}
.option-analysis>div{background:#f6f8f2;border-color:#bed2c4}
.review-navigation{background:#f8f7f1}
.version-note{padding-top:14px;border-top:1px solid var(--line)}
#toast{background:#164942;box-shadow:0 12px 30px #11392f4d}
@keyframes cardIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@keyframes questionIn{from{opacity:.65;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1100px){.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.subject-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.shell{display:block}.sidebar{display:block;padding:12px 15px 10px}.brand{font-size:20px}.brand .logo-icon{width:31px;height:31px;font-size:19px}.brand small{font-size:10px}.brand-sub,.sidebar-note{display:none}.nav{background:#174d49;padding:5px 3px calc(5px + env(safe-area-inset-bottom));gap:0}.nav button{display:flex;flex-direction:column;gap:1px;padding:5px 4px;min-width:0;flex:1;font-size:12px;border-radius:9px}.nav-icon{font-size:19px;height:20px}.nav button.active{background:#fffaf0}.account{top:10px;right:12px;border:0;padding:0;margin:0}.account .name{display:none}.account button{min-height:38px;padding:5px 10px}.content{padding:20px 14px calc(98px + env(safe-area-inset-bottom))}.today-hero{padding:23px;min-height:155px;border-radius:18px}.today-hero h1{font-size:27px}.hero-seal{width:75px;height:75px}.hero-seal span{font-size:27px}.hero-seal small{font-size:9px}.today-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.today-stats .card{min-height:0;padding:17px}.today-stats .card:first-child{grid-column:1/-1}.priority-card,.review-cta,.daily-board-top{align-items:flex-start}.plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.session-wrap{padding:12px}.question-card{padding:20px 16px}.answer-panel .answer-grid button{min-height:44px}.review-navigation{bottom:0}.login{grid-template-columns:1fr;gap:22px;padding:20px}.login-intro{width:100%}.login-intro .logo-lockup{margin-bottom:28px}.login-intro h1{font-size:36px}.login-steps{margin-top:18px}.login-box{justify-self:center}}
@media(max-width:640px){.subject-grid,.plan-grid{grid-template-columns:1fr}.subject-grid{gap:8px}.subject-tile{padding:12px}.daily-board{padding:20px 15px}.daily-board-top,.priority-card,.review-cta,.resume-item{flex-direction:column;align-items:stretch}.daily-action button,.priority-card button,.review-cta button,.resume-item button{width:100%}.review-stage{padding:18px 15px}.review-metrics{gap:6px}.review-metrics>div{display:block;padding:9px 7px;text-align:center}.review-metrics span{font-size:11px}.review-metrics strong{display:inline-block;margin-top:5px;font-size:24px}.review-metrics small{font-size:11px}.review-stage .actions button{width:100%}.today-hero{gap:8px}.today-hero>div:first-child{min-width:0}.hero-seal{width:60px;height:60px}.hero-seal span{font-size:23px}.hero-seal small{font-size:8px}.today-hero .hero-actions button{min-width:0;width:100%}.learning-guide summary{font-size:12px;padding:10px 13px;gap:4px}.stats-grid .card{padding:16px}.stat{font-size:27px}.login-intro p{font-size:15px}.login-steps span{padding:5px 9px}.login-box{padding:23px}.session-top h2{font-size:16px}.session-top .row{justify-content:flex-end}.answer-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:370px){.today-hero .hero-seal{display:none}.topline{flex-direction:column}.nav button{font-size:11px}.nav-icon{font-size:17px}.section-head{gap:9px}.step-num{min-width:29px;height:29px}.login-intro h1{font-size:32px}.card{padding:16px}.review-filters button{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.progress>span{transition:none!important}}
@media print{body{background:#fff}.today-hero{color:#153d38;background:#fff;border:1px solid var(--line)}.today-hero h1,.today-hero p{color:#153d38}.subject-tile,.question-card{animation:none}}

/* Independent study library */
.library-home-link{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:20px 0;padding:20px 24px;border:1px solid #cbded0;border-radius:17px;background:#f0f6ed}
.library-home-link h2{margin:3px 0 4px;font-size:19px}.library-home-link p{margin:0;color:var(--muted)}.library-home-link button{white-space:nowrap;background:white;border-color:#a6c5ad;color:var(--blue);font-weight:650}
.library-hero{padding:32px;border-radius:19px;background:linear-gradient(130deg,#e7f0e7,#f8f6ed);border:1px solid #d3e3d4}.library-hero h1{font-size:34px;margin:6px 0}.library-hero p{max-width:800px;color:#47615b;margin:0}
.library-metrics{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.library-metrics span{display:flex;gap:5px;align-items:baseline;padding:8px 14px;border-radius:10px;background:#ffffffc9;color:#3d5950}.library-metrics b{font-size:21px;color:#1c665d}
.library-resume{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:17px}.library-resume h2{margin:8px 0 3px}.library-resume p{margin:0}
.library-type-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.library-type{display:flex;align-items:center;gap:15px;text-align:left;padding:20px;border-radius:14px;border-color:#d5e5d8;background:white;min-width:0;transition:transform .18s,box-shadow .18s}.library-type:hover{transform:translateY(-2px);box-shadow:0 9px 25px #18493916}.library-type-mark{display:grid;place-items:center;width:45px;height:45px;flex:none;border-radius:11px;background:#e9f3ec;color:#1c665d;font-weight:700}.library-type b{display:block;font-size:19px}.library-type small{display:block}.library-type-arrow{margin-left:auto;color:var(--blue);font-size:22px}
.library-top{align-items:end}.library-top .actions{margin:0 0 8px}.library-top h1{margin:0}.library-type-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:15px 0}.library-type-tabs button{flex:1 1 120px}.library-type-tabs button.active{border-color:var(--blue);background:#e9f3eb;color:var(--blue);font-weight:700}
.library-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:11px;align-items:end}.library-filters .label{min-width:0}.library-filters .library-source-filter,.library-filters .library-search{grid-column:span 2}.library-filters button{height:44px}
.library-results{margin-top:24px}.library-results h2{margin:0}.library-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.library-list-card{min-width:0;padding:18px;background:white;border:1px solid var(--line);border-radius:12px}.library-list-card h3{font-size:16px;line-height:1.7;margin:12px 0 8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.library-list-card .meta{margin:0 0 10px}.library-status{font-size:12px;white-space:nowrap;padding:3px 8px;border-radius:6px;background:#edf0e9;color:#586d61}.library-status.learned{background:#e6f3e9;color:#26714b}.library-status.uncertain{background:#fff0d5;color:#8b6128}
.library-pager,.library-reader-nav{display:flex;justify-content:space-between;align-items:center;gap:9px;margin:17px 0}.library-pager span,.library-reader-nav span{text-align:center;font-size:13px;color:var(--muted)}
.library-reader-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(245px,310px);gap:18px;margin-top:22px;align-items:start}.library-reader-layout>div{min-width:0}.library-reader-heading{margin:0 0 10px}.library-reader-heading h2{margin:0}.library-reader-heading p{margin:0}.library-question{padding:26px}.library-question .qstem{margin:14px 0 18px}.library-question .question-image figcaption{font-size:12px}.library-options{margin-top:20px}.library-options .result-option{margin:8px 0;overflow-wrap:anywhere}.library-reveal{align-items:center;margin:24px 0}.library-solutions{border-top:1px solid var(--line);padding-top:20px}.library-correct-answer{white-space:pre-wrap;overflow-wrap:anywhere;font-size:17px;line-height:1.9;padding:15px 18px;border-radius:9px;background:#edf6ee;color:#185c44}.library-solutions .teaching{border-top:1px solid var(--line);padding-top:10px}.library-rubric{display:grid;gap:9px}.library-rubric>div{display:flex;gap:9px;padding:10px 12px;background:#f3f7f1;border-radius:8px}.library-rubric small{color:var(--muted)}.library-source{border-top:1px solid var(--line);padding-top:13px;margin-top:25px}.library-mark{border-top:1px solid var(--line);margin-top:24px;padding-top:18px}.library-mark h3{margin:0}.library-mark .meta{margin:3px 0}.library-mark .actions button{min-width:105px}.library-save-status{font-size:13px;color:var(--good);margin:11px 0 0}
.library-directory{position:sticky;top:16px;padding:16px;max-height:calc(100vh - 30px);overflow:auto}.library-directory h2{font-size:18px;margin:0}.library-directory-list{display:grid;gap:5px;max-height:60vh;overflow:auto}.library-directory-list button{display:flex;align-items:flex-start;gap:8px;text-align:left;width:100%;min-width:0;padding:9px;background:#fafbf7}.library-directory-list button.current{border-color:var(--blue);background:#eaf3eb}.library-number{display:grid;place-items:center;min-width:27px;height:27px;border-radius:6px;background:#e7eee7;color:#195449;font-size:12px}.library-directory-text{min-width:0}.library-directory-text b{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:13px;font-weight:550;line-height:1.4}.library-directory-text small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.library-reader-heading{scroll-margin-top:14px}.library-extra-explanation{border-top:1px solid var(--line);padding-top:14px}.library-extra-explanation summary{font-size:15px;font-weight:600}.library-extra-explanation .passage{margin-top:12px}
@media(max-width:1050px){.library-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.library-filters .library-search{grid-column:auto}.library-filters button{grid-column:span 2}.library-reader-layout{grid-template-columns:minmax(0,1fr) 240px}}
@media(max-width:760px){.nav button{padding:4px 2px;min-height:48px;font-size:11px}.nav-icon{font-size:17px}.library-home-link,.library-resume{flex-direction:column;align-items:stretch}.library-home-link button,.library-resume button{width:100%}.library-type-grid,.library-cards{grid-template-columns:1fr}.library-hero{padding:25px 20px}.library-reader-layout{display:flex;flex-direction:column}.library-reader-layout>div,.library-directory{width:100%}.library-directory{position:static;max-height:none;order:-1}.library-directory-list{max-height:210px}.library-question{padding:19px 16px}.library-reader-nav{position:sticky;bottom:calc(56px + env(safe-area-inset-bottom));z-index:9;background:var(--bg);padding:9px 0;border-top:1px solid var(--line)}.library-reader-nav button{flex:1}.library-type-tabs button{flex-basis:calc(25% - 8px);padding:8px 5px}.library-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.library-metrics span{font-size:12px}.library-metrics b{font-size:18px}}
@media(max-width:370px){.nav button{padding:4px 1px;font-size:10px}.nav-icon{font-size:16px}.library-filters{grid-template-columns:1fr}.library-filters .library-source-filter,.library-filters button{grid-column:auto}.library-type-tabs button{font-size:13px}.library-metrics span{padding:7px}.library-pager button,.library-reader-nav button{padding:8px 7px;font-size:13px}}
