:root{--bg:#f3f6fa;--ink:#172b49;--muted:#66778f;--line:#dce4ef;--primary:#174d90;--primary-dark:#123a6c;--card:#fff;--success:#15803d;--radius:14px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}a{color:var(--primary);text-decoration:none}a:hover{text-decoration:underline}button,.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:10px 19px;background:var(--primary);color:white;font:inherit;font-weight:600;cursor:pointer;line-height:1.4;text-decoration:none;white-space:nowrap}button:hover,.button:hover{background:var(--primary-dark);text-decoration:none}button:disabled{opacity:.55;cursor:wait}.ghost{background:transparent;color:var(--primary);border-color:#bfcee1}.ghost:hover{background:#e9f0fa;color:var(--primary)}.danger{background:#b42331}.danger:hover{background:#8d1d29}.small{font-size:13px;padding:7px 12px}.full{width:100%}input,textarea,select{font:inherit;width:100%;border:1px solid #c8d3e1;border-radius:7px;padding:10px 12px;background:white;color:var(--ink);min-height:43px}textarea{resize:vertical;line-height:1.65}input:focus,select:focus,textarea:focus{outline:3px solid #d9e7fa;border-color:#548bc8}label{display:flex;flex-direction:column;gap:7px;font-weight:600;margin:0 0 17px}label input,label textarea,label select{font-weight:400}.check{flex-direction:row;align-items:center;font-weight:400;gap:9px;margin:10px 0}.check input{width:18px;height:18px;min-height:0;margin:0;accent-color:var(--primary);flex:none}.required{color:#b42331}h1,h2,h3,p{margin-top:0}h1{font-size:30px;line-height:1.3;margin-bottom:10px;letter-spacing:-.5px}h2{font-size:20px;line-height:1.4;margin-bottom:15px}p{margin-bottom:13px}.muted{color:var(--muted)}.help{color:var(--muted);font-size:13px;line-height:1.7;margin:13px 0 0}.eyebrow{font-size:12px;color:var(--muted);letter-spacing:1.5px;font-weight:700;text-transform:uppercase}.topbar{height:82px;background:var(--card);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;padding:0 4.2%}.brand{display:flex;align-items:center;gap:13px;color:var(--ink);font-weight:750;font-size:18px;line-height:1.45}.brand:hover{text-decoration:none}.brandmark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--primary);color:white;font-size:19px;letter-spacing:-1px}.brand-sub{display:block;font-size:11px;color:var(--muted);font-weight:400;letter-spacing:1px}.account{display:flex;align-items:center;gap:20px;font-size:13px}.container{max-width:1480px;padding:34px 4.2% 60px;margin:auto}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:25px;margin-bottom:22px;box-shadow:0 3px 12px #193c6610}.page-title,.event-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 25px}.page-title p{margin:6px 0 0;color:var(--muted)}.event-heading h1{font-size:25px;margin:8px 0 0}.tabs{display:flex;gap:8px;overflow:auto;border-bottom:1px solid var(--line);padding-bottom:13px;margin-bottom:26px}.tabs a{white-space:nowrap;font-size:14px;font-weight:600;color:var(--muted);padding:9px 13px;border-radius:7px}.tabs a.active,.tabs a:hover{background:#e4edf8;color:var(--primary);text-decoration:none}.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:24px}.event-card{display:block;color:var(--ink);margin:0;padding:25px;transition:transform .15s}.event-card:hover{text-decoration:none;transform:translateY(-3px);border-color:#91add0}.event-card h2{font-size:23px;margin:21px 0 10px}.event-card p{font-size:13px;color:var(--muted)}.event-counts{display:flex;gap:45px;padding:20px 0}.event-counts strong{font-size:32px;display:block;line-height:1.25}.event-counts span{font-size:12px;color:var(--muted)}.card-foot{border-top:1px solid var(--line);padding-top:17px;font-size:13px;font-weight:600;color:var(--primary)}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.kpis .card{padding:22px}.kpis span{font-size:13px;color:var(--muted)}.kpis strong{display:block;font-size:34px;line-height:1.6}.kpis small{font-size:18px;color:var(--muted);font-weight:500}.split{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:start}.row{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.between{justify-content:space-between}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.inline-form{display:flex;gap:12px;align-items:center;margin:16px 0 22px}.inline-form input{max-width:390px}.pill{display:inline-flex;align-items:center;border-radius:30px;padding:5px 11px;font-size:12px;font-weight:650;background:#e9eef5;color:#52637a}.pill.ok{background:#e4f4e9;color:#137a36}.pill.bad{background:#ffe5e7;color:#b42331}.alert{border-radius:9px;padding:16px 19px;margin-bottom:20px;font-size:14px;border:1px solid #cbd9ec;background:#eff5fc}.alert.error{background:#fff0f0;border-color:#f3c3c3;color:#a1202c}.alert.success{background:#edf9f0;border-color:#b8dfc2;color:#156d33}.alert.warning{background:#fff8e8;border-color:#ebd394;color:#7b590c}.alert.info{background:#eef5ff;color:#224b7d}.alert p:last-child{margin-bottom:0}.legend{display:flex;flex-wrap:wrap;gap:12px}.state{display:inline-flex;align-items:center;border-radius:6px;padding:5px 10px;white-space:nowrap;font-size:13px;font-weight:650}.state.not_due{background:#eef1f5;color:#566479}.state.waiting{background:#fff4ce;color:#956600}.state.late{background:#fee8e8;color:#be2331}.state.reported{background:#e3eeff;color:#215acc}.state.examined{background:#e1f3e7;color:#147435}.state.forfeited{background:#f2e5fc;color:#8731b5}.state.invalid{background:#fff0d6;color:#955a00}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;letter-spacing:.3px;font-weight:650;background:#f4f7fb;color:#64748b;white-space:nowrap}td,th{padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:middle}td{font-size:14px}tbody tr:hover{background:#fafcfe}.empty{padding:48px;text-align:center;color:var(--muted)}.pagination{display:flex;justify-content:center;gap:30px;margin:24px 0 0}.mono{font-family:ui-monospace,monospace}.mini-card{padding:18px;border:1px solid var(--line);border-radius:10px;margin-bottom:16px}.mini-card strong{display:block;margin-bottom:12px}.entry-summary{border-bottom:1px solid var(--line);padding:0 0 13px;margin-bottom:17px}.entry-summary p{font-size:13px;color:var(--muted);margin:7px 0 0}details{margin:15px 0}summary{cursor:pointer;font-weight:600;padding:4px 0}.scroll-box{max-height:320px;overflow:auto}.scroll-box p{margin:5px 0}.pdf-preview{width:100%;height:75vh;min-height:550px;border:1px solid var(--line);background:#edf1f6}.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px 20px;padding:15px;background:#f8fafd;border-radius:10px;max-height:300px;overflow:auto;margin:16px 0 22px}.job{padding:20px 0;border-bottom:1px solid var(--line)}.job progress{width:100%;height:16px;accent-color:var(--primary)}.job-title{display:flex;justify-content:space-between;gap:20px;margin-bottom:10px}.job-meta{font-size:13px;color:var(--muted);margin:10px 0}.job-errors{font-size:13px;color:#a1202c;max-height:200px;overflow:auto}.json-cell{max-width:500px;overflow-wrap:anywhere;font:12px/1.7 ui-monospace,monospace}.login-layout{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:8%;min-height:calc(100vh - 230px)}.login-intro h1{font-size:43px;line-height:1.5;letter-spacing:-1px;margin:20px 0}.login-intro p{font-size:17px;color:var(--muted);line-height:1.95}.login-card{max-width:470px;padding:38px}.steps{display:flex;gap:25px;font-size:12px;font-weight:600;color:var(--primary);margin-top:35px}.error-card{max-width:780px;margin:60px auto}.scan-row{display:flex;gap:14px;align-items:flex-end}.scan-row label{flex:1}.scan-row button{margin-bottom:17px;height:53px}.scan-row input{font-size:22px;height:53px;font-family:ui-monospace,monospace}.scan-result{padding:14px;border-radius:8px;background:#f1f5fa;margin-top:18px;font-size:17px;font-weight:650;overflow-wrap:anywhere}.scan-result.success{background:#e9f7ee;color:#176336}.scan-result.error{background:#fef0ef;color:#a82330}#camera{max-width:440px;width:100%;margin-top:18px;border-radius:12px;background:#111}#toast{position:fixed;right:24px;bottom:24px;max-width:460px;z-index:10;background:#17304e;color:white;padding:15px 22px;border-radius:10px;box-shadow:0 5px 30px #0003}.live-stats{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:19px}.live-stat{flex:1;min-width:150px;border:1px solid var(--line);padding:13px 18px;border-radius:10px;font-size:13px}.live-stat strong{font-size:25px;margin-left:10px}.live-stat progress{width:100%;height:7px;display:block;margin-top:6px;accent-color:var(--primary)}.live-table td>strong{display:block;font-size:17px}.secondary{display:block;font-size:12px;color:var(--muted);margin-top:3px}.screen{background:#071626;color:#e8f1fb;--ink:#e8f1fb;--muted:#9bb2cc;--line:#26415e}.screen .container{max-width:none;padding:25px 35px}.screen .tabs,.screen .event-heading{display:none}.screen-header{display:flex;justify-content:space-between;gap:25px;align-items:start;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:15px}.screen h1{font-size:30px;margin:10px 0}.screen-header p{color:#a6c1de;margin:0;font-size:17px}.screen .eyebrow{color:#82b9ee}.screen-meta{text-align:right;font-size:13px;line-height:2}.screen .ghost{color:#d5e6f7;border-color:#416082}.screen .ghost:hover{background:#183450}.screen-toolbar{display:flex;align-items:center;gap:20px;margin-bottom:17px}.screen-toolbar label{margin:0;font-size:12px;color:#a6c1de}.screen-toolbar label:first-child{flex:1}.screen select{color:#eaf3ff;background:#132b43;border-color:#315173;font-size:14px;padding:7px 12px;min-height:36px}.screen-toolbar .check{margin:20px 0 0;white-space:nowrap}.screen-toolbar button{margin-top:21px}.screen-table{border:1px solid var(--line);border-radius:11px;overflow:hidden}.screen th{background:#112b43;color:#8eb1d3;padding:11px 18px;font-size:13px}.screen td{padding:9px 18px;border-color:#203a53;font-size:16px}.screen tbody tr:nth-child(even){background:#0d2033}.screen tbody tr:hover{background:#122b44}.screen .live-table td>strong{font-size:20px}.screen .state{font-size:16px;padding:5px 12px}.screen .secondary{font-size:12px;color:#91aac3}.screen .live-stat{background:#10283f;color:#a9c3dd;padding:10px 20px}.screen .live-stat strong{color:#f0f6ff;font-size:26px}.screen .live-stats{margin-bottom:18px}.screen .live-stat progress{accent-color:#50a8ee}.screen-footer{display:flex;justify-content:space-between;align-items:center;margin-top:17px;font-size:12px;color:#93adc7;gap:20px}.screen-footer .state{font-size:11px;padding:3px 8px}.screen .pill.ok{background:#123f35;color:#8ee8b5}.screen .pill.bad{background:#4b2430;color:#ffc0c0}.screen .pill.muted{background:#233c54;color:#cad9e9}@media(min-width:1700px){.screen h1{font-size:36px}.screen td{padding:10px 22px}.screen .live-table td>strong{font-size:23px}.screen .state{font-size:19px}.screen-footer .state{font-size:13px}}@media(max-width:1000px){.kpis{grid-template-columns:repeat(2,1fr)}.form-grid.four,.form-grid.three{grid-template-columns:repeat(2,1fr)}.school-grid{grid-template-columns:repeat(2,1fr)}.split{grid-template-columns:1fr}.login-layout{gap:4%}.login-intro h1{font-size:33px}.screen .container{padding:20px}.screen-toolbar{flex-wrap:wrap}.screen-footer{flex-wrap:wrap}}@media(max-width:700px){.topbar{padding:14px 18px;height:auto;align-items:start}.account{flex-direction:column;align-items:end;gap:8px}.account span{font-size:11px}.container{padding:24px 16px}.brand-sub{display:none}.brand{font-size:16px}.page-title,.event-heading{align-items:start;flex-direction:column;gap:12px}.card{padding:20px 16px}.form-grid,.form-grid.three,.form-grid.four,.school-grid{grid-template-columns:1fr}.kpis{gap:12px}.kpis .card{padding:16px}.kpis strong{font-size:27px}.login-layout{grid-template-columns:1fr}.login-intro{display:none}.login-card{width:100%;max-width:100%;margin-top:35px}.scan-row{flex-direction:column;align-items:stretch;gap:0}.scan-row input{font-size:19px}.inline-form{flex-wrap:wrap}.live-stat{min-width:40%;padding:10px}.live-table td,.live-table th{padding:10px 8px}.live-table .state{font-size:12px}.pdf-preview{min-height:420px}.screen-header{flex-direction:column}.screen-toolbar label:first-child{min-width:100%}.event-grid{grid-template-columns:1fr}}

/* 投屏自动分页按紧凑行高计算，避免14人以上时挤出屏幕。 */
.screen .live-table td{padding:6px 18px;line-height:1.3}.screen .live-table td>strong{line-height:1.25}.screen .live-table .secondary{line-height:1.3;margin-top:2px}.screen .live-table .state{line-height:1.5}
