@import "https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Outfit:wght@400;500;600;700&display=swap";:root{--bg:#06140c;--bg-2:#0b1f12;--grass:#14532d;--cream:#f4efe4;--gold:#e8c547;--muted:#b7c4b4;--red:#c1121f;--line:#f4efe429;--sans:"Outfit", system-ui, sans-serif;--display:"Bebas Neue", "Arial Narrow", sans-serif}*{box-sizing:border-box}html,body,#root{height:100dvh;max-height:100dvh;margin:0;overflow:hidden}body{font-family:var(--sans);background:radial-gradient(1200px 800px at 50% -10%, #14321f, var(--bg));color:var(--cream);-webkit-font-smoothing:antialiased}button,input{font:inherit}button{background:var(--gold);color:#111;cursor:pointer;border:0;border-radius:999px;padding:.9rem 1.4rem;font-weight:700}button:disabled{opacity:.45;cursor:not-allowed}input{border:1px solid var(--line);width:100%;color:var(--cream);background:#0a1a10;border-radius:12px;padding:.85rem 1rem}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shell{height:100dvh;max-height:100dvh;padding:.45rem .65rem calc(.45rem + env(safe-area-inset-bottom));flex-direction:column;gap:.35rem;max-width:720px;margin:0 auto;display:flex;overflow:hidden}.join-shell{text-align:center;justify-content:center;gap:1rem;padding-top:4vh;overflow:auto}.lede{max-width:22rem;color:var(--muted);margin:0 auto;line-height:1.45}.join-form{text-align:left;gap:.55rem;display:grid}.join-form label{color:var(--muted);font-size:.85rem}.official{color:var(--muted);letter-spacing:.04em;font-size:.8rem}.err{color:#ffb4b4;margin:0}.brand-mark{text-align:left;align-items:center;gap:.28rem;display:flex}.brand-mark-lg{gap:.35rem}.brand-kicker{text-transform:uppercase;letter-spacing:.18em;color:var(--gold);margin:0;font-size:.68rem}.brand-title{font-family:var(--display);letter-spacing:.04em;margin:0;font-size:1.65rem;line-height:.9}.brand-mark-compact{gap:.16rem}.brand-mark-compact .brand-kicker{letter-spacing:.14em;font-size:.55rem}.brand-mark-compact .brand-title{font-size:1.15rem}.ecb-badge{background:0 0;border:0;border-radius:12px;flex:none;place-items:center;display:grid;overflow:hidden}.ecb-badge img{object-fit:contain;background:0 0;display:block}.ecb-badge-sm{width:44px;height:44px;padding:0}.ecb-badge-md{width:64px;height:64px;padding:0}.ecb-badge-lg{border-radius:16px;width:104px;height:104px;padding:0}.ecb-badge-hero{width:188px;height:188px;padding:0}.brand-mark-hero{gap:.4rem}.brand-mark-hero .brand-kicker{letter-spacing:.22em;font-size:1.05rem}.brand-mark-hero .brand-title{font-size:clamp(4.2rem,8vw,7.4rem)}.ecb-badge span{display:none}.topbar{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.phase-pill{color:var(--gold);white-space:nowrap;background:#e8c5471f;border:1px solid #e8c54759;border-radius:999px;padding:.45rem .8rem;font-size:.82rem;font-weight:600}.field-wrap{flex:1;justify-content:center;align-items:center;min-height:0;margin:0;display:flex;overflow:hidden}.field-canvas{touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:100%;height:100%;max-height:100%}.field-interactive{cursor:crosshair}.zone-label{fill:#f4efe461;font-size:.055px;font-family:var(--sans);pointer-events:none;-webkit-user-select:none;user-select:none}.end-icon{pointer-events:none;-webkit-user-select:none;user-select:none}.fielder-num,.ball-num{font-weight:800;font-family:var(--sans);fill:#111;pointer-events:none;-webkit-user-select:none;user-select:none}.ball-num{fill:#fff}.play-foot,.admin-panel{gap:.7rem;display:grid}.hint{color:var(--muted);margin:0}.how-to{text-align:left;counter-reset:step;gap:.55rem;max-width:22rem;margin:0 auto;padding:0;list-style:none;display:grid}.how-to li{counter-increment:step;align-items:center;gap:.7rem;font-size:1.05rem;font-weight:600;display:flex}.how-to li:before{content:counter(step);background:var(--gold);color:#111;border-radius:999px;flex:none;place-items:center;width:2rem;height:2rem;font-weight:800;display:grid}.instruct{text-align:center;color:var(--gold);text-wrap:balance;flex:none;margin:0;font-size:clamp(.92rem,3.2vw,1.2rem);font-weight:700;line-height:1.15}.instruct:empty{display:none}.action-bar{flex:none;grid-template-columns:1fr auto;align-items:stretch;gap:.45rem;display:grid}.action-bar .countdown{margin:0}.locked-pill{background:var(--gold);color:#111;letter-spacing:.06em;border-radius:14px;place-items:center;min-width:6.5rem;margin:0;padding:0 .8rem;font-weight:800;display:grid}.setting-pill{color:var(--gold);border:2px solid var(--gold);background:0 0}.countdown{border:3px solid var(--gold);background:#000;border-radius:18px;justify-items:center;gap:.1rem;margin:.4rem 0;padding:.55rem 1rem .35rem;display:grid}.countdown.compact{border-width:2px;border-radius:14px;gap:0;padding:.2rem .7rem .12rem}.countdown-kicker{text-transform:uppercase;letter-spacing:.12em;color:var(--gold);font-size:.72rem;font-weight:700}.countdown.compact .countdown-kicker{letter-spacing:.1em;font-size:.58rem}.countdown-clock{font-family:var(--display);letter-spacing:.04em;color:var(--cream);-webkit-user-select:none;user-select:none;font-size:clamp(3.4rem,16vw,6.5rem);line-height:.85}.countdown.compact .countdown-clock{font-size:clamp(2.1rem,9vw,3.1rem)}.countdown.urgent{border-color:var(--red);background:#3a0a0a;animation:.8s ease-in-out infinite pulse}.countdown.urgent .countdown-kicker,.countdown.urgent .countdown-clock{color:#ffb4b4}@keyframes pulse{50%{transform:scale(1.02)}}.lock-btn{letter-spacing:.04em;border-radius:14px;min-width:6.8rem;padding:.55rem 1rem;font-size:1.05rem;font-weight:800}.ghost-btn{color:var(--cream);border:1px solid var(--line);background:0 0}.danger-btn{color:#ffb4b4;background:0 0;border:1px solid #c1121fa6}.danger-btn.armed{background:var(--red);color:#fff;border-color:var(--red)}.reset-block{border-top:1px solid var(--line);gap:.45rem;margin-top:.2rem;padding-top:.7rem;display:grid}.wicket-btn{color:var(--gold);border:2px solid var(--gold);letter-spacing:.08em;background:#111}.ball-status{-webkit-user-select:none;user-select:none;grid-template-columns:repeat(auto-fill,minmax(2.35rem,1fr));gap:.35rem;display:grid}.ball-dot{aspect-ratio:1;border:2px solid var(--line);width:100%;min-width:0;color:var(--muted);background:0 0;border-radius:999px;place-items:center;padding:0;font-size:.95rem;font-weight:800;display:grid}.ball-dot.set{background:var(--red);border-color:var(--red);color:#fff}.ball-dot.wicket{border-color:var(--gold);color:var(--gold);background:#111}.ball-dot.nohit{color:#fff;background:#4b5563;border-color:#9ca3af}.ball-dot.next{border-color:var(--gold);color:var(--gold);box-shadow:0 0 0 3px #e8c54740}.admin-ball-btns{grid-template-columns:1fr 1fr;gap:.4rem;display:grid}.catch-btn{background:var(--gold);color:#111;border:2px solid var(--gold);letter-spacing:.06em}.catch-btn.on,.wide-btn.on,.ghost-btn.on,.ground-btn.on{outline:2px solid var(--cream);box-shadow:0 0 0 3px #e8c54759}.wide-btn{color:#fff;letter-spacing:.06em;background:#1d4ed8;border:2px solid #93c5fd}.ground-btn{color:#fff;letter-spacing:.06em;background:#c2410c;border:2px solid #fdba74}.ball-dot.catch{background:var(--gold);border-color:var(--gold);color:#111}.ball-dot.wide{color:#fff;background:#1d4ed8;border-color:#93c5fd;font-size:.72rem}.ball-dot.ground{color:#fff;background:#c2410c;border-color:#fdba74}.nohit-btn{color:var(--cream);letter-spacing:.06em;background:#374151;border:2px solid #9ca3af}.ball-score.nohit,.ball-score.catch,.ball-score.wide,.ball-score.catch{border-color:var(--gold)}.ball-score.wide{border-color:#93c5fd}.nohit-note{text-align:center;color:var(--muted);margin:0;font-size:.92rem;font-weight:600}.board-switch{border-top:1px solid var(--line);gap:.4rem;padding-top:.7rem;display:grid}.board-switch-btns{grid-template-columns:1fr 1fr 1fr;gap:.3rem;display:grid}.board-switch-btns button{padding:.55rem .3rem;font-size:.78rem}.board-switch>button{width:100%}.player-search{border-top:1px solid var(--line);gap:.4rem;padding-top:.7rem;display:grid}.player-search label{color:var(--muted);font-size:.85rem}.player-search-row{grid-template-columns:1fr auto;gap:.35rem;display:grid}.player-search-row button{padding:.65rem .9rem}.player-hits{gap:.3rem;max-height:10rem;margin:0;padding:0;list-style:none;display:grid;overflow:auto}.player-hits li{grid-template-columns:1fr auto;align-items:center;gap:.4rem;font-weight:600;display:grid}.player-hits button{padding:.4rem .7rem;font-size:.8rem}.banned-name{color:#ffb4b4;text-decoration:line-through}.wait-kicker{text-transform:uppercase;letter-spacing:.22em;color:var(--gold);margin:0;font-weight:700}.wait-title{font-family:var(--display);letter-spacing:.04em;margin:0;font-size:clamp(2.6rem,10vw,4.4rem);line-height:.9}.wait-copy{max-width:20rem;color:var(--muted);margin:0 auto;line-height:1.4}.wait-pulse{background:var(--gold);border-radius:999px;width:1.4rem;height:1.4rem;margin:.4rem auto 0;animation:1.1s ease-in-out infinite pulse}.score-card{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;flex:none;grid-template-columns:repeat(3,1fr);gap:.4rem;padding:.55rem .7rem;display:grid}.score-card span{color:var(--muted);font-size:.75rem;display:block}.score-card strong{font-size:1.45rem}.score-card em{color:var(--muted);font-size:.85rem;font-style:normal;font-weight:500}.score-block{flex:none;gap:.4rem;display:grid}.ball-scores{grid-template-columns:repeat(6,1fr);gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.ball-score{background:var(--bg-2);border:1px solid var(--line);text-align:center;border-radius:10px;padding:.28rem .12rem}.ball-score.wicket{border-color:var(--gold)}.ball-score .n{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.58rem;display:block}.ball-score .pts{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800;display:block}.admin-shell,.play-shell{width:100%;max-width:1100px}.admin-shell{height:100dvh;overflow:hidden}.admin-board-preview{background:var(--bg-2);border:1px solid var(--line);border-radius:14px;flex:none;padding:.45rem .7rem .55rem}.admin-board-preview .hint{margin:0 0 .35rem}.admin-board-preview ol{grid-template-columns:1fr 1fr;gap:.2rem 1rem;margin:0;padding:0;list-style:none;display:grid}.admin-board-preview li{grid-template-columns:1.5rem minmax(0,1fr) 3.2rem auto;align-items:center;gap:.35rem;min-width:0;font-weight:700;display:grid}.admin-board-preview .rank{color:var(--gold);font-variant-numeric:tabular-nums}.admin-board-preview .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.admin-board-preview .pts{text-align:right;font-variant-numeric:tabular-nums;color:var(--gold)}.admin-board-preview button{padding:.28rem .55rem;font-size:.72rem}.admin-grid{flex:1;grid-template-columns:1fr 260px;gap:1rem;min-height:0;display:grid}.admin-panel{background:var(--bg-2);border:1px solid var(--line);border-radius:16px;align-content:start;padding:1rem;overflow:auto}.admin-panel label{color:var(--muted);gap:.35rem;font-size:.85rem;display:grid}.ball-row{grid-template-columns:repeat(6,1fr);gap:.35rem;display:grid}.ball-chip{color:var(--cream);border:1px solid var(--line);background:0 0;border-radius:10px;padding:.55rem 0}.ball-chip.on{outline:2px solid var(--gold)}.ball-chip.set{background:var(--red);border-color:var(--red)}.screen-shell{height:100dvh;max-height:100dvh;padding:1.2rem 2rem calc(.8rem + env(safe-area-inset-bottom));flex-direction:column;gap:.8rem;display:flex;overflow:hidden}.screen-join-mode,.screen-over-mode{justify-content:space-between}.screen-live{flex:1;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;gap:clamp(1.2rem,3vw,2.4rem);width:min(1600px,100%);min-height:0;margin:0 auto;display:grid}.screen-live-field{grid-template-rows:auto minmax(0,1fr) auto;gap:.6rem;min-width:0;min-height:0;display:grid}.screen-live-head{align-items:center;gap:1rem;display:flex}.screen-live-head h2{font-family:var(--display);letter-spacing:.05em;margin:0;font-size:clamp(2.2rem,5vw,4.2rem);line-height:.9}.screen-live-count{font-family:var(--display);color:var(--gold);margin:0 0 0 auto;font-size:clamp(1.6rem,3.4vw,2.8rem)}.screen-field{width:100%;height:100%}.shot-legend{color:var(--muted);letter-spacing:.04em;text-transform:uppercase;gap:1.4rem;margin:0;font-size:clamp(.95rem,1.6vw,1.2rem);font-weight:700;display:flex}.shot-high:before,.shot-ground:before{content:"";vertical-align:middle;border-top:3px solid var(--gold);width:1.6rem;height:0;margin-right:.45rem;display:inline-block}.shot-high:before{border-top-style:dotted}.shot-ground:before{border-top-style:solid;border-top-color:var(--cream)}.qr-live{color:#06140c;background:#fff;border-radius:20px;align-self:center;justify-items:center;gap:.5rem;padding:.9rem .9rem .7rem;display:grid;box-shadow:0 16px 40px #0000004d}.qr-live span{letter-spacing:.04em;font-size:.85rem;font-weight:700}.screen-join-hero{flex:1;grid-template-columns:1.15fr auto;align-items:center;gap:clamp(2rem,5vw,5rem);width:min(1480px,100%);min-height:0;margin:0 auto;display:grid}.screen-join-copy{align-content:center;gap:1rem;display:grid}.screen-join-copy .screen-phase{font-family:var(--display);letter-spacing:.04em;margin:0;font-size:clamp(2.4rem,5.5vw,4.6rem);line-height:.9}.screen-join-help{color:var(--muted);max-width:22em;margin:0;font-size:clamp(1.1rem,2vw,1.6rem)}.screen-over{color:var(--muted);margin:0;font-size:clamp(1.4rem,2.4vw,2rem)}.screen-count,.screen-fans{color:var(--cream);margin:0;font-size:clamp(1.8rem,3.4vh,3.1rem);font-weight:800}.qr-hero{color:#06140c;background:#fff;border-radius:28px;justify-items:center;gap:.7rem;padding:1.4rem 1.4rem 1rem;display:grid;box-shadow:0 24px 60px #00000059}.qr-hero span{letter-spacing:.04em;font-size:1.05rem;font-weight:700}.screen-board-head{align-items:center;gap:.8rem;display:flex}.screen-board-head .brand-mark{white-space:nowrap;min-width:max-content}.screen-board-title{text-align:center;flex:1}.screen-kicker{text-transform:uppercase;letter-spacing:.16em;color:var(--gold);margin:0;font-size:.95rem;font-weight:700}.screen-board-title h2{font-family:var(--display);letter-spacing:.06em;margin:0;font-size:clamp(3.4rem,8vw,7.2rem);line-height:.85}.board{background:var(--bg-2);border:1px solid var(--line);border-radius:18px;margin:0;padding:.6rem .8rem;list-style:none;overflow:auto}.board-stadium{flex:1;grid-template-rows:auto repeat(5,1fr);min-height:0;padding:.2rem 1.6rem .6rem;display:grid}.board li{border-bottom:1px solid var(--line);grid-template-columns:2.2rem 1fr auto;align-items:center;gap:.6rem;padding:.45rem .2rem;font-size:1.15rem;display:grid}.board-stadium li{letter-spacing:.01em;grid-template-columns:8rem minmax(0,1fr) 14rem;padding:.15rem .2rem;font-size:clamp(2.45rem,8.2vh,7.1rem);font-weight:800;line-height:1.12}.board-stadium.board-match li{grid-template-columns:7.5rem minmax(0,1fr) 11rem 14rem}.board-stadium .board-cols{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom-color:#e8c54759;padding-bottom:.45rem;font-size:clamp(1.05rem,1.8vh,1.5rem);font-weight:700}.board-stadium .rank,.board-stadium .name,.board-stadium .pts,.board-stadium .over-pts{font-family:inherit;font-size:1em;font-weight:800;line-height:1.12}.board-stadium .board-cols .rank,.board-stadium .board-cols .name,.board-stadium .board-cols .pts,.board-stadium .board-cols .over-pts{color:var(--muted);font-size:1em;font-weight:700}.board-stadium li.first{color:var(--gold)}.board-stadium .name{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:.06em 0 .12em;overflow:hidden}.board-stadium .pts,.board-stadium .over-pts{text-align:right;font-variant-numeric:tabular-nums;color:var(--gold)}.board-stadium .over-pts{color:var(--cream)}.board-slot{color:#b7c4b459}.board-head{font-family:var(--display);letter-spacing:.08em;color:var(--gold);border:0!important;font-size:1.8rem!important}.board-empty{color:var(--muted);display:block!important}.rank{color:var(--gold);font-weight:700}.over-pts,.pts{font-variant-numeric:tabular-nums;text-align:right;font-weight:700}.over-pts{color:var(--muted);font-weight:600}.screen-foot{color:var(--muted);align-items:center;gap:.7rem;font-size:.95rem;display:flex}@media (width<=800px){.admin-grid{grid-template-rows:1fr auto;grid-template-columns:1fr}.admin-panel{border-radius:12px;padding:.6rem}.admin-board-preview ol{grid-template-columns:1fr}.screen-join-hero{text-align:center;grid-template-columns:1fr;justify-items:center}.screen-join-copy{justify-items:center}.screen-live{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr}.qr-live{justify-self:center}.brand-mark-hero{text-align:center;flex-direction:column}.board-stadium li{grid-template-columns:4rem minmax(0,1fr) 6.5rem;font-size:clamp(1.6rem,6vh,3rem)}.board-stadium.board-match li{grid-template-columns:3.6rem minmax(0,1fr) 5rem 6.5rem}.score-card strong{font-size:1.15rem}}
