@charset "UTF-8";
:root{--ink:#183b34;--text:#243d36;--muted:#718078;--green:#255d4c;--mint:#e7f0e7;--lime:#dfeea4;--paper:#f7f8f3;--line:#e1e6dd;--orange:#bb653f;--white:#fff;--red:#b74940;--radius:20px;font-family:Inter,"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--text);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button,a{ -webkit-tap-highlight-color:transparent }button{cursor:pointer}a{color:inherit}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #79a980;outline-offset:4px}button{border:0}button,input,select{border-radius:10px}input,select{border:1px solid #cdd6cb;background:#fff;padding:13px 14px;color:var(--ink);min-height:48px}label{display:grid;gap:9px;font-size:14px}p{line-height:1.85}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink)}h1{font-size:clamp(38px,4.4vw,64px);line-height:1.15;letter-spacing:-2px;margin-bottom:19px}h2{font-size:26px;letter-spacing:-.7px}h3{font-size:18px}small,.muted{color:var(--muted)}.muted{font-size:14px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:11px;font-weight:700;color:var(--green);margin-bottom:17px}.pill{display:inline-flex;align-items:center;gap:7px;border-radius:30px;background:#fff;padding:7px 12px;font-size:12px;font-weight:600;color:var(--green);border:1px solid var(--line)}.pill::before{content:"";width:6px;height:6px;background:#619067;border-radius:100%}.site-header{max-width:1240px;padding:27px 40px;display:flex;align-items:center;justify-content:space-between;margin:auto;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:700;letter-spacing:1px;text-decoration:none}.brand small{display:block;font-size:8px;letter-spacing:1.4px;font-weight:600;margin-top:6px}.brand-icon{font-family:Georgia,serif;display:grid;place-content:center;position:relative;width:43px;height:43px;background:var(--ink);border-radius:13px;color:var(--lime);font-size:42px;line-height:.8;padding-right:5px}.brand-icon span{font-family:Arial,sans-serif;position:absolute;font-size:17px;right:6px;top:7px}.header-right{display:flex;align-items:center;gap:22px;font-size:13px}.unit-label{color:var(--muted)}#account{display:flex;gap:14px;align-items:center}#account button,.text-button{background:none;color:var(--green);padding:6px;text-decoration:none;font-size:13px}.avatar{display:inline-grid;place-content:center;width:31px;height:31px;border-radius:50%;background:var(--mint);font-size:12px;font-weight:700}.user-chip{display:flex;align-items:center;gap:8px}main{max-width:1240px;padding:23px 40px 60px;margin:auto;min-height:75vh}.hero{position:relative;overflow:hidden;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;background:#eaf0e4;border-radius:26px;padding:46px 50px;min-height:323px;isolation:isolate}.hero .muted{font-size:15px;max-width:410px;margin-bottom:0}.hero h1 i{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:#477556}.hero-art{position:relative;display:grid;place-content:center;min-height:235px}.hero-art svg{width:100%;max-width:340px;overflow:visible}.hero-art::before{content:"";position:absolute;width:245px;height:245px;background:#dde7d1;border-radius:50%;z-index:-1;left:50%;top:50%;transform:translate(-50%,-50%)}.hero-tag{position:absolute;bottom:10px;right:0;transform:rotate(-6deg);font-family:Georgia,serif;background:var(--lime);padding:9px 16px;font-size:14px;box-shadow:0 3px 10px #183b3408}.section-top{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:33px 0 18px}.section-top h2{margin:0;font-size:23px}.section-top p{margin:6px 0 0}.section-number{font-family:Georgia,serif;color:#91a48a;font-size:17px;margin-right:11px}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}.category{display:flex;align-items:center;gap:14px;text-align:left;background:#fff;border:1px solid var(--line);padding:20px;border-radius:15px;color:var(--ink);position:relative;transition:transform .15s,border-color .15s}.category:hover{transform:translateY(-2px);border-color:#7c9c7d}.category.active{border-color:var(--green);background:#edf3e9;box-shadow:inset 0 0 0 1px var(--green)}.category-icon{font-family:Georgia,serif;font-size:23px;width:42px;height:42px;display:grid;place-content:center;background:#f1f4eb;border-radius:12px;color:#58815b}.category.active .category-icon{background:#dce9ce}.category strong{font-size:15px}.category small{display:block;font-size:11px;margin-top:6px}.category .check{margin-left:auto;font-size:15px;color:var(--green)}.setup{display:grid;grid-template-columns:1fr 300px;gap:22px;margin-top:24px}.panel{padding:28px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}.panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.panel-title h3{margin:0}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.mode-option{border:1px solid var(--line);border-radius:13px;display:flex;align-items:flex-start;gap:10px;padding:17px;cursor:pointer}.mode-option:has(input:checked){background:#f2f6ef;border-color:#7b9c73}.mode-option input{min-height:0;margin:3px 0 0;accent-color:var(--green)}.mode-option b{display:block;font-size:15px}.mode-option small{display:block;line-height:1.7;font-size:12px;margin-top:6px}.form-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:22px}.form-row label{display:flex;align-items:center;font-size:13px;color:var(--muted)}.form-row select{padding:10px;min-height:40px;max-width:145px}.checkbox{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted);margin-top:19px}.checkbox input{min-height:0;accent-color:var(--green)}.primary,.secondary,.danger-soft{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:45px;padding:13px 22px;font-size:14px;font-weight:600;text-decoration:none}.primary{color:#fff;background:var(--green)}.primary:hover{background:#174837}.secondary{background:#eff3e9;color:var(--green);border:1px solid var(--line)}.danger-soft{background:#fcf0ed;color:var(--red)}.start{width:100%;margin-top:23px;justify-content:space-between}.notice{font-size:12px;color:var(--muted);line-height:1.9;margin:14px 0 0}.side-note{background:#f0f2e8;border-radius:var(--radius);padding:26px}.side-note .big-number{font-family:Georgia,serif;font-size:54px;line-height:1;color:var(--ink);margin:18px 0 7px}.side-note h3{font-size:15px}.note-rule{border-top:1px solid #d8dfcf;padding-top:17px;margin-top:20px}.note-rule p{font-size:12px;color:#64725f;margin:0}.history{display:flex;flex-direction:column;gap:9px}.history-row{display:flex;gap:14px;align-items:center;padding:16px 19px;background:#fff;border:1px solid var(--line);border-radius:12px;font-size:13px}.history-row .grow{flex:1}.history-row small{display:block;font-size:11px;margin-top:5px}.status{display:inline-flex;padding:5px 9px;font-size:11px;border-radius:7px;background:#f1f3ec;color:#64735d}.status.done{background:#e4f0e6;color:#2f6d49}.status.progress{background:#fbefd8;color:#946a25}.site-footer{max-width:1240px;margin:auto;padding:23px 40px 29px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:14px;font-size:11px;color:#7b877b}.site-footer a{text-decoration:none}.footer-en{margin-left:13px;font-family:Georgia,serif;font-style:italic}.demo-banner{padding:11px 20px;background:#e3ebd1;color:#466137;text-align:center;font-size:12px}.demo-banner button{background:none;font-size:12px;color:#255537;text-decoration:underline;margin-left:15px}.demo-banner[hidden]{display:none}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:45px;align-items:center;max-width:1000px;margin:40px auto}.auth-copy h1{font-size:57px}.auth-copy p{color:var(--muted);font-size:15px}.auth-form{padding:32px 35px}.auth-form label{margin-top:17px}.auth-form .primary{width:100%;margin-top:24px}.auth-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line);padding-bottom:15px}.auth-tabs button{background:none;color:var(--muted);padding:6px 0;font-weight:600}.auth-tabs .active{color:var(--green)}.error{font-size:13px;color:var(--red);line-height:1.8}.loading,.empty{text-align:center;padding:55px 22px;color:var(--muted);font-size:14px}.practice-head{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:800px;margin:18px auto 25px}.practice-head h2{margin:8px 0 0;font-size:24px}.practice-head small{font-size:11px;letter-spacing:1px}.practice-shell{max-width:800px;margin:auto}.progress-line{display:flex;align-items:center;gap:17px;font-size:12px;color:var(--muted);margin-bottom:25px}progress{height:6px;flex:1;border:0;border-radius:10px;overflow:hidden;background:#e5eadf;accent-color:var(--green)}progress::-webkit-progress-bar{background:#e5eadf}progress::-webkit-progress-value{background:var(--green);border-radius:10px}.question-card{padding:36px 42px}.question-meta{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.question-meta span:first-child{background:var(--mint);padding:5px 10px;border-radius:6px;color:var(--green)}.prompt-area{text-align:center;padding:35px 0 27px}.prompt-area h2{font-size:26px;line-height:1.6;margin:23px 0 10px}.play-button{width:84px;height:84px;border-radius:50%;background:var(--green);color:var(--lime);font-size:35px;box-shadow:0 0 0 11px #eef3e9;margin:8px 0 19px}.audio-controls{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.audio-controls select{min-height:35px;padding:6px;font-size:11px;max-width:210px}.answer-input{font-size:20px;width:100%;padding:17px 19px;letter-spacing:.3px;border-radius:12px}.answer-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:19px}.answer-actions .primary{min-width:150px}.feedback{padding:20px;border-radius:12px;background:#edf5eb;margin-top:21px;border:1px solid #d9e7d5;line-height:1.8}.feedback.wrong{background:#fff3ef;border-color:#f0d7ce}.feedback b{display:block;font-size:16px;margin-bottom:8px}.feedback p{font-size:14px;margin:4px 0;overflow-wrap:anywhere}.feedback small{font-size:11px}.kbd{border:1px solid var(--line);border-radius:4px;font-size:10px;padding:2px 5px;color:#7a8976}.back-link{background:none;font-size:13px;color:var(--muted);padding:8px 0}.result-header{text-align:center;margin:34px 0}.score-circle{height:116px;width:116px;background:var(--mint);border:6px solid #dce8d5;border-radius:50%;display:grid;place-content:center;margin:20px auto;font-family:Georgia,serif;font-size:38px;color:var(--green)}.score-circle small{font:11px Arial,sans-serif;text-align:center;margin-top:3px}.result-actions{display:flex;gap:12px;justify-content:center;margin:22px 0}.result-item{padding:19px;background:#fff;border:1px solid var(--line);border-radius:12px;margin:10px 0}.result-item p{font-size:14px;margin:6px 0;overflow-wrap:anywhere}.wrong-text{color:var(--red)}.correct-text{color:var(--green)}.dashboard-title{display:flex;justify-content:space-between;align-items:center;margin:25px 0}.dashboard-title h1{font-size:35px;letter-spacing:-1px;margin:8px 0}.dashboard-title p{font-size:13px;color:var(--muted);margin:0}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:25px 0}.metric{background:#fff;border:1px solid var(--line);padding:22px;border-radius:15px}.metric label{font-size:12px;color:var(--muted)}.metric strong{display:block;font-family:Georgia,serif;font-size:37px;color:var(--ink);margin-top:11px}.teacher-tools{display:flex;align-items:center;gap:12px;margin:23px 0}.teacher-tools input{flex:1;min-width:0}.teacher-tools select{max-width:200px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:15px}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap;font-size:13px}th{font-size:11px;color:#7a8777;font-weight:500;background:#f0f3e9}th,td{padding:17px 19px;border-bottom:1px solid var(--line)}tbody tr:last-child td{border-bottom:0}td small{display:block;font-size:10px;margin-top:5px}td button{color:var(--green);background:none;font-size:12px;padding:7px 0}dialog{border:1px solid var(--line);border-radius:20px;width:min(800px,93vw);max-height:88vh;padding:30px;background:var(--paper);color:var(--text)}dialog::backdrop{background:#142a2466;backdrop-filter:blur(3px)}.dialog-head{display:flex;justify-content:space-between;gap:15px;align-items:center}.dialog-head h2{font-size:23px;margin:0}.dialog-head button{background:none;font-size:25px;color:var(--muted)}#toast{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);padding:14px 23px;background:var(--ink);color:white;border-radius:12px;font-size:13px;max-width:90vw;z-index:10;box-shadow:0 6px 25px #0002}.hint{font-size:13px;color:var(--orange);margin:15px 0}.row-split{display:flex;justify-content:space-between;align-items:center;gap:12px}.settings-note{border-left:3px solid #afc793;padding-left:13px}.error-box{max-width:650px;margin:55px auto}.no-margin{margin:0}.review-head{margin-top:40px}.tag-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tag-row span{font-size:10px;border-radius:5px;background:#edf0e6;padding:5px 9px;color:var(--muted)}
@media(max-width:900px){.site-header,main,.site-footer{padding-left:25px;padding-right:25px}.hero{padding:35px;grid-template-columns:1.1fr .9fr}.hero-art svg{max-width:260px}.hero-art::before{width:200px;height:200px}.hero-tag{right:0;font-size:12px}.category{padding:16px;gap:10px}.category-icon{width:32px;height:35px;font-size:19px}.setup{grid-template-columns:1fr 240px;gap:16px}.panel{padding:23px}.auth-layout{gap:25px}.auth-copy h1{font-size:43px}.question-card{padding:30px}.unit-label{display:none}}
@media(max-width:660px){.site-header{padding:22px 19px}.brand{font-size:18px}.brand small{font-size:7px}.brand-icon{width:37px;height:37px;font-size:36px}.header-right{gap:9px}#account{gap:6px}.user-chip{font-size:12px}#account button{font-size:11px}main{padding:9px 18px 35px}.hero{display:block;padding:30px 25px;min-height:0}.hero h1{font-size:43px}.hero-art{min-height:180px;margin-top:8px}.hero-art svg{max-width:245px;height:180px}.hero-art::before{width:165px;height:165px}.hero-tag{right:3px;bottom:8px}.hero .muted{font-size:13px}.category-grid{grid-template-columns:1fr 1fr;gap:10px}.category{padding:15px}.category strong{font-size:14px}.category small{font-size:10px}.setup{grid-template-columns:1fr}.side-note{display:none}.section-top{margin-top:27px}.section-top h2{font-size:20px}.section-top .muted{font-size:11px}.panel{padding:23px 20px}.mode-option{padding:13px;gap:8px}.mode-option b{font-size:13px}.mode-option small{font-size:11px}.form-row{gap:9px;flex-wrap:wrap}.form-row label{font-size:12px}.form-row select{max-width:110px}.notice{font-size:11px}.history-row{padding:14px 12px;gap:10px;font-size:12px}.history-row .status{display:none}.site-footer{padding:22px 20px;flex-direction:column;line-height:1.7;gap:10px}.footer-en{display:none}.auth-layout{display:block;margin:22px 0}.auth-copy h1{font-size:41px}.auth-copy p{font-size:13px}.auth-form{margin-top:28px;padding:26px}.demo-banner{font-size:10px;padding:9px}.demo-banner button{font-size:10px;margin-left:7px}.question-card{padding:25px 21px}.practice-head{margin-top:14px}.practice-head h2{font-size:21px}.prompt-area h2{font-size:21px}.answer-input{font-size:17px}.answer-actions .primary{min-width:126px}.feedback p{font-size:13px}.dashboard-title{display:block}.dashboard-title h1{font-size:31px}.dashboard-title .primary{margin-top:20px}.metric-grid{grid-template-columns:1fr 1fr;gap:10px}.metric{padding:17px}.metric strong{font-size:32px}.teacher-tools{gap:8px;flex-wrap:wrap}.teacher-tools select{max-width:135px;font-size:12px}.teacher-tools input{font-size:12px}.teacher-tools button{font-size:12px}.dashboard-title p{line-height:1.8}th,td{padding:15px}.row-split{align-items:flex-start}.mode-options{gap:9px}}
.parts-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.part-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:20px 21px;background:#fff;border:1px solid var(--line);border-radius:15px;color:var(--ink);text-align:left;transition:border-color .15s,transform .15s}.part-card:hover:not(:disabled){border-color:#7c9c7d;transform:translateY(-2px)}.part-card.active{background:#e9f0e2;border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.part-number{font-family:Georgia,serif;font-size:24px;line-height:1;color:#759168}.part-card strong{font-size:16px;margin-top:3px}.part-card small{font-size:11px;line-height:1.7}.part-state{font-size:10px;margin-top:5px;padding:4px 8px;background:#f0f3e9;border-radius:5px;color:#6c7b62}.part-card.active .part-state{background:var(--green);color:white}.part-card:disabled{cursor:default;opacity:.75;background:#f6f7f1;border-style:dashed}.part-card.pending .part-number{color:#a8b29e}.teacher-tools #part-filter{max-width:170px}.teacher-tools #class-filter{max-width:150px}@media(max-width:660px){.parts-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.part-card{padding:17px}.part-card strong{font-size:15px}.part-number{font-size:22px}.part-card small{font-size:10px}.teacher-tools #part-filter,.teacher-tools #class-filter{max-width:none;flex:1;min-width:115px}.teacher-tools #student-search{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.account-management{margin:24px 0 30px;padding:28px}.account-section-top{margin-top:0;align-items:flex-start}.account-section-top h2{font-size:23px;margin-bottom:8px}.account-section-top p{max-width:760px;margin-bottom:0}.account-pending-count{display:inline-block;font-size:12px;letter-spacing:0;vertical-align:middle;background:var(--lime);padding:6px 10px;border-radius:20px;margin-left:10px}.account-tools{display:flex;gap:12px;margin:22px 0 14px}.account-tools input{flex:1;min-width:0}.account-tools select{min-width:130px}.account-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.account-actions button{padding:9px 12px;font-size:12px;min-height:39px}.account-allow{background:var(--green);color:#fff}.account-deny{background:#f9eee8;color:#914c36}.account-status-pending{background:#f6efcb;color:#7c651a}.account-status-active{background:#e5efdf;color:#3f6b32}.account-status-rejected,.account-status-disabled{background:#f7e7e2;color:#984b38}.account-table{min-width:740px}.application-result{max-width:690px;margin:55px auto;text-align:center;padding:55px 30px}.application-result h1{font-size:43px;margin-top:25px}.application-result .primary{margin-top:15px}@media(max-width:660px){.account-management{padding:20px 15px}.account-section-top{display:block}.account-section-top h2{font-size:20px;line-height:1.7}.account-section-top .secondary{margin-top:15px}.account-tools{gap:8px}.account-tools input{font-size:12px}.account-tools select{min-width:100px;font-size:12px}.application-result{margin:25px auto;padding:35px 22px}.application-result h1{font-size:34px}}
