:root{--bg:#faf8f5;--ink:#2f3550;--muted:#777e92;--violet:#346b63;--violet-soft:#e9f2ee;--violet-line:#e9f2ee;--sky:#e4f3f8;--sky-line:#b0d7e3;--card:#fff;--line:#e9e4e9;--mint:#e2f4e9;--green:#24774c;--pink:#fff0f1;--pink-ink:#a14455;--shadow:0 16px 50px rgba(64,49,91,.055);font-family:'Microsoft JhengHei','PingFang TC','Noto Sans TC',system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:linear-gradient(140deg,#fcf8f4,#faf9fa 52%,#f7f6f5)}button,input,label{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #9abdb5;outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.45}.hidden{display:none!important}.app-shell{min-height:100vh}.header{height:94px;background:rgba(255,255,255,.70);border-top:3px solid #c5d6d1;border-bottom:1px solid #e7e3e8;display:flex;align-items:center;justify-content:space-between;padding:0 max(28px,calc((100vw - 1360px)/2));gap:20px}.brand{display:flex;align-items:center;gap:16px}.brand-symbol{font-size:46px;font-weight:300;color:var(--violet);line-height:1}.brand b{display:block;font-weight:650;letter-spacing:.06em;font-size:21px}.brand small{display:block;color:#747c95;letter-spacing:.21em;font-size:11px;margin-top:7px;font-weight:600}.nav{display:flex;gap:10px}.nav-btn{border:0;background:transparent;color:var(--ink);border-radius:24px;padding:13px 17px;font-size:14px}.nav-btn.active,.nav-btn:hover{background:#e9f2ee;color:#346b63}.view{max-width:1360px;margin:auto;padding:0 32px 56px}.hero{display:flex;gap:30px;min-height:452px;align-items:center;justify-content:space-between;padding:47px 40px 34px}.hero-content{max-width:680px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:.27em;color:var(--violet);margin:0 0 24px}.hero h1,.page-intro h1{font-size:clamp(32px,4.0vw,54px);font-weight:700;line-height:1.56;letter-spacing:.07em;margin:0}.hero h1 em{font-style:normal;color:var(--violet)}.intro{font-size:17px;color:#73798e;line-height:2.05;margin:24px 0}.hero-foot{font-size:12px;color:#777e90;letter-spacing:.05em}.hero-art{position:relative;width:370px;height:305px;flex:none;display:flex;align-items:center;justify-content:center}.orbit{position:absolute;border:1px solid #e9f2ee;border-radius:50%;height:290px;width:350px;transform:rotate(-20deg)}.orbit-two{transform:rotate(29deg);height:265px;border-color:#ccdce4}.aster{position:absolute;color:#9abdb5;font-size:21px}.a1{left:9px;top:35px}.a2{right:5px;top:60px}.a3{bottom:25px;left:18px}.notebook{position:relative;background:linear-gradient(155deg,#fff,#f6f0ed);width:214px;height:253px;border:1px solid #ddd2de;box-shadow:-12px 9px 0 -4px #fff, -12px 9px 0 -3px #e9f2ee,12px 18px 34px #346b6320;transform:rotate(-7deg);border-radius:4px 15px 6px 6px;text-align:center;padding:17px}.note-moon{font-size:52px;color:#9abdb5;height:70px}.note-rule,.note-bottom{letter-spacing:.2em;color:#858aa2;font-size:10px;line-height:1.8}.note-main{font-size:26px;font-family:Georgia,serif;line-height:1.24;margin:10px;color:#346b63}.note-main em{font-weight:400;color:#9abdb5}.ribbon{font-family:Georgia,serif;position:absolute;right:-12px;bottom:17px;padding:11px 13px;color:#5d5d80;background:#e5f5fa;transform:rotate(6deg);font-size:15px;font-style:italic}.sheet{background:rgba(255,255,255,.78);border-radius:25px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.95);padding:38px 40px}.section-heading{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.section-heading h2,.sheet h2{font-size:24px;letter-spacing:.04em;margin:0 0 9px}.section-heading p,.muted{font-size:14px;color:var(--muted);line-height:1.85;margin:0}.ordinal{font-family:Georgia,serif;color:#9abdb5;font-size:19px;font-style:italic;padding-top:3px}.head-actions{margin-left:auto;display:flex;gap:14px}.text-btn{border:0;background:transparent;color:var(--violet);font-size:14px;padding:8px}.subjects{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:27px}.subject{border:1px solid #e4e3e7;border-radius:14px;padding:13px 12px;min-height:103px;background:#f7f6f8;color:#85889b}.subject.chosen{background:#e9f2ee;border-color:#9abdb5;color:#346b63}.subject-icon{font-family:Georgia,serif;font-size:24px;color:#346b63;margin-bottom:6px}.subject strong{display:block;font-size:14px}.subject small{display:block;font-size:10px;margin-top:4px;color:#85879b}.line{border-top:1px solid var(--line);margin:33px 0 30px}.units{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin-top:25px}.unit{border-radius:15px;padding:17px 18px;min-height:116px;text-align:left;border:1px solid #e9f2ee;background:#f9f9fa;color:#666e80;transition:transform .15s,border-color .15s,background .15s}.unit:hover{transform:translateY(-2px)}.unit.selected{border-color:#9abdb5;background:var(--violet-soft);color:var(--ink)}.unit-number{display:flex;align-items:center;justify-content:space-between;font-size:12px;letter-spacing:.16em;color:#346b63;margin-bottom:12px}.unit b{font-size:16px;display:block}.unit small{display:block;font-size:12px;color:#777e93;margin-top:7px}.mode-row{display:flex;flex-wrap:wrap;gap:11px;margin:23px 0}.mode{border:1px solid #9abdb5;color:#5f6680;border-radius:13px;background:#fcfcfd;padding:12px 18px;font-size:14px}.mode.selected{background:var(--sky);border-color:var(--sky-line);color:#34495b}.settings-line{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}.checkrow{display:flex;align-items:center;gap:9px;color:#545e72;font-size:13px}.checkrow input{accent-color:var(--violet);width:16px;height:16px}.scope-count{font-size:13px;color:#7b7e8d}.start-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:30px}.start-row p{color:#787d93;line-height:1.9;font-size:14px}.primary,.outline,.danger-ghost{border-radius:12px;padding:13px 25px;border:1px solid var(--violet);font-weight:600;font-size:14px}.primary{background:var(--violet);color:#fff;box-shadow:0 8px 16px #346b6325}.primary:hover{background:#346b63}.outline{background:#fff;color:var(--violet)}.outline:hover{background:#f5f1fa}.danger-ghost{color:#a64953;background:#fff;border-color:#d9aeb6}.big{min-width:195px;min-height:55px}.footnote{text-align:center;margin:26px 0;color:#9093a0;font-size:12px;line-height:1.7}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;padding:28px max(32px,calc((100vw - 1320px)/2));font-size:11px;letter-spacing:.07em;color:#346b63}.quiz-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:25px;margin-top:48px}.quiz-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:17px}.link-btn{border:0;background:transparent;color:#346b63;font-size:14px}.mini-number{color:#346b63;font-size:13px}.bar{height:8px;background:#eae5ef;overflow:hidden;border-radius:99px}.bar-fill{height:100%;width:0;background:linear-gradient(90deg,#a3d5de,#9abdb5);transition:width .3s}.question-card{background:#fff;padding:44px;border-radius:24px;margin-top:18px;border:1px solid #ece7ed;box-shadow:var(--shadow);min-height:490px}.question-meta{display:flex;flex-wrap:wrap;gap:8px}.tag{display:inline-block;border-radius:99px;padding:7px 13px;font-size:12px;font-weight:600}.tag.violet{color:#346b63;background:#e9f2ee}.tag.light{color:#587484;background:#e9f5f9}#questionText{line-height:1.7;font-size:clamp(20px,2.4vw,30px);letter-spacing:.025em;margin:30px 0}.choices{display:grid;gap:11px}.choice{display:flex;align-items:center;text-align:left;gap:14px;background:#f9f8fa;border:1px solid #e4dfe9;border-radius:14px;padding:15px 17px;min-height:61px;color:#354052;line-height:1.6}.choice:hover:not(:disabled){background:#f5f0fa}.choice.selected{border-color:#9abdb5;background:#e9f2ee}.choice.correct{border-color:#8ac5a1;background:#eff9f2}.choice.wrong{border-color:#e8a8b6;background:#fff0f2}.choice-key{border:1px solid #e9f2ee;color:#346b63;width:28px;height:28px;display:grid;place-items:center;flex:none;border-radius:8px;font-size:12px}.feedback{border-radius:14px;padding:18px 19px;margin-top:18px;background:var(--mint);border:1px solid #b9dec6;color:#315d45;line-height:1.85}.feedback.wrong-feedback{background:var(--pink);border-color:#efd1d8;color:var(--pink-ink)}.feedback strong{display:block;margin-bottom:6px}.question-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:24px}.quiz-aside{padding-top:45px}.cheer-box{background:linear-gradient(145deg,#f5eff9,#eef6fa);border:1px solid #e9f2ee;border-radius:18px;padding:23px;text-align:center}.cheer-star{font-size:40px;color:#9abdb5}.cheer-box b{display:block;margin:10px 0}.cheer-box p{font-size:14px;color:#346b63;line-height:1.9}.number-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px}.number-grid>div{text-align:center;background:#fff;border:1px solid #ebe5ec;border-radius:14px;padding:18px 12px}.number-grid strong{display:block;font-family:Georgia,serif;font-size:28px;color:#346b63}.number-grid span{font-size:12px;color:#346b63}.aside-note{font-size:12px;color:#346b63;line-height:1.8;padding:12px}.report-container{max-width:910px;margin:50px auto}.report-heading{text-align:center;margin-bottom:28px}.report-heading .eyebrow{margin:6px 0 12px}.report-heading h1{font-size:33px}.report-heading>p:last-child{color:#7d8296}.report-icon{font-size:50px;color:#9abdb5}.report-card{background:#fff;border:1px solid #eee8ee;border-radius:23px;padding:35px 42px}.score-panel{display:flex;align-items:center;gap:35px}.score-ring{width:145px;height:145px;flex:none;border-radius:50%;background:conic-gradient(#9abdb5 var(--score),#eee9f1 0);display:grid;place-items:center}.score-inner{height:119px;width:119px;background:#fff;border-radius:50%;display:grid;place-content:center;text-align:center}.score-inner strong{font-family:Georgia,serif;font-size:47px}.score-inner span{font-size:13px;color:#9292a3}.score-panel h2{font-size:24px}.score-panel p{color:#6e7588;line-height:1.8}.analysis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin:25px 0}.analysis-card{border:1px solid #eae5ed;border-radius:16px;background:#fbfafc;padding:20px}.analysis-card b{display:block;margin-bottom:12px}.analysis-card p{font-size:14px;color:#6a7181;line-height:1.8;margin:0}.report-section{padding-top:23px;margin-top:22px;border-top:1px solid #eee9f0}.report-section h3{font-size:18px}.skillbars{display:grid;gap:13px}.stat-row{display:grid;grid-template-columns:155px 1fr 70px;gap:12px;align-items:center;font-size:13px}.stat-row .stat-bg{height:9px;border-radius:50px;background:#efedf1;overflow:hidden}.stat-row .stat-fill{height:100%;border-radius:50px;background:#9abdb5}.stat-row .stat-fill.low{background:#e7ae92}.stat-row .stat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-row .stat-rate{text-align:right;color:#7e8190;font-variant-numeric:tabular-nums}.report-buttons{display:flex;gap:13px;flex-wrap:wrap;margin-top:30px}.simple-wrap{max-width:1040px;margin:60px auto}.page-intro{margin:20px 15px 32px}.page-intro h1{font-size:40px;margin:0 0 13px}.page-intro p{color:#767e91;line-height:1.9}.narrower{padding:36px}.narrower>h2{margin:0 0 20px}.history-list{display:grid;gap:12px;margin-top:20px}.history-item{display:flex;gap:22px;justify-content:space-between;align-items:center;padding:17px;border:1px solid #e9e2ec;border-radius:15px;background:#fbfafb}.history-item b{font-size:18px}.history-item small{color:#346b63}.history-item .date{font-size:13px;color:#6f7386}.button-row{display:flex;flex-wrap:wrap;gap:11px;margin-top:20px}.file-btn{cursor:pointer}.unit-about{padding:14px 0;border-bottom:1px solid #f0ebf1;display:flex;gap:10px;justify-content:space-between;align-items:center}.unit-about span{font-weight:600}.unit-about small{color:#7e7e92}.toast{position:fixed;bottom:23px;left:50%;transform:translateX(-50%);z-index:99;border-radius:10px;background:#346b63;color:white;padding:12px 22px;box-shadow:0 14px 34px #4444;font-size:14px;display:none;max-width:90vw;text-align:center}
@media(max-width:1050px){.subjects{grid-template-columns:repeat(4,1fr)}.hero{padding:44px 20px}.hero-art{width:310px;transform:scale(.83);transform-origin:center}.quiz-layout{grid-template-columns:1fr}.quiz-aside{padding:0;display:flex;align-items:stretch;gap:10px}.cheer-box{flex:2}.number-grid{flex:1;margin:0}.aside-note{display:none}}
@media(max-width:720px){.header{height:auto;padding:16px 18px;display:block}.brand b{font-size:17px}.brand small{font-size:9px}.brand-symbol{font-size:36px}.nav{justify-content:space-between;margin-top:15px;gap:3px}.nav-btn{font-size:13px;padding:9px}.view{padding:0 13px 36px}.hero{padding:36px 15px;min-height:0}.hero-art{display:none}.hero h1{font-size:33px}.hero .intro{font-size:14px}.hero-foot{font-size:11px;line-height:1.8}.sheet{padding:24px 17px;border-radius:20px}.section-heading h2,.sheet h2{font-size:20px}.section-heading{gap:10px}.ordinal{font-size:15px}.section-heading p{font-size:12px}.subjects{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.subject{padding:10px 5px;min-height:80px;text-align:center}.subject-icon{font-size:21px}.subject strong{font-size:12px}.subject small{font-size:9px}.units{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.unit{padding:13px;min-height:107px}.unit b{font-size:13px}.unit small{font-size:11px}.unit-number{font-size:10px}.head-actions{width:100%;justify-content:flex-end}.mode{padding:10px 12px}.start-row{display:block}.start-row .primary{width:100%}.quiz-layout{margin-top:20px}.question-card{padding:23px 17px;min-height:420px}.question-actions .primary,.question-actions .outline{flex:1}.quiz-aside{display:block}.number-grid{margin-top:11px}.report-card{padding:22px 18px}.score-panel{display:block;text-align:center}.score-ring{margin:0 auto}.analysis-grid{grid-template-columns:1fr}.stat-row{grid-template-columns:115px 1fr 58px;font-size:12px;gap:7px}.report-buttons>*{width:100%}.simple-wrap{margin:28px 0}.narrower{padding:24px 15px}.history-item{display:block}.history-item .date{margin-top:5px}footer{display:block;padding:20px;font-size:10px;line-height:2}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(max-width:720px){footer span{display:block}}

:root{--bg:#f7f5ef;--ink:#25343a;--muted:#596f6c;--violet:#285f57;--violet-soft:#e9f2ee;--violet-line:#93b7ac;--line:#dde5df}body{background:#f7f5ef}.hero h1{letter-spacing:.035em}.hero-art{filter:none}.primary:hover{background:#234b49}.nav-btn.active,.nav-btn:hover{background:#e5eee7;color:#234b49}.subject.chosen{background:#e5eee7;color:#234b49;border-color:#8eb6b1}.scope-note{font-size:14px;line-height:1.8;color:#596f6c;margin-top:24px}.written{margin-top:24px}.written .outline{margin:12px 8px 0 0}textarea{display:block;width:100%;font:inherit;padding:14px;border:1px solid #8eb6b1;border-radius:12px;background:#fff;resize:vertical}#writtenReference{line-height:1.9;padding:16px;background:#e9f2ee;margin-top:16px;border-radius:12px}.choice:disabled{opacity:1}.unit small{line-height:1.6}button{touch-action:manipulation}@media(max-width:420px){.units{grid-template-columns:1fr}.stat-row{grid-template-columns:95px 1fr 62px}.head-actions{flex-wrap:wrap}.header{height:auto;padding:16px;flex-wrap:wrap}.nav{gap:0}.nav-btn{padding:12px}.question-actions{flex-direction:column}}

.level-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:25px 0}.level-card{padding:23px 18px;text-align:left;border:1px solid #cbd8d1;border-radius:14px;background:#fff;color:#254e49;min-height:105px}.level-card b{font-size:19px;display:block;margin-bottom:10px}.level-card span{font-size:13px;line-height:1.8;display:block}.level-card.selected{border:2px solid #285f57;background:#e9f2ee}.level-card:disabled{opacity:.65;background:#f1f0eb}.difficulty{background:#f2e6d2;color:#75512f}.stimulus-box{white-space:pre-wrap;line-height:1.95;background:#f5f4ec;padding:22px;border-left:3px solid #91b8b1;border-radius:0 12px 12px 0;margin:24px 0 12px;font-size:17px}.scope-note{color:#48655e;line-height:1.9}.wrong-item{border:1px solid #d8e1db;border-radius:12px;padding:16px;margin:12px 0;line-height:1.9}.wrong-item summary{cursor:pointer;font-weight:600}.history-open{width:100%;text-align:left;color:#25343a;background:white;border:1px solid #d8e1db;font:inherit}.history-open .date{display:block}.resume{margin-top:24px}.stat-name{white-space:normal;overflow-wrap:anywhere}.stat-row{grid-template-columns:minmax(120px,1fr) minmax(40px,1fr) 90px}.question-card{overflow-wrap:anywhere}.question-actions button{min-height:46px}.choice{font-size:16px}.unit small,.muted,.footnote,.subject small{color:#596e68}.level-card:focus-visible{outline:3px solid #b78b53;outline-offset:4px}
@media(max-width:720px){.level-grid{grid-template-columns:1fr}.level-card{min-height:auto;padding:18px}.stimulus-box{padding:16px;font-size:16px}.stat-row{grid-template-columns:105px minmax(30px,1fr) 80px;font-size:12px}.report-buttons{flex-wrap:wrap}.history-open{display:block}.unit b{font-size:15px}.units{grid-template-columns:1fr}.hero{padding-top:30px;padding-bottom:25px}.hero h1{font-size:30px}.question-card{padding:22px 16px}}

.choice{background:#f7f9f6;border-color:#dbe4dc}.choice:hover:not(:disabled),.choice.selected{background:#e9f2ed;border-color:#8db6a9}.analysis-card{background:#f5f7f1;border-color:#dce4d8}.cheer-box{background:linear-gradient(145deg,#edf3e9,#edf5f4);border-color:#d5e2d8}.bar{background:#e3eae1}.subject{background:#f3f5f1;border-color:#dce3d9}.note-main,.note-rule,.note-bottom{color:#42645b}.notebook{border-color:#d8e0d5}.choice-key{border-color:#bfcfc5;color:#285f57}.question-card,.report-card{border-color:#dde5da}
.term-controls{display:flex;gap:20px;align-items:center;flex-wrap:wrap;margin:24px 0 0;color:#285f57}.term-controls select{font:inherit;padding:10px 14px;border-radius:9px;border:1px solid #9eb8aa;background:#fff;color:#254e49}.subject{text-align:left;font:inherit}.subject-icon{display:block}.subject:disabled{opacity:.65}.subject.chosen{border:2px solid #285f57}.subject:not(:disabled):hover{background:#e8f1ea}.subunit-panel{margin:20px 0;padding:18px;background:#f5f7f1;border:1px solid #d7e2d7;border-radius:12px}.subunit-panel summary{cursor:pointer;font-weight:bold;color:#285f57}#subunitList{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:18px}.subunit-option{display:flex;gap:10px;align-items:center;line-height:1.7;padding:7px}.subunit-option input{width:18px;height:18px;flex-shrink:0;accent-color:#285f57}.level-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}#presetList{gap:10px;flex-wrap:wrap}.subject strong{font-weight:700}@media(max-width:720px){#subunitList{grid-template-columns:1fr}.term-controls{gap:12px}.subject{text-align:center}#presetList button{width:100%;font-size:13px}.level-grid{grid-template-columns:1fr}}
.stat-row .stat-name{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.7}
