:root{font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans CJK SC,sans-serif;color:#152235;background:#f1f4f8;font-synthesis:none;--navy: #162234;--blue: #2258e6;--blue-dark: #1748cb;--blue-light: #e8efff;--text: #152235;--muted: #56657a;--line: #d9e0e9;--radius: 10px}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:320px;font-size:15px;line-height:1.5}h1,h2,h3,p{margin:0}h1{font-size:clamp(26px,2.4vw,36px);line-height:1.2;letter-spacing:-.025em}h2{font-size:21px;line-height:1.3;margin-bottom:14px}h3{font-size:16px;margin:12px 0 8px}a{color:var(--blue-dark);text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}input,textarea,select{display:block;width:100%;min-width:0;padding:9px 11px;min-height:41px;border:1px solid #bfcbd9;border-radius:7px;color:var(--text);background:#fff}input:disabled,select:disabled,textarea:disabled{background:#f4f6f9;color:#526176}textarea{resize:vertical}label{display:block;font-weight:600}label>input,label>select,label>textarea{margin-top:5px;font-weight:400}:focus-visible{outline:3px solid #7ea5ff;outline-offset:2px}svg{flex-shrink:0}small{font-size:13px}.shell{min-height:100vh;display:grid;grid-template-columns:202px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;padding:19px 11px 15px;color:#fff;background:var(--navy)}.brand{display:flex;align-items:center;gap:9px;color:#fff;font-size:23px;font-weight:750;margin:0 11px 36px;white-space:nowrap}.brand:hover,.nav-link:hover{text-decoration:none}.sidebar nav{display:grid;gap:7px}.nav-link{display:flex;align-items:center;gap:11px;width:100%;padding:12px 14px;color:#e7edf6;background:transparent;border:1px solid transparent;border-radius:8px;text-align:left;font-size:16px;overflow-wrap:anywhere}a.nav-link:hover,button.nav-link:hover{background:#24354e;color:#fff}.nav-link.selected,a.nav-link.selected:hover{background:var(--blue);color:#fff;font-weight:650}.sidebar-bottom{margin-top:auto;border-top:1px solid #3b4b61;padding-top:8px}.main{min-width:0;padding:22px clamp(13px,2vw,34px) 30px}.page-header{margin-bottom:19px}.page-header>h1{margin-top:8px}.page-header p{margin-top:9px}.heading-line,.inline,.actions{display:flex;align-items:center;gap:9px}.heading-line,.actions{flex-wrap:wrap}.heading-line{gap:13px}.title-actions,.spread{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.title-actions>div>h2,.title-actions>h2{margin-bottom:4px}.nowrap{flex-wrap:nowrap}.description{align-items:baseline;white-space:pre-wrap;overflow-wrap:anywhere}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:19px 22px;min-width:0}.panel+.panel,.editor>.panel+.panel{margin-top:16px}.muted{color:var(--muted)}.success{color:#087642}.error-text,.danger-text{color:#a12632!important}.button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 14px;border:1px solid transparent;border-radius:7px;font-weight:650;white-space:nowrap;text-decoration:none}.button:hover{text-decoration:none}.primary{color:#fff;background:var(--blue)}.primary:hover:not(:disabled){background:var(--blue-dark)}.outline{background:#fff;border-color:#c6d0de;color:var(--text)}.outline:hover:not(:disabled){background:#f4f7ff}.outline.accent{border-color:#4676ed;color:var(--blue-dark)}.danger{color:#fff;background:#a12632}.compact{min-height:35px;padding:6px 9px;font-size:13px}.text-button,.icon-button{background:transparent;color:var(--blue-dark);border:0;border-radius:6px;padding:6px}.text-button:hover:not(:disabled),.icon-button:hover:not(:disabled){background:#edf2fc}.icon-button{display:inline-grid;place-items:center;min-width:33px;min-height:33px;color:#32435a}.badge{display:inline-block;border-radius:6px;padding:3px 8px;line-height:1.35;font-size:13px;white-space:nowrap;font-weight:650}.badge.blue{color:#1647bc;background:#dce8ff}.badge.green{color:#176140;background:#dff3e7}.badge.amber{color:#854300;background:#fff0d7}.badge.neutral{color:#485a71;background:#eaf0f6}.notice{margin:10px 0;padding:9px 12px;border-radius:7px;overflow-wrap:anywhere}.notice.info{color:#24426c;background:#eaf1ff}.notice.error{color:#941f29;background:#fff0f1;border:1px solid #f4c7ca}.notice.ok{color:#14603c;background:#e9f7ef}.empty{min-height:170px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;text-align:center;color:var(--muted);padding:15px}.empty svg{color:#778ba7}.student-page{max-width:1340px;margin:auto}.student-page .panel{padding:21px 24px}.group-name{max-width:610px}.member-grid{margin:15px 0}.member-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;align-items:end}.grouped .member-row{grid-template-columns:minmax(85px,1fr) minmax(85px,.85fr) minmax(140px,1.5fr) minmax(82px,.62fr) auto;padding:8px 11px;gap:11px}.grouped .member-row:first-child{background:#f2f5f9;border-radius:7px 7px 0 0}.grouped .member-row+.member-row{border-top:1px solid #e6ebf1}.remove-member{align-self:end;min-height:40px}.dropzone{width:100%;min-height:103px;margin-top:11px;border:1.5px dashed #81a1ed;background:#f0f5ff;color:var(--blue-dark);border-radius:8px;display:flex;align-items:center;justify-content:center;gap:9px;font-weight:650;padding:12px}.dropzone.dragging,.dropzone:hover:not(:disabled){background:#e3edff}.file-list,.review-list ul,.review-members{list-style:none;margin:13px 0;padding:0}.file-list{border:1px solid var(--line);border-radius:7px}.file-list li{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 12px}.file-list li+li{border-top:1px solid var(--line)}.filename{overflow-wrap:anywhere;min-width:0}.file-list .filename{flex:1 1 140px}.file-list small{color:var(--muted)}.pdf-select{flex-basis:100%;display:flex;align-items:center;gap:9px;font-size:13px;padding:0 0 6px 30px}.pdf-select select{max-width:320px;min-height:34px;margin:0}.upload-footer{border-top:1px solid var(--line);margin-top:17px;padding-top:16px}.progress{display:flex;gap:9px;align-items:center;margin-top:12px}progress{accent-color:var(--blue);width:100%}.receipt{text-align:center;padding:55px 16px}.receipt svg{color:#188351}.receipt h1,.receipt p{margin:10px 0}.receipt code{display:inline-block;max-width:100%;overflow-wrap:anywhere;padding:10px 15px;background:#eef3fb;border-radius:7px}.scroll-table{overflow:auto}table{width:100%;border-collapse:collapse;text-align:left}th,td{padding:12px 10px;border-bottom:1px solid var(--line)}th{background:#f1f5fa;font-weight:650}td{overflow-wrap:anywhere}tr:last-child td{border-bottom:0}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:21px}.form-grid .wide{grid-column:1/-1}.editor{max-width:900px}.criterion-editor{display:grid;grid-template-columns:minmax(120px,1fr) minmax(66px,.3fr) auto;gap:10px;align-items:end;margin:12px 0}.criterion-editor .actions{gap:1px;min-height:41px}.editor form>.actions{margin-top:18px}.link-row{margin:13px 0}.link-row input{flex:1 1 260px}.editor .title-actions{margin-bottom:12px}.search{display:flex;gap:7px;align-items:center;border:1px solid #bfcbd9;border-radius:7px;padding-left:9px;color:#54647a;background:#fff}.search input{border:0;margin:0;min-height:38px;padding-left:0}.search:focus-within{outline:2px solid #7ea5ff}.search input:focus-visible{outline:0}.file-button{position:relative;cursor:pointer;margin-top:11px;overflow:hidden}.file-button input{opacity:0;position:absolute;inset:0;cursor:pointer;margin:0}.file-button:focus-within{outline:3px solid #7ea5ff;outline-offset:2px}.file-button.disabled{opacity:.55}.import-result{margin-top:17px}.import-table{max-height:330px;margin-bottom:12px}.import-table thead{position:sticky;top:0}.breadcrumb{font-size:clamp(17px,1.65vw,23px);margin:0 0 7px!important}.breadcrumb a{color:var(--text)}.review .page-header{margin-bottom:13px}.review-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px 14px;margin-bottom:14px}.review-toolbar .search{flex:1 1 195px;max-width:340px}.review-toolbar select{width:auto;min-width:130px}.review-toolbar>.actions{margin-left:auto}.review-grid{display:grid;grid-template-columns:minmax(152px,.63fr) minmax(300px,1.85fr) minmax(245px,1.16fr);gap:10px;align-items:stretch}.review-grid>.panel{margin:0;min-height:560px;padding:13px}.review-list h2,.review-scores h2{font-size:18px;margin-bottom:11px}.review-list ul{margin:0}.review-list li+li{border-top:1px solid #e5eaf1}.review-list li button{display:flex;gap:7px;align-items:center;border:0;padding:10px 7px;background:#fff;color:var(--text);width:100%;text-align:left;border-radius:6px}.review-list button:hover,.review-list button.selected{background:#e4edff}.review-list button.selected{box-shadow:inset 3px 0 var(--blue)}.review-list button>span{flex:1;min-width:0;overflow-wrap:anywhere;font-weight:650}.review-list button .badge{font-size:11px;padding:3px 4px}.media-heading{display:flex;gap:7px;align-items:baseline;justify-content:space-between;flex-wrap:wrap}.media-heading h2{margin-bottom:7px;overflow-wrap:anywhere}.preview:fullscreen{background:#fff;padding:15px;overflow:auto}.file-tabs{display:flex;overflow:auto;border-bottom:1px solid var(--line);gap:6px}.file-tab{display:inline-flex;gap:6px;align-items:center;padding:8px 9px;background:#fff;border:0;border-bottom:3px solid transparent;color:var(--text);min-width:0;white-space:nowrap}.file-tab span{overflow:hidden;text-overflow:ellipsis}.file-tab.selected{background:#eef3ff;border-bottom-color:var(--blue);color:var(--blue-dark);font-weight:650}.preview-tools{display:flex;align-items:center;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:9px;margin-top:8px;background:#f1f4f9;border-radius:7px 7px 0 0}.pdf-stage,.image-stage,.video-stage{display:grid;place-items:center;background:#e4e9f0;min-height:240px;overflow:hidden}.pdf-stage canvas{max-width:100%}.image-stage img,.video-stage video{max-width:100%;max-height:72vh}.pager{display:flex;justify-content:center;align-items:center;gap:12px;background:#f1f4f9;padding:7px;border-radius:0 0 7px 7px}.review-members{margin-top:0;max-height:225px;overflow:auto}.review-members li{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:6px;border:1px solid #e1e7ef;border-radius:7px}.review-members svg{color:#58729b}.review-members p{color:var(--muted);font-size:13px;overflow-wrap:anywhere}.review-members p span,.review-members .badge{margin-left:7px}.score-form{border-top:1px solid var(--line);padding-top:12px}.score-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(56px,.58fr) 48px;gap:7px;align-items:center;padding:5px 0;border-bottom:1px solid #edf0f4}.score-row span{overflow-wrap:anywhere}.score-row input{margin:0;min-height:36px;padding:6px 7px}.score-max{color:var(--muted);font-weight:400}.score-total{display:flex;justify-content:space-between;gap:6px;align-items:center;margin:13px 0;padding:8px 10px;background:#e9efff;border-radius:7px}.score-total strong{color:var(--blue-dark);font-size:26px;white-space:nowrap}.score-total small{font-size:12px;color:var(--blue-dark)}.score-form>.actions{margin-top:12px}.revoke-area{margin-top:10px}.revoke-area form .actions{margin-top:8px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:18px}.login-card{width:min(100%,405px);padding:29px}.login-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:9px;color:#fff;background:var(--blue);margin-bottom:13px}.login-card>label,.login-card>button{margin-top:15px;width:100%}@media(max-width:1100px){.shell{grid-template-columns:155px minmax(0,1fr)}.brand{font-size:19px;margin-left:3px}.nav-link{padding:10px 8px;font-size:14px}.review-grid{grid-template-columns:minmax(125px,.55fr) minmax(230px,1.45fr) minmax(215px,1fr)}.review-grid>.panel{padding:9px}.review-list li button>svg{display:none}.pdf-download{display:none}}@media(max-width:890px){.review-grid{grid-template-columns:minmax(120px,.5fr) minmax(0,1.5fr)}.review-grid>.panel{min-height:0}.review-scores{grid-column:2}.grouped .member-row{grid-template-columns:repeat(2,minmax(0,1fr))}.remove-member{justify-self:start}}@media(max-width:630px){.shell{display:block}.sidebar{position:static;height:auto;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;padding:9px 10px;gap:4px 9px}.brand{margin:0;font-size:17px}.brand svg{width:19px}.sidebar nav,.sidebar-bottom{display:flex;gap:3px}.sidebar-bottom{border:0;margin:0 0 0 auto;padding:0}.sidebar-bottom div.nav-link{display:none}.nav-link{font-size:13px;white-space:nowrap;gap:4px;padding:6px}.nav-link svg{width:14px}.main{padding:15px 10px 24px}.panel,.student-page .panel{padding:13px}.member-row,.grouped .member-row,.form-grid{grid-template-columns:minmax(0,1fr)}.grouped .member-row{padding:8px}.review-grid{grid-template-columns:minmax(0,1fr)}.review-scores{grid-column:auto}.review-toolbar>.actions{margin-left:0}.review-list ul{max-height:185px;overflow:auto}.pdf-select{padding-left:0}.upload-footer .actions{width:100%;justify-content:space-between}}.member-grid .member-row{align-items:start}.member-row label>small{display:block;margin-top:4px;min-height:19px;font-weight:400}.member-row input[readonly]{background:#f4f6f9;color:#384b65}.member-row input[aria-invalid=true]{border-color:#b83140}
