:root{color-scheme:light dark;--bg:#f5f5f7;--card:#fff;--text:#20212b;--muted:#666b78;--line:#dddfe8;--accent:#5157c8;--soft:#edeeff;--shadow:0 8px 30px #20214608}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#101117;--card:#1b1d27;--text:#f2f3f7;--muted:#a6abba;--line:#343849;--accent:#adb0ff;--soft:#2b2c45;--shadow:none}}
:root[data-theme=dark]{--bg:#101117;--card:#1b1d27;--text:#f2f3f7;--muted:#a6abba;--line:#343849;--accent:#adb0ff;--soft:#2b2c45;--shadow:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.65 -apple-system,BlinkMacSystemFont,"Noto Sans TC",sans-serif}a{color:var(--accent);text-underline-offset:3px}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.5}:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.top{max-width:1240px;margin:auto;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{font-weight:750;text-decoration:none;color:var(--text);white-space:nowrap}.top-actions{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--muted)}.top-actions button,.filter-reset{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px;padding:7px 12px}.top-actions span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main{max-width:1184px;margin:0 auto;padding:34px 28px 70px;min-height:70vh}.eyebrow{font-size:13px;letter-spacing:.08em;font-weight:700;color:var(--accent);margin:0 0 10px}h1{font-size:clamp(30px,5vw,48px);line-height:1.2;letter-spacing:-.035em;margin:0 0 20px}h2{font-size:24px;line-height:1.45}h3{font-size:19px}.intro{max-width:770px;color:var(--muted);margin:0 0 25px}.summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}.pill{display:inline-block;border:1px solid var(--line);border-radius:99px;padding:5px 12px;font-size:13px;background:var(--card)}
.filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;background:var(--card);padding:20px;border-radius:18px;border:1px solid var(--line);margin-bottom:22px}.filters label{font-size:13px;font-weight:600;color:var(--muted)}input,select{display:block;width:100%;margin-top:7px;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:9px;background:var(--bg);color:var(--text)}.result-note{font-size:14px;color:var(--muted);margin:0 0 18px}.cert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.cert-card{display:flex;flex-direction:column;padding:24px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow);min-width:0}.category{font-size:12px;color:var(--accent);font-weight:650}.cert-card h2{font-size:21px;margin:12px 0}.cert-card p{font-size:14px;color:var(--muted);margin:0 0 18px}.cert-card .subject-preview{font-size:14px;line-height:1.7;color:var(--muted);flex:1;margin:0 0 22px;padding-left:19px}.card-link{font-weight:650;text-decoration:none;display:block;padding-top:16px;border-top:1px solid var(--line)}.status{display:inline-block;background:var(--soft);color:var(--accent);padding:4px 9px;border-radius:6px;font-size:12px;margin:0 0 16px;align-self:start}.empty{grid-column:1/-1;border:1px dashed var(--line);padding:40px;text-align:center;border-radius:18px}.loading{color:var(--muted)}
.back{display:inline-block;margin-bottom:28px;text-decoration:none}.detail-links{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 17px;background:var(--card);color:var(--accent);border:1px solid var(--line);border-radius:10px;text-decoration:none;font-weight:650}.button.primary{background:#5157c8;color:#fff;border-color:#5157c8}.note{border-left:3px solid var(--accent);background:var(--soft);padding:16px 20px;border-radius:0 12px 12px 0;margin:25px 0;color:var(--muted);font-size:14px}.level{background:var(--card);padding:24px 28px;margin:18px 0;border:1px solid var(--line);border-radius:18px}.level h2{margin:0 0 15px}.subject-list{padding:0;list-style:none;margin:0}.subject-list li{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-top:1px solid var(--line)}.subject-list span{font-size:12px;color:var(--muted);white-space:nowrap}.level-source{font-size:13px;display:inline-block;margin-top:17px}.resource-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0;list-style:none}.resource-list li{min-width:0;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}.resource-list a{font-size:14px;overflow-wrap:anywhere}.resource-kind{font-size:11px;color:var(--muted);margin-bottom:5px}.resource-list details summary{cursor:pointer}.verified{color:var(--muted);font-size:12px;margin-top:30px}
footer{text-align:center;max-width:1184px;margin:auto;padding:25px 24px 40px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}footer a{display:inline-block;margin-top:8px}#authLoading{display:none;min-height:100vh;align-items:center;justify-content:center;gap:18px;flex-direction:column;padding:30px;text-align:center}html[data-auth-pending] body>:not(#authLoading){display:none!important}html[data-auth-pending] #authLoading{display:flex}#authLoading button{padding:10px 18px;border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:10px}
@media(max-width:940px){.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-actions span{display:none}}
@media(max-width:600px){.top{padding:16px 18px}.top-actions button{font-size:12px}.brand{font-size:15px}main{padding:26px 18px 45px}.filters{grid-template-columns:1fr 1fr;padding:16px}.filters label:first-child{grid-column:1/-1}.cert-grid,.resource-list{grid-template-columns:1fr}.cert-card,.level{padding:22px}.summary{gap:7px}.pill{font-size:12px}.subject-list li{align-items:flex-start}.subject-list span{white-space:normal;min-width:42px;text-align:right}.detail-links .button{flex:1 1 auto}}

.status-filters{display:flex;gap:9px;margin-bottom:18px;flex-wrap:wrap}.status-filters button{padding:7px 14px;border:1px solid var(--line);border-radius:99px;background:var(--card);color:var(--muted)}.status-filters button[aria-pressed=true]{background:var(--soft);border-color:var(--accent);color:var(--accent)}
.paper-title{font-size:clamp(23px,3vw,34px);overflow-wrap:anywhere}.reader-back{border:0;background:none;color:var(--accent);padding:0;font:inherit;cursor:pointer}.paper-notice{background:var(--soft);color:var(--muted);padding:14px 18px;border-radius:12px;font-size:14px}.paper-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:20px 0}.paper-tools .result-note{margin:0;font-size:12px}.paper-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.paper-document{min-width:0;scroll-margin-top:20px}.page-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}.page-controls label{font-size:12px;color:var(--muted)}.page-controls select{margin:0;padding:8px;min-height:40px}.page-controls .button{font-size:13px;padding:8px 12px}.paper-page{display:block;background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden;text-decoration:none}.paper-page img{width:100%;display:block}.paper-page span{display:block;text-align:center;font-size:12px;padding:10px;color:#525765}.answer-card{position:sticky;top:14px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;min-width:0}.answer-card h2{margin:0 0 12px;font-size:22px}.answer-card .result-note{font-size:12px}.answer-list{max-height:55vh;overflow-y:auto;overscroll-behavior:contain;margin:14px -5px;padding:0 5px}.answer-row{padding:12px 0;border-top:1px solid var(--line)}.question-jump{font-size:13px;background:transparent;border:0;color:var(--accent);padding:0 0 8px;cursor:pointer}.answer-choices{display:flex;gap:7px}.choice{width:38px;min-height:38px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--text)}.choice.selected{background:#5157c8;color:#fff;border-color:#5157c8}.choice:disabled{opacity:.85}.answer-row small{display:block;margin-top:5px;color:var(--muted)}.answer-row.is-correct{border-left:3px solid #268b68;padding-left:10px}.answer-row.is-wrong{border-left:3px solid #d77541;padding-left:10px}.paper-result{padding:15px 0}.paper-result p,.paper-notes{font-size:13px;color:var(--muted)}.paper-notes{margin-top:15px}.paper-notes p{white-space:pre-wrap}.paper-notes summary{cursor:pointer}.paper-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0 30px}.paper-item{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:8px}.paper-item a{font-size:14px;font-weight:600}.paper-item span{color:var(--muted);font-size:12px}
@media(max-width:820px){.paper-layout{grid-template-columns:1fr}.answer-card{position:static}.answer-list{max-height:420px}.paper-list{grid-template-columns:1fr}.answer-choices{gap:12px}.choice{width:44px;min-height:44px}.page-controls .button{min-height:44px;padding:8px;font-size:12px}.paper-tools .button{font-size:13px}}

/* Question-by-question practice */
.practice-resume{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;border:1px solid var(--accent);border-radius:16px;background:var(--soft);margin-bottom:24px}.practice-resume p{margin:4px 0 0;font-size:13px;color:var(--muted)}.practice-settings{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;background:var(--card);padding:28px;border:1px solid var(--line);border-radius:20px}.practice-settings h2{margin-top:0}.practice-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.practice-fields label{font-size:13px;color:var(--muted)}.practice-start{background:var(--soft);padding:24px;border-radius:14px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.practice-start>strong{font-size:56px;line-height:1.2}.practice-start>p{color:var(--muted)}.practice-start .result-note{font-size:12px;margin:18px 0 0}.practice-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:baseline}.practice-toolbar>span{font-size:12px;color:var(--muted)}.practice-progress{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:13px;margin-bottom:25px}.practice-progress progress{width:100%;height:7px;accent-color:#6366d8}.practice-question{padding:28px;background:var(--card);border:1px solid var(--line);border-radius:20px;max-width:960px;margin:auto}.practice-question-top{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.practice-question-top .status{margin-bottom:8px}.favorite-button{background:var(--bg);border:1px solid var(--line);border-radius:9px;color:var(--accent);font-size:13px;padding:10px;white-space:nowrap;min-height:44px}.practice-stem{font-size:21px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0 24px}.practice-figure{margin:18px 0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.practice-figure img{width:100%;height:auto;display:block;min-height:40px}.practice-figure a{display:block}.practice-figure figcaption{font-size:12px;text-align:center;color:#606572;padding:10px}.practice-options{display:grid;gap:12px;margin:24px 0}.practice-option{display:flex;text-align:left;align-items:flex-start;gap:14px;border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--bg);color:var(--text);font-size:16px;line-height:1.75;min-height:60px}.practice-option>span:nth-child(2){flex:1;white-space:pre-wrap;overflow-wrap:anywhere}.practice-option:disabled{opacity:1}.option-letter{display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;border:1px solid var(--line);border-radius:9px;font-weight:650;line-height:1}.practice-option.selected{border-color:var(--accent);background:var(--soft)}.practice-option.correct{border-color:#218664;background:#eaf8f0;color:#163c2d}.practice-option.incorrect{border-color:#cd7644;background:#fff2e9;color:#6e3819}.choice-mark{color:#26865e}.practice-feedback{border-radius:12px;padding:20px 24px;margin:24px 0;line-height:1.85}.practice-feedback.correct{background:#eaf8f0;color:#163c2d}.practice-feedback.incorrect{background:#fff2e9;color:#6e3819}.practice-feedback p:last-child{margin-bottom:0}.practice-feedback strong{font-size:20px}.practice-source{font-size:12px;color:var(--muted);margin-top:24px;overflow-wrap:anywhere}.practice-source p{margin:8px 0}.practice-scope{padding:8px 12px;border-radius:8px;background:var(--soft);font-size:12px;color:var(--muted)}.practice-text{font-size:14px;color:var(--muted)}.practice-text p,.explanation{white-space:pre-wrap;overflow-wrap:anywhere}.practice-navigation{display:flex;justify-content:space-between;gap:12px;max-width:960px;margin:24px auto}.practice-completion{padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--card)}.practice-completion>strong{font-size:64px;color:var(--accent)}.practice-results{display:grid;grid-template-columns:1fr 1fr;gap:14px}.practice-result-item{text-align:left;padding:18px;background:var(--card);color:var(--text);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:9px}.practice-result-item span{font-size:12px;color:var(--accent)}.practice-result-item strong{font-size:14px;line-height:1.7;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.image-error{color:#ab321e;padding:16px;font-size:14px}.subject-practice{display:flex;align-items:center;gap:15px}.subject-practice a{white-space:nowrap;font-size:13px;min-height:40px;display:flex;align-items:center}.practice-entry{background:var(--soft);border:1px solid var(--accent);border-radius:18px;padding:24px;margin:28px 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.practice-entry h2{margin:0 0 7px}.practice-entry p{margin:0;color:var(--muted);font-size:14px}
@media(max-width:700px){.practice-settings{grid-template-columns:1fr;padding:20px;gap:20px}.practice-fields{grid-template-columns:1fr}.practice-start>strong{font-size:42px}.practice-resume,.practice-entry{align-items:flex-start;flex-direction:column;padding:20px}.practice-toolbar{flex-direction:column;gap:0;margin-bottom:18px}.practice-toolbar .back{margin-bottom:8px}.practice-question{padding:18px 14px}.practice-question-top{gap:9px}.practice-stem{font-size:18px}.practice-option{padding:13px 12px;font-size:15px;gap:10px}.practice-feedback{padding:18px}.practice-results{grid-template-columns:1fr}.subject-practice{flex-direction:column;align-items:flex-start;gap:2px}.subject-list li{gap:8px}.practice-completion>strong{font-size:52px}}
