:root{--navy:#06112d;--panel:rgba(8,29,57,.82);--line:rgba(156,207,222,.16);--text:#f7fbff;--muted:#8fa8bf;--teal:#21d4b2;--cyan:#64c9ff;--gold:#f4c557;--red:#ff756d}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif}button,input,select,textarea{font:inherit}.screen-page{min-height:100vh;color:var(--text);background:var(--navy)}.screen-shell{min-height:100vh;padding:24px 32px 32px;background:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),radial-gradient(circle at 88% 8%,rgba(0,180,154,.26),transparent 29%),radial-gradient(circle at 4% 48%,rgba(22,74,187,.31),transparent 37%),linear-gradient(135deg,#06102c,#071a32 48%,#063b43);background-size:34px 34px,34px 34px,auto,auto,auto}.screen-header{position:relative;display:block;margin-bottom:16px;text-align:center}.screen-header>div:first-child{padding:0 180px}.eyebrow{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 7px;color:var(--gold);font-size:11px;font-weight:800;letter-spacing:.14em}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 5px rgba(33,212,178,.12),0 0 18px var(--teal);animation:pulse 2s infinite}@keyframes pulse{50%{opacity:.45;transform:scale(.85)}}.screen-header h1{margin:0;color:var(--gold);font-family:"Microsoft YaHei","PingFang SC","Noto Sans CJK SC",Arial,sans-serif;font-size:clamp(30px,2.35vw,45px);font-weight:800;line-height:1.12;letter-spacing:.025em}.screen-header h1 span{display:block}.screen-header h1 .event-screen-name{margin-top:5px;color:#ffe093;font-size:.72em;letter-spacing:.08em}.event-subline{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:9px;color:#c4d3df;font-size:12px;letter-spacing:.07em}.event-subline strong{padding:3px 9px;border:1px solid rgba(244,197,87,.4);border-radius:99px;color:#071a32;background:var(--gold);font-size:10px;line-height:1.2;letter-spacing:.08em}.sync-box{position:absolute;top:0;right:0;min-width:170px;padding:12px 15px;text-align:right;border:1px solid var(--line);border-radius:12px;background:rgba(5,22,44,.6)}.sync-box span,.sync-box strong{display:block}.sync-box span{color:var(--muted);font-size:10px}.sync-box strong{margin-top:4px;color:#dbfff7;font-size:12px}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:11px}.metrics article{position:relative;overflow:hidden;min-height:78px;padding:13px 17px;border:1px solid var(--line);border-radius:13px;background:linear-gradient(135deg,rgba(17,42,75,.94),rgba(6,28,54,.72))}.metrics article:after{content:"";position:absolute;right:-42px;top:-54px;width:95px;height:95px;border-radius:50%;background:currentColor;opacity:.08}.metrics span{display:block;color:var(--muted);font-size:11px}.metrics strong{display:inline-block;margin-top:4px;font-size:36px;line-height:1}.metrics em{margin-left:7px;color:#a7bacb;font-size:11px;font-style:normal}.metrics .cyan{color:var(--cyan)}.metrics .gold{color:var(--gold)}.metrics .green{color:var(--teal)}.panel{margin-bottom:11px;padding:12px 14px 14px;border:1px solid var(--line);border-radius:13px;background:var(--panel);backdrop-filter:blur(14px)}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:9px}.panel-title span{color:var(--gold);font-size:8px;font-weight:800;letter-spacing:.18em}.panel-title h2{margin:1px 0 0;font-size:15px}.panel-title>b{color:#7f9ab1;font-size:9px;font-weight:500}.roadmap{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.roadmap article{display:grid;grid-template-columns:27px 1fr auto;gap:7px;align-items:center;min-width:0;padding:8px 9px;border-radius:9px;background:rgba(21,52,81,.7)}.roadmap i{display:grid;place-items:center;width:27px;height:27px;border:1px solid rgba(100,201,255,.25);border-radius:50%;color:var(--cyan);background:rgba(100,201,255,.1);font-size:10px;font-style:normal;font-weight:800}.roadmap div{min-width:0}.roadmap span,.roadmap strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roadmap span{color:#88a3bb;font-size:8px}.roadmap strong{margin-top:2px;font-size:11px}.roadmap em{color:var(--teal);font-size:9px;font-style:normal}.roadmap .final{border:1px solid rgba(244,197,87,.23);background:linear-gradient(135deg,rgba(244,197,87,.14),rgba(18,111,101,.22))}.roadmap .final i,.roadmap .final em{color:var(--gold)}.group-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:7px}.group-card{min-width:0;padding:8px 9px;border:1px solid rgba(129,183,206,.11);border-radius:8px;background:linear-gradient(150deg,rgba(28,58,87,.65),rgba(5,28,53,.55))}.group-card>div{display:flex;justify-content:space-between;gap:5px}.group-card strong{font-size:11px}.group-card>div span{color:var(--teal);font-size:8px;white-space:nowrap}.group-card>p{height:4px;margin:6px 0;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.08)}.group-card>p i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#33a4e8,var(--teal));box-shadow:0 0 9px rgba(33,212,178,.4)}.group-card>footer{display:flex;justify-content:space-between;color:#728da4;font-size:7px}.group-card>footer b{color:#dce8f3;font-size:9px}.student-table{overflow:hidden;border:1px solid rgba(156,207,222,.1);border-radius:9px}.student-row{display:grid;grid-template-columns:.7fr 1.45fr .9fr .9fr .9fr;align-items:center;min-height:29px;padding:4px 10px;border-bottom:1px solid rgba(156,207,222,.075);font-size:10px}.student-row:last-child{border-bottom:0}.student-row:nth-child(even):not(.table-head){background:rgba(255,255,255,.018)}.student-row.table-head{min-height:26px;color:#718da5;background:rgba(4,16,35,.55);font-size:8px}.group-label{color:var(--cyan);font-weight:800}.state{position:relative;padding-left:11px}.state:before{content:"";position:absolute;left:0;top:50%;width:5px;height:5px;border-radius:50%;transform:translateY(-50%)}.state.no{color:#70879b}.state.no:before{background:#40566b}.state.yes{color:#b9e4f9}.state.yes:before{background:var(--cyan)}.state.checked{color:#f5db91}.state.checked:before{background:var(--gold)}.badge{justify-self:start;padding:3px 7px;border-radius:99px;font-size:8px;font-style:normal;font-weight:800}.badge.not_started{color:#8097ab;background:rgba(128,151,171,.1)}.badge.waiting{color:var(--gold);background:rgba(244,197,87,.12)}.badge.passed{color:var(--teal);background:rgba(33,212,178,.13)}.badge.redo{color:var(--red);background:rgba(255,117,109,.12)}.page-dots{display:flex;gap:4px}.page-dots button{width:6px;height:6px;padding:0;border:0;border-radius:99px;background:#49647b}.page-dots button.active{width:20px;background:var(--teal)}.screen-shell>footer{display:flex;justify-content:space-between;align-items:center;color:#6f8da5;font-size:9px}.screen-shell>footer a{color:var(--gold);text-decoration:none}
.assistant-page{min-height:100vh;color:#142c43;background:#f1f5f9}.assistant-shell{width:min(100%,760px);min-height:100vh;margin:auto;padding:18px 16px 40px}.assistant-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;padding:18px 19px;border-radius:17px;color:white;background:linear-gradient(135deg,#071a3b,#076b66);box-shadow:0 17px 46px rgba(18,51,83,.16)}.assistant-header h1{margin:2px 0;font-size:24px}.assistant-header>div>span{color:#b9d6dc;font-size:11px}.assistant-header>div:last-child{display:flex;gap:6px}.assistant-header a,.assistant-header button{padding:7px 9px;border:1px solid rgba(255,255,255,.2);border-radius:8px;color:#e7f5f4;background:rgba(255,255,255,.08);font-size:10px;text-decoration:none}.mobile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:11px 0}.mobile-stats article{padding:12px 14px;border:1px solid #e0e8ee;border-radius:12px;background:white;box-shadow:0 7px 21px rgba(21,54,84,.05)}.mobile-stats span{display:block;color:#718396;font-size:10px}.mobile-stats strong{display:block;margin-top:2px;font-size:23px}.mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.mode-tabs button{display:flex;flex-direction:column;align-items:flex-start;padding:10px 12px;border:1px solid #dbe4ec;border-radius:11px;color:#53687b;background:white}.mode-tabs button.active{color:#056c61;border-color:#16a98f;background:#ebfbf7;box-shadow:inset 0 0 0 1px #16a98f}.mode-tabs span{margin-top:2px;color:#8a99a8;font-size:9px}.subject-tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:5px;margin-bottom:10px}.subject-tabs button{padding:7px 2px;border:1px solid #dbe4ec;border-radius:8px;color:#61758a;background:white;font-size:9px}.subject-tabs span{display:block;margin-top:2px;color:#9aa7b3;font-size:7px}.subject-tabs button.active{color:#fff;border-color:#087a70;background:#087a70}.subject-tabs button.active span{color:#c2ebe7}.toolbar{display:grid;grid-template-columns:1fr 110px;gap:7px;margin-bottom:8px}.toolbar input,.toolbar select{min-width:0;padding:10px 11px;border:1px solid #d9e2ea;border-radius:10px;color:#1d344b;background:white;outline:0}.filter-tabs{display:flex;gap:6px;margin-bottom:10px;overflow-x:auto}.filter-tabs button{flex:0 0 auto;padding:6px 11px;border:0;border-radius:99px;color:#65798b;background:#e4eaf0;font-size:10px}.filter-tabs button.active{color:white;background:#0b756c}.notice{position:sticky;top:7px;z-index:5;margin:7px 0;padding:9px 11px;border-radius:9px;font-size:10px;box-shadow:0 7px 22px rgba(0,0,0,.07)}.notice.success{color:#05685e;background:#dff8f2}.notice.error{color:#a12f2a;background:#fee8e6}.mobile-list{display:grid;gap:8px}.mobile-card{padding:12px;border:1px solid #dde6ed;border-radius:13px;background:white;box-shadow:0 8px 23px rgba(19,50,78,.05)}.student-head{display:grid;grid-template-columns:37px 1fr auto;gap:9px;align-items:center}.student-head>i{display:grid;place-items:center;width:37px;height:37px;border-radius:11px;color:#08776d;background:#dff7f3;font-size:10px;font-style:normal;font-weight:800}.student-head span{color:#8797a6;font-size:8px}.student-head h2{margin:1px 0 0;font-size:15px}.student-head em{padding:4px 7px;border-radius:99px;font-size:8px;font-style:normal;font-weight:800}.student-head em.not_started{color:#75889a;background:#edf1f5}.student-head em.waiting{color:#946a00;background:#fff4d4}.student-head em.passed{color:#08776d;background:#dff7f3}.student-head em.redo{color:#b0443c;background:#fee7e4}.exam-actions{display:grid;grid-template-columns:1fr 1.45fr 1fr 1fr;gap:5px;margin-top:10px}.exam-actions button{min-height:34px;padding:5px 4px;border:1px solid #dfe6ec;border-radius:8px;color:#728596;background:#f8fafb;font-size:8px}.exam-actions .waiting{color:#906900}.exam-actions .redo{color:#aa443d}.exam-actions .passed{color:#08776d}.exam-actions button.selected{color:white;border-color:transparent;background:#77899b;font-weight:800}.exam-actions .waiting.selected{background:#d49e20}.exam-actions .redo.selected{background:#d05a51}.exam-actions .passed.selected{background:#0b8d7f}.last{margin:7px 0 0;color:#9aa8b5;font-size:7px}.action-list{display:grid;gap:5px;margin-top:10px}.action-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 0;border-top:1px solid #edf1f4}.action-row>div:first-child{min-width:0}.action-row b{display:inline-block;width:29px;color:#0b7f73;font-size:9px}.action-row span{color:#384e63;font-size:9px}.action-row>div:last-child{display:grid;grid-template-columns:repeat(3,40px);gap:3px}.action-row button{padding:5px 2px;border:1px solid #dbe3ea;border-radius:6px;color:#8b99a6;background:#f8fafc;font-size:7px}.action-row button.active{color:#52677a;border-color:#9aabb9;background:#e7edf2}.action-row .redo.active{color:white;border-color:#d05a51;background:#d05a51}.action-row .passed.active{color:white;border-color:#0b8d7f;background:#0b8d7f}.assistant-page .empty{padding:32px;text-align:center;color:#8493a1}.roster-panel{margin-top:13px;padding:12px 13px;border:1px solid #dce5ec;border-radius:12px;background:white}.roster-panel summary{font-size:11px;font-weight:800;cursor:pointer}.roster-panel p{color:#788a9b;font-size:9px;line-height:1.6}.roster-panel textarea{width:100%;min-height:105px;padding:9px;resize:vertical;border:1px solid #d9e2ea;border-radius:8px;color:#21384e}.roster-panel>div{display:flex;justify-content:flex-end;gap:6px;margin-top:7px}.roster-panel button{padding:8px 10px;border-radius:7px;font-size:9px}.roster-panel .outline{color:#356075;border:1px solid #cbd9e2;background:white}.roster-panel .danger{color:white;border:1px solid #ca5149;background:#ca5149}dialog{width:min(calc(100% - 28px),420px);padding:0;border:1px solid rgba(255,255,255,.15);border-radius:20px;color:white;background:linear-gradient(145deg,#071733,#07504e);box-shadow:0 30px 100px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(3,12,28,.72);backdrop-filter:blur(8px)}dialog form{padding:25px}dialog h2{margin:3px 0 6px;color:var(--gold);font-size:25px}dialog form>p:not(.eyebrow){margin:0 0 20px;color:#b5cad8;font-size:11px}dialog label{display:block;margin-top:12px;color:#b9cbd8;font-size:10px}dialog input{display:block;width:100%;margin-top:5px;padding:11px 12px;border:1px solid rgba(255,255,255,.17);border-radius:9px;color:white;background:rgba(255,255,255,.07);outline:0}dialog form>button{width:100%;margin-top:14px;padding:11px;border:0;border-radius:9px;color:#052d2a;background:linear-gradient(90deg,var(--gold),#ffe79b);font-weight:800}#loginError{display:block;min-height:15px;margin-top:8px;color:#ffaaa4;font-size:9px}
@media(max-width:1200px){.screen-shell{padding:20px}.group-grid{grid-template-columns:repeat(6,1fr)}.roadmap{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.screen-shell{padding:16px 12px 28px}.screen-header>div:first-child{padding:0}.screen-header h1{font-size:25px}.screen-header h1 .event-screen-name{font-size:.75em}.event-subline{align-items:center;flex-direction:column;gap:5px;font-size:9px}.screen-header .sync-box{position:static;width:max-content;min-width:100px;margin:10px auto 0;padding:8px;text-align:center}.sync-box strong{font-size:9px}.metrics{grid-template-columns:1fr 1fr}.roadmap{grid-template-columns:repeat(2,1fr)}.group-grid{grid-template-columns:repeat(2,1fr)}.student-row{grid-template-columns:.6fr 1.2fr .9fr .9fr}.student-row>*:last-child{display:none}.assistant-shell{padding:11px}.assistant-header{padding:14px}.exam-actions{grid-template-columns:1fr 1fr}}
