:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#243445;background:#f4f6f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}h1{font-size:28px;letter-spacing:-.6px;margin:6px 0}h2{font-size:19px;margin:0 0 14px}h3{font-size:16px}p{line-height:1.7}small{display:block;color:#637284;line-height:1.7}button,input,select,textarea{font:inherit}button,.button{border:1px solid #d2dce1;background:#fff;padding:10px 14px;border-radius:8px;cursor:pointer;display:inline-block;color:inherit;text-decoration:none;line-height:1.5}button:hover,.button:hover{border-color:#237872;background:#f0f8f6}button:disabled{opacity:.5;cursor:wait}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #75b7ab;outline-offset:2px}.primary{background:#175b53;color:#fff;border-color:#175b53}.primary:hover{background:#12483f;color:#fff}.link{border:0;color:#175b53}.shell{display:grid;grid-template-columns:218px 1fr;min-height:100vh}aside{background:#123d39;color:#fff;padding:30px 22px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{font-weight:800;font-size:39px;letter-spacing:-4px}.brand span{color:#79c0ad}aside p{font-size:14px;color:#c4d9d3}nav{display:grid;gap:9px;margin-top:27px}nav button{background:transparent;color:#e0eeeb;border-color:transparent;text-align:left}nav button.active{background:#2e5953;border-color:#547a73}nav button:hover{color:#163c34}.profile{margin-top:auto;padding-top:30px}.profile small{color:#bcd7cf;margin:6px 0 15px}.profile button{background:transparent;color:#fff;border-color:#557d74}main{padding:32px 38px;max-width:1530px;width:100%}header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.eyebrow{font-size:11px;font-weight:700;color:#62817b;letter-spacing:2px}.badge{font-size:12px;font-weight:600;background:#e6efeb;color:#24574d;padding:5px 9px;border-radius:20px;display:inline-block;white-space:nowrap}.warning{background:#fff0d4;color:#825b0f}.scope-note{font-size:13px;color:#596d79;margin-bottom:26px;border-left:3px solid #a2b8b2;padding-left:14px}.card{background:#fff;border:1px solid #dee5e8;border-radius:12px;padding:24px;margin-bottom:22px;box-shadow:0 3px 10px #223a4210}.catalog-grid{display:grid;grid-template-columns:265px minmax(0,1fr);gap:24px;align-items:start}.booklist{padding:20px}.book{display:block;text-align:left;width:100%;margin:10px 0;padding:13px}.book strong{font-size:14px;line-height:1.6}.book.selected{border-color:#2b746a;background:#edf5f1}.metrics{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:12px;margin:20px 0}.metrics>div{background:#f6f8f8;border-radius:8px;padding:14px}.metrics strong{font-size:19px;display:block;margin-top:8px}.note{font-size:12px;color:#6e6e5b;background:#faf9f2;border-radius:6px;padding:10px 12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.row h2{margin:0}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}label{display:block;font-size:13px;font-weight:600;margin:14px 0 8px}input,select,textarea{display:block;width:100%;padding:10px;border:1px solid #cbd8de;border-radius:7px;margin-top:7px;background:#fff;color:#243445;min-width:0}textarea{resize:vertical}form button{margin-top:15px}fieldset{border:1px solid #dde5e8;border-radius:7px;margin:20px 0;max-height:260px;overflow:auto;padding:13px}legend{font-size:12px}.check{display:flex;gap:9px;align-items:baseline;font-weight:400;margin:8px 0}.check input{width:auto;margin:0}.tabs{display:flex;gap:4px;border-bottom:1px solid #dce6e5;margin:24px 0 15px;flex-wrap:wrap}.tabs button{border:0;border-radius:0;font-size:13px;color:#687b86}.tabs .active{color:#175b53;border-bottom:3px solid #175b53}.unit-select{min-width:240px;max-width:100%}.skills{font-size:13px;color:#567970}.corpus-item{border-bottom:1px solid #e3e9ed;padding:18px 0}.corpus-item:last-child{border:0}.english{font-size:16px;line-height:1.8;margin:12px 0}.pattern{display:inline-block;font-size:12px;color:#6e5b37;background:#f7f1e6;border:1px solid #e7dcc5;padding:5px 9px;border-radius:5px}code{font-size:12px;color:#607984}.item-list{max-height:640px;overflow:auto;padding-right:7px}.empty{padding:65px 32px}.empty p{color:#7a898f}details{margin-top:22px}summary{cursor:pointer;font-size:13px;color:#286f65;font-weight:600;line-height:1.7}.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.inline-form label{flex:1}.inline-form button{margin-bottom:8px}.narrow{max-width:780px}.alert{padding:13px;background:#fff3de;border:1px solid #ead5ac;border-radius:8px;color:#72551a;margin:15px 0;font-size:14px;line-height:1.6}.preview{margin-top:24px;border-top:2px solid #e1e9e6;padding-top:18px}pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;line-height:1.7}.login{min-height:100vh;display:grid;place-items:center;background:#eaf0ed;padding:40px 20px}.login section{background:#fff;max-width:470px;width:100%;border-radius:18px;padding:38px;box-shadow:0 15px 70px #16402f18}.login .brand{color:#17473d;margin-bottom:18px}.login p{color:#78887e;font-size:13px}.login form>.primary{width:100%;margin:23px 0 10px}.loading{padding:50px}audio{display:block;width:100%;margin:12px 0}a{color:#246b60}@media(max-width:1080px){.catalog-grid{grid-template-columns:1fr}.booklist{display:block}.metrics{grid-template-columns:1fr 1fr}.shell{grid-template-columns:176px 1fr}main{padding:24px}}@media(max-width:700px){.shell{display:block}aside{position:static;height:auto;padding:16px 20px;display:block}.brand{font-size:30px}aside>p,.profile{display:none}nav{display:flex;gap:4px;flex-wrap:wrap;margin-top:10px}nav button{padding:9px;font-size:12px}main{padding:20px 14px}.card{padding:18px}.metrics{grid-template-columns:1fr}.row{align-items:stretch}.catalog-grid{gap:0}h1{font-size:24px}.unit-select{width:100%;min-width:0}}.teaching,.student-shell{overflow-wrap:anywhere}.teaching fieldset,.student-shell fieldset{max-height:none;overflow:visible}.teaching .card fieldset fieldset{margin:12px 0}.calibration{background:#fff6df;border-left:4px solid #b58228;padding:12px 16px;color:#6c511a;line-height:1.65;font-size:13px}.class-code{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:16px 0}.class-code strong{font:700 27px ui-monospace,monospace;letter-spacing:3px;color:#175b53}.task-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin:18px 0}.task-card{border:1px solid #d5e2dc;background:#fff;padding:18px;border-radius:10px;text-align:left}.task-card.selected{border:2px solid #237569;background:#eef7f2}.task-card h3{margin-top:0}.task-card p{font-size:13px}.two-columns,.preference-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.preference-grid .note{grid-column:1/-1}.preference-grid label small{font-size:11px;font-weight:400}.preference-grid input[type=range]{padding:8px 0}.target-options{max-height:320px;overflow:auto;border-top:1px solid #dbe5df;padding:12px;margin-top:12px}.rubric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.teaching-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.teaching-stats>div{padding:14px;border:1px solid #e0e8e3;border-radius:9px;background:#f5f8f6}.teaching-stats strong{display:block;font-size:24px}.teaching-stats span{font-size:12px;color:#566c63}.roster-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid #dfe8e1}.roster-row>label{flex:1;min-width:140px}.roster-row button{margin:0 0 8px}.review-row{padding:18px 0;border-bottom:1px solid #dce7e0;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.review-row>small{flex:1}.review-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;margin-top:20px}.review-columns>div{min-width:0}.teaching table.metrics{display:table;width:100%;border-collapse:collapse;font-size:12px}.teaching table.metrics th,.teaching table.metrics td{border-bottom:1px solid #dfe7e2;padding:10px 6px;text-align:left}.teaching table.metrics th{background:#edf3ef}.transcript p{border-bottom:1px solid #e4ebe6;padding:9px 0;font-size:14px}.timestamp{padding:5px 8px!important;font-size:11px!important;font-variant-numeric:tabular-nums}.dimension-editor{border-bottom:1px solid #e1e8e3;padding:10px 0}.dimension-editor>label:first-child{display:flex;align-items:center;justify-content:space-between;gap:16px}.dimension-editor input{max-width:112px}.feedback-editor{background:#f5f8f6;border:1px solid #e0e8e2;border-radius:9px;padding:15px;margin:14px 0}.coverage-row{padding:13px 0;border-bottom:1px solid #e1e8e3}.coverage-row p{margin:6px 0}.coverage-row button{padding:6px 9px;font-size:12px;margin:7px 0}.sticky-actions{position:sticky;bottom:0;background:#fffef8;padding:14px 0;border-top:1px solid #e1e8e3;margin-top:18px;z-index:2}.success{background:#e2f3e9;color:#285e41;padding:15px;border-radius:8px}.batch-toolbar{background:#f1f7f2;border:1px solid #d7e5db;border-radius:8px;padding:16px;margin:18px 0}.batch-toolbar pre{font-size:12px;max-height:190px;overflow:auto}.student-shell{max-width:1040px;margin:0 auto;padding:24px}.student-header{gap:18px}.student-header .brand{text-decoration:none;letter-spacing:-3px}.student-header>div{flex:1}.student-header h1{font-size:25px}.recovery code{display:block;padding:14px;background:#f2f5ef;font-size:16px;word-break:break-all}.record-big{display:block;width:100%;min-height:80px;border-radius:16px;background:#185d52;color:#fff;border:0;font-size:23px;font-weight:700;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.record-big:hover{background:#124d43;color:#fff}.record-big.recording{background:#9f343a}.record-big:disabled{opacity:.55}.record-timer{text-align:center;font-variant-numeric:tabular-nums;color:#526d62;font-size:13px}.file-button{padding:12px;border:1px dashed #93b4a4;border-radius:9px}.record-preview{margin-top:18px;border-top:1px solid #d6e2da;padding-top:14px}.student-submission{border-top:1px solid #d6e3da;padding:22px 0}.published-result{background:#f1f8f2;padding:18px;border-radius:10px;margin-top:16px}.feedback-result{border-top:1px solid #d9e6dc;padding:10px 0}.student-shell .card{margin-bottom:18px}.student-shell .english{font-size:20px}.student-shell details fieldset{padding:0;border:0}.student-shell .task-card strong{font-size:17px}.student-shell .task-card .badge{margin:8px 0}.student-shell .record-timer{min-height:42px}button:disabled{cursor:not-allowed}@media(max-width:1000px){.review-columns{grid-template-columns:1fr}.teaching-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.rubric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.student-shell{padding:14px}.student-header{align-items:center;gap:12px}.student-header h1{font-size:22px}.student-shell .card{padding:18px}.two-columns,.preference-grid{grid-template-columns:1fr}.preference-grid{gap:0}.task-cards{grid-template-columns:1fr}.class-code strong{font-size:25px;letter-spacing:2px}.teaching-stats,.rubric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.record-big{min-height:88px;font-size:24px}.review-row>small{flex-basis:100%}.student-shell button:not(.record-big):not(.timestamp){min-height:44px}.roster-row>label{flex-basis:100%}.review-columns{gap:20px}.student-shell .actions{gap:8px}.sticky-actions button{flex:1}.student-shell .recovery code{font-size:13px}}
