@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap');
:root{--ink:#20363a;--muted:#6b7f82;--primary:#0f8b79;--primary-dark:#0b7166;--light-green:#e4f7ef;--pale:#f6faf8;--surface:#fff;--line:#e4edeb;--gold:#ffd78a;--shadow:0 18px 55px rgba(27,83,72,.06);--soft-shadow:0 8px 24px rgba(23,69,61,.045)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--pale);color:var(--ink);font-family:'Noto Sans TC',-apple-system,BlinkMacSystemFont,'Microsoft JhengHei',sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.45;cursor:not-allowed}a{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.4;letter-spacing:-.035em}p{color:var(--muted)}[hidden]{display:none!important}:focus-visible{outline:3px solid #ffbd66;outline-offset:3px}.skip-link{position:absolute;top:-100px;left:12px;z-index:100;padding:10px 16px;background:var(--ink);color:white}.skip-link:focus{top:10px}.shell{width:min(1120px,calc(100% - 44px));margin:auto}.decor{pointer-events:none;position:fixed;z-index:-1}.decor-top{width:460px;height:460px;left:-330px;top:-290px;border-radius:50%;background:#e3f5ee;filter:blur(12px)}
.site-header{position:relative;z-index:10;background:rgba(246,250,248,.91);backdrop-filter:blur(18px);border-bottom:1px solid rgba(218,233,227,.74)}.header-inner{min-height:86px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;gap:11px;align-items:center;padding:0;border:0;background:none;text-align:left;color:inherit}.brand-mark{height:46px;width:46px;display:grid;place-items:center;background:#0f8c78;position:relative;color:white;border-radius:16px 16px 12px 16px;font-size:23px;font-weight:900;transform:rotate(-6deg);box-shadow:0 8px 20px #0f8c782b}.brand-mark span{position:absolute;right:-6px;top:-8px;background:#ffd786;color:#7a4e0d;height:21px;width:21px;border-radius:50%;display:grid;place-items:center;font-size:14px;transform:rotate(6deg)}.brand-lines{display:flex;flex-direction:column;line-height:1.15}.brand-name{font-size:25px;font-weight:900;letter-spacing:-.07em}.name-day{color:#efab45;letter-spacing:-.055em}.brand-sub{font-size:10px;letter-spacing:.045em;color:#9aaba7;font-weight:700;margin-top:3px}.nav{display:flex;gap:5px}.nav-link{border:0;color:#6c8583;padding:10px 14px;border-radius:13px;background:transparent;font-size:13px;font-weight:700;display:flex;align-items:center;gap:7px;white-space:nowrap}.nav-link:hover,.nav-link.is-active{background:#e7f4ee;color:#137766}.nav-icon{font-size:19px;line-height:1;font-weight:400}.nav-count{display:grid;place-items:center;background:#ed806e;color:#fff;padding:0px 5px;min-width:17px;height:17px;border-radius:20px;font-size:10px}
.view{padding-bottom:18px;min-height:50vh}.hero{display:grid;grid-template-columns:1.18fr .82fr;align-items:center;gap:10px;min-height:430px;margin-top:34px;padding:58px 66px;background:linear-gradient(110deg,#e1f4e9 0%,#eaf8f0 57%,#dbf2e9 100%);border:1px solid #d4ebde;border-radius:30px;overflow:hidden;position:relative}.hero:after{content:'';position:absolute;right:24%;top:-180px;width:250px;height:250px;background:white;opacity:.19;filter:blur(20px);border-radius:50%}.hero-copy{position:relative;z-index:2}.eyebrow,.section-kicker{font-weight:900;color:var(--primary);font-size:12px;letter-spacing:.13em}.eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:18px;letter-spacing:.07em}.sun-dot{width:9px;height:9px;background:#ffc669;border-radius:50%;box-shadow:0 0 0 4px #fff5dc}.hero h1{font-size:clamp(33px,3.9vw,49px);font-weight:900;line-height:1.38;letter-spacing:-.055em;margin-bottom:17px}.hero h1 span{color:#15826c}.hero-copy>p{font-size:15px;line-height:1.9;max-width:490px;color:#5c7a75}.hero-actions{display:flex;flex-wrap:wrap;gap:11px;margin-top:27px}.btn{border:1px solid transparent;border-radius:13px;padding:12px 19px;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:46px;font-size:13px;font-weight:800;line-height:1.3;text-decoration:none;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}.btn:not(:disabled):hover{transform:translateY(-2px)}.btn-primary{background:#158b76;color:#fff;box-shadow:0 9px 19px rgba(12,124,101,.19)}.btn-primary:hover{background:#0b705e}.btn-light{background:#fff;color:#28796c;border-color:#deece5}.btn-light:hover{border-color:#b8d8cc;background:#fafffc}.btn-sm{min-height:39px;padding:9px 13px;font-size:12px}.btn-danger{color:#b55b55;background:#fff;border-color:#efd4d1}.btn-danger:hover{background:#fff5f4}.hero-mini{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:#6e9789;font-size:12px;margin-top:23px;font-weight:600}.hero-mini i{width:4px;height:4px;border-radius:50%;background:#a7cabc}.hero-mini strong{color:#248674}.hero-art{position:relative;width:100%;height:330px;display:grid;place-items:center;isolation:isolate}.art-orbit{position:absolute;border:2px dashed rgba(21,139,118,.14);border-radius:50%}.orbit-one{width:315px;height:315px}.orbit-two{width:230px;height:230px;border-style:solid;border-color:rgba(255,255,255,.62)}.book-shape{width:195px;height:226px;background:#fffef8;border:11px solid #fbfcf6;border-bottom:17px solid #faf4e8;border-radius:14px 20px 26px 14px;box-shadow:17px 19px 0 #b4dccc,19px 26px 32px rgba(17,111,90,.14);transform:rotate(-9deg);z-index:2;position:relative}.book-shape:before{content:'';position:absolute;left:17px;top:0;bottom:0;border-left:2px solid #e6efea}.book-shape:after{content:'';position:absolute;left:31px;bottom:18px;right:25px;height:5px;border-radius:8px;background:#e8f5e9}.book-inner{height:100%;display:flex;align-items:center;justify-content:center;gap:20px}.book-inner span{font-family:serif;font-size:44px;font-weight:900;color:#137763;writing-mode:vertical-rl}.book-inner span+span{color:#e5a74f;transform:translateY(21px)}.art-spark{position:absolute;color:#edb44d;font-size:35px;z-index:3}.spark-a{top:15px;right:40px}.spark-b{bottom:30px;left:15px;color:#61a9a0;font-size:29px}.art-bubble{position:absolute;z-index:4;border-radius:12px;font-size:12px;font-weight:900;background:#fff;box-shadow:0 9px 16px #2c77691b;padding:9px 16px}.bubble-a{top:50px;left:0;transform:rotate(-9deg);color:#a0783a}.bubble-b{right:6px;bottom:47px;background:#fff3d2;color:#b3812a;font-size:18px;transform:rotate(9deg)}
.section-heading{display:flex;gap:20px;justify-content:space-between;align-items:flex-end;margin:46px 0 23px}.section-heading h2,.list-head h2{font-size:26px;font-weight:900;margin:6px 0}.section-heading p,.list-head p{font-size:13px}.tiny-pill{font-size:11px;color:#76978c;background:#e6f2ec;padding:7px 12px;border-radius:99px;font-weight:700;white-space:nowrap}.group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.group-card{min-height:213px;padding:23px;background:#fff;border:1px solid var(--line);border-radius:21px;box-shadow:var(--soft-shadow);display:flex;flex-direction:column;transition:transform .17s ease,border-color .17s ease,box-shadow .17s ease}.group-card:hover{transform:translateY(-3px);border-color:#b8d9cb;box-shadow:0 14px 30px #174d3f13}.group-card-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.group-number{width:40px;height:40px;border-radius:13px;display:grid;place-items:center;font-size:14px;font-weight:900;background:#e3f5ea;color:#167b69}.group-card:nth-child(3n+2) .group-number{background:#fff0da;color:#af773d}.group-card:nth-child(3n) .group-number{background:#e5f2ff;color:#527eae}.group-tag{font-size:11px;color:#98aaa5;font-weight:700}.group-card h3{font-size:19px;line-height:1.35;font-weight:900;margin-bottom:5px}.group-card p{font-size:12px;line-height:1.7}.group-card-footer{margin-top:auto;padding-top:16px;display:flex;align-items:center;justify-content:space-between;gap:5px}.question-total{font-size:11px;font-weight:700;color:#95a69f}.card-start{font-weight:900;font-size:12px;color:#0d8873;border:0;background:#eaf7f0;border-radius:11px;padding:8px 11px}.card-start:hover{background:#d1f0e3}.sub-work-pills{display:flex;flex-wrap:wrap;gap:5px;margin-top:11px}.sub-work-pills button{border:1px solid #e0ebe5;background:#fafdfa;color:#67897b;padding:5px 9px;border-radius:7px;font-size:11px}.sub-work-pills button:hover{color:#0c7b68;border-color:#a3d5c0}.home-footer-note{display:flex;gap:14px;align-items:center;background:#e9f5ee;border-radius:17px;padding:17px 22px;margin-top:26px;color:#668b7e;font-size:12px}.home-footer-note>span{font-size:26px;color:#dcad53}.home-footer-note strong{color:#30816f}
.site-footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #e3ece7;margin-top:47px;padding:29px 0 37px;font-size:12px;color:#a2b2ac}.site-footer>span:first-child{font-weight:900;font-size:16px;color:#3b7771}.site-footer small{font-weight:500;color:#a1b0ac;font-size:10px;margin-left:6px}
.practice-head{display:flex;justify-content:space-between;align-items:center;margin:31px 0}.btn-back{border:0;background:none;color:#72958b;font-size:13px;padding:8px 0;font-weight:800}.btn-back:hover{color:#0f8872}.practice-mode{display:flex;align-items:center;gap:8px;font-size:12px;color:#659687;font-weight:800}.practice-mode>span:first-child{width:7px;height:7px;border-radius:50%;background:#67c8a8}.practice-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.practice-heading h2{font-size:28px;font-weight:900;margin:5px 0}.practice-heading p{font-size:13px}.session-stats{display:flex;flex-wrap:wrap;gap:11px;margin-bottom:20px}.session-pill{background:#fff;border:1px solid #e7efea;box-shadow:var(--soft-shadow);display:flex;align-items:center;gap:9px;padding:9px 14px;border-radius:11px;font-size:12px;color:#88a09a}.session-pill strong{font-weight:900;color:#1a8270;font-size:15px}.quiz-card{background:#fff;border:1px solid #e0ede7;border-radius:24px;padding:clamp(23px,4vw,48px);box-shadow:var(--shadow);max-width:920px;margin:auto}.quiz-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:21px}.tag{display:inline-flex;font-size:11px;font-weight:800;padding:5px 10px;border-radius:7px}.tag-soft{background:#e5f5ed;color:#12816a}.tag-outline{background:#f6f9f8;color:#6f938a}.question-index{margin-left:auto;color:#a6b4af;font-size:11px;font-weight:700}.question-text{font-size:clamp(20px,2.8vw,26px);line-height:1.8;font-weight:800;letter-spacing:-.018em;max-width:850px;white-space:pre-wrap}.question-helper{font-size:12px;color:#9aaca5;margin:7px 0 23px}.answers{display:grid;gap:12px}.answer-button{width:100%;background:#fff;border:1.5px solid #e5edeb;border-radius:14px;min-height:69px;padding:13px 18px;display:flex;align-items:center;gap:15px;text-align:left;color:#345450;font-size:15px;font-weight:600;line-height:1.7;transition:background .15s,border .15s,transform .15s}.answer-button:not(:disabled):hover{border-color:#8fcfba;background:#f7fdf9;transform:translateX(3px)}.answer-button:disabled{opacity:1;cursor:default}.answer-letter{display:grid;place-items:center;flex-shrink:0;width:35px;height:35px;border-radius:11px;background:#f2f6f4;color:#839c92;font-weight:900;font-size:14px}.answer-button.is-correct{border-color:#80cbae;background:#f0fcf5;color:#0c7f61}.answer-button.is-correct .answer-letter{background:#ccf1da;color:#118060}.answer-button.is-wrong{border-color:#f0aea7;background:#fff4f2;color:#ba554d}.answer-button.is-wrong .answer-letter{background:#f9d8d3;color:#b95c52}.answer-state{margin-left:auto;font-size:22px}.answer-feedback{margin-top:25px;border-radius:14px;padding:19px 21px;background:#f1fbf5;border:1px solid #d9f0df}.answer-feedback.is-error{background:#fff8f5;border-color:#f4e1db}.feedback-title{font-size:16px;font-weight:900;margin-bottom:10px;color:#177b61}.is-error .feedback-title{color:#b96957}.feedback-explain{font-size:14px;line-height:1.9;color:#55756b}.evidence{margin-top:12px;background:#ffffffb0;border-left:3px solid #aad8c3;padding:10px 13px;font-size:13px;line-height:1.9;color:#6e837d}.feedback-mini{font-size:12px;font-weight:700;color:#a27964;margin-top:13px}.quiz-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:26px;min-height:46px}.quiz-footnote{font-size:12px;color:#adbbb5}.practice-tail{margin-top:23px;text-align:center;font-size:12px;color:#9bafa5}
.page-top{padding-top:48px;margin-bottom:28px}.page-top h1{font-size:37px;font-weight:900;margin:6px 0 7px}.page-top p{font-size:14px}.title-icon{color:#dcaa50;font-size:26px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:32px}.metric-card{background:#fff;border:1px solid var(--line);padding:21px;border-radius:17px;box-shadow:var(--soft-shadow)}.metric-card .metric-label{font-weight:700;font-size:12px;color:#93a59e;margin-bottom:9px}.metric-card .metric-number{font-size:33px;font-weight:900;color:#258471;letter-spacing:-.05em;line-height:1.3}.metric-card .metric-desc{font-size:11px;color:#a4b2ac;margin-top:4px}.list-head{display:flex;justify-content:space-between;gap:20px;align-items:end;margin:29px 0 18px}.list-controls{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.list-controls select{border:1px solid #dceae2;background:white;color:#53766e;border-radius:11px;padding:10px 12px;font-size:12px;font-weight:700;min-height:39px}.mistake-list,.per-work-stats{display:grid;gap:11px}.mistake-item{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#fff;border-radius:15px;padding:20px 23px;border:1px solid var(--line)}.mistake-item .mistake-top{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:7px}.mistake-item h3{font-size:15px;line-height:1.75;font-weight:800}.mistake-item p{font-size:11px;margin-top:5px}.status{font-size:10px;font-weight:800;border-radius:99px;padding:4px 9px;background:#fff1e9;color:#ae7350}.status.done{background:#e7f6ee;color:#2a916e}.mistake-start{flex-shrink:0}.empty-state{text-align:center;background:#fff;border:1px dashed #d8e8e1;border-radius:17px;padding:60px 25px}.empty-state .empty-icon{font-size:42px;margin-bottom:10px}.empty-state h3{font-size:18px;margin:5px 0}.empty-state p{font-size:13px;margin-bottom:18px}.stats-note{background:#e7f4ed;padding:16px 20px;border-radius:14px;color:#588678;font-size:12px;line-height:1.9}.stats-note strong{color:#2f806b}.stat-row{display:flex;align-items:center;gap:19px;padding:16px 21px;background:#fff;border:1px solid var(--line);border-radius:14px}.stat-row-main{width:31%;min-width:160px}.stat-row-main strong{font-size:14px}.stat-row-main p{font-size:11px;margin-top:4px}.stat-row-progress{flex:1}.stat-track{height:9px;border-radius:100px;background:#edf3ef;overflow:hidden}.stat-fill{height:100%;border-radius:100px;background:linear-gradient(90deg,#67c7a4,#15927c)}.stat-percent{text-align:right;color:#288874;font-size:16px;font-weight:900;min-width:50px}.manage-card{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:30px;padding:23px;border-radius:17px;border:1px solid var(--line);background:#fff}.manage-card h2{font-size:18px}.manage-card p{font-size:12px;line-height:1.9;max-width:560px;margin-top:5px}.manage-actions{display:flex;flex-wrap:wrap;gap:8px}.file-label{cursor:pointer}
.selection-dialog{border:0;background:#fff;border-radius:24px;padding:0;box-shadow:0 20px 65px #24483d40;width:min(650px,calc(100vw - 26px));max-height:min(88vh,870px);color:var(--ink)}.selection-dialog::backdrop{background:#152e29a9;backdrop-filter:blur(3px)}.selection-dialog form{display:flex;flex-direction:column;max-height:88vh}.dialog-head{display:flex;justify-content:space-between;gap:15px;padding:26px 28px 18px}.dialog-head h2{font-size:23px;margin:5px 0}.dialog-head p{font-size:12px}.icon-button{border:0;background:#f1f6f3;color:#678478;width:37px;height:37px;border-radius:11px;font-size:17px;flex-shrink:0}.dialog-tools{border-block:1px solid #ebf1ec;display:flex;gap:16px;align-items:center;padding:11px 29px}.text-button{border:0;background:none;padding:4px 0;font-size:12px;font-weight:800;color:#218b71}.dialog-tools span{margin-left:auto;color:#9daea6;font-size:11px}.work-options{overflow:auto;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:18px 27px}.work-choice{display:flex;gap:10px;align-items:center;border:1px solid #e3eee8;border-radius:12px;padding:13px;cursor:pointer}.work-choice:has(input:checked){background:#f1faf4;border-color:#97d1b8}.work-choice input{width:18px;height:18px;accent-color:#178e75;flex-shrink:0}.work-choice b{display:block;font-size:12px;line-height:1.5}.work-choice small{font-size:10px;color:#9baea5;line-height:1.7}.dialog-actions{padding:17px 27px 25px;border-top:1px solid #ebf1ec;display:flex;justify-content:flex-end;gap:10px}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:100;background:#193e36;color:#fff;padding:12px 19px;max-width:min(90vw,500px);font-size:12px;text-align:center;border-radius:12px;box-shadow:0 15px 38px #0e473342}
@media(max-width:900px){.shell{width:min(100% - 36px,850px)}.hero{padding:39px 42px;min-height:380px}.hero-art{height:290px}.book-shape{transform:rotate(-9deg) scale(.83)}.orbit-one{width:260px;height:260px}.group-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.shell{width:calc(100% - 28px)}.header-inner{min-height:69px;gap:8px}.brand{gap:8px}.brand-mark{height:35px;width:35px;font-size:18px;border-radius:12px}.brand-mark span{width:17px;height:17px;right:-5px;top:-6px;font-size:11px}.brand-name{font-size:21px}.brand-sub{font-size:8px}.nav{gap:0}.nav-link{padding:8px 9px;font-size:11px;gap:3px}.nav-icon{font-size:16px}.nav-count{margin-left:1px}.hero{grid-template-columns:1fr;min-height:initial;margin-top:16px;padding:33px 28px 24px;border-radius:23px}.hero h1{font-size:34px;margin-bottom:13px}.hero-copy>p{font-size:13px}.hero-actions{margin-top:22px;gap:9px}.hero-actions .btn{font-size:12px;padding:12px 14px;min-height:43px}.hero-mini{margin-top:18px}.hero-art{height:142px;order:-1;display:none}.section-heading{margin:31px 0 17px}.section-heading h2{font-size:22px}.section-heading p{font-size:12px;line-height:1.8;margin-top:3px}.tiny-pill{display:none}.group-grid{gap:11px}.group-card{padding:17px 15px;min-height:193px;border-radius:16px}.group-card-header{margin-bottom:12px}.group-number{width:33px;height:33px;font-size:12px}.group-tag{font-size:10px}.group-card h3{font-size:15px}.group-card p{font-size:11px}.group-card-footer{padding-top:13px;flex-wrap:wrap}.card-start{font-size:11px}.question-total{font-size:10px}.sub-work-pills{gap:4px}.sub-work-pills button{font-size:10px;padding:4px 6px}.home-footer-note{padding:13px;font-size:11px}.site-footer{font-size:10px;margin-top:33px}.practice-head{margin:22px 0}.practice-summary{align-items:flex-start}.practice-heading h2{font-size:22px}.practice-heading p{font-size:12px}.session-stats{gap:6px}.session-pill{padding:7px 10px;font-size:10px}.session-pill strong{font-size:13px}.quiz-card{border-radius:18px;padding:22px 17px}.quiz-topline{margin-bottom:16px}.question-text{font-size:20px;line-height:1.75}.answer-button{min-height:64px;padding:12px;gap:10px;font-size:13px}.answer-letter{width:33px;height:33px}.answer-feedback{padding:16px 14px}.feedback-explain{font-size:13px}.quiz-footer{margin-top:19px}.quiz-footer .btn{padding:11px 15px}.quiz-footnote{font-size:10px}.page-top{padding-top:30px}.page-top h1{font-size:29px}.metric-grid{gap:9px}.metric-card{padding:16px;border-radius:13px}.metric-card .metric-number{font-size:27px}.list-head{align-items:flex-start;flex-direction:column;gap:12px}.mistake-item{padding:15px;align-items:flex-start;flex-direction:column;gap:9px}.mistake-item h3{font-size:13px}.stat-row{flex-wrap:wrap;gap:10px}.stat-row-main{width:100%}.stat-row-progress{flex:1}.work-options{grid-template-columns:1fr;padding:15px}.dialog-head{padding:21px 17px 15px}.dialog-tools{padding:9px 17px}.dialog-actions{padding:12px 17px 18px}.manage-card{padding:17px}}
@media(max-width:370px){.nav-link{font-size:10px;padding-inline:5px}.brand-name{font-size:19px}.group-grid{grid-template-columns:1fr}.group-card{min-height:165px}.hero h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important;animation:none!important}}
.negative-word{color:#922f25;background:#fff0dd;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em;border-radius:3px;padding:0 .12em;font-weight:900}
.question-text,.mistake-item h3{white-space:pre-line}
.feedback-source{font-size:12px;line-height:1.8;margin:10px 0;color:#526c6b;overflow-wrap:anywhere}
