/* =========================================================
   RCPW Score — shared styles (system fonts: works offline)
   ========================================================= */
:root{
  --navy:#070d24;--navy2:#0d1740;--navy3:#16235c;--card:#111b45;--line:rgba(255,255,255,.12);
  --gold:#ffc629;--gold2:#f7a81b;--gold3:#ffe08a;--green:#3ddc84;--red:#ff4d5e;--blue:#60a5fa;
  --text:#eef2ff;--muted:#a9b3d6;--r:16px;
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans",sans-serif;
  --num:"Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--font);background:var(--navy);color:var(--text);line-height:1.45;min-height:100vh;overflow-x:hidden}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
input,select{font:inherit;color:var(--text);background:#0a1233;border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
input:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px}
a{color:var(--gold)}
[hidden]{display:none!important}
.muted{color:var(--muted)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:11px 18px;border-radius:999px;font-weight:700;text-decoration:none;transition:transform .12s,filter .15s;white-space:nowrap}
.btn:active{transform:scale(.96)}
.btn.gold{background:linear-gradient(135deg,var(--gold3),var(--gold) 45%,var(--gold2));color:#2a1a00}
.btn.ghost{border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.05);color:var(--text)}
.btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.btn.red{background:rgba(255,77,94,.15);border:1px solid var(--red);color:#ffb3bb}

/* ---------- board ---------- */
.board-wrap{position:relative;padding:8px;border-radius:18px;background:linear-gradient(145deg,#2a1a00,#5a3a00 40%,#2a1a00);box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 0 2px rgba(255,198,41,.35)}
.rc-board{position:relative}
.rc-board img{display:block;width:100%;aspect-ratio:1181/985;border-radius:10px;user-select:none}
.rc-marks{position:absolute;inset:0;pointer-events:none}
.rc-mark{position:absolute;width:10%;height:10%;border-radius:5px}
.rc-mark.lad{box-shadow:inset 0 0 0 2px var(--green)}
.rc-mark.snk{box-shadow:inset 0 0 0 2px var(--red)}
.rc-mark.dz{background:repeating-linear-gradient(45deg,rgba(255,77,94,.22) 0 5px,transparent 5px 10px)}
.rc-ring{position:absolute;width:10%;height:10%;border-radius:6px;opacity:0;pointer-events:none;box-shadow:0 0 0 3px var(--red),0 0 24px 6px rgba(255,77,94,.8);animation:ring 1s infinite;transition:opacity .3s}
.rc-ring.on{opacity:1}
@keyframes ring{50%{box-shadow:0 0 0 5px var(--red),0 0 40px 12px rgba(255,77,94,.9)}}
.rc-pawn{position:absolute;width:6.5%;z-index:5;pointer-events:none;filter:drop-shadow(0 5px 5px rgba(0,0,0,.55));transform:translate(-50%,-80%);margin:0}
.rc-pawn svg{display:block;width:100%}
.rc-pawn b{position:absolute;left:50%;top:-2px;transform:translate(-50%,-100%);font:800 10px/1 var(--num);background:rgba(7,13,36,.9);color:#fff;padding:2px 4px;border-radius:5px;white-space:nowrap}
.rc-pawn.ghost{opacity:.55;filter:grayscale(.3) drop-shadow(0 4px 4px rgba(0,0,0,.5))}
.rc-pawn.glow svg{filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 16px var(--green))}
.rc-pawn.hurt svg{filter:drop-shadow(0 0 10px var(--red))}
.rc-toast{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.3);opacity:0;pointer-events:none;z-index:9;font:900 clamp(1.6rem,7vw,3.4rem)/1 var(--num);letter-spacing:.02em;padding:8px 20px;border-radius:14px;white-space:nowrap;text-shadow:0 3px 0 rgba(0,0,0,.35)}
.rc-toast.show{animation:toast 1.5s cubic-bezier(.2,1.3,.4,1) forwards}
.rc-toast.good{background:linear-gradient(135deg,#16a34a,#3ddc84);color:#fff}
.rc-toast.bad{background:linear-gradient(135deg,#b91c1c,#ff4d5e);color:#fff}
.rc-toast.gold{background:linear-gradient(135deg,var(--gold3),var(--gold2));color:#2a1a00}
@keyframes toast{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}20%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1}100%{opacity:0;transform:translate(-50%,-70%) scale(.9)}}

/* ---------- balls / chips ---------- */
/* every ball is a green tennis ball; a coloured ring tells what happened */
.ball{--seam:rgba(255,255,255,.92);display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 5px;border-radius:999px;position:relative;
  font:900 .95rem/1 var(--num);color:#1d2700;text-shadow:0 1px 0 rgba(255,255,255,.55);border:0;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 34 34' preserveAspectRatio='none'%3E%3Cg fill='none' stroke='%23fff' stroke-opacity='.92' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M5 3C11 11 11 23 5 31'/%3E%3Cpath d='M29 3C23 11 23 23 29 31'/%3E%3C/g%3E%3C/svg%3E") center/100% 100% no-repeat,
    radial-gradient(circle at 32% 26%, #f6ffab 0, #dcf23f 28%, #bcd925 62%, #8fae12 100%);
  box-shadow:inset -3px -4px 6px rgba(0,0,0,.22),inset 2px 2px 4px rgba(255,255,255,.35),0 2px 5px rgba(0,0,0,.45)}
.ball sup{position:absolute;top:-7px;right:-6px;font-size:.62rem;color:#fff;text-shadow:none;background:var(--navy);border-radius:6px;padding:1px 3px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.ball.dot{color:#4c5c0b}
.ball.b4{box-shadow:0 0 0 3px #16a34a,inset -3px -4px 6px rgba(0,0,0,.22),0 2px 5px rgba(0,0,0,.45)}
.ball.b6{box-shadow:0 0 0 3px var(--gold),0 0 10px rgba(255,198,41,.7),inset -3px -4px 6px rgba(0,0,0,.22)}
.ball.w{color:#b0001c;box-shadow:0 0 0 3px var(--red),inset -3px -4px 6px rgba(0,0,0,.22),0 2px 5px rgba(0,0,0,.45)}
.ball.x{opacity:.6;box-shadow:0 0 0 2px #0a1233,0 0 0 4px #94a3b8;font-size:.78rem}
.ball.ladder{box-shadow:0 0 0 3px var(--green),0 0 10px rgba(61,220,132,.6),inset -3px -4px 6px rgba(0,0,0,.22)}
.ball.ladder sup{background:#15803d}
.ball.snake{box-shadow:0 0 0 3px var(--red),0 0 10px rgba(255,77,94,.55),inset -3px -4px 6px rgba(0,0,0,.22)}
.ball.snake sup{background:#b91c1c}
.ball.adj{box-shadow:0 0 0 3px #a78bfa,inset -3px -4px 6px rgba(0,0,0,.22),0 2px 5px rgba(0,0,0,.45)}
button.ball{cursor:pointer;transition:transform .12s}
button.ball:hover{transform:scale(1.12) rotate(-8deg)}
.this-over{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:10px 12px;border-radius:14px;background:var(--card);border:1px solid var(--line)}
.this-over small{font-weight:700;color:var(--muted);margin-right:6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}
.this-over em{color:var(--muted)}
.comm{list-style:none;max-height:none}
.comm li{padding:8px 4px;border-bottom:1px dashed rgba(255,255,255,.08);font-size:.9rem;color:#dbe2fb}
.comm li.w{color:#ffb3bb}.comm li.ladder{color:#9ff3c3}.comm li.snake{color:#ffb3bb}.comm li.b6,.comm li.b4{color:var(--gold3)}.comm li.adj{color:#c4b5fd}
.comm li:first-child{font-weight:700;color:#fff}

.banner{padding:10px 14px;border-radius:12px;font-weight:600;font-size:.92rem;margin:8px 0;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.banner.red{background:rgba(255,77,94,.16);border:1px solid var(--red);animation:pulse 1.2s infinite}
.banner.gold{background:rgba(255,198,41,.14);border:1px solid var(--gold);color:var(--gold3)}
.banner.blue{background:rgba(96,165,250,.14);border:1px solid var(--blue)}
.banner.grey{background:rgba(255,255,255,.06);border:1px solid var(--line)}
@keyframes pulse{50%{background:rgba(255,77,94,.3)}}
.mini{padding:5px 10px;border-radius:999px;border:1px solid currentColor;font-size:.8rem;font-weight:700}
.mini.solid{background:var(--gold);color:#2a1a00;border-color:var(--gold)}
.empty{text-align:center;padding:70px 20px;max-width:520px;margin:0 auto}
.empty h2{font-size:1.6rem;margin-bottom:8px}.empty p{color:var(--muted);margin-bottom:20px}

/* =========================================================
   SCORER (admin)
   ========================================================= */
.lock{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(ellipse at 50% 0,rgba(61,220,132,.15),transparent 60%),var(--navy)}
.lock-card{width:min(360px,100%);text-align:center;display:grid;gap:12px;padding:28px 22px;border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:0 30px 80px rgba(0,0,0,.5)}
.lock-logo{width:72px;height:72px;border-radius:16px;margin:0 auto;object-fit:cover}
.lock-card h1{font-size:1.5rem}.lock-card p{color:var(--muted);font-size:.9rem}
.lock-msg{min-height:1.2em;font-weight:600;color:var(--muted)}.lock-msg.bad{color:#ff9aa5}

.a-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:8px 12px;background:rgba(7,13,36,.96);border-bottom:1px solid var(--line)}
.a-logo{width:36px;height:36px;border-radius:9px;object-fit:cover}
.match-btn{display:flex;flex-direction:column;align-items:flex-start;padding:4px 12px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);line-height:1.2;max-width:38vw}
.match-btn b{font-size:.95rem}.match-btn small{color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.match-btn::after{content:"▾";position:absolute;margin-left:-14px}
.sync{flex:1;display:flex;align-items:center;gap:8px;min-width:0;padding:8px 12px;border-radius:10px;font-size:.84rem;font-weight:600;text-align:left;background:rgba(61,220,132,.08);border:1px solid rgba(61,220,132,.35);overflow:hidden;white-space:nowrap}
.sync span{overflow:hidden;text-overflow:ellipsis}
.sync .sep{opacity:.4}
.sync i{width:10px;height:10px;border-radius:50%;background:var(--green);flex:none;box-shadow:0 0 8px var(--green)}
.sync.busy i{background:var(--blue);animation:blinkdot .8s infinite}
.sync.warn{background:rgba(255,198,41,.08);border-color:rgba(255,198,41,.45)}.sync.warn i{background:var(--gold);box-shadow:0 0 8px var(--gold)}
.sync.bad{background:rgba(255,77,94,.1);border-color:var(--red)}.sync.bad i{background:var(--red)}
@keyframes blinkdot{50%{opacity:.25}}
.a-actions{display:flex;gap:6px}
.icon{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);font-size:1.05rem}

.a-main{display:grid;gap:14px;padding:12px;max-width:1500px;margin:0 auto}
@media (min-width:1000px){.a-main{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);align-items:start}}
.itabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.itab{text-align:left;padding:8px 12px;border-radius:12px;background:var(--card);border:1px solid var(--line);display:grid}
.itab small{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:700}
.itab b{font-size:.95rem;border-left:4px solid var(--tc);padding-left:6px;margin:2px 0}
.itab span{font:700 .9rem var(--num)}
.itab.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.itab.live small{color:var(--green)}
.itab:disabled{opacity:.45;cursor:default}
.scorebox{padding:12px 14px;border-radius:var(--r);background:linear-gradient(135deg,var(--navy3),var(--card));border:1px solid var(--line)}
.bat{display:flex;align-items:center;gap:8px;font-weight:700;flex-wrap:wrap}
.bat i{width:12px;height:12px;border-radius:50%}
.bat small{color:var(--muted);font-weight:500}
.sline{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap}
.big{font:900 clamp(3rem,9vw,4.6rem)/1 var(--num);color:var(--gold);letter-spacing:-.02em}
.big span{font-size:.55em;color:#fff}
.meta{display:grid;gap:2px;padding-bottom:6px}
.meta b{font:800 1.15rem var(--num)}
.meta span{color:var(--muted);font-size:.9rem}
.meta span b{color:#fff;font-size:1rem}

.pad{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.k{position:relative;height:clamp(64px,10vh,86px);border-radius:16px;font:900 1.9rem/1 var(--num);background:linear-gradient(180deg,#2c3c86,#1a2766);border:1px solid rgba(255,255,255,.15);box-shadow:0 5px 0 #0a1238;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:transform .08s,box-shadow .08s,filter .15s}
.k small{font:600 .68rem var(--font);opacity:.75;text-transform:uppercase;letter-spacing:.06em}
.k:hover{filter:brightness(1.15)}
.k:active,.k.hit{transform:translateY(4px);box-shadow:0 1px 0 #0a1238}
.k.dot{background:linear-gradient(180deg,#334155,#1e293b)}
.k.four{background:linear-gradient(180deg,#22c55e,#15803d);box-shadow:0 5px 0 #0b4d24}
.k.six{background:linear-gradient(180deg,var(--gold3),var(--gold2));color:#2a1a00;box-shadow:0 5px 0 #8a5a00}
.k.wk{background:linear-gradient(180deg,#ff6b78,#c81e33);box-shadow:0 5px 0 #6b0d1a}
.k.xx{font-size:1.15rem;background:linear-gradient(180deg,#475569,#334155)}
.k.tool{font-size:1.5rem;background:rgba(255,255,255,.06);box-shadow:none}
.pad-lock{display:none}
.pad.locked .k:not(.tool){opacity:.3;pointer-events:none}
.pad.locked .pad-lock{display:block;grid-column:1/-1;text-align:center;color:var(--muted);font-size:.85rem}
.row-tools{display:flex;gap:10px;margin:12px 0;flex-wrap:wrap}
.row-tools .btn{flex:1}
.a-right .this-over{margin-bottom:12px}
.logbox,.commbox{padding:12px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);margin-bottom:12px}
.logbox h4{font-size:.9rem;margin-bottom:8px}.logbox h4 small{color:var(--muted);font-weight:500}
.log{display:grid;gap:6px;max-height:300px;overflow:auto;overscroll-behavior:contain}
.over{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px;border-radius:10px;background:rgba(0,0,0,.2)}
.ov{font-size:.72rem;font-weight:800;color:var(--muted);width:42px}
.osum{margin-left:auto;font:700 .8rem var(--num);color:var(--muted)}
.commbox summary{cursor:pointer;font-weight:700}
.commbox .comm{max-height:260px;overflow:auto;margin-top:8px;overscroll-behavior:contain}

/* dialogs */
dialog.dlg{margin:auto;border:0;border-radius:20px;background:var(--card);color:var(--text);width:min(520px,94vw);max-height:90vh;padding:0;box-shadow:0 30px 90px rgba(0,0,0,.7);border:1px solid var(--line)}
dialog.dlg::backdrop{background:rgba(2,4,13,.7)}
.dlg-body{display:grid;gap:10px;padding:20px}
.dlg-body h3{font-size:1.25rem}
.dlg-body label{font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.dlg-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px;flex-wrap:wrap}
.dlg-actions.spread{justify-content:space-between}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button{min-width:44px;padding:9px 12px;border-radius:10px;background:#0a1233;border:1px solid var(--line);font-weight:800}
.seg button.on{background:var(--gold);color:#2a1a00;border-color:var(--gold)}
.seg.big button{flex:1;padding:16px;font-size:1.4rem}
.seg.small button{min-width:0;padding:4px 10px;font-size:.78rem}
.chk{display:flex!important;gap:8px;align-items:center;text-transform:none!important;letter-spacing:0!important;color:var(--text)!important;font-weight:600!important;font-size:.9rem!important}
.chk input{width:18px;height:18px;accent-color:var(--gold)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.two>div{display:grid;gap:6px}
.step{display:flex;gap:6px}.step button{width:46px;border-radius:10px;background:#0a1233;border:1px solid var(--line);font-size:1.3rem}.step input{text-align:center;font-weight:800}
.mlist{display:grid;gap:8px}
.mrow{display:flex;gap:6px}
.mopen{flex:1;text-align:left;padding:10px 12px;border-radius:12px;background:#0a1233;border:1px solid var(--line);display:grid}
.mopen small{color:var(--muted)}
.mrow.on .mopen{border-color:var(--gold)}
.mdel{width:44px;border-radius:12px;background:rgba(255,77,94,.1);border:1px solid rgba(255,77,94,.4)}
.tools-grid{display:grid;gap:8px}

.snack{position:fixed;left:50%;bottom:18px;transform:translate(-50%,140%);z-index:100;display:flex;gap:12px;align-items:center;max-width:min(560px,94vw);padding:12px 16px;border-radius:14px;background:#1e2a5a;border:1px solid var(--line);box-shadow:0 14px 40px rgba(0,0,0,.5);font-weight:600;transition:transform .3s cubic-bezier(.3,1.3,.5,1)}
.snack.show{transform:translate(-50%,0)}
.snack.good{border-color:var(--green)}.snack.bad{border-color:var(--red);background:#3b1220}
.snack button{color:var(--gold);font-weight:800;padding:4px 8px;border-radius:8px;border:1px solid var(--gold)}

@media (max-width:640px){
  .sync{font-size:.74rem;padding:6px 8px}.sync span:nth-child(2),.sync .sep{display:none}
  .match-btn{max-width:34vw}
  .pad{gap:8px}.k{height:62px;font-size:1.6rem}
}

/* =========================================================
   VIEWER
   ========================================================= */
.v-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;background:rgba(7,13,36,.96);border-bottom:1px solid var(--line)}
.v-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--text)}
.v-brand img{width:40px;height:40px;border-radius:10px;object-fit:cover}
.v-brand span{display:grid;line-height:1.15}.v-brand small{color:var(--gold);font-size:.75rem;font-weight:700}
.conn{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:800;letter-spacing:.04em;background:rgba(255,255,255,.06);border:1px solid var(--line)}
.conn i{width:9px;height:9px;border-radius:50%;background:var(--gold)}
.conn.ok{color:#bbf7d0;border-color:rgba(61,220,132,.5)}.conn.ok i{background:var(--green);box-shadow:0 0 0 0 var(--green);animation:live 1.6s infinite}
.conn.bad{color:#ffb3bb;border-color:rgba(255,77,94,.5)}.conn.bad i{background:var(--red)}
@keyframes live{0%{box-shadow:0 0 0 0 rgba(61,220,132,.7)}100%{box-shadow:0 0 0 9px rgba(61,220,132,0)}}
.mtabs{display:flex;gap:8px;overflow-x:auto;padding:10px 14px;scrollbar-width:none}
.mtabs::-webkit-scrollbar{display:none}
.mtab{flex:none;position:relative;display:grid;text-align:left;padding:8px 14px;border-radius:12px;background:var(--card);border:1px solid var(--line);min-width:150px}
.mtab small{color:var(--muted);font-size:.75rem}
.mtab.on{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}
.pill{position:absolute;top:6px;right:8px;font:800 .6rem var(--num);font-style:normal;padding:2px 6px;border-radius:999px;letter-spacing:.06em}
.pill.live{background:var(--red);color:#fff;animation:blinkdot 1.2s infinite}.pill.done{background:var(--gold);color:#2a1a00}.pill.brk{background:var(--blue);color:#06142f}
.v-main{max-width:1200px;margin:0 auto;padding:4px 14px 30px}
.mhead{display:flex;align-items:center;gap:10px;margin:6px 0 10px}
.mstatus{font:900 .75rem var(--num);letter-spacing:.1em;padding:4px 10px;border-radius:999px;background:rgba(255,255,255,.08)}
.mstatus.live{background:var(--red);color:#fff}.mstatus.done{background:var(--gold);color:#2a1a00}.mstatus.break{background:var(--blue);color:#06142f}
.mlabel{color:var(--muted);font-weight:700}
.teams{display:grid;gap:8px}
.trow{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line);transition:border-color .3s,background .3s}
.trow.bat{border-color:var(--gold);background:linear-gradient(135deg,rgba(255,198,41,.12),var(--card))}
.trow.won{border-color:var(--green)}
.tdot{width:14px;height:14px;border-radius:50%;flex:none}
.tname{flex:1;display:grid;min-width:0}.tname b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tname small{color:var(--muted)}
.tscore{text-align:right;font:900 1.9rem/1 var(--num);color:var(--gold)}
.tscore span{font-size:.6em;color:#fff}.tscore small{display:block;font-size:.8rem;color:var(--muted);font-weight:700;margin-top:3px}
.line{margin:10px 2px;font-size:1rem;color:#dbe2fb}
.line b{color:var(--gold)}
.v-grid{display:grid;gap:14px;margin-top:8px}
@media (min-width:900px){.v-grid{grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);align-items:start}}
.v-side{display:grid;gap:12px}
.v-comm{padding:12px;border-radius:var(--r);background:var(--card);border:1px solid var(--line)}
.v-comm-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.v-foot{text-align:center;color:var(--muted);font-size:.85rem;padding:20px}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- sponsor ---------- */
.sponsor{max-width:1200px;margin:0 auto;padding:0 14px 6px}
.sp-in{position:relative;overflow:hidden;display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:14px;
  background:linear-gradient(120deg,#2a1205,#3b1a08 45%,#1f1033);border:1px solid rgba(255,198,41,.45);box-shadow:0 8px 24px rgba(0,0,0,.35)}
.sp-in::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.12) 50%,transparent 60%);transform:translateX(-100%);animation:spshine 6s 2s infinite;pointer-events:none}
@keyframes spshine{0%{transform:translateX(-100%)}25%,100%{transform:translateX(100%)}}
.sp-logo{width:46px;height:46px;border-radius:12px;object-fit:cover;flex:none;background:#fff}
.sp-emoji{display:grid;place-items:center;font-size:1.6rem;background:rgba(255,198,41,.15)}
.sp-txt{flex:1;min-width:0;display:grid;line-height:1.25}
.sp-txt small{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.sp-txt b{font-size:1rem}
.sp-txt span{font-size:.8rem;color:#e9d9c2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sp-cta{display:flex;gap:6px;flex:none}
.sp-cta a{font-size:.8rem;font-weight:800;text-decoration:none;color:#2a1a00;background:linear-gradient(135deg,var(--gold3),var(--gold2));padding:7px 11px;border-radius:999px;white-space:nowrap}
@media (max-width:420px){.sp-in{flex-wrap:wrap}.sp-cta{width:100%}.sp-cta a{flex:1;text-align:center}}
.s-moment{margin:4px 2px 10px;padding:10px 14px;border-radius:12px;font-size:.92rem;background:rgba(255,198,41,.08);border:1px dashed rgba(255,198,41,.5);color:#f3e6c8}
.s-moment b{color:var(--gold)}
/* admin sponsor panel */
.sp-form{display:grid;gap:8px}
.sp-switch{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;background:#0a1233;border:1px solid var(--line);font-weight:700}
.sp-switch input{width:22px;height:22px;accent-color:var(--green)}
.sp-prev{margin-top:4px}
.sp-logo-row{display:flex;align-items:center;gap:10px}
.sp-logo-row img{width:46px;height:46px;border-radius:10px;object-fit:cover;background:#fff}

/* ---------- scorer main menu (all matches) ---------- */
.home-btn{display:flex;align-items:center;gap:6px;padding:8px 12px;border-radius:10px;background:rgba(255,255,255,.06);border:1px solid var(--line);font-weight:800;font-size:.9rem;white-space:nowrap}
.home-btn.on{background:var(--gold);color:#2a1a00;border-color:var(--gold)}
.home-btn:hover{border-color:var(--gold)}
.match-btn{cursor:pointer}
.home{max-width:1200px;margin:0 auto;padding:18px 14px 40px}
.home-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.home-head h2{font-size:1.6rem}
.home-list{display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.mcard{position:relative;display:flex;flex-direction:column;gap:8px;text-align:left;padding:14px;border-radius:16px;background:var(--card);border:1px solid var(--line);cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.mcard:hover,.mcard:focus-visible{transform:translateY(-3px);border-color:var(--gold);box-shadow:0 10px 30px rgba(0,0,0,.4);outline:none}
.mcard.cur{border-color:rgba(255,198,41,.55)}
.mcard.live{border-color:var(--red);box-shadow:0 0 0 1px rgba(255,77,94,.4)}
.mc-top{display:flex;align-items:center;gap:8px}
.mc-top b{font-size:1.1rem}
.mc-st{font:800 .66rem var(--num);letter-spacing:.08em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:rgba(255,255,255,.1)}
.mc-st.live{background:var(--red);color:#fff;animation:blinkdot 1.2s infinite}
.mc-st.break{background:var(--blue);color:#06142f}
.mc-st.done{background:var(--gold);color:#2a1a00}
.mc-pend{font-size:.9rem}
.mc-del{margin-left:auto;width:34px;height:34px;border-radius:10px;background:rgba(255,77,94,.08);border:1px solid rgba(255,77,94,.35)}
.mc-del:hover{background:rgba(255,77,94,.25)}
.mc-team{display:grid;grid-template-columns:12px 1fr auto auto;align-items:center;gap:8px;padding:6px 8px;border-radius:10px;background:rgba(0,0,0,.2)}
.mc-team i{width:12px;height:12px;border-radius:50%}
.mc-team b{font:900 1.15rem var(--num);color:var(--gold)}
.mc-team small{color:var(--muted);font-size:.75rem;min-width:44px;text-align:right}
.mc-team.won{box-shadow:inset 0 0 0 1px var(--green)}
.mc-foot{font-size:.85rem;color:#dbe2fb}
.mc-open{margin-top:auto;align-self:flex-end;font-weight:800;font-size:.85rem;color:var(--gold)}
.mc-new{align-items:center;justify-content:center;min-height:200px;border-style:dashed;background:transparent;color:var(--muted)}
.mc-new span{font-size:2.4rem;line-height:1;color:var(--gold)}
.mc-new b{color:var(--text)}
@media (max-width:640px){.home-btn span{display:none}}

.k.runs-any{font-size:1.25rem}
.big-step button{width:64px;font-size:1.6rem}
.big-step input{font:900 2rem/1 var(--num);padding:8px}

.runs-edit{display:grid;gap:8px}
.runs-edit .step input{font:900 1.6rem/1 var(--num);padding:6px}
.runs-edit .seg button{flex:1}
