:root{--navy:#15243c;--blue:#2456d6;--blue-light:#edf2ff;--ink:#23334a;--muted:#61718a;--line:#dce3ed;--bg:#f3f6fb;--white:#fff;--good:#157250;--good-bg:#eaf7f0;--bad:#b93d40;--bad-bg:#fff0f0;--amber:#936014;--amber-bg:#fff5dc;--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.65 'PingFang TC','Microsoft JhengHei',system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #78a7ff;outline-offset:3px}h1,h2,h3,p{margin-top:0}h1{font-size:1.9rem;letter-spacing:.03em;margin-bottom:6px}h2{font-size:1.25rem;margin-bottom:14px}h3{font-size:1.05rem}p{margin-bottom:12px}small,.meta{font-size:.875rem;color:var(--muted)}button{border:0}svg{width:21px;height:21px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--navy);color:#e9effc;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:30px 20px 24px}.brand{display:flex;gap:12px;align-items:center;padding:0 8px;margin-bottom:42px}.brand-icon{background:#496ee4;width:39px;height:43px;border-radius:11px;display:grid;place-items:center;color:white}.brand strong{font-size:1.1rem;letter-spacing:.06em}.brand small{display:block;color:#b7c8e5;font-size:.8rem;letter-spacing:.09em}.side-label{font-size:.8rem;letter-spacing:.12em;color:#a5b6d3;padding:0 14px;margin-bottom:12px}.nav{display:grid;gap:8px}.nav button{display:flex;align-items:center;gap:13px;border-radius:10px;color:#c2d0e7;background:transparent;padding:12px 14px;text-align:left}.nav button:hover{background:#213452}.nav button.active{color:white;background:#30486c}.nav button.active svg{color:#a5bdff}.nav .count{margin-left:auto;border-radius:20px;background:#4b6283;padding:0 7px;font-size:.8rem}.side-bottom{margin-top:auto;padding-top:30px}.exam-card{border:1px solid #3a4d69;border-radius:13px;padding:16px}.exam-card .date{font-size:1.4rem;white-space:nowrap;color:white;line-height:1.3;font-weight:600;font-variant-numeric:tabular-nums}.exam-card small{color:#b8c9e3}.exam-card p{font-size:.875rem;margin:8px 0 0}.legacy{display:block;font-size:.875rem;color:#c5d3e9;margin:18px 8px 0}.main{min-width:0}.topbar{height:78px;border-bottom:1px solid var(--line);background:#ffffffd9;display:flex;align-items:center;justify-content:space-between;padding:0 38px;gap:20px}.breadcrumb{color:var(--muted);font-size:.9rem;display:flex;gap:12px;align-items:center}.breadcrumb strong{color:var(--ink);font-weight:500}.top-actions{display:flex;gap:12px;align-items:center}.top-actions button{background:transparent;color:var(--muted);padding:7px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--blue-light);font-size:.875rem;font-weight:600;color:var(--blue)}#main{max-width:1530px;margin:auto;padding:30px 38px 64px}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:24px}.heading p{color:var(--muted);margin:0}.eyebrow{font-size:.8rem;color:var(--blue);letter-spacing:.12em;font-weight:600;margin-bottom:7px}.btn{border:1px solid var(--line);background:white;border-radius:9px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;color:var(--ink);text-decoration:none;font-weight:500;white-space:normal}.btn:hover{border-color:#8aa5e6;background:#f8faff;text-decoration:none}.btn.primary{color:white;background:var(--blue);border-color:var(--blue)}.btn.primary:hover{background:#1947bb}.btn.quiet{background:transparent;border-color:transparent;color:var(--blue)}.btn.small{font-size:.875rem;padding:6px 11px}.btn.danger{color:var(--bad)}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.card{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:23px}.card+.card{margin-top:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:26px}.stat{padding:19px 22px;background:white;border:1px solid var(--line);border-radius:12px}.stat .label{font-size:.875rem;color:var(--muted)}.stat .value{font-size:1.85rem;font-weight:650;line-height:1.5;color:var(--navy);font-variant-numeric:tabular-nums}.stat .value small{font-size:.9rem;font-weight:400;margin-left:5px}.stat .foot{font-size:.8rem;color:var(--muted)}.pill{display:inline-block;border-radius:6px;padding:2px 8px;background:var(--blue-light);color:var(--blue);font-size:.8rem;vertical-align:middle}.pill.green{background:var(--good-bg);color:var(--good)}.pill.amber{background:var(--amber-bg);color:var(--amber)}.pill.red{background:var(--bad-bg);color:var(--bad)}.weeks{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:9px;margin-bottom:25px}.week{border:1px solid var(--line);background:#fff;padding:13px 7px 10px;border-radius:10px;color:var(--muted);text-align:left}.week span,.week small{display:block}.week span{font-size:.9rem;font-weight:600;color:var(--ink)}.week small{font-size:.75rem;white-space:nowrap}.week progress{margin-top:9px;height:3px}.week.active{outline:2px solid var(--blue);outline-offset:2px}.week.is-in-progress{background:var(--blue);border-color:var(--blue)}.week.is-complete{background:var(--good);border-color:var(--good)}.week.is-complete.active{outline-color:var(--good)}.week.is-in-progress span,.week.is-in-progress small,.week.is-complete span,.week.is-complete small{color:white}.week.is-in-progress progress::-webkit-progress-bar,.week.is-complete progress::-webkit-progress-bar{background:#ffffff40}.week.is-in-progress progress::-webkit-progress-value,.week.is-complete progress::-webkit-progress-value{background:white}.week.is-in-progress progress::-moz-progress-bar,.week.is-complete progress::-moz-progress-bar{background:white}.week .week-status{font-size:.75rem;font-weight:500;margin-top:4px}.week-status svg{width:14px;height:14px;margin-right:3px}.plan-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:24px;align-items:start}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-heading h2{margin:0}.week-banner{display:flex;gap:18px;align-items:flex-start;margin-bottom:24px}.week-number{font-size:2.15rem;line-height:1.2;color:#a2b1c9;font-variant-numeric:tabular-nums}.week-banner h2{margin-bottom:6px}.week-banner p{font-size:.9rem;color:var(--muted);margin:0}.goal{padding:13px 16px;background:#f2f6ff;border-left:3px solid #7796ee;font-size:.9rem;margin:0 0 22px;border-radius:0 8px 8px 0}.task-list{display:grid;gap:12px}.task{background:#fff;border:1px solid var(--line);border-radius:12px;padding:18px;display:grid;grid-template-columns:minmax(0,1fr);gap:13px}.task.done{background:#f8fbfa}.task input[type=checkbox]{width:20px;height:20px;margin:4px 0;accent-color:var(--blue)}.task-title{display:flex;gap:10px;align-items:start;justify-content:space-between}.task h3{margin:0 0 7px}.task.done h3{color:var(--muted)}.task p{color:var(--muted);font-size:.9rem;margin:0 0 10px}.task .duration{font-size:.8rem;color:var(--muted);white-space:nowrap}.task details{font-size:.875rem;color:var(--muted);margin:8px 0}.task summary{cursor:pointer;color:var(--ink)}.task .links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.link-chip{display:inline-block;background:#f1f5fc;padding:4px 9px;border:0;border-radius:6px;color:#34547f;font-size:.8rem;text-align:left}.focus-card{background:var(--navy);border:0;color:#fff}.focus-card h2{font-size:1.1rem}.focus-card p,.focus-card small{color:#bfcce0}.focus-card strong{color:white}.focus-card ul{padding-left:18px;font-size:.9rem;margin-bottom:0}.focus-card li{margin:10px 0;color:#dee7f7}.reading-item{display:flex;gap:11px;align-items:start;border-bottom:1px solid var(--line);padding:12px 0;width:100%;background:transparent;text-align:left;color:var(--ink)}.reading-item:last-child{border:0;padding-bottom:0}.reading-item svg{color:var(--blue);flex:none;margin-top:4px}.reading-item span{font-size:.9rem}.field{display:flex;flex-direction:column;gap:6px;font-size:.875rem;color:var(--muted);min-width:0}.field input,.field select,.field textarea,input.search{border:1px solid #cbd6e5;border-radius:8px;background:white;padding:10px 12px;color:var(--ink);width:100%;min-width:0}.field textarea{resize:vertical;min-height:84px}.progress-line{display:flex;justify-content:space-between;font-size:.875rem;color:var(--muted);margin-bottom:7px}progress{display:block;width:100%;height:7px;appearance:none;border:0;border-radius:8px;overflow:hidden;background:#e3eaf5}progress::-webkit-progress-bar{background:#e3eaf5}progress::-webkit-progress-value{background:var(--blue);border-radius:8px}progress::-moz-progress-bar{background:var(--blue)}.library-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:22px;align-items:start}.library-nav{position:sticky;top:18px;max-height:calc(100vh - 40px);display:flex;flex-direction:column;min-height:0;padding:17px}.library-controls{display:grid;gap:10px;margin-bottom:12px}.doc-list{overflow:auto;min-height:0;display:grid;gap:5px;max-height:64vh}.doc-button{background:white;padding:11px;border-radius:8px;text-align:left;color:var(--ink);font-size:.875rem;border:1px solid transparent}.doc-button.active{background:var(--blue-light);border-color:#cedafa;color:var(--blue)}.doc-button small{display:block;font-size:.75rem;margin-bottom:3px}.doc-button:hover{background:#f2f5fa}.reader-top{border-bottom:1px solid var(--line);padding-bottom:17px;margin-bottom:20px}.reader-top h2{word-break:break-word}.reader-toc{background:#f4f7fc;padding:13px 17px;border-radius:10px;margin-bottom:22px}.reader-toc summary{cursor:pointer;font-size:.9rem}.toc-links{display:grid;gap:7px;margin-top:12px;max-height:260px;overflow:auto}.toc-links button{background:transparent;text-align:left;color:var(--blue);font-size:.875rem}.prose{line-height:1.9;overflow-wrap:anywhere}.prose h1{font-size:1.6rem}.prose h2{font-size:1.4rem;margin-top:32px}.prose h3{font-size:1.2rem;margin-top:28px}.prose h4{font-size:1.05rem;margin-top:24px}.prose h5{font-size:1rem;margin-top:20px}.prose p{margin-bottom:16px}.prose img{max-width:100%;height:auto;display:block;margin:18px auto;border-radius:6px}.prose pre{overflow:auto;background:#14253a;color:#e3edff;padding:18px;border-radius:10px;line-height:1.65;font-size:.9rem;white-space:pre}.prose code{font-family:ui-monospace,'SFMono-Regular',Consolas,monospace;background:#edf2f9;padding:2px 5px;border-radius:4px;font-size:.9em}.prose pre code{background:none;padding:0;color:inherit}.prose blockquote{margin:20px 0;padding:14px 18px;background:#f0f5fc;border-left:3px solid #91a9d4;color:#4a6382}.prose blockquote p:last-child{margin-bottom:0}.prose table{display:block;max-width:100%;overflow:auto;border-collapse:collapse;font-size:.9rem;margin:20px 0}.prose th,.prose td{border:1px solid var(--line);padding:9px 12px;text-align:left;min-width:90px}.prose th{background:#edf2fa}.prose details{border:1px solid var(--line);padding:12px 16px;border-radius:9px;margin:14px 0}.prose summary{cursor:pointer;font-weight:600}.prose li{margin:6px 0}.prose hr{border:0;border-top:1px solid var(--line);margin:28px 0}.prose [id]{scroll-margin-top:25px}.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.quiz-setup{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:24px}.notice{background:var(--amber-bg);border-radius:9px;padding:13px 16px;font-size:.9rem;color:#70551d}.checkline{display:flex;align-items:flex-start;gap:9px;font-size:.9rem;margin:16px 0}.checkline input{width:18px;height:18px;accent-color:var(--blue);margin-top:4px;flex:none}.bank-count{font-size:2.2rem;font-weight:650;color:var(--blue);line-height:1.3}.quiz-layout{max-width:940px;margin:auto}.quiz-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:17px}.quiz-top h2{margin:0;font-size:1.1rem}.question-card{padding:28px}.question-card .prose{font-size:1.06rem}.question-card .prose p:last-child{margin-bottom:0}.option-list{display:grid;gap:11px;margin:25px 0}.option{display:flex;align-items:flex-start;gap:15px;background:white;border:1px solid #cdd8e6;border-radius:10px;padding:15px 17px;text-align:left;width:100%;color:var(--ink)}.option .letter{background:#edf2f8;color:#516886;width:30px;min-width:30px;height:30px;border-radius:7px;display:grid;place-items:center;font-weight:600}.option .prose{font-size:1rem;flex:1;min-width:0;line-height:1.8}.option:hover:not(:disabled),.option.selected{border-color:var(--blue);background:#f4f7ff}.option.selected .letter{background:var(--blue);color:white}.option.correct{border-color:var(--good);background:var(--good-bg)}.option.wrong{border-color:var(--bad);background:var(--bad-bg)}.option:disabled{opacity:1;cursor:default}.confidence{border:0;padding:0;margin:18px 0;display:flex;gap:18px;flex-wrap:wrap;font-size:.9rem}.confidence legend{font-size:.875rem;color:var(--muted);margin-bottom:9px}.confidence input{accent-color:var(--blue)}.feedback{border-radius:10px;background:var(--good-bg);padding:16px;color:var(--good);margin:15px 0}.feedback.wrong{background:var(--bad-bg);color:var(--bad)}.explanation{border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.timer{font-variant-numeric:tabular-nums;padding:5px 12px;border-radius:7px;background:#edf2fa;white-space:nowrap}.question-jump{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0}.question-jump button{width:32px;height:32px;background:#edf2fa;color:var(--ink);border-radius:5px;font-size:.8rem}.question-jump button.answered{background:#d4e1ff}.question-jump button.active{background:var(--blue);color:white}.review-item{padding:18px 0;border-bottom:1px solid var(--line)}.review-item:last-child{border:0}.review-item h3{margin:8px 0}.review-item .excerpt{color:var(--muted);font-size:.9rem;margin:7px 0}.review-item textarea{margin:10px 0}.review-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:15px}.empty{padding:50px 25px;text-align:center;color:var(--muted)}.empty svg{width:40px;height:40px;color:#8ba5cc;margin-bottom:12px}.empty h2{color:var(--ink)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;font-size:.9rem}.table th,.table td{padding:13px 12px;text-align:left;border-bottom:1px solid var(--line)}.table th{font-weight:500;color:var(--muted);background:#f7f9fc}.table td{min-width:85px}.table tr:last-child td{border:0}.record-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.record-grid .card{margin:0}.bottom-note{color:var(--muted);font-size:.8rem;margin-top:22px}.dialog{border:0;border-radius:17px;width:min(1000px,calc(100vw - 30px));max-height:90vh;padding:0;color:var(--ink);box-shadow:0 20px 90px #13264240}.dialog::backdrop{background:#14243db0;backdrop-filter:blur(3px)}.dialog-bar{position:sticky;top:0;background:white;border-bottom:1px solid var(--line);padding:15px 23px;display:flex;justify-content:space-between;align-items:center;gap:20px;z-index:2}.dialog-bar h2{margin:0;font-size:1rem}.dialog-body{padding:25px 32px}.dialog.compact{max-width:500px}.dialog .reader-top{display:none}.close{background:#edf2fa;border:0;width:34px;height:34px;border-radius:50%;font-size:1.2rem;flex:none}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:var(--navy);color:white;padding:12px 22px;border-radius:10px;box-shadow:0 6px 30px #172e5333;z-index:20;font-size:.9rem}.toast:empty{display:none}.storage-warning{background:#fff0d3;padding:10px 20px;color:#77530e;text-align:center;font-size:.9rem}.skip{position:absolute;left:-1000px;top:0}.skip:focus{left:15px;top:10px;background:white;padding:10px;z-index:30}.resume{display:flex;align-items:center;justify-content:space-between;gap:20px;background:var(--blue-light);border:1px solid #d2ddfb;border-radius:12px;padding:16px 20px;margin-bottom:20px}.resume p{margin:0;font-size:.9rem}.footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:27px;color:var(--muted);font-size:.8rem}
@media(min-width:1600px){#main{padding-top:40px}.plan-layout{grid-template-columns:minmax(0,1fr) 345px}}
@media(max-width:1200px){.shell{grid-template-columns:205px minmax(0,1fr)}.sidebar{padding:25px 13px}.topbar{padding:0 24px}#main{padding:25px 24px 50px}.plan-layout{grid-template-columns:minmax(0,1fr) 265px;gap:18px}.weeks{gap:6px}.week{padding:11px 6px}.week small{font-size:.7rem}.stats{gap:10px}.stat{padding:15px}.library-layout{grid-template-columns:250px minmax(0,1fr)}.quiz-setup{grid-template-columns:1fr}.quiz-setup aside{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quiz-setup aside .card{margin:0}}
@media(max-width:980px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;padding:16px 22px;display:block}.brand{margin:0 0 15px;padding:0}.brand small{display:none}.brand-icon{height:31px;width:31px;border-radius:8px}.side-label,.side-bottom{display:none}.nav{display:flex;gap:7px;overflow:auto}.nav button{white-space:nowrap;padding:9px 13px;font-size:.9rem}.nav button svg{width:18px;height:18px}.topbar{height:60px}.plan-layout{grid-template-columns:minmax(0,1fr) 280px}.library-nav{top:12px}.heading h1{font-size:1.6rem}}
@media(max-width:720px){#main{padding:22px 16px 40px}.topbar{padding:0 17px}.breadcrumb{font-size:.8rem}.breadcrumb span{display:none}.top-actions .btn-label{display:none}.heading{align-items:flex-start;gap:10px;margin-bottom:20px}.heading .btn{font-size:.85rem;padding:8px 11px}.heading p{font-size:.9rem}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:20px}.stat .value{font-size:1.7rem}.weeks{grid-template-columns:repeat(4,1fr);gap:7px}.week small{font-size:.75rem}.plan-layout,.library-layout{grid-template-columns:1fr}.plan-layout aside{display:grid;gap:16px}.plan-layout aside .card{margin:0}.card{padding:19px}.task{padding:15px}.task-title{display:block}.task .duration{margin-bottom:7px;display:block}.library-nav{position:static;max-height:none}.doc-list{max-height:220px}.reader-top h2{font-size:1.1rem}.filter-grid,.record-grid{grid-template-columns:1fr}.quiz-setup aside{grid-template-columns:1fr}.question-card{padding:18px}.option{padding:13px 11px;gap:10px}.quiz-top{align-items:flex-start}.quiz-top h2{font-size:1rem}.dialog-body{padding:20px}.dialog-bar{padding:13px 18px}.dialog{max-height:94vh;width:calc(100vw - 16px)}.review-toolbar{align-items:flex-start}.nav .count{display:none}.resume{align-items:flex-start}.prose table{font-size:.85rem}.footer{display:block}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* 行動裝置：讓橫向導覽僅在自身容器內捲動。 */
@media(max-width:980px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{min-width:0}.nav{max-width:100%}.heading>div{min-width:0}.plan-layout>*,.library-layout>*,.quiz-setup>*{min-width:0}}

@media(max-width:720px){.weeks{grid-template-columns:repeat(4,minmax(0,1fr))}.week{min-width:0}.week small{white-space:normal}}
.weekly-diagnostic{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;margin:0 0 24px;border-color:#b9cdf6;background:linear-gradient(120deg,#fff,#f0f5ff)}.weekly-diagnostic h2{margin:10px 0}.weekly-diagnostic p{margin-bottom:9px}.weekly-diagnostic>.actions{flex-direction:column;align-items:stretch}.diagnostic-topics{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0}.diagnostic-topics span{font-size:.85rem;padding:3px 9px;border:1px solid #d4dff2;background:white;border-radius:5px}.diagnostic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:20px 0}.concept-result{border:1px solid var(--line);border-radius:10px;padding:17px}.concept-result h3{margin:0}.concept-result .section-heading{align-items:start;gap:12px}.concept-result .pill{white-space:nowrap}.concept-result .links{display:flex;gap:6px;flex-wrap:wrap}.diagnostic-report{margin:24px 0!important}.diagnostic-report summary{cursor:pointer}.diagnostic-report details p{border-bottom:1px solid var(--line);padding:14px 0;font-size:.9rem}.save-status{font-size:.8rem;color:var(--muted);white-space:nowrap}@media(max-width:720px){.weekly-diagnostic,.diagnostic-grid{grid-template-columns:minmax(0,1fr)}.weekly-diagnostic{gap:15px}.weekly-diagnostic>.actions{flex-direction:row;flex-wrap:wrap}.save-status{display:none}.heading>.btn{flex-shrink:0;white-space:nowrap}}

.btn.practice-complete{color:var(--good);background:var(--good-bg);border-color:var(--good)}.btn.practice-complete:hover{border-color:var(--good);background:#e3f2eb}

/* 章節共用閱讀狀態；同一文件在學習清單與本週查讀保持一致。 */
.read-state{font-size:.8rem;margin-left:.35em;white-space:nowrap;color:var(--muted)}.read-state[data-status="閱讀中"]{color:#85620c}.read-state[data-status="已閱讀"]{color:var(--good)}.reading-item .read-state{display:block;margin-left:0}.reader-actions{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--line)}.reader-actions>.read-state{margin-left:0}.resume>div{min-width:0}.resume .meta{margin-top:5px}.resume>.btn{flex-shrink:0}.resume-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:10px;font-size:.875rem}.resume-links a{overflow-wrap:anywhere}.diagnostic-done{font-size:.875rem;color:var(--good)}.task:focus{outline:3px solid #91a9d4;outline-offset:4px}.reading-item>span{min-width:0}.link-chip{overflow-wrap:anywhere}
@media(max-width:720px){.resume{flex-direction:column;gap:12px}.resume-links{flex-direction:column}}

/* 閱讀與練習整合於單一學習清單；深色區塊用於週初及週末檢核。 */
.weekly-plan{max-width:1120px;margin-inline:auto}.task-readings{margin:16px 0}.task h4{margin:0 0 9px;font-size:.9rem}.task-readings .link-chip{padding:9px 12px}.task .practice-count{margin:16px 0 9px}.task .task-success{margin-top:14px}.task.checkpoint,.task.checkpoint.done{background:var(--navy);border-color:var(--navy);color:#f4f7ff}.task.checkpoint h3,.task.checkpoint.done h3,.task.checkpoint h4,.task.checkpoint summary{color:#fff}.task.checkpoint p,.task.checkpoint .duration{color:#c7d5e9}.checkpoint-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:18px 0}.weekly-outline{padding-left:22px;margin:0;font-size:.9rem}.weekly-outline li{margin:7px 0}.weekly-outline a{color:#dbe7ff}.checkpoint-questions{margin:0!important}.checkpoint-questions ol{max-height:320px;overflow:auto;padding-left:23px}.checkpoint-questions li{margin-bottom:16px;color:#c7d5e9}.checkpoint-questions li>span{font-size:.75rem;color:#a9bdd9}.checkpoint-questions li p{margin-top:4px}.task.checkpoint .btn.quiet{background:#edf3ff;color:#254f9c}.task.checkpoint .diagnostic-done{color:#a1e5c5}.task.checkpoint .practice-complete{background:#e9f6ef}.task.checkpoint .actions{margin-top:16px}.task-readings .read-state{white-space:normal}
@media(max-width:720px){.checkpoint-columns{grid-template-columns:1fr;gap:18px}.task-readings .link-chip{width:100%;font-size:.875rem}.task-readings .read-state{display:block;margin-left:0}}

/* 閱讀與題組共用完成色彩、邊框、間距及圖示。 */
.btn.study-action{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border:1px solid var(--blue);border-radius:9px;font-size:.875rem;font-weight:500;line-height:1.65;text-align:left;background:#edf3ff;color:var(--blue)}
.btn.study-action:hover{background:#e0eaff;border-color:var(--blue)}
.btn.study-action.is-complete{background:var(--good-bg);color:var(--good);border-color:var(--good)}
.btn.study-action.is-complete:hover{background:#e3f2eb;border-color:var(--good)}
.btn.study-action .read-state{color:inherit;font:inherit;margin-left:0;white-space:normal}
.btn.study-action>span:first-child{min-width:0}.btn.study-action svg{flex:none}.reading-icon{display:inline-flex;flex:none}
.weeks .final-period{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:5px 18px;align-items:center;padding:12px 15px}.weeks .final-period progress{grid-column:1/-1;margin:0}.task-date{display:block;color:var(--blue);font-size:.875rem;margin-bottom:5px}.daily-steps{padding-left:22px;font-size:.9rem;color:var(--muted);margin:12px 0 18px}.daily-steps li{margin-bottom:8px}
@media(max-width:720px){.task .btn.study-action{width:100%}.task .study-action .read-state{display:inline}}

.weekly-plan .week-number{flex-shrink:0;white-space:nowrap}

/* 章節評量先作答再揭露解析；閱讀操作固定在正文之後。 */
.reader-actions{border-bottom:0;border-top:1px solid var(--line);padding:22px 0 0;margin:28px 0 0}.inline-exercise{border:1px solid var(--line);border-radius:12px;padding:20px;margin:22px 0;background:#fff}.inline-exercise .option-list{margin:16px 0}.inline-exercise .option{font:inherit}.inline-exercise .option .prose{display:block}.inline-exercise .option .prose p:last-child{margin-bottom:0}.inline-exercise .inline-explanation{margin-bottom:16px}.inline-exercise .inline-explanation>ul{padding-left:22px}.inline-exercise .feedback{font-weight:600}.reader-actions>.study-action{justify-content:center}
@media(max-width:720px){.inline-exercise{padding:14px}.reader-actions>.study-action{width:100%;justify-content:space-between}.reader-actions>.read-state{width:100%}}
.prose [data-math]{display:inline-block;max-width:100%;overflow-x:auto;vertical-align:middle}.prose [data-math][data-display="true"]{display:block}.prose [data-math] .katex-display{margin:.5em 0}

.review-group{border:1px solid var(--line);border-radius:10px;margin-top:12px;overflow:hidden}.review-group>summary{cursor:pointer;padding:16px 18px;background:#f4f7fc;overflow-wrap:anywhere}.review-source{font-weight:600}.review-group-count{display:block;margin:4px 0 0 20px;font-size:.8rem;color:var(--muted)}.review-group-body{padding:0 18px}.review-group[open]>summary{border-bottom:1px solid var(--line)}.review-group .review-item h3{font-size:1rem}.review-group .review-item{min-width:0}.review-group textarea{max-width:100%}

.btn.study-action.is-incorrect{background:var(--bad-bg);color:var(--bad);border-color:var(--bad)}.btn.study-action.is-incorrect:hover{background:#fce1e1;border-color:var(--bad)}

.stat.review-stat{text-align:left;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;width:100%}.review-stat>span{display:block}.review-stat:hover{border-color:var(--blue);background:#f4f7ff}.review-stat .foot{color:var(--blue)}.review-stat .foot svg{width:16px;height:16px}.period-progress-row{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.8rem;margin-top:5px}.period-progress-row strong{font-size:1.1rem;color:var(--navy);font-variant-numeric:tabular-nums}.period-progress progress{height:4px;margin:3px 0 0}.period-progress .foot{margin-top:6px}.weeks .final-period .week-status{grid-column:1/-1;margin-top:0}@media(max-width:480px){.period-progress{padding:14px 12px}.period-progress-row{flex-wrap:wrap}.week .week-status{font-size:.7rem}}

.task-reviews{margin:18px 0}.task-reviews h4 small{font-size:.8rem;font-weight:400;color:var(--muted)}.task-reviews ul{padding-left:20px;margin:8px 0}.task-reviews li{margin:7px 0}.task-reviews a{font-size:.9rem;overflow-wrap:anywhere}
