/* ============ 手机端（评委） ============ */
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:15px/1.6 -apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Hiragino Sans GB",sans-serif;color:#1F2430;background:#F4F2EE;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--pri);text-decoration:none}
input,button{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}

/* 入口页（登录/注册） */
.m-entry{background:var(--pri-ddd)}
.m-bg{position:fixed;left:0;top:0;right:0;bottom:0;z-index:0;background:
  radial-gradient(500px 340px at 50% -40px,rgba(var(--acc-rgb),.28),rgba(var(--acc-rgb),0) 70%),
  radial-gradient(ellipse at 50% 0%,var(--pri-l) 0%,var(--pri) 25%,var(--pri-d) 55%,var(--pri-ddd) 100%)}
.m-bg::after{content:"";position:absolute;left:-10%;right:-10%;bottom:12%;height:120px;opacity:.18;background:repeating-linear-gradient(180deg,var(--acc) 0 1.5px,transparent 1.5px 18px);transform:skewY(-6deg)}
.m-wrap{position:relative;z-index:1;flex:1;width:100%;max-width:440px;margin:0 auto;padding:34px 18px 10px}
.m-brand{text-align:center;color:#fff;margin:8px 0 24px}
.m-brand.compact{margin:0 0 18px}
.m-logo{height:76px;max-width:220px;object-fit:contain;filter:drop-shadow(0 6px 16px rgba(0,0,0,.3))}
.m-logo-def{display:inline-flex;width:76px;height:76px;border-radius:50%;align-items:center;justify-content:center;border:2px solid rgba(var(--acc-rgb),.9);background:radial-gradient(circle at 30% 30%,rgba(var(--acc-rgb),.35),rgba(var(--acc-rgb),.05));color:#FFF1D2;box-shadow:0 0 30px rgba(var(--acc-rgb),.3)}
.m-logo-def svg{width:40px;height:40px}
.m-brand.compact .m-logo{height:56px}
.m-brand.compact .m-logo-def{width:56px;height:56px}
.m-brand h1{margin:14px 0 0;font-size:32px;letter-spacing:8px;font-weight:900;color:var(--acc-l);font-family:"STZhongsong","Songti SC","Source Han Serif SC",serif;padding-left:8px}
.m-brand.compact h1{font-size:24px;margin-top:8px}
.m-sub{margin:4px 0 0;letter-spacing:6px;opacity:.85;font-size:15px}
.m-card{background:#fff;border-radius:18px;padding:22px 20px;box-shadow:0 18px 40px rgba(0,0,0,.18);margin-bottom:16px}
.m-form h2{margin:0 0 18px;font-size:19px;text-align:center;letter-spacing:2px}
.m-fld{display:block;margin-bottom:16px}
.m-fld>span{display:block;font-size:13.5px;color:#5A6170;margin-bottom:6px;font-weight:600}
.m-fld input{width:100%;height:48px;border:1.5px solid #E3E5EA;border-radius:12px;padding:0 14px;font-size:16px;outline:none;background:#FAFAFB;transition:border-color .15s,background .15s}
.m-fld input:focus{border-color:var(--pri-l);background:#fff}
.m-hint{display:block;font-style:normal;font-size:12px;color:#9AA0AE;margin-top:6px}
.m-btn{display:flex;align-items:center;justify-content:center;width:100%;height:50px;border:0;border-radius:14px;background:linear-gradient(135deg,var(--pri-l),var(--pri) 40%,var(--pri-d));color:#fff;font-size:17px;font-weight:700;letter-spacing:2px;box-shadow:0 8px 20px rgba(var(--pri-rgb),.35);text-decoration:none}
.m-btn:active{transform:scale(.985)}
.m-btn-line{background:#fff;color:var(--pri);border:1.5px solid var(--pri);box-shadow:none}
.m-btn-text{background:none;color:#7A8090;box-shadow:none;font-weight:500;font-size:14px;height:40px;margin-top:6px;letter-spacing:0}
.m-links{text-align:center;margin-top:16px;font-size:14px;color:#7A8090}
.m-links a{font-weight:700}
.m-muted{color:#9AA0AE;font-size:13px}
.m-alert{background:#FEF3F2;color:#B42318;border:1px solid #FECDCA;border-radius:10px;padding:10px 12px;margin-bottom:14px;font-size:14px}
.m-tip{text-align:center;color:rgba(255,255,255,.55);font-size:12px;letter-spacing:1px}
.m-empty{text-align:center}
.m-empty h2{margin:6px 0 8px}
.m-empty p{color:#7A8090;margin:0 0 18px}
.seat-pick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.sp{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:62px;border:1.5px solid #E3E5EA;border-radius:12px;background:#FAFAFB;cursor:pointer}
.sp input{position:absolute;opacity:0;pointer-events:none}
.sp b{font-size:20px;line-height:1.1;color:var(--pri-d)}
.sp small{font-size:11px;color:#9AA0AE}
.sp:has(input:checked){border-color:var(--pri);background:var(--pri-ll);box-shadow:0 0 0 3px rgba(var(--pri-rgb),.12)}
.sp.on{border-color:var(--pri);background:var(--pri-ll)}
.sp.taken{opacity:.45;cursor:not-allowed;background:#F1F2F5}
.sp.taken b{color:#9AA0AE}

/* 页脚 */
.m-foot{position:relative;z-index:1;text-align:center;padding:16px 0 calc(16px + env(safe-area-inset-bottom))}
.m-foot a{font-size:12px;color:#A3A8B4;letter-spacing:1px}
.m-entry .m-foot a{color:rgba(255,255,255,.5)}

/* 打分页 */
.m-judge{background:#F4F2EE}
.j-top{background:linear-gradient(160deg,var(--pri-l),var(--pri) 35%,var(--pri-dd));color:#fff;padding:14px 16px 46px;position:relative;overflow:hidden}
.j-top::after{content:"";position:absolute;left:-10%;right:-10%;bottom:6px;height:60px;opacity:.16;background:repeating-linear-gradient(180deg,var(--acc) 0 1px,transparent 1px 11px);transform:skewY(-4deg)}
.j-top-in{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:1}
.j-event{display:flex;align-items:center;gap:10px}
.j-event img{height:36px;max-width:90px;object-fit:contain}
.j-event b{display:block;font-size:17px;letter-spacing:3px;color:var(--acc-l)}
.j-event small{display:block;font-size:12px;opacity:.75;letter-spacing:2px}
.j-out{color:#fff;font-size:13px;padding:5px 12px;border:1px solid rgba(255,255,255,.4);border-radius:20px;opacity:.85}
.j-me{display:flex;align-items:center;gap:10px;margin-top:14px;position:relative;z-index:1}
.j-seat{background:linear-gradient(90deg,var(--acc-l),var(--acc));color:var(--pri-ddd);font-weight:800;padding:3px 12px;border-radius:20px;font-size:13px;letter-spacing:1px}
.j-name{font-size:16px;font-weight:700}
.j-net{margin-left:auto;font-size:12px;color:#A6F4C5}
.j-net.off{color:#FECDCA}
.j-main{flex:1;width:100%;max-width:520px;margin:-32px auto 0;padding:0 14px;position:relative;z-index:2}
.j-cur{padding:20px 18px 18px;min-height:220px}
.j-loading{text-align:center;color:#9AA0AE;padding:60px 0}
.j-tag{display:inline-block;font-size:13px;font-weight:700;letter-spacing:2px;color:var(--pri);background:var(--pri-ll);padding:3px 12px;border-radius:20px}
.j-tag-alt{color:#B54708;background:#FFF4E5}
.j-team{display:flex;align-items:center;gap:14px;margin:14px 0 18px}
.j-team img,.j-nologo{width:64px;height:64px;border-radius:50%;object-fit:contain;background:#fff;border:2px solid rgba(var(--acc-rgb),.8);flex-shrink:0}
.j-nologo{display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:900;color:var(--pri);background:var(--pri-ll)}
.j-team b{display:block;font-size:22px;line-height:1.3}
.j-team small{display:block;color:#7A8090;font-size:13px}
.j-team .j-song{color:var(--pri-d)}
.j-input{display:flex;align-items:center;border:2px solid var(--pri-l);border-radius:16px;background:#FFFDF8;padding:0 16px;height:84px;box-shadow:inset 0 2px 6px rgba(0,0,0,.04)}
.j-input input{flex:1;min-width:0;border:0;outline:none;background:transparent;font-size:46px;font-weight:800;text-align:center;color:var(--pri-dd);font-family:"DIN Alternate","Bahnschrift",-apple-system,sans-serif;letter-spacing:1px}
.j-input input::placeholder{font-size:22px;font-weight:500;color:#C0C4CE;letter-spacing:0}
.j-input span{font-size:18px;color:#9AA0AE}
.j-hint{text-align:center;font-size:12.5px;color:#9AA0AE;margin:8px 0 12px}
.j-quick{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
.j-quick button{height:40px;border-radius:10px;border:1px solid #E3E5EA;background:#fff;font-weight:700;color:#5A6170}
.j-quick button:active{background:var(--pri-ll)}
.j-done{display:flex;align-items:center;gap:14px;padding:16px;border-radius:14px;background:#ECFDF3;border:1px solid #ABEFC6;margin-bottom:14px}
.j-done-ico{width:46px;height:46px;border-radius:50%;background:#12B76A;color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:900;flex-shrink:0}
.j-done b{display:block;font-size:34px;line-height:1.1;color:#067647;font-family:"DIN Alternate","Bahnschrift",-apple-system,sans-serif}
.j-done small{display:block;color:#3F8F62;font-size:12.5px}
.j-locked{display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px;border-radius:14px;background:#F4F4F6;color:#5A6170;font-weight:700}
.j-locked span{font-weight:400;font-size:14px}
.j-locked b{font-size:22px;color:var(--pri-d)}
.j-wait{text-align:center;padding:26px 0 12px}
.j-wait-ico{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:900;color:var(--pri);background:var(--pri-ll)}
.j-pulse{animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--pri-rgb),.25)}50%{box-shadow:0 0 0 16px rgba(var(--pri-rgb),0)}}
.j-wait b{font-size:19px}
.j-wait p{color:#7A8090;font-size:14px;margin:6px 0 0}
.j-list{padding:16px 14px}
.j-list-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.j-list-head h3{margin:0;font-size:16px}
.j-row{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px solid #F1F2F5}
.j-row.cur{background:#FFFBF0;border-radius:10px}
.j-row-t{flex:1;min-width:0;display:flex;align-items:center;gap:8px}
.j-row-t em{font-style:normal;width:24px;height:24px;border-radius:50%;background:#F1F2F5;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#7A8090;flex-shrink:0}
.j-row-t span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.j-row-t i{font-style:normal;font-size:11px;background:var(--acc);color:var(--pri-ddd);padding:0 6px;border-radius:6px;font-weight:700;flex-shrink:0}
.j-cells{display:flex;gap:6px;flex-shrink:0}
.j-cell{width:76px;padding:3px 0 4px;border-radius:9px;border:1px solid #E3E5EA;background:#FAFAFB;font-weight:800;font-size:15px;color:#C0C4CE;line-height:1.25;font-family:"DIN Alternate","Bahnschrift",-apple-system,sans-serif}
.j-cell small{display:block;font-size:10.5px;font-weight:500;color:#9AA0AE;font-family:-apple-system,"PingFang SC","Microsoft YaHei",sans-serif}
.j-cell.has{color:var(--pri-d);background:#fff;border-color:rgba(var(--pri-rgb),.3)}
.j-cell.lk{background:#F4F4F6;color:#7A8090}
.j-cell.sel{border-color:var(--pri);box-shadow:0 0 0 2px rgba(var(--pri-rgb),.2)}
.j-cell[disabled]{cursor:default}
.j-note{margin:12px 0 0}
.j-modal{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(10,10,15,.55);z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:0 0 env(safe-area-inset-bottom)}
.j-modal-box{width:100%;max-width:520px;background:#fff;border-radius:22px 22px 0 0;padding:22px 20px 20px;animation:up .25s ease}
@keyframes up{from{transform:translateY(100%)}to{transform:none}}
.j-modal-title{text-align:center;font-weight:700;color:#5A6170}
.j-modal-team{text-align:center;margin-top:12px}
.j-modal-team b{display:block;font-size:20px}
.j-modal-team small{color:var(--pri);font-weight:700}
.j-modal-score{text-align:center;font-size:72px;font-weight:800;color:var(--pri-d);line-height:1.2;margin:6px 0 16px;font-family:"DIN Alternate","Bahnschrift",-apple-system,sans-serif}
.j-modal-ops{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.m-toast{position:fixed;left:50%;top:18px;transform:translate(-50%,-160%);background:rgba(20,22,30,.92);color:#fff;padding:10px 18px;border-radius:12px;z-index:60;font-size:14px;transition:transform .25s;max-width:90vw;text-align:center}
.m-toast.show{transform:translate(-50%,0)}
.m-toast.err{background:#D92D20}
.m-toast.ok{background:#12B76A}
