:root{--bg:#06121d;--panel:#0c1f2f;--panel2:#102638;--panel3:#0a1a27;--line:#27465a;--line2:#35647f;--text:#f4f7fa;--muted:#9fb5c7;--cyan:#28c7e8;--cyan2:#80eefa;--green:#43c98f;--yellow:#efc66a;--red:#ff9797;--purple:#c6a6ff}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit}.hidden{display:none!important}
.top{min-height:68px;background:#050e17;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:10px 22px;gap:12px;position:sticky;top:0;z-index:40}.logo{width:36px;height:36px;border-radius:9px;background:linear-gradient(135deg,#29d9ef,#2789df);display:grid;place-items:center;font-weight:900;color:#03131b;font-size:20px}.brand b{letter-spacing:.12em}.brand small{display:block;color:var(--muted);font-size:10px;margin-top:2px}.demo{font-size:10px;font-weight:900;letter-spacing:.07em;color:#ffe6a2;border:1px solid #6c5a2e;background:#2d2513;padding:5px 8px;border-radius:999px}.actions{margin-left:auto;display:flex;gap:7px;flex-wrap:wrap}
.btn{border:1px solid var(--line);background:#143147;color:#fff;border-radius:9px;padding:9px 12px;text-decoration:none;font-weight:700}.btn:hover{border-color:#56839d}.btn.primary{background:linear-gradient(90deg,#1bc4e0,#2b86c8);border-color:#3ad4ee;color:#041822}.btn.green{background:#153e31;border-color:#2f765c}.btn.warn{background:#483919;border-color:#7b622b}.btn.danger{background:#3d1c21;border-color:#74424a}.btn.ghost{background:transparent}.btn:disabled{opacity:.42;cursor:not-allowed}.wide{width:100%}
.start-wrap{min-height:calc(100vh - 68px);display:grid;place-items:center;padding:36px 18px;background:radial-gradient(circle at 22% 8%,#12334c 0,#06121d 45%)}.start-card{width:min(690px,96vw);background:linear-gradient(180deg,#10283a,#0a1b29);border:1px solid #2b4a60;border-radius:18px;padding:24px;box-shadow:0 26px 70px rgba(0,0,0,.3)}.start-title{display:flex;gap:12px;align-items:flex-start}.badge{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:#0b4f61;border:1px solid #1b7890;color:#8cf1ff;font-weight:900}.start-card h1{font-size:24px;margin:0 0 5px}.muted{color:var(--muted)}.small{font-size:12px}.hint{font-size:11px;color:#8fa8b9;line-height:1.5}.sample-only{border:1px solid #3d6c83;background:#0a2837;border-radius:10px;padding:10px 12px;color:#bfe8f5;font-size:12px;margin-top:12px}.drop{border:2px dashed #3c7797;border-radius:14px;padding:28px 18px;text-align:center;margin-top:18px;background:#091b29;cursor:pointer}.drop strong{display:block;margin-top:8px}.upload{width:42px;height:42px;border-radius:50%;background:#07536b;display:grid;place-items:center;margin:auto;font-size:23px;color:#83efff}.or{display:flex;align-items:center;gap:10px;margin:13px 0;color:#8ba4b5;font-size:10px;font-weight:900}.or:before,.or:after{content:"";height:1px;background:#29485b;flex:1}
.grid2,.grid3,.grid4{display:grid;gap:10px}.grid2{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:repeat(3,1fr)}.grid4{grid-template-columns:repeat(4,1fr)}.field label{display:block;font-size:11px;font-weight:800;color:#c7d8e3;margin:0 0 5px}.field input,.field textarea,.field select{width:100%;background:#071725;color:#fff;border:1px solid #2f5368;border-radius:9px;padding:10px}.field textarea{min-height:100px;resize:vertical}
.tabs{min-height:54px;border-bottom:1px solid var(--line);background:#081624;display:flex;justify-content:center;align-items:center;gap:5px;position:sticky;top:68px;z-index:32;overflow:auto}.tab{border:0;background:transparent;color:#90a8ba;padding:9px 11px;border-radius:8px;font-weight:700;white-space:nowrap}.tab.active{background:#12344a;color:#fff;box-shadow:inset 0 0 0 1px #216a89}.tab span{display:inline-grid;place-items:center;width:21px;height:21px;border-radius:50%;border:1px solid #436074;margin-right:5px;font-size:10px}.tab.active span{background:var(--cyan);border-color:var(--cyan);color:#02202a}
.classbar{min-height:56px;padding:7px 16px;background:#0a2030;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:7px;position:sticky;top:122px;z-index:30}.classbar .meta{font-size:11px;color:var(--muted);min-width:210px}.classbar select{background:#071725;color:#fff;border:1px solid #34627d;border-radius:8px;padding:8px;min-width:220px}.spacer{flex:1}
.shell{display:grid;grid-template-columns:minmax(390px,44%) 1fr;min-height:calc(100vh - 178px)}.writing{border-right:1px solid var(--line);background:#071725;display:flex;flex-direction:column;min-height:calc(100vh - 178px)}.writing-head{padding:14px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px}.writing-head .title{font-size:12px;letter-spacing:.05em}.writing-head b{display:block;font-size:15px;letter-spacing:0}.essay{padding:24px 30px 16px;font-size:16px;line-height:1.72;color:#eef6fb;flex:1}.essay p{margin:0 0 22px;border-left:3px solid transparent;padding-left:10px}.essay p.area{border-left-color:var(--yellow);background:rgba(122,92,22,.08);padding-top:8px;padding-bottom:8px;border-radius:6px}.essay.selecting{cursor:text;user-select:text}.essay mark{background:#164c62;color:#fff;border-radius:3px;padding:0 2px}.writing-tools{position:sticky;bottom:0;border-top:1px solid var(--line);background:#06131f;padding:10px 12px;display:flex;align-items:center;gap:8px}.writing-tools .hint{margin-right:auto}
.work{padding:26px 28px;min-width:0;background:#081724;overflow:auto}.work h1{font-size:30px;margin:0 0 6px}.lead{color:#a9bfd0;line-height:1.5;margin:0 0 20px}.notice{border:1px solid #2b6079;background:#0b2a3b;border-radius:10px;padding:12px 14px;color:#cce8f5;margin-bottom:17px}.card{border:1px solid var(--line);background:#0f2435;border-radius:12px;padding:15px}.card h3{margin:0 0 7px}.stat label{display:block;font-size:9px;letter-spacing:.12em;color:#86afc5;font-weight:900}.stat b{display:block;font-size:23px;margin-top:7px}.section{margin-top:17px}.toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.pill{display:inline-block;border:1px solid #3e6177;border-radius:999px;padding:5px 9px;font-size:9px;font-weight:800}.complete{background:#123a2d;color:#8af0bd;border-color:#256748}.progress{background:#12364a;color:#9de6f5;border-color:#25637f}.not{background:#2d2f36;color:#c4ccd4;border-color:#555d64}.private{background:#33243d;color:#e3c3ff;border-color:#654774}.review{background:#493b1a;color:#ffe3a1;border-color:#80682e}.edited{background:#2c2c52;color:#cfcaff;border-color:#5d5c9d}.match{background:#113d32;color:#93f0c3;border-color:#276c55}
.meta-strip{border:1px solid var(--line);border-radius:12px;background:#0f2435;padding:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.meta-strip .btn{margin-left:auto}.metric-note{font-size:11px;color:var(--muted);margin-top:5px}.empty-state{border:1px dashed #355c73;border-radius:12px;padding:26px;text-align:center;color:#9fb8c8;background:#091b29}.pattern{border-left:4px solid var(--green)}.pattern.warn{border-left-color:var(--yellow)}.pattern-card{border:1px solid var(--line);background:#0f2435;border-left:4px solid var(--yellow);border-radius:12px;padding:15px;margin-bottom:10px}.pattern-card .row{display:flex;gap:10px;align-items:flex-start}.pattern-card .row .pill{margin-left:auto}.table{border:1px solid var(--line);border-radius:12px;overflow:hidden}.table-row{display:grid;grid-template-columns:1.4fr 1fr;gap:10px;padding:10px 12px;border-top:1px solid var(--line);background:#0f2435}.table-row:first-child{border-top:0}.table-head{background:#0a1b29;color:#79a8c2;font-size:10px;font-weight:900;letter-spacing:.08em}
.compare-choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{border:1px dashed #47728b;border-radius:12px;padding:28px;text-align:center;background:#0b1d2c}.choice h3{margin-top:0}.compare{display:grid;grid-template-columns:1fr 1fr;gap:13px}.paper{background:#f7fafc;color:#1c2d38;border-radius:11px;padding:19px;min-height:300px}.paper h3{color:#18364a}.paper p{line-height:1.65}.changed{background:#fff0aa;border-radius:3px;padding:1px 2px}.compare-summary{border:1px solid var(--line);border-radius:12px;padding:14px;background:#0f2435}
.note{border:1px solid var(--line);border-radius:11px;background:#0c2030;padding:12px;margin-bottom:9px}.note-head{display:flex;gap:7px;align-items:center}.note blockquote{margin:7px 0;padding:8px 9px;border-left:3px solid #3c7c9a;background:#081925;color:#cfe2ee}.note textarea,.criterion textarea{width:100%;background:#061622;border:1px solid #2c4e63;border-radius:8px;color:#fff;padding:9px;min-height:66px}.comment-bank-item{border:1px solid var(--line);border-radius:10px;background:#0f2435;padding:12px;margin-bottom:8px}.comment-bank-item .row{display:flex;align-items:center;gap:8px}.comment-bank-item p{margin:7px 0 0;color:var(--muted)}
.criterion{display:grid;grid-template-columns:1fr 105px 1.35fr;gap:12px;align-items:start;border:1px solid var(--line);border-radius:11px;background:#0f2435;padding:13px;margin-bottom:9px}.criterion input{width:72px;background:#061622;border:1px solid #2c4e63;border-radius:8px;color:#fff;padding:9px}.rubric-control{display:flex;gap:12px;align-items:flex-start}.rubric-main{flex:1}.rubric-side{width:330px;border:1px solid var(--line);border-radius:12px;padding:14px;background:#0f2435}
.report{background:#fff;color:#1c2d38;border-radius:11px;padding:26px;max-width:820px}.report h2{color:#173c55}.report h3{color:#24546f}.report .report-meta{background:#edf4f7;border:1px solid #d5e0e5;border-radius:9px;padding:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px 22px}.feedback{border-left:4px solid #36a4c6;background:#eef8fb;padding:10px;margin:7px 0}.rubric-row{display:flex;justify-content:space-between;border-bottom:1px solid #dbe5eb;padding:7px 0}.disclaimer{background:#eaf3f7;border-radius:8px;padding:10px;font-size:11px;color:#3c5868}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.76);z-index:70;display:none;align-items:center;justify-content:center;padding:20px}.modal.open{display:flex}.modal-card{width:min(980px,96vw);max-height:90vh;overflow:auto;background:#0a1d2c;border:1px solid #3a6078;border-radius:16px;padding:20px;box-shadow:0 26px 80px rgba(0,0,0,.5)}.modal-card.sm{width:min(560px,94vw)}.modal-card.md{width:min(760px,94vw)}.modal-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.modal-head h2{margin:0}.quote-box{border:1px solid #315267;border-radius:9px;padding:12px;background:#071725;color:#dceaf2}.checkrow{display:flex;gap:8px;align-items:flex-start;border:1px solid var(--line);border-radius:10px;padding:10px;background:#0f2435}.search{width:100%;background:#061622;border:1px solid #2c536a;border-radius:9px;color:#fff;padding:10px;margin:10px 0}.queue-row,.summary-row,.roster-row{display:grid;gap:9px;align-items:center;padding:10px;border-top:1px solid #203b4d}.queue-row{grid-template-columns:40px 1fr 125px 110px 90px}.summary-row{grid-template-columns:1.2fr 120px 100px 90px 90px}.roster-row{grid-template-columns:1.2fr 1fr 120px 90px}.current{background:#123249}.batch-options{display:flex;gap:12px;flex-wrap:wrap;padding:11px;border:1px solid var(--line);border-radius:10px;background:#0d2435}.batch-preview{background:#fff;color:#172b37;border-radius:10px;padding:22px;margin-top:14px;max-height:54vh;overflow:auto}.batch-page{padding:10px 0 22px;border-bottom:2px solid #d7e1e7;margin-bottom:18px}.tutorial{border:1px solid var(--line);border-radius:11px;padding:13px;background:#0f2435}.tutorial b{color:#8befff}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#06131d;border:1px solid #3d708c;border-radius:9px;padding:10px 14px;z-index:90;display:none;box-shadow:0 12px 30px rgba(0,0,0,.35)}
@media(max-width:1100px){.grid4{grid-template-columns:1fr 1fr}.grid3{grid-template-columns:1fr 1fr}.shell{grid-template-columns:1fr}.writing{border-right:0;border-bottom:1px solid var(--line)}.classbar{position:static;flex-wrap:wrap}.tabs{position:static;justify-content:flex-start}.top{position:static}.criterion,.compare,.compare-choices{grid-template-columns:1fr}.queue-row,.summary-row,.roster-row{grid-template-columns:1fr}.rubric-control{flex-direction:column}.rubric-side{width:100%}}
@media(max-width:650px){.grid4,.grid3,.grid2{grid-template-columns:1fr}.work,.essay{padding:18px}.start-card{padding:18px}.report .report-meta{grid-template-columns:1fr}}
@media print{.top,.tabs,.classbar,.writing,.actions,.toolbar{display:none!important}.shell{display:block}.work{padding:0;background:#fff}.report,.batch-preview{max-height:none;overflow:visible}}