:root{--blue:#1769e8;--blue2:#0d55c5;--ink:#17263b;--muted:#718096;--line:#e4eaf2;--bg:#f4f7fb;--card:#fff;--green:#17a673;--orange:#f08a34;--violet:#7557db;--red:#dc4c57;--shadow:0 8px 26px rgba(37,58,89,.07);font-family:"PingFang SC","Microsoft YaHei",Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}small{display:block;color:var(--muted)}h1,h2,p{margin-top:0}h1{font-size:28px;margin-bottom:8px;letter-spacing:-.5px}h2{font-size:18px;margin-bottom:5px}.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:238px;padding:22px 18px;background:linear-gradient(180deg,#102640,#0d1d32);color:#fff;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;color:#fff;padding:0 7px 25px}.brand-mark{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;color:#fff;background:linear-gradient(145deg,#3b8cff,#1769e8);font-size:20px;font-weight:800;box-shadow:0 6px 18px rgba(23,105,232,.35)}.brand b{font-size:17px;display:block}.brand small{color:#8ba1bb;font-size:11px;margin-top:2px}.nav-list{display:grid;gap:5px}.nav-list a{height:44px;border-radius:9px;color:#aebdd0;display:flex;align-items:center;gap:12px;padding:0 14px;font-weight:600}.nav-list a span{font-size:18px;width:20px;text-align:center}.nav-list a:hover,.nav-list a.active{background:rgba(62,137,242,.17);color:#fff}.nav-list a.active{box-shadow:inset 3px 0 #4d9aff}.sidebar-help{margin-top:auto;padding:16px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.04)}.sidebar-help b{font-size:13px}.sidebar-help p{color:#8fa2bb;font-size:12px;line-height:1.7;margin:8px 0 0}.main-area{margin-left:238px;min-width:0;width:calc(100% - 238px)}.topbar{height:70px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 30px;position:sticky;top:0;z-index:12}.topbar-title{font-size:16px;font-weight:700}.user-menu{margin-left:auto;display:flex;align-items:center;gap:10px}.user-menu>span:nth-child(2){min-width:82px}.user-menu b{display:block;font-size:13px}.user-menu small{font-size:11px}.avatar{width:36px;height:36px;border-radius:50%;background:#e8f2ff;color:var(--blue);display:grid;place-items:center;font-weight:700}.text-btn{border:0;background:none;color:var(--muted);padding:6px}.content{padding:28px 30px 48px;max-width:1600px;margin:auto}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-heading p{color:var(--muted);margin:0}.page-heading .back{display:block;color:var(--muted);font-size:13px;margin-bottom:10px}.welcome-heading{padding:6px 0 3px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase}.eyebrow.blue{color:var(--blue);display:block;margin-bottom:6px}.heading-actions,.title-line{display:flex;align-items:center;gap:10px}.title-line h1{margin:0}.btn{display:inline-flex;justify-content:center;align-items:center;gap:6px;border:1px solid #d7dfeb;border-radius:8px;background:#fff;padding:9px 16px;font-weight:600;color:#314159;white-space:nowrap}.btn:hover{border-color:#aab9cd;background:#f9fbfe}.btn.primary{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 5px 13px rgba(23,105,232,.18)}.btn.primary:hover{background:var(--blue2)}.btn.large{padding:13px 20px;font-size:16px}.btn.small{padding:6px 11px;font-size:12px}.btn.icon{padding:7px 10px}.btn:disabled{opacity:.45;cursor:not-allowed}.danger-button{color:var(--red)!important}.card{background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow)}.card-header,.panel-header{display:flex;justify-content:space-between;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.card-header h2,.panel-header h2{margin:0 0 3px}.card-header p,.panel-header p{margin:0;color:var(--muted);font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.metric-grid.three{grid-template-columns:repeat(3,1fr)}.metric-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:var(--shadow)}.metric-icon{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;font-size:18px;font-weight:800}.metric-card.blue .metric-icon{background:#eaf3ff;color:var(--blue)}.metric-card.violet .metric-icon{background:#f0edff;color:var(--violet)}.metric-card.orange .metric-icon{background:#fff1e5;color:var(--orange)}.metric-card.green .metric-icon{background:#e7f8f1;color:var(--green)}.metric-card small{font-size:12px}.metric-card b{font-size:27px;line-height:1.25;display:block}.metric-card em{font-size:11px;color:#9aa5b5;font-style:normal}.dashboard-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px}.task-list{padding:4px 0}.task-row{display:flex;align-items:center;gap:13px;padding:15px 22px;border-bottom:1px solid #edf1f6;color:var(--ink)}.task-row:last-child{border:0}.task-row:hover{background:#fafcff}.task-badge{width:38px;height:38px;border-radius:9px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-weight:800}.task-main{min-width:160px;flex:1}.task-main b{display:block}.task-main small{font-size:11px;margin-top:4px}.progress{height:7px;border-radius:10px;background:#edf1f7;overflow:hidden;width:120px}.progress i{display:block;height:100%;background:linear-gradient(90deg,#4b95ff,#1769e8)}.progress-text{font-size:12px;color:var(--muted)}.status{display:inline-flex;align-items:center;padding:4px 9px;border-radius:20px;background:#eef2f7;color:#607086;font-size:11px;font-weight:700;white-space:nowrap}.status.completed,.status.reviewed{background:#e6f7ef;color:#118259}.status.collecting,.status.pending_review,.status.ocr_completed{background:#e8f2ff;color:#1769e8}.status.reviewing,.status.ai_reviewing,.status.ocr_processing,.status.running{background:#fff1df;color:#c36b18}.status.failed{background:#fdebed;color:#c93947}.status.archived{background:#eef0f3;color:#8892a1}.status.pending,.status.uploaded{background:#f1edff;color:#6846c7}.timeline{padding:16px 22px}.timeline>div{display:flex;gap:12px;min-height:55px;position:relative}.timeline>div:not(:last-child):before{content:"";position:absolute;left:5px;top:16px;bottom:0;border-left:1px solid #dce4ee}.timeline .dot{width:11px;height:11px;margin-top:4px;border-radius:50%;background:#97a5b8;z-index:1}.dot.completed{background:var(--green)}.dot.running{background:var(--orange)}.dot.failed{background:var(--red)}.timeline p{margin:0}.timeline b{font-size:13px}.timeline small{margin-top:3px;font-size:11px}.empty{text-align:center;padding:54px 20px;color:var(--muted)}.empty b{display:block;color:#435168;margin-bottom:6px}.empty.small{padding:25px}.flash-stack{display:grid;gap:8px;margin-bottom:15px}.flash-stack.floating{position:fixed;right:22px;top:22px;z-index:100}.flash{display:flex;justify-content:space-between;align-items:center;padding:11px 15px;border-radius:8px;background:#e7f7ef;color:#147651;border:1px solid #c8eedc}.flash.danger{background:#fdebed;color:#b93442;border-color:#f7cbd0}.flash.warning{background:#fff5e5;color:#a96215;border-color:#f7dfb7}.flash button{border:0;background:none;color:inherit}.class-grid,.rubric-grid,.essay-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.class-card{display:flex;background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;color:var(--ink);box-shadow:var(--shadow);min-height:150px}.class-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(37,58,89,.11)}.class-card.muted{opacity:.65}.class-cover{width:115px;padding:17px;background:linear-gradient(155deg,#eaf3ff,#d5e7ff);color:var(--blue);display:flex;flex-direction:column;justify-content:space-between}.class-cover b{font-size:13px}.class-cover i{font-style:normal;font-size:52px;line-height:1;font-weight:900;opacity:.18;text-align:center}.class-info{padding:21px 18px;display:flex;flex-direction:column}.class-info>b{font-size:18px}.class-info small{margin-top:7px}.class-info em{font-style:normal;margin-top:auto;color:var(--blue);font-size:12px;font-weight:600}.table-card{overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid #e9eef4;white-space:nowrap}th{font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:#7b889a;background:#f8fafc}td{font-size:13px}td small{font-size:11px;margin-top:3px}tbody tr:last-child td{border:0}tbody tr[data-href]{cursor:pointer}tbody tr:hover{background:#fbfcfe}.actions{display:flex;gap:10px;align-items:center}.actions form{display:inline}.link,.text-link{border:0;background:none;color:var(--blue);padding:0;font-size:12px}.table-search{border:1px solid #d9e1ec;border-radius:7px;padding:8px 11px;width:210px;background:#fbfcfe}.rubric-card{padding:20px}.rubric-card h2{margin:20px 0 6px}.rubric-card>p{color:var(--muted)}.rubric-top{display:flex;justify-content:space-between;align-items:center}.rubric-top>b{font-size:20px}.dimension-list{display:grid;gap:11px;margin-top:18px}.dimension-list>div{display:grid;grid-template-columns:58px 1fr 38px;align-items:center;gap:8px;font-size:12px}.dimension-list i,.dimension-chart i{height:7px;background:#edf1f6;border-radius:10px;overflow:hidden}.dimension-list em,.dimension-chart em{display:block;height:100%;background:linear-gradient(90deg,#69a7ff,#1769e8)}dialog{padding:0;border:0;border-radius:14px;width:min(520px,calc(100vw - 28px));box-shadow:0 24px 80px rgba(16,35,59,.25)}dialog::backdrop{background:rgba(10,25,43,.56);backdrop-filter:blur(2px)}.modal-form{padding:0}.modal-form.wide{width:min(780px,calc(100vw - 28px))}.modal-form header,.modal-form footer{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line)}.modal-form header h2{margin:0}.modal-form header button{border:0;background:none;font-size:24px;color:var(--muted)}.modal-form footer{border-top:1px solid var(--line);border-bottom:0;justify-content:flex-end;gap:9px}.modal-form>label,.modal-form>.form-grid,.modal-form>.option-row,.modal-form>.repeat-fields,.modal-form>.hint-box,.modal-form>.upload-zone{margin:15px 22px}.modal-form label,.stack-form label,.score-panel>label{display:grid;gap:7px;font-size:12px;font-weight:600}.modal-form input,.modal-form select,.modal-form textarea,.stack-form input,.score-panel textarea,.text-panel textarea{border:1px solid #d8e0eb;border-radius:8px;padding:10px 11px;background:#fff;outline:none;resize:vertical}.modal-form input:focus,.modal-form select:focus,.modal-form textarea:focus,.stack-form input:focus,.score-panel textarea:focus,.text-panel textarea:focus{border-color:#6ba4f6;box-shadow:0 0 0 3px rgba(23,105,232,.09)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.option-row{display:flex;gap:18px;align-items:center;flex-wrap:wrap}.check-line{display:flex!important;grid-auto-flow:column;justify-content:start;align-items:center;gap:7px!important}.check-line input{width:16px;height:16px;padding:0}.repeat-fields{display:grid;gap:9px}.repeat-row{display:grid;grid-template-columns:1fr 140px 38px;gap:8px}.repeat-row input{border:1px solid #d8e0eb;border-radius:8px;padding:9px}.add-row{margin:0 22px 12px}.hint-box{background:#edf5ff;border:1px solid #d7e9ff;color:#416383;border-radius:8px;padding:11px 13px;font-size:12px;line-height:1.6}.hint-box.danger{background:#fff1f1;border-color:#ffd5d8;color:#a9474e}.assignment-summary{display:flex;justify-content:space-between;gap:25px;padding:22px;margin-bottom:16px}.assignment-summary>div:first-child{max-width:55%}.assignment-summary small{text-transform:uppercase;font-size:10px;letter-spacing:.6px}.assignment-summary b{display:block;margin:7px 0;font-size:16px}.assignment-summary p{color:var(--muted);line-height:1.7;margin:0}.mini-metrics{display:grid;grid-template-columns:repeat(4,100px);align-items:center}.mini-metrics span{border-left:1px solid var(--line);padding-left:20px}.mini-metrics b{font-size:21px;margin:0}.toolbar.compact{display:flex;align-items:center;gap:10px;padding:10px 14px;margin-bottom:16px}.toolbar form{display:flex;align-items:center;gap:7px}.toolbar select,.toolbar input,.match-form select{border:1px solid #d8e0eb;border-radius:7px;padding:7px 8px;background:white}.toolbar .spacer{flex:1}.inline-form input{width:110px}.score{color:var(--blue);font-size:17px}.tag{display:inline-flex;border-radius:5px;padding:3px 6px;font-size:10px;font-weight:700;margin-right:3px}.tag.gold{background:#fff2cf;color:#996300}.tag.blue{background:#e8f2ff;color:#1769e8}.match-form{display:flex;align-items:center;gap:5px}.match-form select{max-width:160px}.danger-text{color:var(--red)!important}.upload-zone{border:2px dashed #bcd1ed;border-radius:12px;padding:25px;text-align:center;background:#f8fbff;position:relative}.upload-zone span{display:block;font-size:29px;color:var(--blue)}.upload-zone b{display:block;margin:5px}.upload-zone p{color:var(--muted);font-size:12px}.upload-zone input{width:100%}.processing-banner{display:flex;gap:13px;align-items:center;background:#eaf3ff;border:1px solid #d4e7ff;padding:14px 17px;border-radius:10px;margin-bottom:16px}.processing-banner b{display:block}.processing-banner p{margin:3px 0 0;color:#56718f;font-size:12px}.processing-banner.danger{background:#fdebed;border-color:#f7cbd0}.spinner{width:24px;height:24px;border:3px solid #bed8fb;border-top-color:var(--blue);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.review-layout{display:grid;grid-template-columns:minmax(420px,1.25fr) minmax(420px,1fr);gap:18px;align-items:start}.manuscript-panel{position:sticky;top:88px;overflow:hidden}.review-side{display:grid;gap:18px}.panel-header{padding:17px 19px}.page-tabs{display:flex;gap:6px;padding:10px 14px;border-bottom:1px solid var(--line);overflow:auto}.page-tabs button{border:0;border-radius:6px;padding:6px 10px;background:#f1f4f8;font-size:11px}.page-tabs button.active{background:#e5f0ff;color:var(--blue)}.page-viewer{height:calc(100vh - 240px);min-height:560px;background:#e5e9ef;position:relative}.page-pane{display:none;width:100%;height:100%;padding:18px}.page-pane.active{display:flex;justify-content:center;align-items:flex-start}.page-pane img{max-width:100%;max-height:100%;object-fit:contain;background:white;box-shadow:0 8px 25px rgba(0,0,0,.15)}.page-pane iframe{width:100%;height:100%;border:0;background:white}.page-tools{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;gap:7px;background:rgba(255,255,255,.93);padding:7px;border-radius:9px;box-shadow:var(--shadow)}.score-panel,.text-panel,.ai-panel,.annotation-panel{overflow:hidden}.score-total{display:flex;align-items:baseline}.score-total b{font-size:31px;color:var(--blue)}.score-fields{padding:7px 19px}.score-fields label{display:flex;align-items:center;justify-content:space-between;padding:11px 0;border-bottom:1px solid #edf1f5}.score-fields label>span:first-child{max-width:64%}.score-fields label small{font-size:10px;margin-top:3px}.score-fields label>span:last-child{display:flex;align-items:center;gap:6px}.score-fields input{width:65px;border:1px solid #d7e0eb;border-radius:7px;padding:7px;text-align:center}.score-fields em{font-style:normal;color:var(--muted);font-size:11px}.score-panel>label{margin:12px 19px}.score-panel>.option-row{padding:0 19px 18px}.text-panel textarea{border:0;border-radius:0;width:100%;padding:18px;line-height:1.9;min-height:260px}.feedback-columns{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:17px}.feedback-columns>div>b,.polish>b{font-size:12px}.feedback{font-size:12px;padding:9px 10px;margin:8px 0 0;border-radius:7px;line-height:1.6}.feedback.good{background:#e9f8f1;color:#29745b}.feedback.warn{background:#fff4e7;color:#875b29}.polish{margin:0 17px 17px;background:#f4f1ff;border-radius:8px;padding:12px}.polish p{font-size:12px;line-height:1.7;margin:5px 0 0;color:#5f537e}.annotation-list{padding:0 17px}.annotation-list article{display:flex;gap:11px;padding:14px 0;border-bottom:1px solid var(--line);align-items:flex-start}.annotation-list article:last-child{border:0}.annotation-kind{font-size:10px;background:#eaf3ff;color:var(--blue);padding:4px 6px;border-radius:5px;white-space:nowrap}.annotation-kind.praise{background:#e7f8f1;color:var(--green)}.annotation-kind.typo{background:#fdebed;color:var(--red)}.annotation-list article>div{flex:1}.annotation-list b{font-size:12px}.annotation-list p{font-size:12px;line-height:1.6;margin:4px 0}.annotation-list em{color:var(--green);font-style:normal}.annotation-list small{font-size:10px}.review-actions{position:sticky;bottom:12px;display:flex;justify-content:flex-end;gap:9px;background:rgba(255,255,255,.94);border:1px solid var(--line);padding:10px;border-radius:10px;box-shadow:0 8px 25px rgba(26,47,76,.12);z-index:5}.report-grid{display:grid;gap:13px}.report-card{display:grid;grid-template-columns:54px 1fr auto;align-items:center;gap:17px;padding:18px 20px}.report-icon{width:50px;height:50px;border-radius:12px;background:#eaf3ff;color:var(--blue);display:grid;place-items:center;font-size:21px}.report-card h2{margin:7px 0 5px}.report-card p{color:var(--muted);margin:0}.report-actions{display:flex;gap:7px}.analytics-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.bar-chart,.dimension-chart{padding:21px;display:grid;gap:16px}.bar-chart>div{display:grid;grid-template-columns:55px 1fr 50px;gap:12px;align-items:center}.bar-chart i{height:24px;background:#f0f3f8;border-radius:5px;overflow:hidden}.bar-chart em{display:block;height:100%;background:linear-gradient(90deg,#7bb4ff,#1769e8);border-radius:5px}.bar-chart b{font-size:12px}.dimension-chart>div{display:grid;gap:7px}.dimension-chart span{display:flex;justify-content:space-between}.dimension-chart small{display:inline}.rank{width:25px;height:25px;border-radius:50%;background:#edf1f6;display:grid;place-items:center}.rank.top{background:#fff0c9;color:#9b6700}.growth-line{min-height:300px;padding:25px;display:flex;align-items:flex-end;gap:28px;overflow:auto;border-bottom:1px solid var(--line)}.growth-line a{height:240px;min-width:84px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;color:var(--ink)}.growth-line span{height:180px;width:34px;position:relative;display:flex;align-items:flex-end;background:#edf2f8;border-radius:7px 7px 0 0}.growth-line span:after{content:"";width:100%;height:var(--score);max-height:100%;background:linear-gradient(180deg,#4e98ff,#1769e8);border-radius:7px 7px 0 0}.growth-line i{position:absolute;bottom:calc(var(--score) + 5px);font-style:normal;font-size:11px;font-weight:700;color:var(--blue)}.growth-line b{font-size:11px;margin-top:8px}.growth-line small{font-size:10px}.essay-card{padding:20px}.essay-top{display:flex;justify-content:space-between;align-items:center}.essay-top>b{font-size:22px;color:var(--blue)}.essay-card h2{margin:20px 0 6px}.essay-meta{font-size:12px;color:var(--muted)}.essay-card blockquote{margin:16px 0;background:#f8fafc;border-left:3px solid #9bc3fa;padding:14px;font-size:13px;line-height:1.9;color:#47566a;min-height:118px}.essay-footer{display:flex;justify-content:space-between;gap:15px;font-size:11px;color:var(--muted)}.essay-footer span{flex:1}.muted-text{color:var(--muted)}.error-page{min-height:70vh;display:grid;place-items:center;align-content:center;text-align:center;padding:30px}.error-page>b{font-size:90px;color:#dbe7f7;line-height:1}.error-page h1{margin:0 0 8px}.login-page{background:#fff}.login-shell{min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr}.login-hero{background:linear-gradient(145deg,#0f2e55,#0e5bc1);color:#fff;padding:9vh 7vw;display:flex;flex-direction:column;justify-content:center;overflow:hidden;position:relative}.login-hero:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;border:100px solid rgba(255,255,255,.035);right:-190px;bottom:-190px}.hero-copy{position:relative;z-index:2;max-width:650px}.hero-copy .eyebrow{color:#86baff}.hero-copy h1{font-size:48px;line-height:1.25;margin:22px 0}.hero-copy>p{color:#b9d2f0;font-size:17px;line-height:1.9;max-width:590px}.hero-points{display:flex;gap:20px;color:#dbeaff;margin-top:32px}.paper-visual{height:260px;position:relative;margin-top:35px}.paper-card{position:absolute;width:340px;height:220px;border-radius:8px;background:#fff;left:12%;top:10%;box-shadow:0 22px 60px rgba(0,0,0,.18);transform:rotate(-3deg)}.paper-card.back{left:25%;top:28%;transform:rotate(6deg);opacity:.2}.paper-card.front{padding:33px}.paper-card i{display:block;width:70%;height:6px;background:#e8edf4;margin-bottom:15px;border-radius:4px}.paper-card b{position:absolute;right:30px;top:28px;color:#e44f5d;border:3px solid #e44f5d;border-radius:50%;width:55px;height:55px;display:grid;place-items:center;font-size:21px;transform:rotate(8deg)}.paper-card em{position:absolute;left:35px;bottom:30px;color:#e44f5d;font-style:normal;font-size:12px}.login-panel{display:flex;align-items:center;justify-content:center;padding:40px}.login-box{width:min(390px,100%)}.brand.dark{color:var(--ink);padding:0}.brand.dark small{color:var(--muted)}.login-heading{margin:65px 0 28px}.login-heading h2{font-size:29px}.login-heading p{color:var(--muted)}.stack-form{display:grid;gap:18px}.stack-form input{padding:12px 13px}.login-note{text-align:center;color:#97a3b2;font-size:11px;margin-top:25px}.icon-btn{border:0;background:none}.mobile-menu{display:none}.floating{position:fixed}.spacer{flex:1}
@media(max-width:1150px){.metric-grid{grid-template-columns:repeat(2,1fr)}.class-grid,.rubric-grid,.essay-grid{grid-template-columns:repeat(2,1fr)}.review-layout{grid-template-columns:1fr}.manuscript-panel{position:relative;top:auto}.page-viewer{height:650px}.mini-metrics{grid-template-columns:repeat(2,100px)}.login-hero{padding:8vh 5vw}.hero-copy h1{font-size:40px}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.main-area{margin:0;width:100%}.topbar{padding:0 16px}.mobile-menu{display:block;margin-right:10px}.content{padding:20px 15px 40px}.page-heading{align-items:flex-start;flex-direction:column}.heading-actions{width:100%;flex-wrap:wrap}.metric-grid,.metric-grid.three,.dashboard-grid,.analytics-grid,.class-grid,.rubric-grid,.essay-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.assignment-summary{flex-direction:column}.assignment-summary>div:first-child{max-width:none}.mini-metrics{grid-template-columns:repeat(4,1fr)}.mini-metrics span:first-child{border-left:0}.toolbar.compact{flex-wrap:wrap}.toolbar .spacer{display:none}.review-layout{grid-template-columns:1fr}.report-card{grid-template-columns:45px 1fr}.report-actions{grid-column:1/-1;flex-wrap:wrap}.login-shell{grid-template-columns:1fr}.login-hero{display:none}.login-panel{padding:30px}.user-menu>span:nth-child(2){display:none}.page-viewer{height:500px;min-height:400px}}
@media(max-width:520px){.metric-grid{grid-template-columns:1fr 1fr}.metric-card{padding:14px}.metric-icon{width:40px;height:40px}.metric-card b{font-size:22px}.mini-metrics{grid-template-columns:repeat(2,1fr);gap:13px}.feedback-columns{grid-template-columns:1fr}.page-viewer{height:420px}.page-pane{padding:8px}.review-heading .heading-actions{align-items:center}.title-line{align-items:flex-start;flex-direction:column}.task-row .progress,.task-row .progress-text{display:none}.repeat-row{grid-template-columns:1fr 90px 36px}}

/* 文曲智阅教师端功能对标版 */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.nav-group{display:grid;gap:3px}.nav-group-title{display:flex;gap:12px;align-items:center;padding:11px 14px;color:#d8e2f2;font-size:14px}.nav-group-title i{font-style:normal}.nav-list a.sub{padding:9px 14px 9px 45px;font-size:13px}.export-log-button{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#edf4ff;color:#1d6fe8;font-size:20px}.filter-panel{display:flex;align-items:end;gap:14px;flex-wrap:wrap;padding:18px;margin-bottom:18px}.filter-panel>label{display:grid;gap:6px;min-width:170px;font-size:13px;color:#607087}.filter-panel input,.filter-panel select{min-height:40px}.filter-actions{display:flex;gap:8px}.task-card-list{display:grid;gap:14px}.benchmark-task-card{padding:20px}.task-card-head,.task-card-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-card-head>div{display:flex;align-items:center;gap:10px}.task-card-head h2{font-size:18px;margin:0}.task-meta{color:#738197;margin:9px 0 16px}.task-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));background:#f7f9fc;border-radius:12px;margin-bottom:15px}.task-progress-grid span{display:grid;text-align:center;padding:12px;border-right:1px solid #e5eaf1}.task-progress-grid span:last-child{border:0}.task-progress-grid b{font-size:22px}.task-progress-grid small{color:#78869a}.task-card-actions{justify-content:flex-end}.action-menu{position:relative}.action-menu summary{list-style:none;cursor:pointer}.action-menu>div{position:absolute;right:0;top:42px;z-index:20;display:grid;min-width:150px;padding:7px;background:#fff;border:1px solid #e1e7ef;border-radius:10px;box-shadow:0 12px 30px #1b2c461c}.action-menu a,.action-menu button{display:block;width:100%;padding:9px 11px;border:0;background:none;text-align:left;color:#27364a;font:inherit;cursor:pointer;border-radius:7px}.action-menu a:hover,.action-menu button:hover{background:#f2f6fb}.benchmark-create{width:min(980px,94vw);max-height:88vh;overflow:auto}.form-section{padding:14px 0;border-bottom:1px solid #e8edf3}.form-section h3{margin:0 0 12px;font-size:15px;color:#1d6fe8}.form-grid.three{grid-template-columns:repeat(3,1fr)}.status-tabs{display:flex;gap:7px;overflow:auto;margin-bottom:14px}.status-tabs a{white-space:nowrap;padding:9px 12px;border-radius:8px;color:#607087}.status-tabs a.active{background:#1d6fe8;color:#fff}.assignment-filters{margin-bottom:14px}.detail-list{display:grid;grid-template-columns:110px 1fr;gap:12px}.detail-list dt{font-weight:700;color:#607087}.detail-list dd{margin:0}.upload-tabs{display:flex;gap:6px;margin-bottom:14px}.upload-tabs button{border:0;background:transparent;padding:11px 22px;border-radius:8px;font:inherit;cursor:pointer}.upload-tabs button.active{background:#1d6fe8;color:#fff}.upload-tab-pane{display:none}.upload-tab-pane.active{display:block}.upload-workspace{display:grid;grid-template-columns:280px 1fr;gap:16px}.student-picker,.single-upload-form,.batch-upload-panel{padding:20px}.student-pick-list{display:grid;gap:7px;max-height:560px;overflow:auto;margin-top:12px}.student-pick{border:1px solid #e2e8f0;background:#fff;border-radius:9px;padding:10px;text-align:left;display:grid;gap:3px;cursor:pointer}.student-pick small{color:#78869a}.student-pick.active{border-color:#1d6fe8;background:#edf5ff}.student-pick.submitted{border-left:4px solid #8f9caf}.single-upload-form{min-height:520px}.batch-upload-panel{display:grid;gap:16px}.batch-upload-panel ol{line-height:1.9;color:#596a80}.batch-upload-buttons{display:flex;gap:10px;flex-wrap:wrap}.batch-drop{min-height:180px}.mock-only{margin-top:14px}.toolbar form{display:flex;gap:7px}.actions form{display:inline}.growth-selector{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.growth-selector label{display:grid;gap:5px}.report-tabs,.excellent-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.report-tabs a,.excellent-tabs a{padding:10px 14px;border-radius:9px;background:#f1f5fa;color:#536379}.report-tabs a.active,.excellent-tabs a.active{background:#1d6fe8;color:#fff}.outline-grid{display:grid;gap:10px}.outline-row{border-left:3px solid #1d6fe8;padding:10px 12px;background:#f6f9fd;border-radius:0 9px 9px 0}.word-cloud{display:flex;flex-wrap:wrap;gap:8px}.word-cloud span{padding:7px 10px;border-radius:999px;background:#fff5e5;color:#a86900}.class-invite-code{display:flex;gap:6px}.class-invite-code b{letter-spacing:4px;font-size:24px}.export-table td small{display:block;color:#8090a5}
@media(max-width:900px){.form-grid.three{grid-template-columns:1fr 1fr}.upload-workspace{grid-template-columns:1fr}.student-picker{max-height:300px}.task-progress-grid{grid-template-columns:1fr 1fr}.task-progress-grid span:nth-child(2){border-right:0}}
@media(max-width:600px){.form-grid.three{grid-template-columns:1fr}.task-card-head{align-items:flex-start}.task-card-head>div{align-items:flex-start;flex-direction:column}.filter-panel>label{width:100%}.task-card-actions{justify-content:stretch}.task-card-actions>.btn{flex:1}}
[hidden] { display: none !important; }

/* Reference-compatible task creation dialog. */
.target-create-dialog{width:min(1090px,94vw);height:min(930px,92vh);border-radius:12px;overflow:hidden}.target-create-form{height:100%;display:grid;grid-template-rows:58px 1fr 68px;background:#fff}.target-create-form>header,.target-create-form>footer{display:flex;align-items:center;padding:0 24px;background:#fff}.target-create-form>header{justify-content:space-between;border-bottom:1px solid #e7eaee}.target-create-form>header h2{margin:0;font-size:19px}.target-create-form>header button{border:0;background:none;color:#888;font-size:25px}.target-create-form>footer{justify-content:flex-end;gap:10px;border-top:1px solid #e7eaee}.target-create-scroll{overflow-y:auto;padding:14px 28px 28px}.target-create-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:42px}.target-create-row{min-height:57px;display:grid;grid-template-columns:105px minmax(0,1fr);align-items:center;gap:8px;margin:0}.target-create-row.full{grid-template-columns:105px minmax(0,1fr)}.target-create-row>b{font-size:13px;text-align:right;white-space:nowrap}.target-create-row>b i{color:#ff574f;font-style:normal}.target-create-row input[type=text],.target-create-row input[type=number],.target-create-row>input,.target-create-row select,.target-create-row textarea,.counted-field>input{width:100%;border:1px solid #d9dfe4;border-radius:6px;background:#fff;padding:9px 12px;outline:none}.target-create-row input:focus,.target-create-row select:focus,.target-create-row textarea:focus{border-color:#1fc7a7;box-shadow:0 0 0 2px rgba(31,199,167,.1)}.field-body{min-width:0}.radio-line{display:flex;align-items:center;gap:26px;flex-wrap:wrap}.radio-line label{display:flex;align-items:center;gap:6px;white-space:nowrap}.radio-line input{accent-color:#1fc7a7;width:17px;height:17px}.radio-line small{flex-basis:100%;margin:-13px 0 0 1px}.topic-radios small{display:none}.chip-line{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.chip-line label input{position:absolute;opacity:0;pointer-events:none}.chip-line label span{display:inline-flex;padding:7px 12px;border:1px solid transparent;border-radius:5px;background:#fafafa;color:#777}.chip-line label input:checked+span{border-color:#1fc7a7;background:#f1fffb;color:#13ae91}.inline-action{border:0;background:none;color:#17b99b;font-size:12px;padding:4px 7px;white-space:nowrap}.select-with-action{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px}.counted-field{position:relative;display:block}.counted-field small{position:absolute;right:11px;bottom:8px;font-size:11px;color:#6f7880}.counted-field>input{padding-right:56px}.counted-field textarea{padding-bottom:26px}.requirements-row{align-items:start;margin-top:6px}.requirements-row>b{padding-top:11px}.requirements-row>b .inline-action{display:block;margin:4px 0 0 auto}.polish-grid{margin-top:7px}.length-switch{min-height:57px;display:grid;grid-template-columns:1fr auto;align-content:center;gap:5px 10px;font-size:12px}.length-switch small{grid-column:1/-1;color:#ff5e52}.target-switch{position:relative;width:42px;height:23px}.target-switch input{position:absolute;opacity:0}.target-switch i{display:block;width:42px;height:23px;border-radius:14px;background:#d7dce0;transition:.18s}.target-switch i:after{content:"";display:block;width:19px;height:19px;margin:2px;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0002;transition:.18s}.target-switch input:checked+i{background:#1fc7a7}.target-switch input:checked+i:after{transform:translateX(19px)}.extra-polish-row{align-items:start}.extra-polish-row>b{padding-top:11px}.small-reference-dialog{width:min(720px,90vw)}.paper-reference-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:24px}.paper-reference-grid figure{margin:0;text-align:center}.paper-sheet{height:190px;border:1px solid #b9d2cb;background-color:#fff;background-image:linear-gradient(#d7e5e0 1px,transparent 1px),linear-gradient(90deg,#d7e5e0 1px,transparent 1px);background-size:16px 16px;box-shadow:0 6px 18px #243b4930}.paper-sheet.two{background-image:linear-gradient(90deg,transparent 49.5%,#44b99c 49.5%,#44b99c 50.5%,transparent 50.5%),linear-gradient(#d7e5e0 1px,transparent 1px),linear-gradient(90deg,#d7e5e0 1px,transparent 1px)}.paper-sheet.three{background-image:linear-gradient(90deg,transparent 32.8%,#44b99c 32.8%,#44b99c 33.5%,transparent 33.5%,transparent 66%,#44b99c 66%,#44b99c 66.7%,transparent 66.7%),linear-gradient(#d7e5e0 1px,transparent 1px),linear-gradient(90deg,#d7e5e0 1px,transparent 1px)}.paper-reference-grid figcaption{padding-top:9px;font-weight:700}.reference-copy{padding:22px 25px;line-height:1.75}.reference-copy h3{margin-top:0}.reference-copy p{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid #edf0f1}.reference-copy p:last-child{border:0}.reference-copy p b{color:#273841}
@media(max-width:800px){.target-create-grid{grid-template-columns:1fr}.target-create-row,.target-create-row.full{grid-template-columns:92px minmax(0,1fr)}.target-create-scroll{padding:12px}.length-switch{padding-left:100px}.paper-reference-grid{grid-template-columns:1fr}.paper-sheet{height:250px}}

.date-range-filter > span { display: flex; align-items: center; gap: 8px; }
.date-range-filter > span i { color: #98a2b3; font-style: normal; }
.date-range-filter input { min-width: 142px; }
.metric-grid.six { grid-template-columns: repeat(6, minmax(0, 1fr)); }

@media (max-width: 1300px) {
  .metric-grid.six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .metric-grid.six { grid-template-columns: 1fr; }
  .date-range-filter > span { align-items: stretch; flex-direction: column; }
}

/* Teacher benchmark skin and complete task/review workspaces. */
:root{--blue:#1fc7a7;--blue2:#10ad90;--green:#1fc7a7;--bg:#eef2f6;--shadow:0 4px 16px rgba(30,69,83,.06)}
.sidebar{background:linear-gradient(180deg,#45d5b2 0%,#2ccbad 100%);padding-left:20px;padding-right:20px}.brand-mark{background:rgba(255,255,255,.22);box-shadow:none;border:2px solid rgba(255,255,255,.25)}.brand small,.sidebar-help p{color:rgba(255,255,255,.78)}.nav-list a,.nav-group-title{color:rgba(255,255,255,.92)}.nav-list a:hover,.nav-list a.active{background:#fff;color:#20b99b}.nav-list a.active{box-shadow:none}.nav-list a.sub{color:rgba(255,255,255,.92)}.sidebar-help{border-color:rgba(255,255,255,.25);background:rgba(255,255,255,.12)}
.content{max-width:1800px}.card{box-shadow:none}.btn.primary{box-shadow:0 4px 10px rgba(31,199,167,.22)}input[type=range]{accent-color:#1fc7a7}.async-upload-tip{font-size:12px;color:#77879a;margin:12px 0}.upload-zone.dragging{border-color:#1fc7a7;background:#ecfffa}

/* Assignment detail */
.target-detail-page{display:grid;gap:14px}.task-detail-hero{padding:18px 24px;display:flex;align-items:center;justify-content:space-between}.task-detail-hero h1{font-size:20px}.task-detail-hero p{display:flex;gap:10px;color:#697786;margin:8px 0}.task-detail-hero p i{font-style:normal}.tag.mint{background:#e4fbf5;color:#13ad8f}.eye-link{color:#16b99b;font-size:13px}.target-outline{border-color:#1fc7a7;color:#15b597;background:#fff}.target-outline:hover{border-color:#10a98d;background:#edfffb}.detail-control-card{padding:18px 24px}.target-status-tabs{display:flex;align-items:center;overflow:auto;margin-bottom:14px}.target-status-tabs a{padding:8px 15px;border:1px solid #dde3e7;border-right:0;color:#586471;white-space:nowrap}.target-status-tabs a:first-child{border-radius:8px 0 0 8px}.target-status-tabs a:last-child{border-right:1px solid #dde3e7;border-radius:0 8px 8px 0}.target-status-tabs a.active{background:#1fc7a7;color:#fff;border-color:#1fc7a7}.target-status-tabs b{font:inherit}.target-filter-row{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.target-filter-row label{display:flex;align-items:center;gap:8px}.target-filter-row label b{font-size:13px}.target-filter-row input:not([type=checkbox]),.target-filter-row select{border:1px solid #d8e0e5;border-radius:7px;padding:9px 11px;min-width:180px;background:#fff}.target-filter-row .inline-check{align-self:center}.target-filter-row input[type=checkbox]{width:18px;height:18px}.target-toolbar{display:flex;gap:9px;align-items:center;padding:12px 20px;overflow:auto}.target-toolbar form{display:flex;gap:9px}.target-table-card{overflow:hidden;min-height:380px}.target-table-wrap{overflow:auto;padding:0 20px 20px}.target-table-wrap th{font-size:13px;text-transform:none;background:#f5f6f7;color:#303740;padding:14px 12px}.target-table-wrap td{padding:15px 12px}.table-sort{color:#303740}.table-sort span{color:#aeb5bc;font-size:11px}.target-status{display:inline-flex;align-items:center;gap:6px;color:#4b5661;white-space:nowrap}.target-status:before{content:"";width:8px;height:8px;border-radius:2px;background:#bfc5cb}.target-status.reviewed:before{background:#20c7a8}.target-status.pending_review:before{background:#5aa6ff}.target-status.reviewing:before,.target-status.waiting:before{background:#f2ae3b}.target-status.failed:before{background:#f45b69}.target-status.unsubmitted:before{background:#d3d8dd}.target-score{color:#19b79a;font-size:16px}.target-actions{display:flex;gap:10px;align-items:center;color:#15b99b}.target-actions a,.target-actions .link{color:#15b99b;font-size:13px}.target-actions form{display:inline}.mini-label{font-size:9px;border-radius:4px;padding:2px 4px;margin-left:4px}.mini-label.purple{color:#9565d8;background:#f0e8ff}.mini-label.blue{color:#438ce8;background:#e9f3ff}.target-info-modal{width:min(780px,92vw)}.target-detail-list{display:grid;grid-template-columns:110px 1fr 110px 1fr;gap:0;margin:0;padding:10px 22px 20px;max-height:65vh;overflow:auto}.target-detail-list dt,.target-detail-list dd{padding:10px;border-bottom:1px solid #edf0f2}.target-detail-list dt{color:#7a8793}.target-detail-list dd{margin:0;font-weight:600}

/* Review workspace */
.target-review-page{display:grid;gap:12px}.target-review-page:fullscreen{background:#eef2f6;padding:12px;overflow:auto}.review-commandbar{min-height:60px;padding:10px 14px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center}.review-commandbar .heading-actions{justify-content:flex-end}.review-sequence{display:flex;align-items:center;gap:12px}.review-sequence>span{min-width:200px;display:flex;align-items:center;justify-content:center;gap:10px;background:#fafafa;border-radius:25px;padding:6px 18px}.review-sequence b{font-size:19px}.review-sequence em{font-style:normal;color:#ff6b74;background:#fff0f1;padding:4px 10px;border-radius:15px}.review-sequence em.reviewed{color:#15b597;background:#e4fbf5}.review-sequence em.pending{color:#ff6b74;background:#fff0f1}.review-commandbar .heading-actions form{display:contents}.review-sequence small{display:inline}.ai-disclosure{font-size:12px;color:#8b949e}.review-meta-toolbar{min-height:46px;padding:6px 12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.mark-tools{display:flex;align-items:center;gap:7px}.mark-tool,.mark-help{height:34px;min-width:39px;border:0;border-radius:8px;background:#f7f8f8;font-size:19px;color:#4e565c}.mark-tool:hover,.mark-tool.active{background:#e2faf5;color:#10a98d}.mark-help{border-radius:50%;min-width:30px;width:30px;border:1px solid #535c62;background:#fff;font-size:14px}.review-flags{display:flex;gap:28px}.review-flags label,.switch-line{display:flex;align-items:center;gap:7px}.review-flags input,.switch-line input{width:18px;height:18px}.review-workbench{display:grid;grid-template-columns:minmax(520px,1.05fr) minmax(600px,1fr);gap:12px;height:calc(100vh - 225px);min-height:680px}.manuscript-workspace{overflow:hidden;display:grid;grid-template-rows:auto 1fr}.manuscript-workspace .page-tabs{background:#fff}.target-page-viewer{height:auto;min-height:0;overflow:hidden;background:#eef0f2}.target-page-viewer .page-pane{position:relative;padding:12px;overflow:auto}.target-page-viewer .page-pane.active{display:block}.manuscript-stage{position:relative;width:max-content;max-width:100%;height:100%;margin:auto}.manuscript-stage img{display:block;max-width:100%;height:100%;max-height:none;object-fit:contain}.manuscript-stage iframe{width:700px;max-width:100%;height:100%}.mark-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.mark-layer.drawing{pointer-events:auto;cursor:crosshair}.annotation-pin{position:absolute;z-index:4;border:0;width:28px;height:28px;border-radius:50%;background:rgba(68,70,70,.75);color:#fff}.page-tools{z-index:6}.review-analysis{display:grid;grid-template-columns:68px 1fr;grid-template-rows:1fr auto;overflow:hidden}.review-section-rail{grid-row:1/-1;padding:10px 5px;background:#fafbfb;border-right:1px solid #eef0f1;display:flex;flex-direction:column;gap:15px}.review-section-rail button{border:0;background:none;display:grid;gap:5px;place-items:center;color:#8a939a;padding:8px 2px;font-size:11px;border-radius:8px}.review-section-rail button span{font-size:24px}.review-section-rail button.active{color:#15b99b;background:#eafbf7}.review-analysis-scroll{overflow-y:auto;scroll-behavior:smooth}.review-section{padding:17px 18px;border-bottom:12px solid #f2f4f5;scroll-margin-top:8px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-title h2,.section-title h3{margin:0}.section-title>span{color:#19b99a}.total-score-control{padding:10px 16px 14px}.total-score-control>div:first-child{display:flex;align-items:center;gap:10px}.total-score-control b{font-size:38px;color:#19bd9e;margin-left:auto}.total-score-control .link{margin-left:auto;color:#19b99a}.total-slider-row{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;gap:10px}.total-slider-row input{width:100%}.circle-button{border:1px solid #d7dcdf;background:#fff;width:25px;height:25px;border-radius:50%;padding:0}.target-score-fields{background:#fafafa;border-radius:10px;padding:7px 14px;display:grid;grid-template-columns:1fr 1fr;column-gap:25px}.target-score-fields>label{display:grid;grid-template-columns:1fr;gap:5px;padding:9px 0}.target-score-fields label>span:first-child{display:flex;justify-content:space-between}.target-score-fields label b{font-size:13px}.target-score-fields label small{display:inline;color:#919aa1;font-size:10px}.dimension-slider{display:flex;align-items:center;gap:8px}.dimension-slider input{flex:1;min-width:80px}.dimension-slider em{white-space:nowrap;font-size:11px;color:#20ba9d;font-style:normal}.deduction-row .dimension-slider em{color:#ff5b67}.summary-counts{padding:16px 0}.summary-counts h3{margin:0 0 12px}.summary-counts>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;background:#fbfbfb;padding:13px;border-radius:10px}.summary-counts span{font-weight:600}.cyan{color:#4b9ee7}.green{color:#19b99a}.red{color:#f45d65}.orange{color:#e99b2d}.purple{color:#9864e0}.teacher-comment textarea,.outline-block textarea,.polish-editor{width:100%;border:1px solid #e1e5e8;border-radius:9px;padding:12px;line-height:1.65;resize:vertical;background:#fff}.icon-edit,.icon-delete{border:0;background:#fff;color:#7a858d}.outline-block{background:#fafafa;border-radius:10px;padding:12px;margin:12px 0}.outline-block h3{margin:0 0 10px}.outline-block label{display:grid;gap:5px;margin-top:8px;color:#77818a;font-size:12px}.target-annotation-list{display:grid;gap:8px;margin-top:12px}.target-annotation-list article{display:grid;grid-template-columns:30px auto 1fr auto;gap:10px;align-items:start;border:1px solid #e7e9eb;border-radius:9px;padding:11px}.target-annotation-list article.highlight{box-shadow:0 0 0 3px rgba(31,199,167,.2);border-color:#20c7a8}.annotation-number{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#6e7579;color:#fff}.target-annotation-list p{margin:4px 0;line-height:1.6}.target-annotation-list small{color:#17ad52}.annotation-actions{display:flex}.polish-settings{color:#8a949b;font-size:11px}.polished-article{line-height:1.9;padding:16px 18px;background:#fafafa;border-radius:10px;min-height:180px;text-align:justify}.polished-article p{margin:0 0 10px;text-indent:2em;white-space:normal}.polished-article p:last-child{margin-bottom:0}.polished-article .polish-title{text-indent:0;text-align:center;font-weight:700;margin-bottom:14px}.review-savebar{grid-column:2;padding:10px 14px;border-top:1px solid #e4e7e9;display:flex;justify-content:flex-end;gap:10px;background:#fff}.processing-banner{margin:0}.report-preview-layout{display:grid;grid-template-columns:minmax(520px,1fr) minmax(420px,.8fr);gap:18px}.report-manuscript{padding:20px}.report-page{background:#e7eaed;padding:16px;margin-top:12px;text-align:center}.report-page-stage{position:relative;display:inline-block;max-width:100%;line-height:0}.report-page-stage img{display:block;max-width:100%;max-height:900px}.report-marker{position:absolute;transform:translate(-50%,-50%);width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#50575bcc;color:#fff;line-height:1}.report-marker.typo,.report-marker.grammar,.report-marker.punctuation{background:#ef5b65}.report-marker.good_sentence,.report-marker.praise,.report-marker.paragraph{background:#18b88b}.report-sections{display:grid;gap:14px}.report-sections>.card{padding:18px}.report-comment{border-bottom:1px solid #eceff1;padding:10px 0}.score-total.compact b{color:#1fc7a7}.async-upload-tip{font-size:12px;color:#7b8790}

@media(max-width:1300px){.review-workbench{grid-template-columns:minmax(440px,.9fr) minmax(520px,1fr)}.target-score-fields{grid-template-columns:1fr}.review-flags{gap:10px}.mark-tools{overflow:auto}.report-preview-layout{grid-template-columns:1fr}}
@media(max-width:1000px){.review-workbench{height:auto;grid-template-columns:1fr}.manuscript-workspace{height:720px}.review-analysis{min-height:750px}.review-commandbar{grid-template-columns:1fr}.review-commandbar>*{justify-self:center}.target-filter-row{align-items:stretch;flex-direction:column}.target-filter-row label{justify-content:space-between}.task-detail-hero{align-items:flex-start;gap:15px;flex-direction:column}.target-detail-list{grid-template-columns:100px 1fr}.target-toolbar .spacer{display:none}.review-meta-toolbar{align-items:flex-start;flex-direction:column}.review-flags{padding:6px}}
.target-review-page .page-tools{display:none}
.teacher-top-tabs{height:43px;background:#fff;border-bottom:1px solid #e2e7e9;display:flex;align-items:stretch;justify-content:center;overflow:auto;padding:0 18px;position:sticky;top:70px;z-index:11}.teacher-top-tabs a{min-width:132px;padding:12px 22px;text-align:center;color:#333;border-right:1px solid #ededed;white-space:nowrap;position:relative}.teacher-top-tabs a:last-child{border-right:0}.teacher-top-tabs a.active{color:#17b99a}.teacher-top-tabs a.active:after{content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;background:#1fc7a7}.target-review-page{margin-top:-6px}
@media(max-width:800px){.teacher-top-tabs{top:70px;justify-content:flex-start}.teacher-top-tabs a{min-width:112px}.content{padding-top:18px}}

/* Review parity: exact annotation toolbox, linked sentence comments and a
   continuous multi-page manuscript scroller. */
.review-commandbar>a:first-child{justify-self:start}.review-meta-toolbar{position:relative;z-index:8}.mark-tools{min-width:0}.mark-tool[hidden],.mark-help[hidden]{display:none!important}.mark-tool:disabled{opacity:.35}.mark-cancel-mode{min-width:74px!important;font-size:13px!important;color:#68737b!important}.tool-glyph{display:inline-grid;place-items:center;line-height:1;font-size:19px;min-width:25px;height:22px}.tool-glyph.correction{position:relative;grid-template-columns:repeat(2,15px);gap:-2px}.tool-glyph.correction i{display:block;width:16px;height:9px;border:2px solid currentColor;border-radius:7px}.tool-glyph.correction i+ i{transform:translate(-4px,8px)}.tool-glyph.waves{font-size:28px;transform:rotate(90deg) scaleX(.72)}.tool-glyph.double-dash{font-size:11px;line-height:.55;text-decoration:underline dashed;text-underline-offset:5px;letter-spacing:1px}.tool-glyph.double-line{font-size:22px}.tool-glyph.dots{letter-spacing:3px}.tool-glyph.deletion{font-size:24px;text-decoration:line-through wavy}.tool-glyph.transpose{font-size:26px;font-weight:300}.tool-glyph.insertion{font-size:28px;transform:translateY(-3px)}.tool-glyph.text{font-family:Georgia,serif;font-weight:700}
.mark-editor-popover{position:fixed;z-index:80;width:310px;background:#fff;border:1px solid #dce2e5;border-radius:10px;padding:12px;box-shadow:0 14px 38px rgba(24,47,55,.2)}.mark-editor-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.mark-editor-heading b{font-size:14px}.mark-editor-heading span{font-size:10px;color:#929ba1}.mark-editor-input-row{display:block}.mark-editor-input-row input{width:100%;border:1px solid #d8dfe3;border-radius:7px;padding:9px 10px;outline:none}.mark-editor-input-row input:focus{border-color:#1fc7a7;box-shadow:0 0 0 3px rgba(31,199,167,.12)}.mark-editor-typo{display:flex;align-items:center;gap:6px;margin-top:9px;font-size:12px}.mark-editor-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:11px}.mark-help-copy{padding:16px 22px;color:#5d6971;line-height:1.75}.mark-help-copy p{margin-bottom:10px}.mark-help-copy dl{display:grid;grid-template-columns:110px 1fr;gap:7px 12px;margin:10px 0}.mark-help-copy dt{font-weight:700;color:#27363f}.mark-help-copy dd{margin:0}
.manuscript-workspace{display:block;overflow:hidden;min-height:0}.continuous-page-viewer{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 34px;background:#e9ecef;scrollbar-gutter:stable}.continuous-page{max-width:780px;margin:0 auto;background:#fff;border-radius:4px;box-shadow:0 4px 18px rgba(36,50,58,.14);overflow:hidden}.continuous-page+.continuous-page{margin-top:24px}.continuous-page-label{height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;background:#f8faf9;border-bottom:1px solid #e2e6e4;color:#4c575e}.continuous-page-label span{font-weight:700}.continuous-page-label small{font-size:10px;max-width:65%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.continuous-page .manuscript-stage{position:relative;width:100%;max-width:none;height:auto;min-height:120px;margin:0;background:#fff}.continuous-page .manuscript-stage img{display:block;width:100%;height:auto;max-width:none;max-height:none;object-fit:contain;background:#fff}.continuous-page .manuscript-stage iframe{display:block;width:100%;height:980px;border:0;background:#fff}.continuous-page .mark-layer{position:absolute;inset:0;width:100%;height:100%;z-index:3;pointer-events:none}.continuous-page .mark-layer.drawing{pointer-events:auto;touch-action:none;cursor:crosshair}.mark-number-badge{pointer-events:all;cursor:pointer}.mark-number-badge:hover circle{fill:#18ae92}.annotation-pin{pointer-events:auto}.review-analysis{min-height:0}.review-rail-steps{display:grid;grid-template-columns:1fr 1fr;gap:2px;padding-bottom:4px;border-bottom:1px solid #edf0ef}.review-rail-steps button{font-size:16px!important;padding:3px!important;color:#88939a!important}.review-analysis-scroll{overscroll-behavior:contain}.target-annotation-list [data-live-tool-annotations]{display:contents}.target-annotation-list article[hidden]{display:none!important}.annotation-kind.correction,.annotation-kind.typo,.annotation-kind.grammar,.annotation-kind.deletion,.annotation-kind.punctuation{background:#fff0f1;color:#ed5963}.annotation-kind.good_sentence,.annotation-kind.good_word{background:#e7faf2;color:#14a86a}.annotation-kind.polish,.annotation-kind.text,.annotation-kind.paragraph{background:#eaf3ff;color:#3c83dd}.annotation-kind.transpose,.annotation-kind.insertion{background:#fff5e5;color:#d98724}.target-annotation-list article[data-live-annotation]{border-color:#cdeee6;background:#fbfffe}.target-annotation-list article[data-live-annotation]:after{content:"未保存";position:absolute;right:9px;bottom:4px;font-size:9px;color:#23b89b}.target-annotation-list article{position:relative}.target-annotation-list .empty{padding:28px 12px}.continuous-page-viewer::-webkit-scrollbar,.review-analysis-scroll::-webkit-scrollbar{width:9px}.continuous-page-viewer::-webkit-scrollbar-thumb,.review-analysis-scroll::-webkit-scrollbar-thumb{background:#b8c0c3;border-radius:10px;border:2px solid transparent;background-clip:padding-box}
@media(max-width:1300px){.continuous-page{max-width:720px}.continuous-page .manuscript-stage iframe{height:880px}}
@media(max-width:1000px){.continuous-page-viewer{height:720px}.manuscript-workspace{height:720px}.mark-editor-popover{width:min(310px,calc(100vw - 24px))}}

/* Fine-grained manuscript annotations: match the benchmark's compact inline
   editor and its movable, horizontally-resizable selection frame. */
.mark-editor-popover{width:min(250px,calc(100vw - 24px));border-radius:7px;padding:8px;box-shadow:0 7px 20px rgba(24,47,55,.2)}
.mark-editor-popover:not([hidden]){display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px}
.mark-editor-popover:before{content:"";position:absolute;left:50%;top:-7px;width:12px;height:12px;background:#fff;border-left:1px solid #dce2e5;border-top:1px solid #dce2e5;transform:translateX(-50%) rotate(45deg)}
.mark-editor-heading{display:none}
.mark-editor-input-row{display:block;grid-column:1/-1}
.mark-editor-input-row input{height:34px;padding:7px 9px;border-radius:6px}
.mark-editor-typo{display:flex;align-items:center;gap:5px;margin:0;font-size:12px;white-space:nowrap}
.mark-editor-actions{display:flex;justify-content:flex-end;gap:5px;margin:0}
.mark-editor-actions .btn{padding:6px 8px;border-radius:5px}
.mark-editor-popover:has(.mark-editor-typo[hidden]) .mark-editor-actions{grid-column:1/-1}
.mark-layer [data-select-mark]{pointer-events:all;cursor:pointer}
.mark-transform-box{position:absolute;z-index:6;border:1px solid rgba(244,91,101,.55);pointer-events:auto;min-width:14px;min-height:12px}
.mark-transform-box .move{position:absolute;inset:0;cursor:move;background:rgba(244,91,101,.035)}
.mark-transform-box .dot{position:absolute;top:50%;width:9px;height:9px;margin-top:-4.5px;border:1.5px solid #f45b65;border-radius:50%;background:#fff;cursor:ew-resize;z-index:2}
.mark-transform-box .dot.lm{left:-5px}
.mark-transform-box .dot.rm{right:-5px}

/* Benchmark SVG toolbar and AI-generated planning/polish sections. */
.mark-tool{width:40px;min-width:40px;height:28px;padding:2px 8px;border-radius:7px}
.mark-tool .tool-svg{display:block;width:24px;height:24px;overflow:visible}
.mark-tool.mark-cancel-mode{width:auto;height:34px;padding:5px 12px}
.outline-header-actions{display:flex;align-items:center;gap:12px}
.outline-group{margin:14px 0 20px}
.outline-group>h3{margin:0 0 9px;font-size:16px}
.outline-middle-item+.outline-middle-item{margin-top:13px;padding-top:13px;border-top:1px solid #edf0ef}
.outline-middle-item>h4{margin:0 0 8px;font-size:13px;color:#4b555c}
.outline-card{position:relative;margin-top:8px;border:1px solid #e7eae9;border-radius:8px;background:#fafbfb;padding:10px 12px}
.outline-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;color:#68747b}
.outline-card-head b{font-size:12px;color:#17b999}
.outline-card-head .icon-edit{background:transparent}
.outline-card textarea{display:block;width:100%;min-height:52px;padding:0;border:0;background:transparent;resize:none;line-height:1.75;color:#333;outline:none}
.outline-card textarea[readonly]{cursor:default}
.outline-card.editing{border-color:#20c7a8;background:#fff;box-shadow:0 0 0 2px rgba(31,199,167,.1)}
.outline-card.editing textarea{resize:vertical}
.target-annotation-list article[data-review-tool-uuid]{cursor:pointer;transition:border-color .18s,box-shadow .18s,background .18s}.target-annotation-list article.active-mark{border-color:#19c5a5;background:#effdf9;box-shadow:0 0 0 3px rgba(25,197,165,.15)}.mark-layer [data-mark-active="1"]{filter:drop-shadow(0 0 4px rgba(20,166,139,.55))}
.report-view-dialog{width:min(755px,92vw);height:min(850px,90vh);padding:0;border:0;border-radius:12px;overflow:hidden;background:#fff}.report-view-dialog::backdrop{background:rgba(23,37,43,.58)}.report-view-shell{height:100%;display:grid;grid-template-rows:58px 1fr}.report-view-shell>header{display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #e7ebed;background:#fff}.report-view-shell>header>div{display:flex;align-items:center;gap:12px}.report-view-shell h2{margin:0;font-size:18px}.report-view-shell header span{font-size:11px;color:#90999f}.report-view-shell header button{border:0;background:none;font-size:25px;color:#7c868c}.report-view-shell iframe{width:100%;height:100%;border:0;background:#eef1f2}.embedded-report-body{margin:0;padding:18px;background:#eef1f2;color:#263640}.embedded-report-body main{max-width:1080px;margin:auto}.embedded-report-title{padding:16px 22px;margin-bottom:14px;background:#fff;border-radius:9px}.embedded-report-title h1{margin:0 0 7px;font-size:21px}.embedded-report-title p{margin:0;color:#718088}
.ai-generation-status{display:flex;align-items:center;gap:10px;margin:12px 0;padding:11px 13px;border:1px solid #ccefe7;border-radius:8px;background:#f2fffb;color:#278d79}
.ai-generation-status .spinner{width:20px;height:20px;flex:0 0 auto}
.ai-generation-status b{display:block;margin-bottom:3px}
.ai-generation-status small{font-size:11px}
.ai-section-empty{padding:22px;border:1px dashed #cfe8e2;border-radius:8px;text-align:center;color:#80908b;background:#fbfffe}
.ai-section-empty p{margin:6px 0 0;font-size:12px}
.polish-student-switch{margin:12px 0}

/* Composition manager parity. */
.composition-manager{padding:16px 18px 12px;min-height:calc(100vh - 150px);display:grid;grid-template-rows:auto auto minmax(420px,1fr) auto;gap:12px}.composition-filters{display:grid;grid-template-columns:190px minmax(250px,1fr) minmax(390px,1.45fr) 210px;gap:12px 24px;align-items:center}.composition-filters>label{display:flex;align-items:center;gap:10px;white-space:nowrap;color:#333;font-size:13px}.composition-filters input,.composition-filters select{min-width:0;height:38px;border:1px solid #d8dfe2;border-radius:5px;background:#fff;padding:0 11px;color:#58636a}.composition-filters>label>input,.composition-filters>label>select{flex:1}.composition-filters .date-range-filter>span{flex:1;height:38px;border:1px solid #d8dfe2;border-radius:5px;padding:0 7px}.composition-filters .date-range-filter input{height:34px;min-width:0;width:46%;border:0;text-align:center;padding:0 3px}.composition-filters .filter-actions{grid-column:2;display:flex;gap:9px}.composition-filters .filter-actions .btn{height:38px;padding:0 18px;border-radius:5px}.composition-toolbar{display:flex;align-items:center;justify-content:space-between}.composition-toolbar>.btn{border-radius:5px}.task-view-toggle{display:flex;border:1px solid #eef0f1;border-radius:5px;background:#fff;overflow:hidden}.task-view-toggle button{width:43px;height:34px;border:0;background:#fff;color:#4d555a;font-size:19px}.task-view-toggle button.active{color:#1dc0a1;background:#fbfffe}.composition-task-stage{min-height:510px;padding:14px;border-radius:10px;background:#f3f6f6}.composition-task-stage .task-card-list{display:grid;grid-template-columns:minmax(500px,680px);align-content:start}.composition-task-stage.list-view .task-card-list{grid-template-columns:1fr}.benchmark-task-card{padding:17px 16px 0;border:0;border-radius:10px}.benchmark-task-card .task-card-head{align-items:center}.benchmark-task-card .task-card-head>div{min-width:0}.benchmark-task-card .task-card-head h2{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.benchmark-task-card .task-card-head>b{font-size:13px;white-space:nowrap}.task-note-icon{color:#7e898d}.benchmark-task-card .task-meta{display:flex;align-items:center;gap:11px;margin:7px 0 14px;color:#7c878d;font-size:12px}.benchmark-task-card .task-meta i{width:1px;height:12px;background:#e2e5e6}.benchmark-task-card .task-progress-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:transparent;margin:0 0 13px}.benchmark-task-card .task-progress-grid>span{min-height:76px;padding:10px;border:0;border-radius:8px;background:#fafafa;display:flex;align-items:center;gap:10px;text-align:left}.benchmark-task-card .task-progress-grid>span>i{display:grid;place-items:center;width:43px;height:43px;border-radius:50%;font-style:normal;font-weight:700}.benchmark-task-card .task-progress-grid>span>span{display:grid;padding:0;border:0;text-align:left}.benchmark-task-card .task-progress-grid small{font-size:12px;color:#667177}.benchmark-task-card .task-progress-grid b{font-size:20px;line-height:1.15;color:#4c5660}.benchmark-task-card .unsubmitted>i{background:#f2eaff;color:#b77bf0}.benchmark-task-card .unsubmitted b{color:#a869ed}.benchmark-task-card .ai-reviewed>i{background:#e6f5ff;color:#4ea9e9}.benchmark-task-card .ai-reviewed b{color:#35a2e9}.benchmark-task-card .pending-review>i{background:#fff2e5;color:#ef9945}.benchmark-task-card .pending-review b{color:#ed942f}.benchmark-task-card .student-count>i{background:#e5f7f2;color:#42ba9d}.benchmark-task-card .student-count b{color:#21b594}.benchmark-task-card .task-card-actions{display:grid;grid-template-columns:1fr 1fr;justify-items:center;border-top:1px solid #edf0f1}.benchmark-task-card .task-card-actions>a,.benchmark-task-card .task-card-actions>details>summary{display:block;padding:13px;color:#19b99a;font-size:12px}.benchmark-task-card .task-card-actions>details{width:100%;text-align:center}.benchmark-task-card .task-card-actions>details:before{content:"";position:absolute;left:0;top:11px;bottom:11px;border-left:1px solid #eceeef}.benchmark-task-card .action-menu>div{top:42px}.composition-pagination{display:flex;justify-content:flex-end;align-items:center;gap:9px;padding:3px 8px}.composition-pagination button,.composition-pagination b{width:34px;height:34px;border:1px solid #dce2e4;border-radius:5px;background:#fff;display:grid;place-items:center}.composition-pagination b{border-color:#1dc0a1;color:#12ae91}.composition-pagination select{height:34px;border:1px solid #dce2e4;border-radius:5px;background:#fff;padding:0 10px}.reference-empty{display:grid;place-items:center;min-height:130px;color:#9ba3a8}
@media(max-width:1200px){.composition-filters{grid-template-columns:1fr 1fr}.composition-filters .filter-actions{grid-column:auto}.composition-task-stage .task-card-list{grid-template-columns:1fr}}@media(max-width:720px){.composition-filters{grid-template-columns:1fr}.benchmark-task-card .task-progress-grid{grid-template-columns:1fr 1fr}.composition-manager{padding:12px}.composition-filters .filter-actions{grid-column:auto}}

/* Reference-compatible class, growth and analytics workspaces. */
.reference-class-manager{min-height:calc(100vh - 126px);display:grid;grid-template-columns:270px minmax(0,1fr);overflow:hidden;border-radius:10px}.class-directory{border-right:1px solid #e6ebea;background:#fbfdfd;padding:18px 14px}.class-directory-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.class-directory-head h2{margin:0;font-size:17px}.class-directory-search,.growth-student-search{height:38px;margin:15px 0 12px;border:1px solid #dce4e4;border-radius:6px;background:#fff;display:flex;align-items:center;padding:0 10px;color:#8b9999}.class-directory-search input,.growth-student-search input{min-width:0;width:100%;border:0;outline:0;padding:0 7px;background:transparent}.class-directory-list{display:grid;gap:6px;max-height:calc(100vh - 245px);overflow:auto}.class-directory-item{min-height:62px;padding:9px;border-radius:7px;display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:9px;color:#3b494b}.class-directory-item:hover,.class-directory-item.active{background:#e9faf6;color:#11a88b}.class-directory-item.muted{opacity:.55}.class-directory-item>span:nth-child(2){min-width:0}.class-directory-item b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-directory-item small{font-size:11px;margin-top:4px}.class-directory-item i{font-style:normal}.class-directory-icon{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#eef5f4;color:#19b99a}.class-student-workspace{min-width:0;padding:22px;background:#fff}.class-workspace-head{display:flex;justify-content:space-between;align-items:center;padding:1px 0 17px;border-bottom:1px solid #edf0ef}.class-workspace-head h1{font-size:21px;margin:0 0 6px}.class-workspace-head p{color:#788486;margin:0}.class-code-strip{display:flex;align-items:center;gap:14px;background:#f3fbf9;border-radius:8px;margin:16px 0;padding:12px 15px}.class-code-strip>span{display:flex;align-items:center;gap:10px}.class-code-strip b{letter-spacing:3px;font-size:20px;color:#14ae90}.class-code-strip p{margin:0;color:#7a898b;font-size:12px}.class-code-strip>.btn{margin-left:auto}.class-student-toolbar{display:flex;align-items:center;gap:8px;padding:6px 0 15px}.class-student-toolbar>label{width:250px;height:38px;display:flex;align-items:center;border:1px solid #dce3e3;border-radius:6px;padding:0 9px}.class-student-toolbar input{width:100%;border:0;outline:0;padding:0 7px}.class-student-toolbar .spacer{flex:1}.class-student-count{padding:13px 0;font-size:16px;font-weight:700}.class-student-count small{display:inline;margin-left:12px;font-size:11px;font-weight:400}.class-student-table{border:1px solid #edf0f0;border-radius:7px;min-height:370px}.class-student-table th{background:#f5f7f7;color:#4b5658;text-transform:none;font-size:12px}.class-student-table th span{font-size:8px;color:#adb6b6}.class-empty{min-height:500px}.invite-reference{text-align:center;padding:22px}.invite-reference .class-invite-code{justify-content:center;margin:15px}.modal-inline-link{display:block;margin:0 22px 12px}.deduction-reference{padding:18px 22px;max-height:60vh;overflow:auto}.deduction-reference>p{color:#6d7b7c;line-height:1.7}.deduction-reference section{border:1px solid #e2edeb;border-radius:8px;padding:12px 16px;margin-top:10px}.deduction-reference h3{margin:0;color:#12aa8d;font-size:15px}.deduction-reference ol{margin:10px 0 0;padding-left:20px;line-height:1.9;color:#526062}

.growth-reference-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:14px;align-items:start}.growth-student-panel{position:sticky;top:88px;overflow:hidden}.growth-student-panel>h2{padding:18px 18px 2px}.growth-side-filters{display:grid;gap:9px;padding:10px 16px}.growth-side-filters label{display:grid;gap:5px;color:#667476;font-size:12px}.growth-side-filters select{height:37px;border:1px solid #dce3e3;border-radius:6px;background:#fff;padding:0 9px}.growth-student-search{margin:6px 16px 11px}.growth-student-list{max-height:calc(100vh - 330px);overflow:auto;padding:0 8px 12px}.growth-student-list a{display:grid;grid-template-columns:36px 1fr auto;gap:9px;align-items:center;padding:9px;border-radius:7px;color:#3f4c4e}.growth-student-list a:hover,.growth-student-list a.active{background:#e9faf6;color:#11a88b}.growth-student-list a>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#edf4f3}.growth-student-list a>b{font-size:13px}.growth-student-list a small{font-size:10px;margin-top:3px}.growth-student-list a i{font-style:normal}.growth-report-stage{display:grid;gap:14px;min-width:0}.growth-report-head{padding:16px 20px;display:flex;align-items:center;justify-content:space-between}.growth-report-head h1{font-size:21px;margin:0 0 4px}.growth-report-head p{margin:0;color:#7a8788}.growth-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.growth-kpis article{min-width:0;background:#fff;border:1px solid #e5ebea;border-radius:9px;padding:14px 10px;display:flex;align-items:center;gap:9px}.growth-kpis article>i{flex:0 0 38px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700}.growth-kpis i.blue,.analytics-kpis i.blue{background:#e7f2ff;color:#358bdd}.growth-kpis i.violet,.analytics-kpis i.violet{background:#f0eaff;color:#8b63d2}.growth-kpis i.orange,.analytics-kpis i.orange{background:#fff1e1;color:#e99034}.growth-kpis i.green,.analytics-kpis i.green{background:#e5f8f2;color:#20ae8e}.growth-kpis small{font-size:11px;white-space:nowrap}.growth-kpis b{font-size:21px}.growth-kpis em{font-style:normal;font-size:10px;color:#8b9899;margin-left:3px}.growth-visual-grid,.analytics-reference-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.radar-content{display:grid;grid-template-columns:minmax(270px,1fr) 155px;align-items:center;padding:10px 18px 16px}.radar-content svg{width:100%;height:220px}.radar-grid circle,.radar-grid line{fill:none;stroke:#dfe8e6;stroke-width:1}.radar-grid text{font-size:10px;text-anchor:middle;fill:#677576}.radar-value{fill:#22c4a738;stroke:#17b799;stroke-width:2}.radar-legend{display:grid;gap:9px;font-size:12px}.radar-legend span{display:flex;align-items:center;gap:5px}.radar-legend i{width:8px;height:8px;border-radius:50%;background:#1db99a}.radar-legend b{margin-left:auto}.growth-band-chart{height:245px;padding:22px;display:flex;align-items:end;justify-content:space-around;gap:15px}.growth-band-chart>div{height:100%;display:grid;grid-template-rows:1fr auto auto;justify-items:center;gap:5px}.growth-band-chart>div>i{height:100%;width:38px;border-radius:7px 7px 0 0;background:#edf4f2;display:flex;align-items:end;overflow:hidden}.growth-band-chart em{display:block;width:100%;min-height:2px;background:linear-gradient(#42d4ba,#16ae91)}.growth-band-chart span,.growth-band-chart b{font-size:11px}.growth-trend-card svg,.analytics-trend svg{width:100%;height:225px;padding:10px 20px}.growth-trend-card polyline,.analytics-trend polyline{fill:none;stroke:#1ab99a;stroke-width:3}.growth-trend-card circle,.analytics-trend circle{fill:#fff;stroke:#1ab99a;stroke-width:3}.growth-trend-card text,.analytics-trend text{font-size:10px;text-anchor:middle;fill:#506062}.trend-grid line{stroke:#e7edec;stroke-width:1}

.analytics-heading{margin-bottom:14px}.analytics-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-bottom:14px}.analytics-kpis article{position:relative;min-height:92px;background:#fff;border:1px solid #e5ebea;border-radius:9px;padding:16px;overflow:hidden}.analytics-kpis small{font-size:11px}.analytics-kpis b{display:block;font-size:25px;margin-top:8px}.analytics-kpis i{position:absolute;right:12px;bottom:12px;width:35px;height:35px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700}.analytics-reference-grid{margin-bottom:14px}.distribution-chart{min-height:245px;padding:28px 18px 20px;display:flex;align-items:end;justify-content:space-around;gap:12px}.distribution-chart>div{display:grid;grid-template-rows:1fr auto auto auto;justify-items:center;gap:5px;height:190px}.distribution-chart>div>i{width:42px;height:130px;border-radius:7px;background:#edf4f2;display:flex;align-items:end;overflow:hidden}.distribution-chart em{display:block;width:100%;height:var(--share);background:linear-gradient(#47d4bb,#18ae91)}.distribution-chart b{font-size:16px;color:#15a98d}.distribution-chart span,.distribution-chart small{font-size:11px}.requirement-bars{display:grid;gap:16px;padding:22px}.requirement-bars>div>span{display:flex;justify-content:space-between;margin-bottom:7px}.requirement-bars small{display:inline}.requirement-bars>div>i{height:8px;border-radius:5px;background:#edf2f1;display:block;overflow:hidden}.requirement-bars em{height:100%;display:block;border-radius:5px;background:linear-gradient(90deg,#55d8bf,#15ad90)}.analytics-ranking{margin-bottom:14px}.analytics-word-cloud{padding:22px}.lecture-sentence-form{padding:10px 18px 18px}.lecture-sentence-form .annotation-list{max-height:270px;overflow:auto;padding:0}.lecture-sentence-form .check-line{padding:10px 0;border-bottom:1px solid #edf1f0}.lecture-sentence-form>.btn{margin-top:12px}

@media(max-width:1250px){.growth-kpis{grid-template-columns:repeat(3,1fr)}.analytics-kpis{grid-template-columns:repeat(4,1fr)}.radar-content{grid-template-columns:1fr}.radar-legend{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.reference-class-manager,.growth-reference-layout{grid-template-columns:1fr}.class-directory,.growth-student-panel{position:relative;top:auto;border-right:0;border-bottom:1px solid #e6ebea}.class-directory-list,.growth-student-list{max-height:230px}.class-workspace-head,.growth-report-head{align-items:flex-start;flex-direction:column;gap:12px}.class-code-strip,.class-student-toolbar{align-items:flex-start;flex-wrap:wrap}.class-code-strip>.btn{margin-left:0}.class-student-toolbar .spacer{display:none}.growth-visual-grid,.analytics-reference-grid{grid-template-columns:1fr}}
@media(max-width:620px){.growth-kpis,.analytics-kpis{grid-template-columns:repeat(2,1fr)}.class-student-toolbar>label{width:100%}.radar-content{padding:8px}.reference-class-manager{min-height:0}}
.sidebar .nav-list a.sub.active{color:#20b99b}
.sidebar-collapse-button{margin:10px -2px -8px;height:38px;border:0;background:transparent;color:#fff;display:flex;align-items:center;gap:10px;padding:0 10px;font-size:12px}.sidebar-collapse-button span{font-size:17px}.customer-service-button{position:fixed;right:0;top:64%;z-index:18;width:48px;height:70px;border:0;border-radius:10px 0 0 10px;background:#11b895;color:#fff;display:grid;place-items:center;align-content:center;gap:3px;box-shadow:0 5px 18px #139b8138;font-size:12px}.customer-service-button span{font-size:20px}.customer-service-copy{padding:22px;line-height:1.7}.customer-service-copy h3{color:#13ae90}.customer-service-copy dl{display:grid;grid-template-columns:90px 1fr;gap:10px}.customer-service-copy dt{font-weight:700}.customer-service-copy dd{margin:0;color:#687678}.sidebar-collapsed .sidebar{width:78px;padding-left:12px;padding-right:12px}.sidebar-collapsed .main-area{margin-left:78px;width:calc(100% - 78px)}.sidebar-collapsed .brand{padding-left:7px}.sidebar-collapsed .brand>span:last-child,.sidebar-collapsed .nav-list a:not(.sub){font-size:0}.sidebar-collapsed .nav-list a:not(.sub) span{font-size:18px}.sidebar-collapsed .nav-group-title{font-size:0;padding-left:17px}.sidebar-collapsed .nav-group-title i{font-size:16px}.sidebar-collapsed .nav-list a.sub,.sidebar-collapsed .sidebar-help{display:none}.sidebar-collapsed .sidebar-collapse-button b{display:none}.sidebar-collapsed .sidebar-collapse-button{justify-content:center}.sidebar,.main-area{transition:width .2s,margin-left .2s}

.report-original-tip{margin:-8px 0 13px;color:#829097;font-size:12px}.print-report-manuscripts{display:grid;gap:18px}.print-report-manuscript-page{border:1px solid #dde3e5;border-radius:8px;overflow:hidden;background:#eef1f2;break-inside:avoid}.print-report-manuscript-page>header{display:flex;justify-content:space-between;align-items:center;padding:11px 14px;background:#fff;border-bottom:1px solid #e4e8ea}.print-report-manuscript-page>header span{color:#839097;font-size:11px}.print-report-page-stage{position:relative;width:100%;line-height:0;background:#e7eaec}.print-report-page-stage>img{display:block;width:100%;height:auto}.print-report-page-stage.manuscript-stage{width:100%;height:auto;margin:0;max-width:none}.print-report-page-stage .mark-layer{z-index:4}.print-report-mark-layer{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.print-report-static-mark{filter:drop-shadow(0 1px 1px rgba(255,255,255,.9))}

/* Reference-style printable review report. */
.embedded-report-body{padding:22px 0 54px;background:#e5e7e9}.embedded-report-body main{max-width:900px}.print-report-sheet{width:min(780px,calc(100% - 32px));margin:0 auto;padding:46px 54px 34px;background:#fff;color:#263541;box-shadow:0 2px 12px #26354118;box-sizing:border-box}.print-report-header>h1{text-align:center;font-size:30px;letter-spacing:6px;margin:0 0 30px;color:#202e38}.print-report-meta{display:grid;grid-template-columns:repeat(3,1fr) 150px;border:1px solid #e1e5e7;border-radius:8px;overflow:hidden}.print-report-meta>div{min-height:74px;padding:12px 14px;border-right:1px solid #e1e5e7;display:grid;align-content:center;gap:7px}.print-report-meta>div:last-child{border-right:0}.print-report-meta span{font-size:11px;color:#8a949a}.print-report-meta b{font-size:15px}.print-report-meta .report-final-score{grid-template-columns:1fr auto auto;align-items:end;background:#fffaf4}.report-final-score span{grid-column:1/-1}.report-final-score b{font-size:34px;line-height:1;color:#f59432}.report-final-score small{color:#8a949a}.print-report-section{padding-top:31px}.print-report-section h2{display:flex;align-items:center;gap:10px;margin:0 0 17px;font-size:20px}.print-report-section h2 i{width:6px;height:20px;border-radius:5px;background:#20c3a4;box-shadow:8px 0 0 #ffc545;transform:skew(-15deg);margin-right:7px}.teacher-summary>p{margin:0;padding:17px 20px;border-radius:8px;background:#f7faf9;line-height:1.9}.report-outline-list{display:grid;gap:11px}.report-outline-list article{display:grid;grid-template-columns:58px 1fr;border:1px dashed #b9dfd7;border-radius:8px;overflow:hidden}.report-outline-list article>b{display:grid;place-items:center;background:#eaf9f5;color:#16ab8e}.report-outline-list article>div{padding:12px 15px}.report-outline-list p{margin:3px 0;line-height:1.65}.report-outline-list small{display:block;margin-top:5px;color:#66767f;line-height:1.65}.report-dimension-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;padding:17px 20px;border-radius:8px;background:#fafafa}.report-dimension-grid article>div:first-child{display:flex;justify-content:space-between;gap:10px}.report-dimension-grid article span{color:#8a949a;font-size:12px}.report-stars{margin:6px 0 8px;letter-spacing:5px;font-size:18px;color:#ffc14b}.dimension-track{height:4px;border-radius:4px;background:#e5e8e9;overflow:hidden}.dimension-track i{display:block;width:var(--dimension-progress);height:100%;background:#21bea0}.print-report-comments{display:grid;gap:12px}.report-comment-row{display:grid;grid-template-columns:34px 1fr;gap:12px;padding:14px;border:1px solid #d9ebe7;border-radius:8px;break-inside:avoid}.report-comment-number{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#70787c;color:#fff}.report-comment-row header{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.report-comment-row header em{font-style:normal;font-size:11px;padding:4px 8px;border-radius:5px;background:#eaf9f5;color:#14ad90}.report-comment-row.typo header em,.report-comment-row.grammar header em,.report-comment-row.deletion header em{background:#fff0f1;color:#f05b67}.report-comment-row.paragraph header em,.report-comment-row.insertion header em{background:#fff6e6;color:#e39727}.report-comment-row p{margin:8px 0 0;line-height:1.7}.report-comment-row p strong{color:#3c88e8}.report-comment-row p.replacement{color:#13a667}.report-comment-row p.replacement strong{color:#13a667}.report-comment-row small{display:block;margin-top:7px;color:#98a0a5}.report-empty{padding:20px;text-align:center;background:#fafafa;color:#98a0a5}.print-report-polish{padding:18px 20px;border-radius:8px;background:#f9faf9;line-height:2;text-align:justify}.print-report-polish p{margin:0 0 10px;text-indent:2em;white-space:normal}.print-report-polish p.essay-title{text-indent:0;text-align:center;font-weight:700}.print-report-polish p:last-child{margin-bottom:0}.print-report-footer{display:flex;justify-content:space-between;margin-top:38px;padding-top:16px;border-top:1px solid #eceeef;color:#929a9f;font-size:11px}@media(max-width:720px){.print-report-sheet{width:100%;padding:28px 20px}.print-report-meta{grid-template-columns:1fr 1fr}.print-report-meta>div:nth-child(2){border-right:0}.print-report-meta>div:nth-child(-n+2){border-bottom:1px solid #e1e5e7}.report-dimension-grid{grid-template-columns:1fr}}

/* Reference parity: list-view task table, manuscript preview, roster cards, growth report. */
.sidebar-collapse-button{margin-top:auto}

/* 分校主任端：独立壳层，不影响已完成的教师端。 */
.director-body{background:#f1f5f5}.director-shell{display:flex;min-height:100vh}.director-sidebar{position:fixed;inset:0 auto 0 0;width:236px;padding:26px 20px;background:linear-gradient(180deg,#46d6ba,#35c7ac);color:#fff}.director-brand{display:flex;align-items:center;gap:11px;color:#fff;margin-bottom:42px}.director-brand>span{display:grid;place-items:center;width:45px;height:45px;border:3px solid #b1f0e2;border-radius:11px;font-weight:800;font-size:21px}.director-brand b{font-size:16px}.director-brand small{color:#ebfffa;font-weight:400;margin-top:3px}.director-sidebar nav{display:grid;gap:8px}.director-sidebar nav a{padding:14px;border-radius:8px;color:#fff;font-size:16px}.director-sidebar nav a.active,.director-sidebar nav a:hover{background:#fff;color:#20b99e}.director-sidebar>small{position:absolute;bottom:24px;left:20px;right:20px;color:#e7fffa;font-size:11px}.director-main{width:calc(100% - 236px);margin-left:236px;padding-bottom:36px}.director-topbar{height:72px;display:flex;align-items:center;gap:15px;padding:0 28px;background:#fff;border-bottom:1px solid #e4ecea}.director-topbar>b{font-size:18px}.director-topbar>span{margin-left:auto;color:#607174}.director-topbar form button{border:0;background:transparent;color:#7b8889}.director-flash{margin:14px 24px;padding:10px 14px;border-radius:7px;background:#e9faf6;color:#159d84}.director-flash.danger{background:#ffe9e9;color:#cc4f55}.director-main>.home-overview,.director-main>.home-grid{margin-left:24px;margin-right:24px}.director-overview{margin-top:22px}.director-manage{padding:28px}.director-manage>header h1{margin-bottom:6px}.director-manage>header p{color:#748182}.director-manage-grid{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.director-form{display:grid;gap:12px;align-content:start;padding:20px;border-radius:10px;background:#fff}.director-form h2{margin:0 0 6px}.director-form label{display:grid;gap:6px;font-size:12px;color:#5d6c6d}.director-form input{height:38px;border:1px solid #dce6e3;border-radius:6px;padding:0 10px}.director-form .btn{justify-self:start;background:#1ab99a;border-color:#1ab99a}.director-teacher-table{overflow:hidden}.director-teacher-table header{display:flex;justify-content:space-between;align-items:center;padding:18px}.director-teacher-table header h2{margin:0}.home-essay-list>div{display:grid;grid-template-columns:112px minmax(0,1fr) 78px 44px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #f0f3f2;color:#5a6567}.home-essay-list>div:last-child{border:0}.home-recent-tasks>div{display:grid;grid-template-columns:44px minmax(0,1fr);gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #f0f3f2;color:#3d484a}.home-recent-tasks>div b{display:block}.home-recent-tasks>div small{margin-top:4px}@media(max-width:800px){.director-sidebar{position:static;width:100%;min-height:auto}.director-shell{display:block}.director-main{width:100%;margin:0}.director-sidebar>small{position:static;display:block;margin-top:20px}.director-manage-grid{grid-template-columns:1fr}.director-main>.home-overview,.director-main>.home-grid{margin-left:14px;margin-right:14px}}

/* 分校主任首页的数据总览组件。 */
.home-overview{display:grid;grid-template-columns:360px minmax(0,1fr);gap:16px;margin-bottom:18px}.home-create-card{min-height:154px;display:flex;align-items:center;justify-content:space-between;gap:8px;overflow:hidden;border-radius:12px;background:linear-gradient(135deg,#fff 0 68%,#e7faf5 68%);padding:22px 18px 20px 24px}.home-create-card>div{display:flex;align-items:center;gap:14px;position:relative;z-index:1}.home-create-card>div>i{width:13px;height:110px;border-radius:10px;background:#20c7a5;font-style:normal;font-size:0}.home-create-card h1{margin:0 0 7px;font-size:24px}.home-create-card p{max-width:210px;margin:0 0 12px;color:#7c8889;font-size:12px;line-height:1.55}.home-create-card .btn{padding:7px 19px;border-radius:7px;background:#fff;color:#16b696;border-color:#16b696;box-shadow:none}.home-create-card .btn:hover{background:#16b696;color:#fff}.home-create-art{width:74px;height:92px;border:8px solid #a9ecdc;border-radius:13px;color:#6ed9c4;display:grid;place-items:center;font-size:35px;transform:rotate(-4deg);opacity:.85}.home-metric-row{display:grid;grid-template-columns:repeat(6,minmax(118px,1fr));align-items:center;gap:9px;background:#fff;border:1px solid #eef2f1;border-radius:12px;padding:15px 16px;overflow:auto}.home-metric{display:flex;align-items:center;gap:9px;min-width:118px}.home-metric>i{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;font-style:normal;font-weight:800;font-size:17px}.home-metric b{display:block;color:#2c3537;font-size:23px;line-height:1.1}.home-metric small{margin-top:5px;color:#7d888a;font-size:12px;white-space:nowrap}.home-metric.blue>i{background:#dff1ff;color:#3d9de2}.home-metric.cyan>i{background:#def8fa;color:#27bfc6}.home-metric.violet>i{background:#eee9ff;color:#9574e6}.home-metric.mint>i{background:#e4faf4;color:#1ab798}.home-metric.orange>i{background:#fff0df;color:#ed9a43}.home-metric.coral>i{background:#ffe8e8;color:#ef6e76}.home-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(430px,.9fr);gap:16px}.home-panel{overflow:hidden;border:0;border-radius:12px;box-shadow:0 2px 12px rgba(40,80,73,.06)}.home-panel>header{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;border-bottom:1px solid #eef2f1}.home-panel>header h2{display:flex;align-items:center;gap:9px;margin:0;font-size:18px}.home-panel>header h2>i{width:42px;height:42px;border-radius:8px;background:#90e1cf;display:inline-block}.home-panel>header h2 small{display:inline;color:#344042;font-size:18px}.home-panel>header>a{font-size:12px;color:#14af91;white-space:nowrap}.home-trend-chart{display:grid;grid-template-columns:38px minmax(0,1fr);min-height:300px;padding:16px 22px 18px}.home-axis{display:flex;flex-direction:column;justify-content:space-between;padding:2px 0 27px;color:#879293;font-size:11px;text-align:right}.home-trend-bars{position:relative;display:flex;align-items:flex-end;gap:18px;min-height:264px;padding:8px 8px 27px;border-left:1px solid #edf1f0;border-bottom:1px solid #edf1f0;background:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,#edf1f0 52px,transparent 53px)}.home-trend-item{height:100%;min-width:56px;flex:1;display:grid;grid-template-rows:18px 1fr 18px;align-items:end;justify-items:center}.home-trend-item>b{font-size:11px;color:#556163}.home-trend-item>i{display:flex;align-items:end;width:26px;height:100%;border-radius:5px 5px 0 0;background:#eff9f7;overflow:hidden}.home-trend-item em{display:block;width:100%;min-height:2px;border-radius:5px 5px 0 0;background:linear-gradient(#5ed7bd,#19af92)}.home-trend-item small{max-width:72px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#687475;font-size:11px}.home-essay-list{max-height:336px;overflow:auto;padding:12px 22px}.home-essay-list a{display:grid;grid-template-columns:112px minmax(0,1fr) 78px 44px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid #f0f3f2;color:#5a6567}.home-essay-list a:last-child{border:0}.home-essay-list a:hover b,.home-essay-list a:hover span{color:#15b598}.home-essay-list b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#18b596;font-size:13px}.home-essay-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-essay-list em{font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-essay-list small{text-align:right;font-size:11px}.home-ability-body{min-height:250px;display:grid;grid-template-columns:180px minmax(0,1fr);gap:22px;align-items:center;padding:24px}.home-ability-orbit{width:160px;height:160px;border:18px solid #e4faf4;border-radius:50%;display:grid;place-content:center;text-align:center;box-shadow:inset 0 0 0 11px #f6fdfb}.home-ability-orbit span{font-size:12px;color:#68807a}.home-ability-orbit b{font-size:33px;color:#15b394;line-height:1.2}.home-ability-orbit small{font-size:11px}.home-ability-body p{margin:0;color:#788587;line-height:1.8;font-size:13px}.home-recent-tasks{padding:5px 20px 13px;max-height:290px;overflow:auto}.home-recent-tasks>a{display:grid;grid-template-columns:44px minmax(0,1fr) 100px;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #f0f3f2;color:#3d484a}.home-recent-tasks>a:last-child{border:0}.home-recent-tasks>a:hover b{color:#15b598}.home-task-icon{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#e7f6ff;color:#6aa6e3;font-size:18px}.home-recent-tasks b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-recent-tasks small{margin-top:4px;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.home-recent-tasks em{text-align:right;font-size:11px;line-height:1.8;font-style:normal;color:#778587}@media(max-width:1320px){.home-overview{grid-template-columns:1fr}.home-metric-row{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:820px){.home-grid{grid-template-columns:1fr}.home-metric-row{grid-template-columns:repeat(2,minmax(0,1fr))}.home-ability-body{grid-template-columns:1fr;justify-items:center}.home-ability-body p{text-align:center}.home-essay-list a{grid-template-columns:90px minmax(0,1fr) 44px}.home-essay-list em{display:none}}@media(max-width:520px){.home-metric-row{grid-template-columns:1fr}.home-create-card h1{font-size:21px}.home-create-art{display:none}.home-recent-tasks>a{grid-template-columns:40px minmax(0,1fr)}.home-recent-tasks em{display:none}}
.action-menu{position:relative}
.composition-manager,.composition-task-stage,.task-card-list,.task-table-view,.task-table-scroll{min-width:0}
.composition-filters{grid-template-columns:minmax(150px,190px) minmax(180px,1fr) minmax(300px,1.4fr) minmax(150px,210px);column-gap:18px}
.composition-task-stage .task-table-view{display:none}
.composition-task-stage.list-view .task-card-list{display:none}
.composition-task-stage.list-view .task-table-view{display:block}
.task-table-view{background:#fff;border:1px solid #e9edee;border-radius:8px;overflow:hidden}
.task-table-scroll{overflow-x:auto}
.task-list-table{min-width:1180px}
.task-list-table th{background:#f5f7f7;color:#4b5658;font-size:12px;font-weight:700;text-transform:none;letter-spacing:0;padding:12px 14px;border-bottom:1px solid #eceff0;white-space:nowrap}
.task-list-table td{padding:13px 14px;color:#4d5860;border-bottom:1px solid #f1f4f4;white-space:nowrap}
.task-list-table tbody tr:hover{background:#fafdfc}
.task-list-table .task-title-cell b{color:#2f3a41;margin-right:6px}
.task-list-table th.sticky-action{position:sticky;right:0;background:#f5f7f7;z-index:2}
.task-list-table td.sticky-action{position:sticky;right:0;background:#fff;box-shadow:-7px 0 12px rgba(30,45,50,.06)}
.task-list-table tbody tr:hover td.sticky-action{background:#fafdfc}
.task-list-table td.sticky-action>a,.task-list-table td.sticky-action>form,.task-list-table td.sticky-action>details{display:inline-block;vertical-align:middle;margin-right:12px}
.task-list-table td.sticky-action>details{margin-right:0}
.task-list-table summary,.student-chip-menu>summary{list-style:none;cursor:pointer;color:#15b99b;font-size:13px}
.task-list-table summary::-webkit-details-marker,.student-chip-menu>summary::-webkit-details-marker{display:none}
.task-list-table .action-menu>div{top:26px}
.table-help{display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid #bcc5c6;color:#93a0a2;font-size:9px;cursor:help;vertical-align:middle}
.paper-preview-dialog{width:min(900px,94vw)}
.paper-preview-body{padding:18px 22px 4px}
.paper-preview-tabs{display:inline-flex;border:1px solid #e2e8e8;border-radius:6px;overflow:hidden;margin-bottom:16px}
.paper-preview-tabs button{padding:8px 22px;border:0;background:#fff;color:#55605f;font:inherit;font-size:13px;cursor:pointer}
.paper-preview-tabs button+button{border-left:1px solid #e9eded}
.paper-preview-tabs button.active{background:#eafaf6;color:#12a98c;font-weight:700}
.paper-preview-pane{display:none;margin:0}
.paper-preview-pane.active{display:block}
.paper-sheet-doc{border:1px solid #d7e3e0;border-radius:6px;background:#fff;padding:13px 15px 9px;box-shadow:0 8px 20px rgba(36,59,73,.08);margin:0 auto}
.paper-sheet-doc.one{width:min(100%,392px)}
.paper-sheet-doc.two{width:min(100%,672px)}
.paper-sheet-doc.three{width:min(100%,768px)}
.paper-doc-head{display:flex;flex-wrap:wrap;gap:6px 26px;color:#6d7a7b;font-size:12px;padding-bottom:9px}
.paper-doc-title{display:flex;align-items:baseline;gap:8px;padding-bottom:10px;color:#485456;font-size:12px}
.paper-doc-title i{flex:1;border-bottom:1px solid #cddcd8}
.paper-doc-columns{display:grid;gap:12px}
.paper-doc-columns.two{grid-template-columns:1fr 1fr}
.paper-doc-columns.three{grid-template-columns:repeat(3,1fr)}
.paper-doc-grid{width:100%;aspect-ratio:1;border:1px solid #bfd6d0;background-color:#fff;background-image:linear-gradient(#d6e6e1 1px,transparent 1px),linear-gradient(90deg,#d6e6e1 1px,transparent 1px);background-size:5% 5%}.paper-preview-pane iframe.paper-doc-grid{aspect-ratio:auto;height:min(72vh,680px);border:1px solid #d5e2dd;background:#fff;background-image:none}
.paper-doc-foot{display:flex;justify-content:space-between;padding-top:8px;color:#8f9b9c;font-size:11px}
.paper-preview-pane figcaption{padding-top:12px;display:grid;gap:4px}
.paper-preview-pane figcaption b{font-size:14px}
.paper-preview-pane figcaption small{color:#7c8889;font-size:12px}
.paper-preview-tip{margin:14px 0 0;color:#8b9798;font-size:12px;line-height:1.7}
.excel-import-dialog{width:min(560px,92vw)}
.excel-import-body{padding:20px 22px 22px}
.excel-import-body .excel-drop-zone{display:block;position:relative;border:1px dashed #b3e2d4;border-radius:8px;background:#f6fdfb;padding:30px 20px;text-align:center;cursor:pointer}
.excel-import-body .excel-drop-zone.dragging{border-color:#1fc7a7;background:#ecfffa}
.excel-import-body .excel-drop-zone input[type=file]{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;opacity:0;cursor:pointer}
.excel-drop-zone .excel-drop-icon{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 12px;border-radius:50%;background:#e3f7f0;color:#25c1a2;font-size:27px}
.excel-drop-zone b{display:block;margin:0;color:#5b6768;font-weight:400;font-size:14px}
.excel-drop-zone b i{color:#19b99a;font-style:normal}
.excel-drop-zone p{margin:9px 0 0;color:#9aa5a6;font-size:12px}
.excel-drop-zone em{display:block;margin-top:10px;color:#12a98c;font-size:12px;font-style:normal}
.excel-template-button{display:flex;margin:14px auto 0;width:148px;border-color:#cfe8e2;color:#15b597;border-radius:5px}
.excel-import-tip{margin:14px 0 0;color:#93a0a1;font-size:12px;line-height:1.7}
.class-directory{display:flex;flex-direction:column}
.class-directory .class-directory-search{margin:0 0 12px}
.class-directory-list{gap:8px;flex:1;max-height:none;align-content:start}
.class-directory-item{grid-template-columns:38px minmax(0,1fr);border:1px solid #eef2f1;background:#fff}
.class-directory-item.active{border-color:#bfeee3}
.class-directory-create{margin-top:12px;height:38px;border:1px dashed #d5dedd;border-radius:6px;background:#fff;color:#5c6768;display:flex;align-items:center;justify-content:center;gap:7px;font:inherit;font-size:13px;cursor:pointer}
.class-directory-create:hover{border-color:#8fdccb;color:#15b597}
.class-workspace-head{padding:1px 0 8px;border-bottom:0}
.class-workspace-title{display:flex;align-items:center;gap:10px}
.class-workspace-title h1{margin:0;font-size:20px}
.class-people-badge{padding:2px 9px;border-radius:11px;background:#e4faf4;color:#14ae90;font-size:12px;font-weight:700}
.class-setting-icon{border:0;background:none;color:#8b9898;font-size:16px;cursor:pointer}
.class-invite-button{border-radius:5px}
.class-invite-button span{font-size:13px}
.class-code-line{margin:0 0 18px;color:#65706f;font-size:13px}
.class-code-line b{color:#16b195;letter-spacing:2px;font-size:14px}
.class-code-copy{margin-left:10px;border:0;background:none;color:#19b99a;font-size:12px;cursor:pointer}
.class-student-toolbar{padding:0 0 14px}
.class-student-toolbar .btn span{font-size:13px}
.class-roster-head{display:flex;align-items:center;gap:12px;padding:2px 0 12px}
.class-roster-head b{font-size:14px}
.class-roster-head small{color:#98a3a4;font-size:12px}
.roster-sort-link{margin-left:auto;color:#687374;font-size:12px}
.roster-sort-link.active{color:#15b597}
.roster-sort-pill{padding:5px 12px;border:1px solid #cfeae4;border-radius:13px;color:#15b597;font-size:12px}
.roster-sort-pill.active{background:#e9faf6}
.class-student-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:12px;align-content:start;padding:16px;min-height:320px;border:1px solid #eef2f1;border-radius:8px}
.student-chip{display:grid;grid-template-columns:36px minmax(0,1fr) 20px;align-items:center;gap:10px;padding:9px 10px;border:1px solid #eef1f1;border-radius:8px;background:#fff}
.student-chip:hover{border-color:#c6ebe1;box-shadow:0 4px 12px rgba(31,171,143,.09)}
.student-chip-avatar{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#2ec9a8;color:#fff;font-size:13px;font-weight:700}
.student-chip.joined .student-chip-avatar{background:#18b99a}
.student-chip-copy{min-width:0}
.student-chip-copy p{margin:0;display:flex;align-items:center;gap:7px;min-width:0}
.student-chip-copy b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.student-chip-copy small{color:#98a3a4;font-size:11px}
.join-badge{padding:1px 6px;border-radius:4px;font-size:10px;font-weight:700;white-space:nowrap}
.join-badge.on{background:#e4faf4;color:#14ae90}
.join-badge.off{background:#fff3e7;color:#e28f33}
.student-chip-menu>summary{color:#a9b3b3;text-align:center;font-size:15px}
.student-chip-menu>div{top:24px}
.growth-student-panel{padding:14px 12px;display:flex;flex-direction:column;min-height:calc(100vh - 152px)}
.growth-class-picker select{width:100%;height:38px;border:1px solid #dce3e3;border-radius:6px;background:#fff;padding:0 9px;color:#3f4c4e}
.growth-student-panel .growth-student-search{margin:10px 0}
.growth-student-list{padding:0;max-height:calc(100vh - 290px)}
.growth-student-list a{grid-template-columns:minmax(0,1fr);padding:10px 12px;border-radius:6px}
.growth-student-list a>b{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.growth-report-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:13px 18px}
.growth-report-head h1{font-size:17px;margin:0}
.growth-student-switch{display:flex;align-items:center;justify-content:center;gap:14px}
.growth-student-switch b{font-size:16px}
.growth-student-switch .btn{height:32px;padding:0 16px;border-radius:5px;font-size:13px}
.growth-semester-picker select{height:34px;border:1px solid #dce3e3;border-radius:6px;background:#fff;padding:0 9px;color:#5b6667}
.growth-kpis article{display:grid;gap:3px;padding:14px 16px;background:#fff;border-color:#eaefee}
.growth-kpis article small{color:#7d8a8b;font-size:12px;white-space:nowrap}
.growth-kpis article p{margin:0;display:flex;align-items:baseline;gap:3px}
.growth-kpis article b{font-size:20px;color:#2f3b3c}
.growth-kpis article em{font-size:12px;color:#5c6768;font-style:normal;margin:0}
.growth-kpis article i{display:block;width:auto;height:auto;border-radius:0;place-items:start;font-style:normal;font-weight:400;color:#93a0a1;font-size:11px;white-space:nowrap}
.growth-kpis article i b{font-size:12px;color:#5f6b6c}
.growth-card-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid #f0f3f3}
.growth-card-head h2{margin:0;font-size:15px}
.growth-card-head small{color:#96a2a3;font-size:12px}
.growth-radar-legend{margin-left:auto;display:flex;gap:14px;color:#6d7879;font-size:12px}
.growth-radar-legend span{display:flex;align-items:center;gap:5px}
.growth-radar-legend i{width:9px;height:9px;border-radius:2px}
.growth-radar-legend .class-level i{background:#3d83e7}
.growth-radar-legend .my-level i{background:#f0993a}
.growth-radar-card .radar-content{grid-template-columns:minmax(0,1fr);padding:4px 10px 10px}
.growth-radar-card .radar-content svg{height:300px}
.radar-class-value{fill:rgba(61,131,231,.13);stroke:#3d83e7;stroke-width:2}
.growth-radar-card .radar-value{fill:rgba(240,153,58,.16);stroke:#f0993a;stroke-width:2}
.growth-honor-card{display:flex;flex-direction:column}
.growth-honor-list{list-style:none;margin:0;padding:14px 18px;display:grid;gap:11px}
.growth-honor-list li{display:grid;grid-template-columns:26px minmax(0,1fr);gap:9px;align-items:center}
.growth-honor-list li span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#fff3dd;color:#e79a2c;font-size:12px}
.growth-honor-list li b{font-size:13px}
.growth-honor-list li small{grid-column:2;color:#95a1a2;font-size:11px}
.growth-empty-state{flex:1;display:grid;place-items:center;align-content:center;gap:9px;padding:46px 10px;color:#a8b2b3}
.growth-empty-state span{width:52px;height:52px;border-radius:10px;display:grid;place-items:center;background:#f2f5f5;color:#c6cfd0;font-size:23px}
.growth-empty-state p{margin:0;font-size:13px}
.growth-genre-chart{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px;padding:16px 18px 12px;height:286px}
.genre-axis{display:flex;flex-direction:column;justify-content:space-between;padding-bottom:34px;color:#9aa5a6;font-size:11px;text-align:right}
.genre-bars{display:flex;align-items:flex-end;gap:26px;padding:0 18px;overflow-x:auto;border-left:1px solid #eceff0;border-bottom:1px solid #eceff0}
.genre-bar{height:100%;min-width:58px;display:grid;grid-template-rows:minmax(0,1fr) auto auto;justify-items:center;gap:4px}
.genre-bar>i{width:34px;height:100%;display:flex;align-items:flex-end}
.genre-bar em{display:block;width:100%;min-height:2px;border-radius:4px 4px 0 0;background:linear-gradient(#5fd8bd,#18b193)}
.genre-bar b{font-size:12px;color:#4f5b5c}
.genre-bar span{padding-bottom:7px;color:#8d9899;font-size:11px;white-space:nowrap}
.term-detail-manager{grid-template-rows:auto minmax(420px,1fr) auto}
.term-detail-filters{grid-template-columns:320px minmax(0,1fr)}
.term-detail-filters .filter-actions{grid-column:auto}
.term-detail-stage{background:#fff;padding:0;min-height:auto}
.term-detail-stage .task-list-table{min-width:1120px}
@media(max-width:1250px){.growth-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:960px){.growth-report-head{grid-template-columns:minmax(0,1fr)}.growth-student-switch{justify-content:flex-start}.class-student-cards{grid-template-columns:1fr}.class-roster-head{flex-wrap:wrap}.roster-sort-link{margin-left:0}}
@media(max-width:640px){.growth-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.paper-doc-columns.two,.paper-doc-columns.three{grid-template-columns:1fr}}

/* Reference parity round 2: class charts, excellent essays, per-student term report. */
.class-chart-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 18px}
.class-chart-title{margin:0;display:flex;align-items:center;gap:10px;justify-content:center}
.class-chart-title b{font-size:15px;color:#2f3b3c}
.class-chart-badge{padding:3px 10px;border-radius:4px;background:#e4faf4;color:#14ae90;font-size:12px;font-weight:700}
.class-chart-kpis{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px}
.class-chart-kpis article{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:10px;padding:13px 14px;background:#fff;border:1px solid #eef2f1;border-radius:8px}
.class-chart-kpis i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:15px;font-style:normal}
.class-chart-kpis i.crown{background:#fdf1dc;color:#e2a02c}
.class-chart-kpis i.low{background:#fdeaea;color:#e2635c}
.class-chart-kpis i.avg{background:#e8f1fd;color:#3d83e7}
.class-chart-kpis i.pass{background:#e8f8f0;color:#22b07a}
.class-chart-kpis i.words{background:#fdf0e5;color:#e0893a}
.class-chart-kpis i.people{background:#eeecfd;color:#7b6ce0}
.class-chart-kpis i.done{background:#e4f7ef;color:#18b183}
.class-chart-kpis small{display:block;color:#8b9798;font-size:12px}
.class-chart-kpis b{font-size:19px;color:#2f3b3c}
.class-chart-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}
.class-chart-card{min-width:0}
.chart-bar-mark{display:inline-block;width:11px;height:12px;margin-right:7px;vertical-align:-1px;border-radius:2px;background:linear-gradient(90deg,#3ad0ae 0 40%,transparent 40% 60%,#3ad0ae 60%)}
.chart-legend{margin-left:auto;display:flex;align-items:center;gap:6px;color:#6d7879;font-size:12px}
.chart-legend i{width:9px;height:9px;border-radius:2px}
.chart-legend.class-average i{background:#f0993a}
.class-average-shape{fill:rgba(240,153,58,.16);stroke:#f0993a;stroke-width:2}
.band-chart{height:300px}
.band-bars .genre-bar>i{width:30px}
.band-bars em{background:linear-gradient(#7cc6f4,#3f9fe0)}
.requirement-level-card{min-width:0}
.requirement-level-body{padding:16px 18px 18px}
.requirement-level-row{display:grid;grid-template-columns:96px minmax(0,1fr);align-items:center;gap:12px;padding:7px 0}
.requirement-level-name{color:#5b6768;font-size:12px;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.requirement-level-track{display:flex;height:24px;border-radius:4px;overflow:hidden;background:#f4f7f7}
.requirement-level-track i{display:grid;place-items:center;min-width:2px;font-style:normal}
.requirement-level-track em{font-style:normal;color:#fff;font-size:11px}
.requirement-level-track .star-1{background:#8f7ce4}
.requirement-level-track .star-2{background:#5f9df0}
.requirement-level-track .star-3{background:#3ecfae}
.requirement-level-track .star-4{background:#f6c65c}
.requirement-level-track .star-5{background:#f39a5c}
.requirement-level-empty{padding-left:10px;color:#a4afaf;font-size:12px;line-height:24px}
.requirement-level-legend{display:flex;justify-content:center;gap:18px;padding-top:14px;color:#6d7879;font-size:12px}
.requirement-level-legend span{display:flex;align-items:center;gap:5px}
.requirement-level-legend i{width:9px;height:9px;border-radius:50%}
.requirement-level-legend .star-legend-1 i{background:#8f7ce4}
.requirement-level-legend .star-legend-2 i{background:#5f9df0}
.requirement-level-legend .star-legend-3 i{background:#3ecfae}
.requirement-level-legend .star-legend-4 i{background:#f6c65c}
.requirement-level-legend .star-legend-5 i{background:#f39a5c}

.excellent-manager{display:grid;grid-template-columns:150px minmax(0,1fr);gap:0;padding:0;overflow:hidden}
.excellent-directory{padding:16px 0 16px 16px;border-right:1px solid #f0f3f3}
.excellent-directory-title{display:block;padding:0 6px 10px;font-size:13px;color:#2f3b3c}
.excellent-directory-list{display:grid;gap:2px}
.excellent-directory-list a{padding:8px 12px;border-radius:5px;color:#5b6768;font-size:13px}
.excellent-directory-list a.active{background:#e9faf6;color:#15b597;font-weight:700}
.excellent-stage{display:flex;flex-direction:column;min-width:0;padding:14px 16px 16px}
.excellent-stage-head{display:flex;align-items:center;gap:14px;padding-bottom:14px}
.excellent-tabs{display:flex;gap:6px;flex-wrap:wrap;border:0;padding:0}
.excellent-tabs a{padding:6px 12px;border-radius:5px;color:#5b6768;font-size:13px}
.excellent-tabs a.active{background:#e9faf6;color:#15b597;font-weight:700}
.excellent-genre-nav{display:flex;flex-wrap:wrap;gap:6px 4px;padding:0 0 14px;margin:0 0 14px;border-bottom:1px solid #f0f3f3}
.excellent-genre-nav a{padding:4px 9px;border-radius:4px;color:#5b6768;font-size:13px;line-height:1.5}
.excellent-genre-nav a.active{background:#e9faf6;color:#15b597;font-weight:700}
.excellent-search{margin-left:auto}
.excellent-search input{width:200px;height:32px;border:1px solid #dce3e3;border-radius:5px;padding:0 11px;font:inherit;font-size:12px}
.excellent-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px;align-content:start;min-height:420px}
.excellent-essay-card{display:flex;flex-direction:column;border:1px solid #eef2f1;border-radius:8px;background:#fff;overflow:hidden}
.excellent-essay-card:hover{border-color:#c6ebe1;box-shadow:0 6px 16px rgba(31,171,143,.1)}
.excellent-essay-link{display:block;padding:13px 14px 10px;color:inherit}
.excellent-essay-link h2{margin:0;font-size:14px;line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.excellent-unit-tag{display:inline-block;margin-right:6px;padding:1px 6px;border-radius:3px;background:#e4faf4;color:#14ae90;font-size:11px;font-weight:700;vertical-align:1px}
.excellent-essay-excerpt{margin:9px 0 0;color:#8b9798;font-size:12px;line-height:1.75;display:-webkit-box;-webkit-line-clamp:3;line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.excellent-essay-card footer{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 14px;color:#9aa5a6;font-size:11px}
.excellent-essay-grade{color:#7c8889}
.excellent-essay-actions{display:flex;gap:12px;padding:0 14px 11px}
.excellent-essay-actions .link{color:#15b597;font-size:12px}
.excellent-empty{grid-column:1/-1}
.excellent-pagination{padding-top:16px;flex-wrap:wrap}
.excellent-pagination .page-number,.excellent-pagination .page-step{min-width:28px;height:28px;display:grid;place-items:center;border:1px solid #e4e9e9;border-radius:5px;color:#5b6768;font-size:12px}
.excellent-pagination .page-number:hover,.excellent-pagination .page-step:hover{border-color:#8fdccb;color:#15b597}
.excellent-pagination .page-gap{color:#a4afaf}
.page-jump-form label{display:flex;align-items:center;gap:6px;color:#5b6768;font-size:12px}
.page-jump-form input{width:52px;height:28px;border:1px solid #dce3e3;border-radius:5px;padding:0 7px;font:inherit;font-size:12px}
.page-size-form select{height:28px;border:1px solid #dce3e3;border-radius:5px;background:#fff;padding:0 6px;font-size:12px;color:#5b6768}

.excellent-detail-page{padding:0;overflow:hidden}
.excellent-detail-head{padding:13px 18px;border-bottom:1px solid #f0f3f3}
.excellent-detail-body{max-width:960px;margin:0 auto;padding:26px 32px 40px}
.excellent-detail-body h1{margin:0;font-size:21px;text-align:center;line-height:1.6}
.excellent-detail-meta{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px;margin:14px 0 0;color:#95a1a2;font-size:12px}
.excellent-detail-section-title{margin:22px 0 12px;font-size:16px;color:#263541}
.excellent-detail-text{padding:18px 20px;border-radius:8px;background:#f9faf9;line-height:2;text-align:justify}
.excellent-detail-text p{margin:0 0 10px;color:#39454a;font-size:15px;line-height:2;text-indent:2em;white-space:normal;text-align:justify}
.excellent-detail-text p.essay-title{text-indent:0;text-align:center;font-weight:700}
.excellent-detail-text p:last-child{margin-bottom:0}

.term-student-report{display:grid;gap:16px;padding:0;background:transparent;border:0;box-shadow:none}
.term-student-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px 18px;background:#fff;border:1px solid var(--line);border-radius:10px}
.term-student-head form{display:inline}
.term-student-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.term-student-panel{padding:0}
.term-student-panel .requirement-bars{padding:16px 18px}
@media(max-width:1250px){.class-chart-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.term-student-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:960px){.class-chart-grid{grid-template-columns:minmax(0,1fr)}.class-chart-head,.term-student-head{grid-template-columns:minmax(0,1fr)}.excellent-manager{grid-template-columns:minmax(0,1fr)}.excellent-directory{border-right:0;border-bottom:1px solid #f0f3f3;padding:12px}.excellent-directory-list{display:flex;flex-wrap:wrap}.excellent-stage-head{flex-wrap:wrap}.excellent-search{margin-left:0;width:100%}.excellent-search input{width:100%}}
@media(max-width:640px){.class-chart-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.term-student-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.requirement-level-row{grid-template-columns:minmax(0,1fr)}.requirement-level-name{text-align:left}}
/* 表格内的“更多”菜单改为浮层，避免被横向滚动容器裁剪。
   z-index 必须高于 sticky 操作列（后面的行会盖住前面行的浮层）。 */
.action-menu>div.floating-menu{position:fixed;right:auto;top:auto;z-index:1200}
.task-list-table tbody tr:has(details.action-menu[open]) td.sticky-action{z-index:1190}

/* 批量/单个上传：选择反馈、进度条、错误提示（round4）。 */
.batch-upload-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 12px}
.batch-upload-buttons .btn.ghost{margin-left:auto;border:1px solid #e2e8e8;background:#fff;color:#5b6768}
.upload-zone.batch-drop{cursor:pointer;transition:border-color .15s,background .15s}
.upload-zone.batch-drop.dragging{border-color:#18b99a;background:#effbf7}
.batch-summary{display:grid;gap:3px;text-align:center}
.batch-summary b{font-size:15px;color:#2f3b3c}
.batch-summary small{color:#7c8889;font-size:12px}
.batch-summary.over-limit b,.batch-summary.over-limit small{color:#e2635c}
.batch-file-list{list-style:none;margin:12px 0 0;padding:0;max-height:230px;overflow:auto;border:1px solid #eef2f1;border-radius:8px}
.batch-file-list li{display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #f2f5f5;font-size:13px;color:#4d5860}
.batch-file-list li:last-child{border-bottom:0}
.batch-file-list li span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.batch-file-list li small{color:#98a3a4;font-size:12px;white-space:nowrap}
.batch-file-list li button{width:22px;height:22px;border:0;border-radius:50%;background:#f2f5f5;color:#8b9798;font-size:14px;line-height:1;cursor:pointer}
.batch-file-list li button:hover{background:#fdeaea;color:#e2635c}
.batch-file-list li.batch-file-more{justify-content:center;color:#98a3a4;font-size:12px}
.upload-progress{display:flex;align-items:center;gap:12px;margin:14px 0 4px}
.upload-progress-track{flex:1;height:8px;border-radius:6px;background:#eef2f1;overflow:hidden}
.upload-progress-track i{display:block;height:100%;width:0;border-radius:6px;background:linear-gradient(90deg,#3ad0ae,#18b193);transition:width .2s}
.upload-progress span{min-width:118px;text-align:right;color:#5b6768;font-size:12px}
.upload-error{margin:12px 0 0;padding:10px 12px;border-radius:8px;background:#fdeaea;color:#d1453e;font-size:13px;line-height:1.6}
.mark-suggestion-text,.mark-correction-text{font-family:"Source Han Serif SC","Noto Serif SC","Songti SC","STSong","SimSun",serif;font-weight:700;font-style:normal;letter-spacing:.01em}

/* PDF 匹配处理：按“学生 → 页面 → 提交”完成归组。 */
.pdf-match-workspace{display:grid;grid-template-columns:230px minmax(440px,1fr) minmax(300px,.7fr);gap:16px;align-items:start}.pdf-match-students{padding:14px;position:sticky;top:86px;max-height:calc(100vh - 110px);overflow:auto}.pdf-match-search{display:flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:8px;padding:8px 10px}.pdf-match-search input{border:0;outline:0;min-width:0;width:100%}.pdf-match-students>p,.pdf-match-pages .pdf-match-title p{color:var(--muted);font-size:12px;line-height:1.6}.pdf-match-student{width:100%;display:grid;grid-template-columns:1fr auto;gap:2px;text-align:left;border:1px solid transparent;background:#fff;border-radius:9px;padding:11px 10px;margin-top:7px}.pdf-match-student:hover,.pdf-match-student.active{border-color:#79aef5;background:#edf6ff}.pdf-match-student span{font-weight:700}.pdf-match-student small{grid-column:1;color:var(--muted)}.pdf-match-student b{grid-column:2;grid-row:1 / 3;align-self:center;min-width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#edf1f6;color:#627187;font-size:11px}.pdf-match-student.active b{background:var(--blue);color:#fff}.pdf-match-title{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:17px 19px;border-bottom:1px solid var(--line)}.pdf-match-title h2{margin:0}.pdf-match-title em{font-style:normal;color:var(--blue)}.pdf-match-title p{margin:5px 0 0}.pdf-page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:13px;padding:17px}.pdf-page-card{position:relative;border:1px solid #dce4ee;border-radius:9px;background:#f6f8fb;padding:0;overflow:hidden;text-align:left;min-width:0}.pdf-page-card:hover,.pdf-page-card.selected{border-color:var(--blue);box-shadow:0 0 0 2px rgba(23,105,232,.12)}.pdf-page-card.selected .pdf-page-select{display:grid}.pdf-page-card img,.pdf-page-card iframe{display:block;width:100%;height:178px;border:0;background:#fff;object-fit:contain;pointer-events:none}.pdf-page-card small{padding:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-page-select{display:none;position:absolute;z-index:2;right:7px;top:7px;width:22px;height:22px;border-radius:50%;background:var(--blue);color:#fff;place-items:center;font-weight:800}.pdf-match-groups{padding:0 17px 17px}.pdf-match-groups h2{font-size:15px;margin:0 0 8px}.pdf-match-groups>div{display:grid;gap:7px}.pdf-match-groups>div>div{display:flex;justify-content:space-between;align-items:center;border:1px solid #dce4ee;border-radius:8px;padding:9px 10px}.pdf-match-groups small{margin-top:3px}.pdf-match-pages footer{display:flex;justify-content:flex-end;gap:8px;padding:15px 17px;border-top:1px solid var(--line)}.pdf-match-preview{padding:17px;position:sticky;top:86px;min-height:550px}.pdf-match-preview h2{margin-bottom:5px}.pdf-match-preview>p{color:var(--muted);font-size:12px;min-height:20px}.pdf-match-preview>div{height:calc(100vh - 220px);min-height:440px;background:#f1f3f6;border-radius:8px;overflow:hidden}.pdf-match-preview iframe,.pdf-match-preview img{width:100%;height:100%;border:0;object-fit:contain;background:#fff;display:block}.pdf-match-preview-empty{display:grid;place-items:center;color:var(--muted)}.legacy-match-list{margin-top:16px;overflow:hidden}.legacy-match-list header{padding:16px 20px;border-bottom:1px solid var(--line)}.legacy-match-list header h2{margin:0}.legacy-match-list header p{color:var(--muted);font-size:12px;margin:5px 0 0}.legacy-match-list form{display:flex;gap:12px;align-items:center;padding:12px 20px;border-bottom:1px solid var(--line)}.legacy-match-list form:last-child{border:0}.legacy-match-list form>span{flex:1}.legacy-match-list select{border:1px solid var(--line);border-radius:7px;padding:8px;min-width:190px}@media(max-width:1180px){.pdf-match-workspace{grid-template-columns:210px 1fr}.pdf-match-preview{grid-column:1 / -1;position:static;min-height:0}.pdf-match-preview>div{height:540px}.pdf-match-students{position:static;max-height:none}}@media(max-width:760px){.pdf-match-workspace{grid-template-columns:1fr}.pdf-match-students{display:block}.pdf-page-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-match-title,.legacy-match-list form{align-items:flex-start;flex-direction:column}.legacy-match-list select{width:100%}.pdf-match-title .btn{width:100%}}
