﻿:root{--bg:#070b14;--panel:#0e1727;--panel2:#111e31;--line:#263850;--gold:#f3c76e;--gold2:#fff0b0;--blue:#1688ff;--blue2:#61b6ff;--text:#edf4ff;--muted:#8da0b9;--danger:#ff6577;--success:#43d5a0;--shadow:0 22px 80px rgba(0,0,0,.35);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;color:var(--text)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#05070b}body{font-size:15px}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{max-width:100%}
.install-body,.auth-body{min-height:100vh;display:grid;place-items:center;padding:32px;background:radial-gradient(circle at 50% 0,#0b3470 0,transparent 38%),linear-gradient(145deg,#04070d,#081323)}
.install-card,.auth-card{width:min(760px,100%);padding:42px;background:linear-gradient(155deg,rgba(18,36,62,.96),rgba(7,13,24,.98));border:1px solid #315075;border-radius:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}
.install-card:before,.auth-card:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,transparent,var(--gold),var(--blue),transparent)}
.auth-card{width:min(430px,100%);text-align:center}.auth-card .stack-form{text-align:left}.auth-card h1,.install-card h1{margin:8px 0 10px;font-size:30px}.brand-mark{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--gold);background:linear-gradient(145deg,#092049,#07101d);color:var(--gold2);font-weight:900;border-radius:14px;box-shadow:inset 0 0 20px rgba(22,136,255,.2),0 0 24px rgba(243,199,110,.12)}.auth-card .brand-mark,.install-card .brand-mark{margin:auto}.brand-mark.small{width:42px;height:42px;border-radius:10px}
.eyebrow{color:var(--blue2);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0}.muted{color:var(--muted);line-height:1.7}.subtle-link{display:inline-block;color:var(--muted);margin-top:22px}
.exp-entry{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;margin-top:16px;height:50px;border-radius:12px;font-weight:800;font-size:15px;letter-spacing:.02em;color:#042038;border:1px solid rgba(130,205,255,.6);background:linear-gradient(135deg,#5cbcff,#2f92ff 55%,#2ec6c0);box-shadow:0 14px 34px rgba(47,146,255,.34);transition:.2s}.exp-entry:hover{transform:translateY(-1px);box-shadow:0 18px 44px rgba(47,146,255,.48);filter:brightness(1.05)}.exp-entry .arrow{transition:transform .2s}.exp-entry:hover .arrow{transform:translateX(3px)}.exp-hint{display:block;text-align:center;color:var(--muted);font-size:12.5px;margin-top:10px;letter-spacing:.02em}.auth-divider{display:flex;align-items:center;gap:12px;margin:22px 0 4px;color:var(--muted);font-size:12px;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#2a3f5c}.auth-card .subtle-link{margin-top:10px}
.support-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:22px;padding:16px 16px 16px 18px;text-align:left;border:1px solid rgba(91,130,180,.35);border-radius:16px;background:linear-gradient(135deg,rgba(18,42,78,.88),rgba(10,18,34,.94));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.support-copy{min-width:0;flex:1}.support-eyebrow{margin:0 0 6px;color:#7eb7ff;font-size:12px;font-weight:800;letter-spacing:.12em}.support-desc{margin:0 0 10px;color:#b7c7dc;font-size:13px}.support-phone{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid rgba(243,199,110,.35);background:linear-gradient(135deg,rgba(255,241,182,.14),rgba(227,171,69,.1));color:var(--gold2);transition:.2s}.support-phone:hover{border-color:rgba(243,199,110,.7);background:linear-gradient(135deg,rgba(255,241,182,.22),rgba(227,171,69,.18));transform:translateY(-1px)}.support-phone strong{font-size:16px;letter-spacing:.04em}.support-phone span{font-size:12px;color:#ffe7a8;opacity:.9;white-space:nowrap}.support-qr{flex:none;width:96px;text-align:center}.support-qr img{display:block;width:96px;height:96px;object-fit:cover;border-radius:14px;background:#fff;box-shadow:0 8px 20px rgba(0,0,0,.28)}.support-qr em{display:block;margin-top:8px;font-style:normal;font-size:11px;color:#8da0b9;letter-spacing:.08em}
@media(max-width:420px){.support-card{flex-direction:column;align-items:stretch;text-align:center}.support-phone{justify-content:center}.support-qr{margin:0 auto}}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:28px}.form-grid .full{grid-column:1/-1}.stack-form{display:grid;gap:16px}.settings-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.settings-form>.upload-grid,.settings-form>.btn,.settings-form>input[type=hidden]{grid-column:1/-1}
label{display:grid;gap:8px;color:#cbd7e9;font-size:13px;font-weight:700}label small{font-weight:400;color:var(--muted)}
input,select{width:100%;height:44px;padding:0 13px;color:var(--text);background:#091222;border:1px solid #2a3f5c;border-radius:8px;outline:none;transition:.2s}input[type=file]{padding:9px;height:auto}input:focus,select:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(22,136,255,.14)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border:1px solid transparent;border-radius:8px;font-weight:800;color:#08101b;background:#fff}.btn.primary{color:#07111f;border-color:#ffd87d;background:linear-gradient(135deg,#fff1b6,#e3ab45);box-shadow:0 7px 24px rgba(227,171,69,.18)}.btn.outline{color:var(--gold2);border-color:#a97c31;background:#0a1423}.btn.ghost{color:#b8c7db;border-color:#2c405a;background:#0a1423}.btn.full{width:100%}.text-danger{color:var(--danger);border:0;background:none;padding:5px}.alert{padding:12px 14px;border-radius:8px;margin:16px 0}.alert.success{color:#8debc9;background:rgba(67,213,160,.1);border:1px solid rgba(67,213,160,.3)}.alert.danger{color:#ff9aa6;background:rgba(255,101,119,.1);border:1px solid rgba(255,101,119,.3)}
.table-actions{display:flex;align-items:center;gap:8px}.table-actions .btn{min-height:30px;padding:0 10px;font-size:12px}
.admin-body{--admin-bg:#faf7f2;--admin-panel:#fff;--admin-line:#ebe0d4;--admin-text:#3d3429;--admin-muted:#8a7b6a;--admin-accent:#c87832;--admin-accent-light:#fdf0e4;background:var(--admin-bg);color:var(--admin-text)}.admin-layout{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:22px 16px;background:#fffdfb;border-right:1px solid var(--admin-line);display:flex;flex-direction:column;box-shadow:2px 0 16px rgba(61,52,41,.04)}.admin-brand{display:flex;gap:12px;align-items:center;padding:0 6px 24px;border-bottom:1px solid var(--admin-line)}.admin-brand strong,.admin-brand span{display:block}.admin-brand strong{color:var(--admin-accent);font-size:18px}.admin-brand span{color:var(--admin-muted);font-size:12px;margin-top:3px}.sidebar nav{display:grid;gap:5px;margin-top:22px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;color:var(--admin-muted);border-radius:8px;transition:.2s}.sidebar nav a span{width:6px;height:6px;border:1px solid currentColor;transform:rotate(45deg)}.sidebar nav a:hover,.sidebar nav a.active{color:var(--admin-accent);background:var(--admin-accent-light);box-shadow:inset 3px 0 var(--admin-accent)}.sidebar-foot{margin-top:auto;display:grid;gap:12px;padding:20px 8px 4px;border-top:1px solid var(--admin-line);color:var(--admin-muted);font-size:13px}.admin-main{min-width:0;padding:28px 34px 60px;background:radial-gradient(circle at 100% 0,rgba(232,160,69,.08),transparent 28%),var(--admin-bg)}.admin-top{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.admin-top h1{font-size:27px;margin:7px 0 0;color:var(--admin-text)}.admin-top>span{color:var(--admin-muted)}
.admin-body .panel{background:var(--admin-panel);border:1px solid var(--admin-line);border-radius:13px;padding:22px;box-shadow:0 8px 24px rgba(61,52,41,.06);margin-bottom:20px}.admin-body .panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.admin-body .panel-head h2,.admin-body .panel h2{margin:0;font-size:18px;color:var(--admin-text)}.admin-body .panel-head>span{color:var(--admin-muted)}.admin-body .status-dot{display:inline-flex!important;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--admin-line);border-radius:99px;color:var(--admin-accent)!important;font-size:12px;background:#fff}.admin-body .status-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:#52b788;box-shadow:0 0 8px rgba(82,183,136,.4)}
.admin-body .eyebrow{color:var(--admin-accent)}.admin-body label{color:#5c4f42}.admin-body input,.admin-body select{color:var(--admin-text);background:#fff;border:1px solid #ddd5c8}.admin-body input:focus,.admin-body select:focus{border-color:var(--admin-accent);box-shadow:0 0 0 3px rgba(200,120,50,.12)}.admin-body .btn.outline{color:var(--admin-accent);border-color:#d4a574;background:#fff}.admin-body .btn.ghost{color:#6b5d4f;border-color:#ddd5c8;background:#fff}.admin-body .btn.primary{color:#4a3010;border-color:#e8a045;background:linear-gradient(135deg,#ffe8b8,#e8a045);box-shadow:0 7px 24px rgba(200,120,50,.15)}.admin-body .brand-mark{border-color:var(--admin-accent);background:linear-gradient(145deg,#fff9f0,#fdf6ef);color:var(--admin-accent);box-shadow:inset 0 0 20px rgba(200,120,50,.06)}
.admin-body .control-grid,.admin-body .two-col{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px}.admin-body .current-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.admin-body .current-card h2{font-size:26px;margin:16px 0 8px;color:var(--admin-text)}.admin-body .candidate-badge,.admin-body .screen-badge{display:inline-block;padding:7px 16px;color:var(--admin-accent);font-weight:800;border:1px solid #d4a574;background:linear-gradient(180deg,#fff9f0,#faf5ef);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,8px 100%,0 50%)}.admin-body .quick-links{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.admin-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-body .inline-form{display:grid;grid-template-columns:1fr 1fr 110px auto;gap:10px;margin-bottom:20px}.admin-body .table-wrap{overflow:auto;border:1px solid var(--admin-line);border-radius:9px}.admin-body table{width:100%;border-collapse:collapse;white-space:nowrap}.admin-body th,.admin-body td{text-align:left;padding:13px 14px;border-bottom:1px solid #f0e8dc}.admin-body th{color:var(--admin-muted);background:#faf5ef;font-size:12px}.admin-body td{color:#4a4035}.admin-body tbody tr:last-child td{border-bottom:0}.admin-body tbody tr:hover{background:rgba(200,120,50,.04)}.admin-body .tag{display:inline-block;padding:4px 8px;border:1px solid #e8c99a;color:var(--admin-accent);border-radius:5px;background:#fff9f0}.admin-body .thumb{width:42px;height:42px;object-fit:cover;border-radius:6px}.admin-body .upload-hint{color:var(--admin-muted)!important;font-size:12px}.admin-body .upload-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.admin-body .upload-grid label{padding:14px;border:1px dashed #ddd5c8;border-radius:9px;background:#faf5ef}.admin-body .upload-grid img{height:90px;width:100%;object-fit:cover;border-radius:6px}.admin-body .score-summary{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.admin-body .score-summary strong{font-size:70px;line-height:1;color:var(--admin-accent)}.admin-body .score-summary span{margin:8px 0;color:#b8863a}.admin-body .judge-entry-grid{display:grid;grid-template-columns:1fr auto;gap:14px;margin-bottom:18px}.admin-body .entry-link{display:flex;gap:12px;align-items:center;padding:12px;background:#faf5ef;border:1px solid var(--admin-line);border-radius:8px}.admin-body .entry-link code{flex:1;color:var(--admin-accent);overflow-wrap:anywhere}.admin-body .qr-card{display:flex;align-items:center;gap:14px;padding:10px 14px;background:#fff;border:1px solid var(--admin-line);border-radius:8px;color:var(--admin-text)}.admin-body .qr-card img,.admin-body .qr-card canvas{display:block}.admin-body .qr-card strong,.admin-body .qr-card span{display:block}.admin-body .qr-card span{font-size:12px;color:var(--admin-muted);margin-top:5px}.admin-body .judge-progress-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.admin-body .judge-progress{padding:14px;background:#faf5ef;border:1px solid var(--admin-line);border-radius:8px;display:grid;gap:8px}.admin-body .judge-progress strong{color:#52b788;font-size:12px}.admin-body .judge-progress em{color:var(--admin-muted);font-size:12px;font-style:normal}.admin-body .judge-progress.disabled{opacity:.45}.admin-body .ranking-block+ .ranking-block{margin-top:28px}.admin-body .ranking-block h3{color:#b8863a}.admin-body .rank-no{display:grid;place-items:center;width:28px;height:28px;border:1px solid #d4a574;color:var(--admin-accent);border-radius:50%}.admin-body .alert.success{color:#2d6a4f;background:#edf7f0;border:1px solid #b7dfc9}.admin-body .alert.danger{color:#9b2335;background:#fdf0f2;border:1px solid #f0c4cb}
.mobile-body{min-height:100vh;background:#020406;color:#edf4ff;background-image:var(--mobile-bg,radial-gradient(circle at 50% 12%,#071d3d,transparent 32%));background-attachment:fixed}.mobile-shell{width:min(620px,100%);min-height:100vh;margin:auto;padding:24px 20px 50px;background:linear-gradient(180deg,rgba(2,5,9,.72),rgba(1,3,5,.92))}.mobile-event-header{height:270px;display:flex;align-items:center;justify-content:center;gap:12px;color:#b38d48}.mobile-event-header img{max-width:90px;max-height:70px}.judge-card{padding:32px 26px;border:1px solid #39557e;background:linear-gradient(155deg,rgba(9,32,71,.94),rgba(3,12,28,.97));clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px);box-shadow:inset 0 0 35px rgba(20,111,245,.13)}.judge-card h1{font-size:29px;color:var(--gold2);margin:10px 0}.access-code{text-align:center;font-size:26px;letter-spacing:.25em;height:62px}.login-tip{text-align:center;color:#7f899a;margin-top:26px}.judge-topbar{display:flex;justify-content:space-between;padding:10px 0 24px;color:#91a7c2}.judge-topbar a{color:var(--gold)}.project-hero{text-align:center;padding:28px 16px;border:1px solid #25405f;background:linear-gradient(180deg,#0b1d36,#070e19);border-radius:11px;margin-bottom:15px}.project-hero h1{font-size:28px;color:var(--gold2);margin:18px 0 8px}.project-hero p,.project-mini{color:#90a1b7}.criteria-list{border:1px solid #203c5d;border-radius:10px;overflow:hidden}.criterion-row{display:flex;align-items:center;gap:12px;min-height:76px;padding:12px;background:linear-gradient(90deg,#081728,#09111e);border-bottom:1px solid #1c324b}.criterion-row:last-child{border-bottom:0}.criterion-index{display:grid;place-items:center;width:36px;height:36px;border:1px solid #506f91;color:var(--gold);border-radius:7px}.criterion-name{flex:1;font-weight:700}.criterion-name small{display:block;margin-top:5px}.score-input{display:flex;align-items:center;gap:5px}.score-input input{width:72px;height:42px;text-align:center;font-size:19px;color:var(--gold2)}.score-input em{color:#798ca5;font-style:normal}.score-total{display:flex;align-items:baseline;justify-content:flex-end;gap:10px;padding:20px;border:1px solid #224162;border-top:0;background:#06101e}.score-total span{margin-right:auto}.score-total strong{color:var(--gold);font-size:36px}.score-total em{font-style:normal;color:#8a99ae}.confirm-box{text-align:center;margin-top:18px;padding:25px;border:1px solid #3b4d65;background:linear-gradient(155deg,#0b192b,#070d16);border-radius:10px}.confirm-box strong{font-size:20px;color:var(--gold2)}.confirm-box p{color:var(--muted)}.empty-state{margin-top:25vh;text-align:center;padding:45px 22px;border:1px solid #263e5c;background:#081425;border-radius:12px}.empty-state.compact{margin-top:18px}.empty-state strong{font-size:23px;color:var(--gold2)}.success-page{text-align:center;padding-top:13vh}.success-orb{display:grid;place-items:center;width:105px;height:105px;margin:auto;border:2px solid var(--gold);border-radius:50%;color:var(--gold2);font-size:60px;box-shadow:0 0 30px rgba(243,199,110,.25),inset 0 0 25px rgba(243,199,110,.12)}.success-page h1{font-size:34px;color:var(--gold2)}.score-receipt{margin:30px auto 15px;max-width:310px;padding:22px;border:1px solid #2e4d70;background:#07162a;border-radius:10px;display:grid;gap:10px}.score-receipt strong{font-size:64px;color:var(--gold)}.score-receipt small{font-size:18px}.success-page>.btn{margin:30px auto;max-width:430px}.progress-card{max-width:430px;margin:auto;text-align:left;padding:20px;border:1px solid #1d3859;background:#061326}.progress-card>div:first-child{display:flex;justify-content:space-between}.progress{height:8px;border-radius:20px;overflow:hidden;background:#102843;margin-top:14px}.progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#087bff,#58baff);box-shadow:0 0 12px #1688ff}
.screen-body{overflow:hidden;background:#000;margin:0}.screen-body.screen-wall{min-height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background:#000;background-image:none}.screen-shell{width:min(100vw,calc(100vh * 16 / 9));height:min(100vh,calc(100vw * 9 / 16));aspect-ratio:16/9;max-width:100vw;max-height:100vh;padding:2.5% 3%;box-sizing:border-box;color:#fff;display:flex;flex-direction:column;overflow:hidden;background:#000;background-image:var(--screen-bg,radial-gradient(circle at 50% 45%,#061c3b,transparent 50%));background-size:cover;background-position:center;position:relative}.screen-header{display:flex;align-items:center;justify-content:space-between;min-height:80px;border-bottom:1px solid rgba(244,198,107,.35);padding-bottom:2vh}.event-lockup{display:flex;align-items:center;gap:18px}.event-lockup img{max-width:95px;max-height:65px}.event-lockup h1{font-size:clamp(20px,2vw,36px);color:var(--gold2);margin:0}.event-lockup p{color:#aebdd1;margin:7px 0 0}.venue{padding:10px 22px;border:1px solid #8f6e35;color:var(--gold2);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.screen-main{flex:1;min-height:0;display:grid;grid-template-columns:1fr;gap:2vw;align-items:center;justify-items:center}.project-logo{height:65%;min-height:380px;border:1px solid #a77d36;background:linear-gradient(155deg,rgba(7,26,53,.88),rgba(3,9,18,.94));clip-path:polygon(20px 0,calc(100% - 20px) 0,100% 20px,100% calc(100% - 20px),calc(100% - 20px) 100%,20px 100%,0 calc(100% - 20px),0 20px);display:grid;place-items:center;box-shadow:inset 0 0 45px rgba(12,107,255,.11)}.project-logo img{width:82%;height:82%;object-fit:contain}.project-logo div{color:#c8a55e;font-size:clamp(18px,2vw,34px)}.screen-content{text-align:center;width:min(1680px,94%);max-width:100%}.screen-badge{font-size:clamp(22px,2vw,36px);padding:12px 44px}.screen-body #live-meta .screen-badge,.screen-body .result-group{display:block;border:0;background:none;clip-path:none;padding:0;color:#e8f0ff;font-size:clamp(28px,2.6vw,48px);font-weight:700;letter-spacing:.12em;margin:0 0 3vh;text-align:center}.screen-content h2{font-size:clamp(36px,3.4vw,62px);line-height:1.25;letter-spacing:.04em;color:var(--gold2);text-shadow:0 6px 18px rgba(243,199,110,.2);margin:2.2vh 0 .8vh;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:94vw}.screen-content p{font-size:clamp(24px,2.3vw,40px);color:#e9cb91;margin:0 0 3.2vh}.phase-panel{display:grid;grid-template-columns:1fr;max-width:820px;margin:0 auto;border:1px solid #5b7da5;background:rgba(5,16,31,.86);clip-path:polygon(15px 0,calc(100% - 15px) 0,100% 15px,100% calc(100% - 15px),calc(100% - 15px) 100%,15px 100%,0 calc(100% - 15px),0 15px)}.phase-side,.phase-center{padding:2.2vh 1.5vw}.phase-side{display:flex;align-items:center;justify-content:center;gap:14px;color:#b7c8dd}.phase-side:first-child{border-right:1px solid #355273}.phase-side:last-child{border-left:1px solid #355273}.phase-side span{font-size:clamp(17px,1.4vw,28px);color:var(--gold2)}.phase-side strong{font-size:clamp(16px,1.2vw,23px)}.phase-center span{display:block;color:var(--gold2);font-size:clamp(22px,2vw,34px)}.phase-center strong{display:block;color:#78bdff;font-size:clamp(40px,4.2vw,72px);line-height:1.1;margin:10px}.screen-progress-card{display:flex;align-items:center;gap:20px;max-width:820px;margin:2.5vh auto 0;padding:10px 18px;font-size:clamp(18px,1.6vw,28px);border-radius:10px;background:rgba(4,12,28,.55);box-shadow:0 8px 24px rgba(0,0,0,.25)}.screen-progress-card span{color:#fff;font-weight:700;text-shadow:0 1px 4px rgba(0,0,0,.55)}.screen-progress-card strong{color:#ffe08a;font-weight:900;text-shadow:0 1px 4px rgba(0,0,0,.55)}.screen-progress-card .progress{flex:1;margin:0}
@media(max-width:900px){.admin-layout{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(3,1fr)}.sidebar-foot{display:none}.admin-main{padding:22px 16px}.control-grid,.two-col,.settings-form{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr}.upload-grid{grid-template-columns:1fr}.screen-main{grid-template-columns:1fr}.screen-shell{padding:18px}.screen-header{align-items:flex-start}.event-lockup p{display:none}.phase-panel{grid-template-columns:1fr}.phase-side{display:none}}
@media(max-width:600px){.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.install-card{padding:28px 20px}.sidebar nav{grid-template-columns:1fr 1fr}.admin-top{align-items:flex-start}.admin-top>span{display:none}.inline-form{grid-template-columns:1fr}.judge-entry-grid{grid-template-columns:1fr}.entry-link{align-items:stretch;flex-direction:column}.qr-card{justify-content:center}.form-row{grid-template-columns:1fr}.criterion-row{gap:8px}.criterion-name{font-size:13px}.score-input input{width:62px}.mobile-event-header{height:200px}.judge-card{padding:26px 18px}}
/* control phase buttons */
.admin-body .phase-actions{display:grid;gap:10px;margin-top:6px}
.admin-body .phase-actions-label{color:var(--admin-muted);font-size:13px;font-weight:700}
.admin-body .phase-btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.admin-body .phase-btn-row .btn{min-width:110px}
.admin-body .phase-btn-row .btn:disabled{opacity:.45;cursor:not-allowed}
.admin-body .ranking-page-meta{color:var(--admin-muted);font-size:13px;font-weight:700}

/* ranking screen */

.ranking-board{margin-top:2vh;width:100%}.ranking-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2vw;align-items:start}.ranking-col{border:1px solid #5b7da5;background:rgba(5,16,31,.86);clip-path:polygon(12px 0,calc(100% - 12px) 0,100% 12px,100% calc(100% - 12px),calc(100% - 12px) 100%,12px 100%,0 calc(100% - 12px),0 12px);overflow:hidden;min-height:20vh}
.ranking-head,.ranking-row{display:grid;grid-template-columns:64px 1fr 88px;gap:8px;align-items:center;padding:1vh .8vw;text-align:left}
.ranking-head{color:#aebdd1;font-size:clamp(14px,1.1vw,18px);border-bottom:1px solid #355273;background:rgba(8,24,48,.7)}
.ranking-row{border-bottom:1px solid rgba(53,82,115,.55);font-size:clamp(14px,1.15vw,20px)}
.ranking-row:last-child{border-bottom:0}
.ranking-row .rank-no{color:var(--gold2);font-size:clamp(16px,1.3vw,24px)}
.ranking-row .rank-org{color:#fff;font-weight:700}
.ranking-row .rank-project{color:#c9d7ea}
.ranking-row .rank-score{color:#ffe59d;font-size:clamp(16px,1.3vw,24px);text-align:right}
.ranking-row.rank-1{background:linear-gradient(90deg,rgba(160,110,20,.28),transparent)}
.ranking-row.rank-2{background:linear-gradient(90deg,rgba(90,110,140,.22),transparent)}
.ranking-row.rank-3{background:linear-gradient(90deg,rgba(120,80,40,.2),transparent)}
.ranking-empty{padding:6vh 2vw;color:#aebdd1;font-size:clamp(20px,2vw,34px)}
.ranking-pager{margin-top:2vh;color:#9eb0c7;font-size:clamp(16px,1.3vw,22px)}
@media(max-width:900px){.ranking-columns{grid-template-columns:1fr}}
.result-panel{width:min(1500px,96%);margin:0 auto}.result-heading{color:var(--gold2);font-size:clamp(36px,3.8vw,68px);font-weight:900;letter-spacing:.16em;margin:1vh 0 0;text-shadow:0 4px 16px rgba(243,199,110,.25)}/* 仅上移企业名/得分/评委分三块，初创组与「评分结果」保持原位 */
.result-body{margin-top:6vh;transform:translateY(-4.5vh)}
.result-group{margin:0 0 1.2vh}
.result-group{color:#e8f0ff;font-size:clamp(28px,2.6vw,48px);font-weight:700;letter-spacing:.12em;margin:0 0 3vh}
.final-score{margin:0 0 4.5vh;padding:0;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2vh}
.final-org{font-size:clamp(36px,3.6vw,68px);color:#e23b3b;font-weight:900;line-height:1.25;text-shadow:0 2px 10px rgba(0,0,0,.35);white-space:nowrap;max-width:94vw;overflow:hidden;text-overflow:ellipsis}
.final-score-line{display:flex;align-items:baseline;justify-content:center;gap:.15em}
.final-score-line span,.final-score-line strong{font-size:clamp(40px,4.2vw,78px);color:#e23b3b;font-weight:900;line-height:1.15;text-shadow:0 2px 10px rgba(0,0,0,.35)}
.final-score small{display:none}
.judge-score-grid{display:flex;gap:1vw;justify-content:center;flex-wrap:wrap;align-items:stretch}
.judge-score{width:148px;min-width:148px;max-width:148px;min-height:128px;padding:12px 10px 10px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;border:1px solid #d7e2f2;background:linear-gradient(180deg,#ffffff,#edf3ff);border-radius:6px;box-shadow:0 8px 22px rgba(0,0,0,.22);clip-path:none;overflow:visible}
.judge-score .judge-name{display:block;width:100%;flex:0 0 auto;text-align:center;color:#2b3d55;font-size:clamp(15px,1.2vw,20px);font-weight:800;margin-bottom:6px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.judge-score strong{display:block;width:100%;text-align:center;font-size:clamp(26px,2.2vw,38px);color:#17324f;margin-top:0;font-variant-numeric:tabular-nums;letter-spacing:.02em}
.judge-score.excluded.highest{border-color:#e53935;background:linear-gradient(180deg,#ffe8e8,#ffcdd2);box-shadow:0 8px 22px rgba(229,57,53,.22)}
.judge-score.excluded.lowest{border-color:#2e9b57;background:linear-gradient(180deg,#e8f8ef,#c8ebd5);box-shadow:0 8px 22px rgba(46,155,87,.2)}
.judge-score.recused{border-color:#b8a06a;background:linear-gradient(180deg,#fffdf6,#f7efd8)}
.judge-score.pending{opacity:.72;border-style:dashed}
.judge-score strong.recused,.judge-score strong.pending{font-size:clamp(20px,1.7vw,28px);color:#7a6230}
.judge-score strong{flex:0 0 auto}.judge-score .judge-tag{display:block;flex:0 0 auto;margin-top:6px;font-size:15px;font-weight:800;line-height:1.2}.judge-score.excluded.highest .judge-tag{color:#c62828}.judge-score.excluded.lowest .judge-tag{color:#1b7a3d}.judge-score .judge-tag-spacer{display:block;flex:0 0 auto;height:22px;margin-top:6px;visibility:hidden}.judge-score small{display:block;color:#c44;margin-top:6px;font-size:15px}
.screen-shell.mode-result .screen-main{align-items:flex-start;padding-top:26vh}
.screen-shell.mode-result #phase-panel,
.screen-shell.mode-result #progress-card,
.screen-shell.mode-result #live-meta{display:none!important}
.phase-panel[hidden],#progress-card[hidden],#live-meta[hidden],#result-panel[hidden],#ranking-view[hidden],#project-view[hidden]{display:none!important}
.ranking-view{width:min(1680px,94%);padding-top:0}.ranking-glass{width:100%;padding:3.2vh 2.2vw 2.4vh;border:1px solid rgba(180,210,255,.28);border-radius:18px;background:rgba(6,18,36,.42);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 18px 48px rgba(0,0,0,.28)}.ranking-glass #ranking-title{margin-top:.4vh}.ranking-glass #ranking-subtitle{margin-bottom:2vh}
.screen-shell.mode-ranking .screen-main{align-items:flex-start;padding-top:8vh}

.screen-shell.mode-live .screen-main{align-items:flex-start;padding-top:26vh}

.admin-body .group-manage-block{margin-top:18px;padding-top:16px;border-top:1px solid var(--admin-line)}
.admin-body .group-manage-block:first-of-type{margin-top:0;padding-top:0;border-top:0}
.admin-body .group-manage-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.admin-body .group-manage-head h3{margin:0;font-size:18px;display:flex;align-items:center;gap:8px}
.admin-body .group-manage-head small{color:var(--admin-muted);font-weight:600}
.admin-body .judge-edit-grid{display:grid;gap:10px}.admin-body .judge-edit-head,.admin-body .judge-edit-row{display:grid;grid-template-columns:1.2fr 1fr 90px 240px;gap:12px;align-items:center}.admin-body .judge-edit-head{padding:0 2px 6px;color:var(--admin-muted);font-size:13px;font-weight:800;border-bottom:1px solid var(--admin-line)}.admin-body .judge-edit-row{padding:8px 2px;border-bottom:1px solid var(--admin-line)}.admin-body .judge-edit-row .table-actions{justify-content:flex-start;flex-wrap:wrap}
.admin-body .judge-edit-row input{min-height:40px;padding:0 12px;border:1px solid var(--admin-line);border-radius:8px;background:#fff}

@media(max-width:1100px){.ranking-columns{grid-template-columns:1fr}.ranking-col{margin-bottom:12px}}

/* 大屏：1920×1080 设计稿，外层画框按屏幕等比缩放（手机/电脑同一排版） */
.screen-body.screen-wall{
  width:100vw;
  height:100vh;
  height:100dvh;
  min-height:100vh;
  min-height:100dvh;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#000;
  background-image:none;
}
.screen-frame{
  position:relative;
  flex-shrink:0;
  overflow:hidden;
  background:#000;
}
.screen-shell{
  position:absolute !important;
  top:0;
  left:0;
  width:1920px !important;
  height:1080px !important;
  max-width:none !important;
  max-height:none !important;
  aspect-ratio:auto !important;
  padding:2.5% 3% !important;
  transform-origin:top left;
  will-change:transform;
  container-type:size;
  container-name:stage;
  box-sizing:border-box;
}
.screen-shell.mode-result .screen-main,
.screen-shell.mode-live .screen-main{
  padding-top:26cqh !important;
}
.screen-shell.mode-ranking .screen-main{
  padding-top:8cqh !important;
}
.screen-shell .result-body{
  margin-top:6cqh;
  transform:translateY(-4.5cqh);
}
.screen-shell .result-heading{font-size:clamp(36px,3.8cqw,68px)}
.screen-shell .result-group,
.screen-shell #live-meta .screen-badge{font-size:clamp(28px,2.6cqw,48px);margin:0 0 3cqh}
.screen-shell .final-org{font-size:clamp(36px,3.6cqw,68px);max-width:94cqw}
.screen-shell .final-score{margin:0 0 4.5cqh;gap:1.2cqh}
.screen-shell .final-score-line span,
.screen-shell .final-score-line strong{font-size:clamp(40px,4.2cqw,78px)}
.screen-shell .judge-score-grid{gap:1cqw}
.screen-shell .screen-content h2{font-size:clamp(36px,3.4cqw,62px);margin:2.2cqh 0 .8cqh;max-width:94cqw}
.screen-shell .screen-content p{font-size:clamp(24px,2.3cqw,40px);margin:0 0 3.2cqh}
.screen-shell .phase-center span{font-size:clamp(22px,2cqw,34px)}
.screen-shell .phase-center strong{font-size:clamp(40px,4.2cqw,72px)}
.screen-shell .screen-progress-card{margin:2.5cqh auto 0;font-size:clamp(18px,1.6cqw,28px)}
.screen-support{
  position:absolute;
  z-index:8;
  top:60%;
  right:24px;
  width:144px;
  box-sizing:border-box;
  transform:translateY(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:11px 10px 12px;
  color:#fff;
  text-align:center;
  border:1px solid rgba(89,232,255,.82);
  border-top:3px solid #59e8ff;
  border-radius:14px;
  background:linear-gradient(165deg,rgba(1,73,146,.88),rgba(3,34,78,.94));
  box-shadow:0 12px 32px rgba(0,24,68,.38),inset 0 1px 0 rgba(255,255,255,.18),0 0 18px rgba(89,232,255,.12);
  backdrop-filter:blur(10px) saturate(1.15);
  -webkit-backdrop-filter:blur(10px) saturate(1.15);
}
.screen-support-qr{
  width:120px;
  height:120px;
  box-sizing:border-box;
  padding:4px;
  border-radius:10px;
  background:#fff;
  box-shadow:0 7px 18px rgba(0,20,52,.28);
}
.screen-support-qr img{display:block;width:112px;height:112px;object-fit:contain;border-radius:7px}
.screen-support-label{margin-top:10px;color:#8df2ff;font-size:16px;font-weight:800;letter-spacing:.14em;line-height:1.2}
.screen-support-phone{margin-top:6px;color:#ffe08a;font-size:18px;font-weight:900;line-height:1.15;letter-spacing:.01em;white-space:nowrap;font-variant-numeric:tabular-nums;text-shadow:0 2px 7px rgba(0,0,0,.3)}
.screen-support small{margin-top:6px;color:rgba(255,255,255,.78);font-size:12px;line-height:1.35;white-space:nowrap}

.admin-body .group-edit-grid{display:grid;gap:10px;margin-top:14px}
.admin-body .group-edit-head,.admin-body .group-edit-row{display:grid;grid-template-columns:80px 100px 1fr 140px;gap:10px;align-items:center}
.admin-body .group-edit-head{padding:0 2px 6px;color:var(--admin-muted);font-size:13px;font-weight:800;border-bottom:1px solid var(--admin-line)}
.admin-body .group-edit-row{padding:8px 2px;border-bottom:1px solid var(--admin-line)}
.admin-body .group-edit-row input{min-height:40px;padding:0 12px;border:1px solid var(--admin-line);border-radius:8px;background:#fff}
.admin-body .judge-progress{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.admin-body .judge-progress form{margin:0}
