@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Serif+SC:wght@600;700&display=swap";:root{--ink:#21362f;--muted:#6d7873;--green:#315c4b;--green-2:#426e5d;--cream:#f5f2ea;--paper:#fffefa;--line:#e5e4dc;--orange:#cd7750;--amber:#d9a441}*{box-sizing:border-box}html{background:var(--cream);max-width:100%;overflow-x:hidden}body{color:var(--ink);background:var(--cream);margin:0;font-family:Noto Sans SC,system-ui,sans-serif;font-size:14px;overflow-x:hidden}button,input,select,textarea{font:inherit}button{color:inherit}.app-shell{min-height:100vh}.auth-page{background:radial-gradient(circle at 20% 10%,#fff9e7 0,transparent 32%),radial-gradient(circle at 90% 85%,#e2ece6 0,transparent 34%),var(--cream);place-items:center;min-height:100vh;padding:28px 16px;display:grid}.auth-card{border:1px solid var(--line);background:#fffefaf5;border-radius:20px;width:min(440px,100%);padding:32px;box-shadow:0 24px 70px #20362e1f}.auth-card>.brand{margin-bottom:30px}.auth-intro{margin-bottom:24px}.auth-icon{width:46px;height:46px;color:var(--green);background:#e6efe9;border-radius:14px;place-items:center;margin-bottom:16px;display:grid}.auth-intro h1{margin:5px 0 8px;font:700 28px/1.3 Noto Serif SC,serif}.auth-intro>p:last-child{color:var(--muted);margin:0;font-size:12px;line-height:1.75}.auth-card form{gap:14px;display:grid}.auth-card form label{color:#56635e;gap:7px;font-size:11px;font-weight:600;display:grid}.auth-card form input{width:100%;color:var(--ink);background:#fff;border:1px solid #d9dbd4;border-radius:9px;outline:0;padding:12px 13px;font-size:14px}.auth-card form input:focus{border-color:#709080;box-shadow:0 0 0 3px #315c4b17}.auth-error{color:#9b4f39;background:#f8e8e2;border-radius:8px;margin:0;padding:10px 12px;font-size:11px;line-height:1.55}.auth-safe{border-top:1px solid var(--line);color:var(--muted);align-items:flex-start;gap:9px;margin-top:20px;padding-top:17px;font-size:10px;line-height:1.65;display:flex}.auth-safe svg{color:var(--green);flex:none}.auth-loading{text-align:center;color:var(--muted)}.auth-loading>.brand{justify-content:center}.topbar{z-index:30;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffefaed;justify-content:flex-end;align-items:center;gap:26px;height:72px;padding:0 34px;display:flex;position:fixed;top:0;left:250px;right:0}.topbar>.brand{display:none}.sidebar{z-index:40;color:#fff;background:#243f35;flex-direction:column;width:250px;padding:26px 18px 20px;display:flex;position:fixed;inset:0 auto 0 0}.brand{align-items:center;gap:11px;display:flex}.brand-mark{color:#294539;background:#e4b95f;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.brand>span:last-child{flex-direction:column;line-height:1.25;display:flex}.brand strong{letter-spacing:.04em;font-family:Noto Serif SC,serif;font-size:17px}.brand small{letter-spacing:.18em;opacity:.67;margin-top:3px;font-size:10px}.class-chip{background:#ffffff12;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:11px;margin:32px 0 24px;padding:14px;display:flex}.class-chip span{flex-direction:column;display:flex}.class-chip small{opacity:.6;font-size:10px}.class-chip strong{margin-top:2px;font-size:13px}nav{gap:6px;display:grid}nav button{color:#ffffffba;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;align-items:center;gap:12px;width:100%;padding:12px 13px;display:flex}nav button:hover,nav button.active{color:#fff;background:#ffffff1f}nav button.active:before{content:"";background:#e4b95f;border-radius:3px;width:3px;height:24px;position:absolute;left:0}nav button b{color:#fff;background:#d57e59;border-radius:12px;place-items:center;width:24px;height:21px;margin-left:auto;font-size:11px;display:grid}.side-foot{border-top:1px solid #ffffff1f;margin-top:auto;padding-top:20px}.side-foot>div,.side-foot button{color:#ffffffa3;align-items:center;gap:9px;width:100%;padding:9px 10px;font-size:12px;display:flex}.side-foot button{cursor:pointer;background:0 0;border:0}.content{max-width:1700px;min-height:100vh;margin-left:250px;padding:112px 38px 35px}.menu-btn,.close-menu,.scrim{display:none}.demo-switch{background:#eceae2;border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex}.demo-switch span{color:var(--muted);padding:0 7px;font-size:11px}.demo-switch button{cursor:pointer;background:0 0;border:0;border-radius:7px;padding:6px 10px;font-size:12px}.demo-switch button.active{background:var(--paper);color:var(--green);font-weight:700;box-shadow:0 2px 8px #1e2d2614}.profile{border-left:1px solid var(--line);align-items:center;gap:10px;padding-left:20px;display:flex}.profile>div{flex-direction:column;display:flex}.profile strong{font-size:13px}.profile small{color:var(--muted);font-size:10px}.avatar{width:36px;height:36px;color:var(--green);background:#dce8e1;border-radius:50%;flex:none;place-items:center;font-size:11px;font-weight:700;display:grid}.avatar.large{width:46px;height:46px}.avatar.xlarge{border:5px solid #ffffff8c;width:76px;height:76px;font-size:16px}.hero-row{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:25px;display:flex}.hero-row h1,.student-hero h1{letter-spacing:.02em;margin:3px 0 7px;font-family:Noto Serif SC,serif;font-size:30px}.hero-row>div>p:last-child,.student-hero p{color:var(--muted);margin:0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:#8a7660;margin:0;font-size:11px;font-weight:700}.primary,.secondary,.ghost{cursor:pointer;border-radius:9px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:inline-flex}.primary{border:1px solid var(--green);background:var(--green);color:#fff;box-shadow:0 5px 15px #315c4b21}.primary:hover{background:var(--green-2)}.primary:disabled{opacity:.42;cursor:not-allowed}.secondary{border:1px solid var(--line);background:#f5f3ec}.ghost{border:1px solid var(--line);background:0 0;font-size:12px}.full{width:100%}.auth-logout{margin-top:10px}.metrics{grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:22px;display:grid}.metric-card,.panel{border:1px solid var(--line);background:var(--paper);border-radius:14px;box-shadow:0 8px 24px #25372e09}.metric-card{padding:18px 20px}.metric-head{color:var(--muted);justify-content:space-between;align-items:center;font-size:12px;display:flex}.metric-head i{border-radius:50%;width:9px;height:9px}.metric-card>strong{margin:7px 0 2px;font:700 28px/1.2 Noto Serif SC,serif;display:block}.metric-card>small{color:var(--muted);font-size:11px}.dashboard-grid{grid-template-columns:minmax(0,1.55fr) minmax(290px,.65fr);gap:18px;display:grid}.panel{padding:21px}.panel-head{justify-content:space-between;align-items:center;gap:18px;margin-bottom:16px;display:flex}.panel h2,.panel h3{margin:0;font-family:Noto Serif SC,serif}.panel h2{font-size:18px}.panel-head p{color:var(--muted);margin:4px 0 0;font-size:11px}.text-btn{color:var(--green);cursor:pointer;background:0 0;border:0;align-items:center;gap:3px;padding:5px;font-size:12px;font-weight:600;display:inline-flex}.queue-row{cursor:pointer;text-align:left;background:0 0;border:0;border-top:1px solid #efeee8;align-items:center;gap:12px;width:100%;padding:13px 2px;display:flex}.queue-row:hover{transform:translate(2px)}.queue-main{flex-direction:column;flex:1;min-width:150px;display:flex}.queue-main strong,.review-list strong{font-size:13px}.queue-main em,.review-list em{color:#9aa19e;margin-left:7px;font-size:10px;font-style:normal;font-weight:500}.queue-main small,.review-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.score{color:#8c918e;width:64px;font-size:10px}.score b{color:var(--ink);font:700 20px/1 Noto Serif SC,serif}.score small{margin-top:3px;display:block}.pill{white-space:nowrap;border-radius:15px;align-items:center;gap:6px;width:max-content;padding:5px 8px;font-size:10px;display:inline-flex}.pill>span{border-radius:50%;width:5px;height:5px}.pill.green{color:#2f6b50;background:#e5f0e9}.pill.green>span{background:#4b8769}.pill.amber{color:#8a6421;background:#f5ead2}.pill.amber>span{background:#c58c2e}.pill.gray{color:#6d7471;background:#eee}.pill.gray>span{background:#969b99}.progress-panel{padding-bottom:17px}.progress-item{margin:19px 0}.progress-item>div:first-child{justify-content:space-between;font-size:12px;display:flex}.progress-item b{font-size:11px}.bar{background:#ecece6;border-radius:4px;height:7px;margin-top:8px;overflow:hidden}.bar i{background:var(--green);border-radius:4px;height:100%;display:block}.insight,.notice,.privacy{color:#4e685e;background:#edf2ee;border-radius:10px;gap:10px;padding:13px;font-size:11px;line-height:1.65;display:flex}.insight p,.notice p,.privacy p{margin:0}.insight strong,.notice strong,.privacy strong{color:var(--green);display:block}.recent-panel{margin-top:18px}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:650px}th{color:#87908c;letter-spacing:.06em;text-align:left;background:#f7f6f1;padding:9px 12px;font-size:10px}td{color:#626c67;border-bottom:1px solid #eeede7;padding:13px 12px;font-size:12px}td strong,td b{color:var(--ink)}footer{color:#9b9d97;text-align:center;margin-top:30px;font-size:10px}.search{border:1px solid var(--line);background:var(--paper);border-radius:9px;align-items:center;gap:8px;width:270px;padding:9px 12px;display:flex}.search input{background:0 0;border:0;outline:0;width:100%}.directory-actions{align-items:center;gap:9px;display:flex}.directory-actions>button{white-space:nowrap;align-items:center;gap:6px;display:flex}.roster-import-panel{margin-bottom:18px;padding:20px}.roster-import-panel>div:first-child>span{color:#9a7b50;font-size:9px;font-weight:800}.roster-import-panel h2{margin:4px 0;font-size:18px}.roster-import-panel>div:first-child>p{color:var(--muted);margin:0;font-size:10px}.roster-import-panel textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:150px;color:var(--ink);background:#fff;border-radius:9px;margin-top:13px;padding:12px;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.roster-import-message{color:#2c654d;background:#eaf2ed;border-radius:7px;margin:8px 0 0;padding:8px 10px;font-size:9px}.roster-import-message.error{color:#9d4136;background:#fde9e5}.roster-import-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.student-panel{padding:18px}.student-panel.class-group{margin-bottom:18px}.class-group-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:15px;padding:0 2px 12px;display:flex}.class-group-head span{color:#9a7b50;letter-spacing:.08em;font-size:9px;font-weight:800}.class-group-head h2{margin:3px 0 0;font:700 19px Noto Serif SC,serif}.class-group-head>b{color:var(--green);background:#e7f0ea;border-radius:16px;padding:6px 10px;font-size:10px}.student-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.student-card{background:#fff;border:1px solid #e7e6de;border-radius:11px;padding:16px}.student-top{justify-content:space-between;align-items:flex-start;display:flex}.student-card h3{margin:10px 0 2px;font:700 16px Noto Serif SC,serif}.student-card>p{color:var(--muted);margin:0;font-size:10px}.student-stats{color:var(--muted);border-block:1px solid #efeee9;gap:18px;margin:15px 0;padding:11px 0;font-size:10px;display:flex}.student-stats b{color:var(--ink);font-size:13px}.student-card>button{width:100%;color:var(--green);cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:0;font-size:11px;display:flex}.import-layout{grid-template-columns:1fr 1fr;gap:18px;display:grid}.upload-panel{padding:25px;position:relative}.upload-panel h2{margin:0 0 18px 42px}.step{background:var(--green);color:#fff;border-radius:50%;place-items:center;width:27px;height:27px;font-weight:700;display:grid;position:absolute;top:21px;left:23px}.upload-panel>label:not(.drop-zone){color:var(--muted);flex-direction:column;gap:7px;font-size:11px;display:flex}select{border:1px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:11px}.drop-zone{min-height:180px;color:var(--green);cursor:pointer;background:#f4f7f3;border:1.5px dashed #9db5a9;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:7px;margin:18px 0 12px;display:flex}.drop-zone strong{margin-top:4px}.drop-zone span{color:var(--muted);font-size:10px}.drop-zone input{opacity:0;width:1px;height:1px}.format-row{color:var(--muted);justify-content:center;gap:18px;margin-bottom:16px;font-size:10px;display:flex}.format-row span{align-items:center;gap:5px;display:flex}.muted{color:var(--muted);line-height:1.75}.rule{border:1px solid var(--line);color:var(--green);background:#faf9f5;border-radius:8px;justify-content:space-between;align-items:center;margin:12px 0;padding:11px 13px;display:flex}.notice{margin:18px 0}.result-panel{margin-top:18px}.result-count{color:var(--muted);font-size:11px}.result-count b{color:#3e775e;font-size:19px}.result-count em{color:#b06145;margin-left:12px;font-size:19px;font-style:normal;font-weight:700}.result-actions{justify-content:space-between;align-items:center;margin-top:15px;display:flex}.result-actions p{color:#9b6a2c;align-items:center;gap:6px;font-size:11px;display:flex}.rubric{border:1px solid var(--line);background:var(--paper);color:var(--muted);border-radius:20px;padding:9px 13px;font-size:11px}.rubric-steps{grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px;display:grid}.rubric-step{min-height:150px;padding:20px;position:relative;overflow:hidden}.rubric-step>span{color:#e9e6dc;font:700 45px Georgia,serif;position:absolute;top:5px;right:13px}.rubric-step h2{margin:16px 0 9px;font-size:16px;position:relative}.rubric-step p{color:var(--muted);margin:0;font-size:11px;line-height:1.7;position:relative}.rubric-grid,.rubric-bottom{grid-template-columns:1fr 1fr;align-items:start;gap:18px;display:grid}.rubric-bottom{margin-top:18px}.band-row{border-top:1px solid #efeee8;grid-template-columns:34px 48px 1fr;align-items:center;gap:10px;min-height:50px;display:grid}.band-row>b{width:28px;height:28px;color:var(--green);background:#e5eee8;border-radius:8px;place-items:center;display:grid}.band-row>strong{font:700 13px Georgia,serif}.band-row>p{color:var(--muted);margin:0;font-size:11px;line-height:1.55}.hard-rules>h2,.pocket-rules>h2{margin-bottom:15px}.hard-rules>div{border-top:1px solid #efeee8;gap:11px;padding:14px 0;display:flex}.hard-rules>div>span{color:#aa7828;background:#f0eadc;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;display:grid}.hard-rules p{color:var(--muted);margin:0;font-size:11px;line-height:1.65}.hard-rules p strong{color:var(--ink);display:block}.pocket-row{border-top:1px solid #efeee8;align-items:center;gap:12px;padding:11px 0;display:flex}.pocket-row>b{width:45px;color:var(--green);text-align:center;background:#e9f0eb;border-radius:6px;padding:5px;font-size:11px}.pocket-row>span{flex-direction:column;display:flex}.pocket-row strong{font-size:11px}.pocket-row small{color:var(--muted);margin-top:3px;font:italic 11px Georgia,serif}.pocket-note{color:#806b47;background:#faf3e5;border-radius:8px;margin:13px 0 0;padding:11px;font-size:10px;line-height:1.6}.review-workspace{grid-template-columns:230px minmax(360px,1fr) 305px;align-items:start;gap:14px;display:grid}.essay-column{gap:14px;min-width:0;display:grid}.review-list{padding:12px}.review-list h3{padding:8px 8px 12px;font-size:15px}.review-list h3 span{color:var(--orange);margin-left:4px}.review-list>button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:8px;width:100%;padding:10px 8px;display:flex}.review-list>button.active{background:#e9f0eb}.review-list>button>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.review-list>button>b{font:700 17px Noto Serif SC,serif}.essay{padding:30px 38px}.essay-head{justify-content:space-between;gap:20px;margin-bottom:24px;display:flex}.essay-head span{color:var(--muted);font-size:11px}.essay h2{margin-top:5px;font-size:21px}.essay>p{color:#323936;font-family:Georgia,serif;font-size:16px;line-height:1.95}.inline-note{border-left:3px solid var(--amber);color:#756446;background:#fbf5e8;align-items:flex-start;gap:7px;margin-top:22px;padding:13px;font-size:11px;line-height:1.65;display:flex}.inline-note span{white-space:nowrap;color:#9a7128;font-weight:700}.score-editor{padding:21px}.score-total{border-bottom:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;padding-bottom:16px;display:grid}.score-total>span{font-weight:600}.score-total strong{grid-area:1/2/3;font:700 31px Noto Serif SC,serif}.score-total strong small{color:var(--muted);font-size:12px}.score-total em{color:var(--muted);font-size:10px;font-style:normal}.draft-state{border-radius:8px;justify-content:space-between;align-items:center;margin:12px 0 3px;padding:8px 10px;font-size:10px;display:flex}.draft-state.editing{color:#8c5d26;background:#f7ead8}.draft-state.saved{color:#556779;background:#eef1f5}.draft-state.confirmed{color:#386b52;background:#e7f1ea}.draft-state span{font-weight:700}.draft-state small{opacity:.8;font-size:9px}.band-summary{grid-template-columns:repeat(3,1fr);gap:6px;margin:13px 0 2px;display:grid}.band-summary span{color:var(--muted);text-align:center;background:#f4f3ed;border-radius:7px;padding:7px 5px;font-size:9px}.band-summary b{color:var(--green);margin-left:3px;font-size:12px}.rule-check{border-radius:8px;flex-direction:column;margin:8px 0;padding:9px 10px;font-size:10px;line-height:1.5;display:flex}.rule-check.pass{color:#3e6c58;background:#eaf2ed}.rule-check.limit{color:#8c5d26;background:#f7ead8}.rule-check strong{font-size:10px}.rule-check span{opacity:.88}.score-control{margin:15px 0;display:block}.score-control>span{justify-content:space-between;font-size:11px;display:flex}.score-control input{width:100%;accent-color:var(--green)}.feedback-label{color:var(--muted);flex-direction:column;gap:6px;margin:13px 0;font-size:10px;display:flex}.feedback-label textarea{resize:vertical;border:1px solid var(--line);min-height:75px;color:var(--ink);border-radius:8px;outline:none;padding:9px;font-size:11px;line-height:1.6}.audit{color:#9a9f9c;text-align:center;margin-top:8px;font-size:9px;display:block}.review-actions{gap:8px;display:grid}.feedback-preview{background:#fffefa;border:1px solid #dfdfd5;border-radius:14px;padding:23px;box-shadow:0 8px 24px #25372e09}.feedback-preview-head{border-bottom:1px solid var(--line);color:var(--green);justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:17px;display:flex}.feedback-preview-head span{color:#9a7b50;letter-spacing:.08em;font-size:10px;font-weight:700}.feedback-preview-head h3{color:var(--ink);margin:5px 0 0;font:700 15px/1.65 Noto Serif SC,serif}.teacher-note{background:#f3f7f4;border:1px solid #dfe7e2;border-radius:10px;margin-top:14px;padding:14px}.teacher-note b{color:var(--green);font-size:10px}.teacher-note p{color:#4d5d56;margin:6px 0;font-size:11px;line-height:1.65}.teacher-note small{color:#68766f;border-top:1px solid #dde6e0;padding-top:7px;font-size:10px;line-height:1.6;display:block}.feedback-columns{grid-template-columns:1fr 1fr;gap:13px;margin-top:14px;display:grid}.feedback-columns.compact{grid-template-columns:1fr}.feedback-block{background:#f5f4ef;border-radius:10px;padding:14px}.feedback-block.good{background:#edf4ef}.feedback-block.focus{background:#f8eee5}.feedback-block.task{background:#eef1f5}.feedback-block h4{color:var(--green);margin:0 0 8px;font-size:11px}.feedback-block p{color:#5d6863;margin:5px 0;font-size:10px;line-height:1.65}.logic-card{border-left:3px solid var(--amber);background:#fbf5e8;border-radius:4px 10px 10px 4px;margin-top:14px;padding:16px}.logic-title{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.logic-title span{color:#9b7128;font-size:10px;font-weight:700}.logic-title small{color:#9c8e74;font-size:9px}.logic-list{gap:10px;display:grid}.logic-list article{background:#ffffff7a;border:1px solid #b58f4b33;border-radius:8px;padding:12px 12px 12px 39px;position:relative}.logic-list i{color:#755820;background:#e8d5ad;border-radius:50%;place-items:center;width:18px;height:18px;font:700 9px Arial,sans-serif;display:grid;position:absolute;top:12px;left:12px}.logic-list p{color:#635a49;margin:0 0 9px;font-size:11px;line-height:1.65}.logic-list article>div{gap:6px;display:grid}.logic-card b{color:var(--green);font-size:10px}.logic-card code{color:#33473f;white-space:normal;background:#ffffffd1;border-radius:6px;padding:9px;font:italic 11px/1.6 Georgia,serif}.language-block{background:#fff;border:1px solid #e5e4dc;padding:0;overflow:hidden}.language-block h4{background:#f5f4ef;margin:0;padding:14px 16px 11px}.language-table-wrap{overflow-x:auto}.language-table{border-collapse:collapse;table-layout:fixed;width:100%}.language-table th{color:#506159;text-align:left;background:#ebe9e1;border-top:1px solid #e7e5dd;border-bottom:1px solid #dddcd3;padding:10px 12px;font-size:10px}.language-table th:first-child{width:28%}.language-table th:nth-child(2){width:34%}.language-table th:nth-child(3){width:38%}.language-table td{color:#5d6863;vertical-align:top;overflow-wrap:anywhere;border-bottom:1px solid #eceae3;padding:11px 12px;font-size:10px;line-height:1.6}.language-table td:first-child{color:#7a4f3a;font-family:Georgia,serif}.language-table td:last-child{color:#285d48;font-weight:600}.language-table tbody tr:last-child td{border-bottom:0}.language-table tbody tr:nth-child(2n){background:#faf9f5}.exemplar-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:18px;display:grid}.exemplar-copy{padding:35px 42px}.exemplar-title{border-bottom:1px solid var(--line);justify-content:space-between;gap:20px;padding-bottom:24px;display:flex}.exemplar-title h2{margin:5px 0;font-size:25px}.exemplar-title p,.kicker{color:var(--muted);margin:0;font-size:10px}.editor-pick{color:#fff;background:#c96947;border-radius:3px;height:max-content;padding:6px 10px;font:600 11px Noto Serif SC,serif}.annotated{border-bottom:1px solid #efeee8;padding:25px 0 25px 38px;position:relative}.para-no{color:#a4aaa7;font-size:10px;font-weight:700;position:absolute;top:28px;left:0}.annotated>p{margin:0;font-family:Georgia,serif;font-size:16px;line-height:1.95}.annotated aside{color:#68716d;background:#f2f1ea;border-radius:7px;margin-top:15px;padding:13px 15px;font-size:11px;line-height:1.7}.annotated aside strong{color:var(--green);margin-right:10px}.exemplar-side{padding:22px}.exemplar-side h3{margin-bottom:16px}.learn{border-bottom:1px solid #efeee8;align-items:center;gap:11px;padding:12px 0;display:flex}.learn span{color:#ba8852;font:700 17px Georgia,serif}.learn p{margin:0;font-size:12px}.privacy{margin-top:18px}.student-hero{background:var(--green);color:#fff;border-radius:15px;grid-template-columns:auto 1fr auto;align-items:center;gap:19px;margin-bottom:20px;padding:25px 30px;display:grid}.student-hero p{color:#ffffffad}.student-hero .eyebrow{color:#e6c676}.student-score{border-left:1px solid #fff3;padding-left:28px}.student-score span{opacity:.7;font-size:10px;display:block}.student-score strong{font:700 34px Noto Serif SC,serif}.student-score small{opacity:.65;font-size:11px}.student-metrics{grid-template-columns:repeat(3,1fr)}.archive-panel{margin-top:2px}.positive{color:#2f7857;font-weight:700}.student-bottom{grid-template-columns:1fr 1fr;gap:18px;margin-top:18px;display:grid}.quote{color:#59645f;font:600 14px/1.9 Noto Serif SC,serif}.goal{background:#f3ead8;border-color:#e5d4b5;align-items:flex-start;gap:15px;display:flex}.goal h2{margin-bottom:6px}.goal p{color:#756850;margin:0;line-height:1.7}@media (max-width:1180px){.student-grid{grid-template-columns:repeat(3,1fr)}.review-workspace{grid-template-columns:210px 1fr}.score-editor{grid-column:2}.dashboard-grid{grid-template-columns:1fr}.metrics,.rubric-steps{grid-template-columns:repeat(2,1fr)}}@media (max-width:820px){.topbar{justify-content:space-between;padding:0 17px;left:0}.topbar>.brand{display:flex}.topbar>.brand .brand-mark{width:34px;height:34px}.topbar>.brand small{display:none}.menu-btn{background:0 0;border:0;place-items:center;display:grid}.profile{display:none}.sidebar{transition:all .22s;transform:translate(-100%)}.sidebar.open{transform:none}.close-menu{color:#fff;background:0 0;border:0;display:block;position:absolute;top:12px;right:12px}.scrim{z-index:35;background:#101d1873;border:0;display:block;position:fixed;inset:0}.content{margin-left:0;padding:100px 18px 25px}.hero-row{flex-direction:column;align-items:flex-start}.hero-row h1{font-size:25px}.dashboard-grid,.import-layout,.exemplar-layout,.student-bottom,.rubric-grid,.rubric-bottom{grid-template-columns:1fr}.student-grid{grid-template-columns:repeat(2,1fr)}.review-workspace{grid-template-columns:1fr}.review-list{display:none}.score-editor{grid-column:auto}.exemplar-copy{padding:25px}.student-hero{grid-template-columns:auto 1fr}.student-score{border-top:1px solid #fff3;border-left:0;grid-column:1/3;padding:15px 0 0}}@media (max-width:560px){.demo-switch>span{display:none}.metrics,.student-metrics,.rubric-steps,.feedback-columns,.feedback-columns.compact,.student-grid{grid-template-columns:1fr}.queue-row .pill{display:none}.content{padding-inline:12px}.panel{padding:16px}.search{width:100%}.directory-actions{flex-direction:column;align-items:stretch;width:100%}.directory-actions>button{justify-content:center}.roster-import-actions{flex-direction:column}.roster-import-actions button{width:100%}.exemplar-copy{padding:20px}.annotated{padding-left:25px}.student-hero{padding:20px}.result-actions{flex-direction:column;align-items:flex-start}.hero-row .primary{width:100%}.feedback-preview{padding:17px}.logic-title{flex-direction:column;align-items:flex-start;gap:3px}.language-table,.language-table tbody,.language-table tr,.language-table td{display:block}.language-table thead{display:none}.language-table tr{border-bottom:1px solid #e4e2da;padding:10px 12px}.language-table tr:last-child{border-bottom:0}.language-table td{background:0 0;border:0;grid-template-columns:58px 1fr;gap:9px;padding:4px 0;display:grid}.language-table td:before{content:attr(data-label);color:#8b948f;font:700 9px/1.6 Arial,sans-serif}.language-table td:first-child{font-family:inherit}.language-table tbody tr:nth-child(2n){background:#faf9f5}}.week4-hero{margin-bottom:16px}.week4-nav{align-items:center;gap:8px;display:flex}.week4-nav button{border:1px solid var(--line);color:var(--green);background:#fffefa;border-radius:8px;align-items:center;gap:4px;padding:9px 11px;display:flex}.week4-nav button:disabled{opacity:.35}.week4-nav span{color:var(--muted);font-size:11px}.week4-review-layout{grid-template-columns:190px minmax(0,920px);justify-content:center;align-items:start;gap:18px;display:grid}.week4-student-list{align-self:start;max-height:calc(100vh - 160px);padding:12px;overflow:auto}.week4-student-list h3{margin:2px 5px 10px;font-size:13px}.week4-student-list h3 span{color:#9b7951}.week4-student-list button{text-align:left;width:100%;color:var(--ink);background:0 0;border:1px solid #0000;border-radius:8px;grid-template-columns:32px 1fr;align-items:center;gap:8px;margin:3px 0;padding:8px;display:grid}.week4-student-list button>span{width:31px;height:31px;color:var(--green);background:#e2ebe6;border-radius:50%;place-items:center;font-size:10px;font-weight:800;display:grid}.week4-student-list button b,.week4-student-list button small{display:block}.week4-student-list button b{font-size:11px}.week4-student-list button b em{color:#8a621c;background:#fff0c9;border-radius:4px;margin-left:5px;padding:2px 4px;font:700 7px Arial,sans-serif}.week4-student-list button small{color:var(--muted);margin-top:3px;font-size:8px}.week4-student-list button.active{background:#f7fbf8;border-color:#9ab7aa;box-shadow:0 3px 12px #1c443414}.week4-document{border:1px solid var(--line);background:#f7f5ee;border-radius:15px;min-width:0;overflow:hidden;box-shadow:0 10px 30px #18352b12}.week4-document.student{width:min(920px,100%);margin:0 auto}.week4-feedback{gap:16px;padding:22px;display:grid}.week4-score-card{background:var(--green);color:#fff;border-radius:12px;grid-template-columns:1fr auto;gap:12px;padding:17px;display:grid}.week4-score-card.pending{background:#6f5729}.week4-score-card span{color:#ffffffb3;font-size:9px}.week4-score-card h2{margin:4px 0 0;font:700 16px Noto Serif SC,serif}.week4-score-card>div>p{color:#ffffffb8;margin:4px 0 0;font-size:9px}.week4-score-card>strong{font:700 31px Noto Serif SC,serif}.week4-score-card>strong small{opacity:.65;font-size:10px}.week4-score-parts{grid-column:1/3;grid-template-columns:repeat(3,1fr);gap:7px;display:grid}.week4-score-parts span{background:#ffffff17;border-radius:7px;padding:8px}.week4-score-parts b{float:right;color:#fff}.week4-color-legend{flex-wrap:wrap;gap:8px;display:flex}.week4-color-legend span{background:#f6f5f0;border-radius:20px;align-items:center;gap:5px;padding:6px 9px;font-size:9px;font-weight:800;display:flex}.week4-color-legend i{background:currentColor;border-radius:50%;width:8px;height:8px}.week4-color-legend .logic{color:#2563eb}.week4-color-legend .language{color:#d94b3d}.week4-summary-card{gap:9px;display:grid}.week4-summary-card article,.week4-revision,.week4-detail-section,.week4-teacher-note{background:#fff;border:1px solid #dfded6;border-radius:10px;padding:18px}.week4-summary-card article.logic{border-left:4px solid #2563eb}.feedback-kind{color:#3a765b;margin-bottom:7px;font-size:9px;font-weight:800;display:inline-block}.feedback-kind.logic{color:#2563eb}.week4-summary-card p,.week4-revision p,.week4-teacher-note p{color:#4f5c56;white-space:pre-wrap;margin:0;font-size:11px;line-height:1.75}.week4-revision{background:#fffbef;border-left:4px solid #d6a13b}.week4-revision>span{color:#9b6a17;margin-bottom:6px;font-size:9px;font-weight:800;display:block}.week4-detail-section.logic{border-top:4px solid #2563eb}.week4-detail-section.language{border-top:4px solid #d94b3d}.week4-detail-section header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.week4-detail-section header span{color:#2563eb;font-size:8px;font-weight:800}.week4-detail-section.language header span{color:#d94b3d}.week4-detail-section h3{margin:2px 0 0;font:700 17px Noto Serif SC,serif}.week4-detail-section h3 em{color:#a56a62;margin-left:5px;font:700 9px Arial,sans-serif}.week4-detail-section header small{color:var(--muted);font-size:8px}.week4-logic-list{gap:8px;display:grid}.week4-logic-list article{background:#f3f7ff;border-radius:8px;grid-template-columns:24px 1fr;gap:8px;padding:10px;display:grid}.week4-logic-list article>i{color:#fff;background:#2563eb;border-radius:50%;place-items:center;width:22px;height:22px;font-size:9px;font-style:normal;display:grid}.week4-logic-list p{color:#3f5169;margin:0 0 7px;font-size:10px;line-height:1.65}.week4-logic-list b,.week4-logic-list code{display:block}.week4-logic-list b{color:#2563eb;font-size:9px}.week4-logic-list code{color:#25477c;white-space:normal;margin-top:5px;font:500 10px/1.6 Arial,sans-serif}.week4-language-table{border:1px solid #ecd8d4;border-radius:9px;overflow:hidden}.week4-language-table .head,.week4-language-table article{grid-template-columns:1fr .9fr 1.2fr;display:grid}.week4-language-table .head{color:#8d443d;background:#f8e8e5}.week4-language-table .head b{padding:10px 12px;font-size:9px}.week4-language-table article:nth-child(odd){background:#fff9f7}.week4-language-table article>div,.week4-language-table article>p{color:#5a4541;overflow-wrap:anywhere;border-top:1px solid #f0dfdc;min-width:0;margin:0;padding:11px 12px;font-size:10px;line-height:1.65}.week4-language-table article>div{align-items:flex-start;gap:7px;display:flex}.week4-language-table article>div p{margin:0}.week4-language-table article i{color:#fff;background:#d94b3d;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-size:8px;font-style:normal;display:grid}.week4-teacher-note{color:#9b6c16;background:#fff8e6;border-color:#e4c987;gap:10px;display:flex}.week4-teacher-note b{margin-bottom:5px;font-size:10px;display:block}.week4-loading{min-height:220px;color:var(--muted);place-items:center;display:grid}.week4-loading.error{color:#a24d3a}.week4-student-result{margin-top:4px}.week4-archive-tabs{flex-wrap:wrap;gap:7px;width:min(920px,100%);margin:0 auto 10px;display:flex}.week4-archive-tabs button{border:1px solid var(--line);color:var(--muted);background:#fff;border-radius:999px;padding:8px 12px;font-size:10px;font-weight:700}.week4-archive-tabs button.active{color:var(--green);background:#eaf2ed;border-color:#7aa08f}.individual-review-editor{background:#fffaf0;border:1px solid #ddc98f;border-radius:12px;margin:14px 14px 0;padding:16px}.individual-editor-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.individual-editor-head span{color:#9b6a17;font-size:9px;font-weight:800}.individual-editor-head h3{margin:3px 0 0;font:700 16px Noto Serif SC,serif}.individual-editor-head>strong{color:#7a581b;font:700 28px Noto Serif SC,serif}.individual-editor-head>strong small{opacity:.7;font-size:10px}.individual-score-grid{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:13px;display:grid}.individual-score-grid label{background:#fff;border:1px solid #e8dcc0;border-radius:9px;padding:10px}.individual-score-grid label span{color:#5f665f;justify-content:space-between;font-size:10px;font-weight:700;display:flex}.individual-score-grid input{width:100%;accent-color:var(--green);margin-top:8px}.individual-rule{border-radius:7px;margin:10px 0;padding:8px 10px;font-size:9px;font-weight:700}.individual-rule.limit{color:#8b6118;background:#fff0d2}.individual-rule.pass{color:#2c654d;background:#e8f3ed}.individual-text-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.individual-text-grid label{color:#536159;font-size:9px;font-weight:800}.individual-text-grid textarea{resize:vertical;color:#36463f;background:#fff;border:1px solid #dedbd1;border-radius:8px;width:100%;min-height:82px;margin-top:5px;padding:10px;font:10px/1.6 Arial,sans-serif}.individual-text-grid label:nth-child(2) textarea{min-height:150px}.individual-save-message{border-radius:7px;margin:10px 0 0;padding:8px 10px;font-size:9px}.individual-save-message.saved,.individual-save-message.confirmed{color:#2c654d;background:#e8f3ed}.individual-save-message.error{color:#9d4136;background:#fde9e5}.individual-editor-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.individual-editor-actions button{align-items:center;gap:6px;display:flex}.individual-review-editor>small{color:#8b8170;text-align:right;margin-top:8px;font-size:8px;display:block}.week4-hero-actions{flex-direction:column;align-items:flex-end;gap:10px;min-width:min(620px,100%);display:flex}.quick-import-trigger{white-space:nowrap}.quick-review-importer{text-align:left;width:min(620px,100%);padding:16px}.quick-import-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.quick-import-head span{color:#9b6a17;font-size:9px;font-weight:800}.quick-import-head h3{margin:3px 0 4px;font:700 16px Noto Serif SC,serif}.quick-import-head p{color:var(--muted);margin:0;font-size:9px;line-height:1.6}.quick-import-head .icon-button{border:1px solid var(--line);width:32px;height:32px;color:var(--muted);background:#fff;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.quick-review-importer textarea{resize:vertical;color:#31443b;background:#fff;border:1px solid #dedbd1;border-radius:9px;width:100%;min-height:190px;margin-top:12px;padding:12px;font:10px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.quick-import-message{color:#2c654d;background:#eaf2ed;border-radius:7px;margin:8px 0 0;padding:8px 10px;font-size:9px}.quick-import-message.error{color:#9d4136;background:#fde9e5}.quick-import-actions{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.quick-import-actions button{align-items:center;gap:6px;display:flex}.quick-review-importer>small{color:#8b8170;margin-top:8px;font-size:8px;line-height:1.6;display:block}@media (max-width:1180px){.week4-review-layout{grid-template-columns:1fr}.week4-student-list{display:none}}@media (max-width:820px){.week4-transcript-card{padding:22px}.week4-language-table .head{display:none}.week4-language-table article{grid-template-columns:1fr;padding:8px 0}.week4-language-table article>div,.week4-language-table article>p{border-top:0;padding:6px 12px}.week4-language-table article>p:before{color:#a2655d;margin-bottom:3px;font-size:8px;font-weight:800;display:block}.week4-language-table article>p:nth-child(2):before{content:"问题"}.week4-language-table article>p:nth-child(3):before{content:"建议"}.individual-score-grid,.individual-text-grid{grid-template-columns:1fr}.week4-hero-actions{align-items:stretch;width:100%;min-width:0}.quick-review-importer{width:100%}}@media (max-width:560px){.week4-nav{justify-content:space-between;width:100%}.week4-feedback{padding:10px}.week4-transcript-card>header{flex-direction:column}.week4-transcript-text{font-size:13px;line-height:1.9}.individual-review-editor{margin:8px 8px 0;padding:12px}.individual-editor-actions{flex-direction:column}.individual-editor-actions button{justify-content:center;width:100%}.quick-import-actions{flex-direction:column}.quick-import-actions button{justify-content:center;width:100%}}.week4-transcript-card{background:#fff;border:1px solid #dfded6;border-radius:12px;padding:26px 30px 30px}.week4-transcript-card>header{border-bottom:1px solid #e5e3dc;justify-content:space-between;align-items:flex-start;gap:18px;padding-bottom:14px;display:flex}.week4-transcript-card>header span,.week4-feedback-heading>span{color:#9a7b50;letter-spacing:.12em;font-size:8px;font-weight:800}.week4-transcript-card h3,.week4-feedback-heading h2{margin:4px 0 0;font:700 20px Noto Serif SC,serif}.week4-transcript-note{color:#7e8983;margin:14px 0 20px;font-size:9px}.week4-transcript-text{color:#293b34;white-space:pre-wrap;letter-spacing:.01em;font:500 14px/2 Arial,sans-serif}.week4-transcript-text mark{background:0 0;border-radius:3px;padding:2px 1px}.week4-transcript-text mark.logic{color:#174f9c;background:#eaf2ff;box-shadow:inset 0 -2px #76a7e9}.week4-transcript-text mark.language{color:#a43128;background:#fff0ed;box-shadow:inset 0 -2px #e8796f}.week4-transcript-empty{color:#738079;background:#f5f4ef;border-radius:9px;align-items:center;gap:12px;padding:18px;display:flex}.week4-transcript-empty b{margin-bottom:4px;font-size:11px;display:block}.week4-transcript-empty p{margin:0;font-size:9px}.week4-feedback-heading{padding:9px 3px 0}.week4-feedback{gap:10px;padding:14px}.week4-score-card{gap:8px;padding:13px 15px}.week4-score-card h2{margin-top:2px}.week4-score-card>strong{font-size:27px}.week4-score-parts{gap:5px}.week4-score-parts span{padding:6px 8px}.week4-transcript-card{padding:16px 18px 18px}.week4-section-head{border-bottom:1px solid #e5e3dc;justify-content:space-between;align-items:center;gap:10px;min-height:0;margin:0 0 8px;padding:0 0 8px;display:flex}.week4-section-head h3{margin:0;font:700 15px/1.35 Noto Serif SC,serif}.week4-section-head.detail{margin-bottom:8px}.week4-section-head.detail>div{align-items:baseline;gap:8px;display:flex}.week4-section-head.detail span{color:#2563eb;font-size:8px;font-weight:800}.week4-detail-section.language .week4-section-head.detail span{color:#d94b3d}.week4-section-head.detail h3 em{color:#a56a62;margin-left:4px;font:700 9px Arial,sans-serif}.week4-section-head small{color:var(--muted);font-size:8px}.week4-color-legend{gap:10px}.week4-color-legend span{background:0 0;gap:4px;padding:0;line-height:1.2}.week4-color-legend i{width:7px;height:7px}.week4-transcript-note{margin:7px 0 11px;line-height:1.55}.week4-transcript-text{white-space:pre-line;letter-spacing:0;font-size:13px;line-height:1.75}.week4-transcript-text mark{padding:1px 0}.week4-feedback-divider{color:#7d705e;align-items:center;gap:9px;margin:1px 0;font-size:10px;font-weight:800;display:flex}.week4-feedback-divider:before,.week4-feedback-divider:after{content:"";background:#dedbd1;flex:1;height:1px}.week4-summary-card{gap:7px}.week4-summary-card article,.week4-revision,.week4-detail-section,.week4-teacher-note{padding:12px 14px}.feedback-kind{margin-bottom:5px}.week4-summary-card p,.week4-revision p,.week4-teacher-note p{line-height:1.65}.week4-revision>span{margin-bottom:4px}.week4-logic-list{gap:6px}.week4-logic-list article{padding:8px}.week4-logic-list p{margin-bottom:5px;line-height:1.55}.week4-logic-list code{margin-top:3px;line-height:1.5}.week4-language-table .head b{padding:7px 9px}.week4-language-table article>div,.week4-language-table article>p{padding:8px 9px;line-height:1.5}@media (max-width:820px){.week4-transcript-card{padding:14px}.week4-section-head{align-items:flex-start}}@media (max-width:560px){.week4-feedback{gap:8px;padding:8px}.week4-section-head.transcript{flex-direction:column}.week4-transcript-text{font-size:12px;line-height:1.7}}
