:root{--bg-primary:#0a0e17;--bg-card:#111827;--bg-secondary:#1a2234;--bg-tertiary:#242f45;--border-color:#ffffff1f;--text-main:#f8fafc;--text-muted:#94a3b8;--team-a-red:#ef4444;--team-b-blue:#3b82f6;--serve-gold:#f59e0b;--court-green:#065f46;--court-line:#ffffffd9;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-score:"Impact", "DIN Alternate", "Trebuchet MS", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;margin:0;padding:0}html,body{background-color:var(--bg-primary);width:100%;height:100%;color:var(--text-main);font-family:var(--font-family);touch-action:manipulation;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100%;display:flex}.badminton-app-root{width:100vw;min-height:100dvh;color:var(--text-main);background:#0a0e17;flex-direction:column;margin:0;padding:0;display:flex;overflow-x:hidden}.app-main-viewport{background:#0a0e17;border-radius:0;flex-direction:column;flex:1;gap:0;width:100vw;max-width:none;min-height:100dvh;margin:0;padding:0;display:flex}.scoreboard-main-card{background:var(--bg-card);border:none;border-bottom:1px solid var(--border-color);box-shadow:none;border-radius:0;flex-direction:column;width:100%;display:flex;overflow:hidden}.scoreboard-top-bar{border-bottom:1px solid var(--border-color);background:#00000059;justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.match-meta-info{color:var(--text-muted);align-items:center;gap:8px;font-size:.85rem;font-weight:500;display:flex}.badge-game-round{color:#60a5fa;background:#3b82f633;border-radius:6px;padding:3px 8px;font-weight:600}.meta-divider{opacity:.4}.top-actions{align-items:center;gap:8px;display:flex}.wakelock-pill{color:var(--text-muted);background:#ffffff0f;border-radius:12px;align-items:center;gap:5px;padding:4px 8px;font-size:.75rem;display:flex}.wakelock-pill.active{color:#34d399;background:#10b98126}.wakelock-pill .indicator-dot{background:#64748b;border-radius:50%;width:6px;height:6px}.wakelock-pill.active .indicator-dot{background:#10b981;box-shadow:0 0 8px #10b981}.top-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:8px;align-items:center;gap:4px;padding:5px 12px;font-size:.8rem;transition:all .15s;display:flex}.top-btn:active{background:#334155;transform:scale(.96)}.btn-prominent-fullscreen{color:#fff;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#2563eb,#1d4ed8);border:1px solid #ffffff47;border-radius:10px;align-items:center;gap:6px;padding:7px 14px;font-size:.9rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 4px 14px #2563eb66}.btn-prominent-fullscreen:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-1px);box-shadow:0 6px 18px #2563eb99}.btn-prominent-fullscreen:active{transform:scale(.96)}.fs-btn-icon{font-size:1.05rem}.fs-btn-label{letter-spacing:.3px}.settings-btn-clean{color:#e2e8f0;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px;padding:7px 14px;font-size:.9rem;font-weight:700;transition:all .2s}.settings-btn-clean:hover{color:#fff;background:#ffffff29}.lang-switcher-pill{background:#ffffff14;border:1px solid #ffffff2e;border-radius:10px;align-items:center;gap:3px;padding:3px 4px;display:inline-flex}.lang-pill-btn{color:#cbd5e1;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:5px 10px;font-size:.84rem;font-weight:700;line-height:1;transition:all .15s}.lang-pill-btn:hover{color:#fff;background:#ffffff1a}.lang-pill-btn.active{color:#fff;background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 2px 8px #2563eb73}.screen-bottom-bar{padding:12px 18px;padding-bottom:max(20px, calc(env(safe-area-inset-bottom,0px) + 12px));background:var(--bg-card);border:none;border-top:1px solid var(--border-color);box-shadow:none;border-radius:0;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-top:auto;display:flex}.scoreboard-display-grid{background:#0f172a;grid-template-columns:1fr auto 1fr;align-items:stretch;min-height:240px;display:grid}.score-team-panel{cursor:pointer;flex-direction:column;justify-content:space-between;padding:16px;transition:background .2s;display:flex;position:relative;overflow:hidden}.score-team-panel:hover{background:#ffffff05}.score-team-panel:active{background:#ffffff0d}.score-team-panel.serving-panel{background:radial-gradient(circle,#f59e0b14 0%,#0000 80%)}.panel-glow-bar{height:4px;position:absolute;top:0;left:0;right:0}.team-header-block{flex-direction:column;gap:6px;display:flex}.team-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.team-indicator-dot{border-radius:50%;flex-shrink:0;width:12px;height:12px}.team-display-name{letter-spacing:-.02em;color:var(--text-main);font-size:1.25rem;font-weight:700}.serve-indicator-badge{color:#000;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#d97706);border-radius:8px;padding:3px 8px;font-size:.82rem;font-weight:800;animation:2s infinite pulse-glow;box-shadow:0 0 10px #f59e0b66}@keyframes pulse-glow{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.05)}}.players-subline{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.player-chip{color:var(--text-muted);white-space:nowrap;background:#ffffff14;border-radius:8px;padding:3px 10px;font-size:.86rem}.player-chip.is-server-text{color:#fbbf24;background:#f59e0b1a;border:1px solid #fbbf2466;font-weight:600}.player-chip.is-receiver-text{color:#60a5fa;background:#3b82f61a;border:1px solid #60a5fa66;font-weight:600}.games-won-tally{align-items:center;gap:6px;margin-top:4px;display:flex}.tally-label{color:var(--text-muted);font-size:.75rem}.tally-dots{gap:5px;display:flex}.tally-dot{background:0 0;border:1.5px solid #ffffff40;border-radius:50%;width:10px;height:10px}.tally-dot.won{box-shadow:0 0 6px}.score-number-wrapper{flex-direction:column;justify-content:center;align-items:center;margin:16px 0;display:flex;position:relative}.score-digit{font-family:var(--font-score);text-shadow:0 4px 20px #000c;letter-spacing:-2px;font-size:6.5rem;font-weight:900;line-height:1}.point-alert-badge{letter-spacing:.03em;white-space:nowrap;border-radius:8px;margin-top:6px;padding:4px 14px;font-size:.95rem;font-weight:800;animation:.4s cubic-bezier(.175,.885,.32,1.275) bounce-in}.point-alert-badge.match-point{color:#fff;background:linear-gradient(90deg,#dc2626,#f97316);box-shadow:0 0 15px #ef444499}.point-alert-badge.game-point{color:#111;background:linear-gradient(90deg,#eab308,#ca8a04);box-shadow:0 0 15px #eab30899}@keyframes bounce-in{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.score-tap-hint{text-align:center;color:#ffffff4d;letter-spacing:.03em;font-size:.72rem}.score-center-divider{background:#0003;border-left:1px dashed #ffffff1a;border-right:1px dashed #ffffff1a;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:0 10px;display:flex}.center-vs{color:#fff3;letter-spacing:2px;font-size:1.1rem;font-weight:800}.center-switch-ends-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 10px;font-size:.75rem;transition:all .15s}.center-switch-ends-btn:active{transform:rotate(180deg)scale(.9)}.scoreboard-control-bar{border-top:1px solid var(--border-color);background:#0006;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;display:flex}.ctrl-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:10px;padding:8px 16px;font-size:.9rem;font-weight:600;transition:all .15s}.ctrl-btn:disabled{opacity:.35;cursor:not-allowed}.ctrl-btn:not(:disabled):active{background:#334155;transform:scale(.95)}.ctrl-undo{color:#fca5a5}.ctrl-interval{color:#fde047}.serve-status-indicator-strip{color:var(--text-muted);background:#ffffff0d;border-radius:10px;align-items:center;gap:8px;padding:6px 14px;font-size:.9rem;font-weight:600;display:flex}.serve-sep{color:#f59e0b}.court-container{background:var(--bg-card);border:none;border-bottom:1px solid var(--border-color);box-shadow:none;border-radius:0;flex-direction:column;gap:8px;width:100%;padding:10px 14px;display:flex}.court-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.court-title{color:var(--text-main);align-items:center;gap:6px;font-size:.9rem;font-weight:700;display:flex}.mode-chip{color:#34d399;background:#10b98133;border-radius:4px;padding:2px 6px;font-size:.7rem}.court-quick-actions{align-items:center;gap:6px;display:flex}.quick-swap-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:#f8fafc;cursor:pointer;white-space:nowrap;border-radius:8px;padding:6px 12px;font-size:.84rem;font-weight:600;transition:all .15s}.quick-swap-btn:active{color:#fff;transform:scale(.95)}.server-switch-btn{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b66;font-weight:600}.settings-mid-btn{color:#cbd5e1;background:#94a3b824;border-color:#94a3b859;font-weight:600}.settings-mid-btn:hover{color:#fff;background:#94a3b840}.switch-ends-mid-btn{color:#6ee7b7;background:#10b98124;border-color:#10b98159;font-weight:600}.switch-ends-mid-btn:hover{color:#fff;background:#10b98140}.fullscreen-mid-btn{color:#93c5fd;background:linear-gradient(135deg,#2563eb4d,#1d4ed866);border:1px solid #60a5fa8c;align-items:center;gap:4px;font-weight:700;transition:all .15s;display:inline-flex;box-shadow:0 2px 8px #2563eb40}.fullscreen-mid-btn:hover{color:#fff;background:linear-gradient(135deg,#2563eb73,#1d4ed88c);border-color:#93c5fd;transform:translateY(-1px)}.fullscreen-mid-btn:active{transform:scale(.95)}.court-surface-wrapper{justify-content:center;width:100%;padding:4px 0;display:flex;overflow-x:auto}.court-surface{background-color:var(--court-green);border:3px solid var(--court-line);background-image:linear-gradient(#ffffff0d 1px,#0000 1px),linear-gradient(90deg,#ffffff0d 1px,#0000 1px);background-size:20px 20px;border-radius:8px;grid-template-columns:1fr 1fr;width:100%;max-width:800px;height:240px;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 30px #00000080,0 6px 18px #0006}.court-net{z-index:5;background:repeating-linear-gradient(0deg,#fff,#fff 4px,#333 4px 8px);justify-content:center;align-items:center;width:6px;display:flex;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 10px #fffc}.net-label{color:#fff;white-space:nowrap;background:#000000b3;border-radius:4px;padding:1px 4px;font-size:.65rem;position:absolute;top:6px}.court-half{grid-template-rows:1fr 1fr;height:100%;display:grid;position:relative}.side-team-label{z-index:2;background:#0009;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:700;position:absolute;top:6px}.left-label{left:8px}.right-label{right:8px}.court-quadrant{border:1px dashed #ffffff40;flex-direction:column;justify-content:center;align-items:center;padding:6px;display:flex;position:relative}.court-box-id{color:#ffffff80;pointer-events:none;font-size:.65rem;position:absolute}.quadrant-top-left .court-box-id{top:6px;right:12px}.quadrant-bottom-left .court-box-id{bottom:6px;right:12px}.quadrant-top-right .court-box-id{top:6px;left:12px}.quadrant-bottom-right .court-box-id{bottom:6px;left:12px}.player-box-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:3;background:#0f172aeb;border:2px solid #0000;border-radius:10px;align-items:center;gap:8px;max-width:95%;padding:6px 12px;transition:all .2s;display:flex;box-shadow:0 4px 12px #00000080}.player-box-badge.is-server{background:#1e1b14f2;transform:scale(1.05);box-shadow:0 0 16px #f59e0bb3;border-color:#f59e0b!important}.player-box-badge.is-receiver{background:#0c1c30f2;transform:scale(1.05);box-shadow:0 0 16px #38bdf899;border-color:#38bdf8!important}.player-avatar{color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.8rem;font-weight:800;display:flex}.player-meta{flex-direction:column;display:flex}.player-name{color:#fff;font-size:.88rem;font-weight:700;line-height:1.2}.badge-tag{white-space:nowrap;border-radius:4px;margin-top:2px;padding:2px 6px;font-size:.72rem;font-weight:700;display:inline-block}.server-tag{color:#000;background:#f59e0b}.receiver-tag{color:#000;background:#38bdf8}.neutral-tag{color:#ffffff80}.court-footer-tips{color:var(--text-muted);border-top:1px solid #ffffff0f;flex-wrap:wrap;justify-content:space-around;align-items:center;gap:8px;padding-top:8px;font-size:.75rem;display:flex}.tip-item{align-items:center;gap:5px;display:flex}.dot{border-radius:50%;width:8px;height:8px}.dot-server{background:#f59e0b;box-shadow:0 0 6px #f59e0b}.dot-receiver{background:#38bdf8;box-shadow:0 0 6px #38bdf8}.modal-overlay{z-index:200000;background:#090d16;flex-direction:column;width:100vw;height:100dvh;margin:0;padding:0;animation:.15s fade-in;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.interval-modal-card,.settings-modal-card,.history-modal-card,.summary-modal-card,.offline-modal-card{width:100vw;max-width:none;height:100dvh;max-height:none;box-shadow:none;padding-top:max(16px, env(safe-area-inset-top,0px));padding-bottom:max(32px, calc(env(safe-area-inset-bottom,0px) + 20px));background:#090d16;border:none;border-radius:0;flex-direction:column;flex:1;animation:none;display:flex;overflow:hidden}.modal-tabs{border-bottom:1px solid var(--border-color);background:#0000004d;align-items:center;padding:0 12px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:14px 16px;font-size:.95rem;font-weight:600;transition:all .15s}.tab-btn.active{color:#60a5fa;border-bottom-color:#3b82f6}.tab-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;margin-left:auto;padding:8px 12px;font-size:1.25rem}.modal-body-scroll{flex-direction:column;gap:18px;padding:20px;display:flex;overflow-y:auto}.setting-group{flex-direction:column;gap:8px;display:flex}.setting-label{color:var(--text-muted);font-size:.85rem;font-weight:600}.preset-chip-group{flex-wrap:wrap;gap:6px;display:flex}.preset-chip{border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;background:#ffffff0f;border-radius:16px;padding:6px 12px;font-size:.8rem;transition:all .15s}.preset-chip:active{background:#3b82f640;border-color:#3b82f6}.button-toggle-group{grid-template-columns:1fr 1fr;gap:8px;display:grid}.toggle-option-btn{background:var(--bg-tertiary);border:1.5px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:10px;padding:10px;font-size:.9rem;font-weight:600;transition:all .15s}.toggle-option-btn.selected{color:#60a5fa;background:#3b82f633;border-color:#3b82f6}.setting-row-2col{grid-template-columns:1fr 1fr;gap:12px;display:grid}.select-pill-group{flex-wrap:wrap;gap:6px;display:flex}.pill-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;text-align:center;border-radius:8px;flex:1;padding:8px 10px;font-size:.85rem;font-weight:600;transition:all .15s}.pill-btn.active{color:#fff;background:#3b82f6;border-color:#3b82f6}.checkbox-label{color:var(--text-main);cursor:pointer;align-items:center;gap:10px;font-size:.85rem;display:flex}.teams-setup-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.team-config-card{border:1px solid var(--border-color);background:#00000040;border-radius:12px;flex-direction:column;gap:10px;padding:12px;display:flex}.card-team-a{border-top:3px solid #ef4444}.card-team-b{border-top:3px solid #3b82f6}.team-header-input{align-items:center;gap:6px;display:flex}.team-dot{border-radius:50%;width:10px;height:10px}.team-name-input{color:#fff;background:0 0;border:none;border-bottom:1px solid #fff3;outline:none;width:100%;padding:4px;font-size:.95rem;font-weight:700}.player-input-list{flex-direction:column;gap:6px;display:flex}.player-name-input{background:var(--bg-tertiary);border:1px solid var(--border-color);color:#fff;border-radius:6px;outline:none;padding:6px 8px;font-size:.85rem}.player-name-input:focus{border-color:#60a5fa}.label-with-action{justify-content:space-between;align-items:center;display:flex}.coin-flip-btn{color:#fbbf24;cursor:pointer;background:#f59e0b26;border:1px solid #f59e0b66;border-radius:6px;padding:3px 8px;font-size:.75rem}.modal-actions{gap:10px;margin-top:8px;display:flex}.btn-cancel{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;border-radius:12px;flex:1;padding:12px;font-size:.95rem;font-weight:600}.btn-primary-action{color:#fff;cursor:pointer;background:linear-gradient(135deg,#3b82f6,#1d4ed8);border:none;border-radius:12px;flex:2;padding:12px;font-size:.95rem;font-weight:700;transition:all .15s;box-shadow:0 4px 14px #3b82f666}.btn-primary-action:active{transform:scale(.97)}.start-match-btn{background:linear-gradient(135deg,#10b981,#059669);box-shadow:0 4px 14px #10b98166}.preferences-list{flex-direction:column;gap:16px;display:flex}.preference-item{border:1px solid var(--border-color);background:#0003;border-radius:12px;justify-content:space-between;align-items:center;gap:16px;padding:12px;display:flex}.pref-info{flex-direction:column;gap:4px;display:flex}.pref-title{color:var(--text-main);font-size:.95rem;font-weight:600}.pref-desc{color:var(--text-muted);font-size:.78rem}.switch{flex-shrink:0;width:48px;height:26px;display:inline-block;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background-color:#334155;border-radius:34px;transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background-color:#fff;border-radius:50%;width:20px;height:20px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background-color:#10b981}input:checked+.slider:before{transform:translate(22px)}.interval-fullscreen-overlay{z-index:210000;background:radial-gradient(circle at 50% 30%,#151d2f 0%,#070a12 100%);width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.interval-modal-card{box-sizing:border-box!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;overflow:hidden!important}.interval-header{text-align:center;flex-direction:column;align-items:center;display:flex}.interval-badge-title{justify-content:center;align-items:center;gap:10px;display:flex}.interval-badge-title h2{color:#f8fafc;letter-spacing:.5px;margin:0;font-size:clamp(1.2rem,3.8vw,1.85rem);font-weight:800}.interval-icon{font-size:clamp(1.3rem,3.8vw,2rem)}.interval-subtitle{color:var(--text-muted);text-align:center;margin-top:4px;font-size:clamp(.82rem,2.4vw,1rem);line-height:1.4}.interval-score-hero{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172abf;border:1px solid #ffffff24;border-radius:9999px;justify-content:center;align-items:center;gap:12px;margin-top:6px;padding:6px 18px;display:inline-flex;box-shadow:0 4px 16px #0006}.interval-team-badge{align-items:center;gap:8px;display:flex}.interval-team-dot{border-radius:50%;width:10px;height:10px}.interval-team-name{color:#f1f5f9;font-size:clamp(.85rem,2.5vw,1.1rem);font-weight:700}.interval-team-score{font-family:var(--font-score);font-size:clamp(1.4rem,4vw,2rem);font-weight:900;line-height:1}.interval-score-vs{color:#ffffff59;font-size:1.2rem;font-weight:800}.switch-ends-banner{color:#fde68a;background:linear-gradient(135deg,#f59e0b40,#d9770640);border:1.5px solid #f59e0ba6;border-radius:9999px;justify-content:center;align-items:center;gap:8px;margin-top:6px;padding:8px 18px;font-size:clamp(.85rem,2.4vw,1.05rem);font-weight:800;animation:2s infinite pulse-glow;display:inline-flex;box-shadow:0 0 20px #f59e0b4d}.interval-rest-hint{color:var(--text-muted);text-align:center;margin-top:4px;font-size:clamp(.75rem,2vw,.88rem)}.countdown-ring-container{filter:drop-shadow(0 0 25px #3b82f64d);justify-content:center;align-items:center;display:flex;position:relative}.countdown-svg{width:100%;height:100%;transform:rotate(-90deg)}.circle-bg{fill:none;stroke:#ffffff14;stroke-width:9px}.circle-progress{fill:none;stroke:#3b82f6;stroke-width:9px;stroke-linecap:round;filter:drop-shadow(0 0 6px #3b82f6);transition:stroke-dashoffset 1s linear}.countdown-text{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute}.countdown-digits{font-family:var(--font-score);color:#fff;text-shadow:0 4px 20px #000c,0 0 20px #3b82f666;font-weight:900;line-height:1}.countdown-label{color:#94a3b8;background:#ffffff14;border-radius:9999px;margin-top:6px;padding:2px 10px;font-size:clamp(.82rem,2.2vw,1rem);font-weight:700}.interval-controls{justify-content:center;gap:12px;width:100%;max-width:520px;display:flex}.btn-timer-action{color:var(--text-main);cursor:pointer;white-space:nowrap;background:#ffffff1a;border:1px solid #fff3;border-radius:12px;flex:1;padding:12px 16px;font-size:clamp(.88rem,2.4vw,1.05rem);font-weight:700;transition:all .15s}.btn-timer-action:active{background:#ffffff2e;transform:scale(.96)}.resume-btn{border-radius:12px;flex:1.6;font-size:clamp(.95rem,2.6vw,1.15rem);font-weight:800;background:linear-gradient(135deg,#10b981,#059669)!important;box-shadow:0 4px 18px #10b98166!important}@media (orientation:portrait){.interval-modal-card{padding:max(16px, env(safe-area-inset-top,0px)) 20px max(24px, env(safe-area-inset-bottom,0px))!important;flex-direction:column!important;justify-content:space-between!important;align-items:center!important;display:flex!important}.interval-section-left{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.interval-section-center{flex:1;justify-content:center;align-items:center;width:100%;display:flex}.interval-section-right{flex-direction:column;align-items:center;gap:10px;width:100%;display:flex}.countdown-ring-container{width:min(68vw,36vh)!important;height:min(68vw,36vh)!important}.countdown-digits{font-size:clamp(3.2rem,11vw,4.8rem)!important}}@media (orientation:landscape){.interval-modal-card{grid-template-rows:1fr!important;grid-template-columns:1fr 1fr!important;justify-content:stretch!important;align-items:center!important;gap:clamp(16px,3.5vw,40px)!important;padding:clamp(10px,3vh,20px) clamp(24px,4vw,50px)!important;display:grid!important}.interval-section-left{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,2vh,14px);height:100%;display:flex}.interval-section-center{grid-area:1/2;justify-content:center;align-items:center;height:100%;display:flex}.interval-section-right{pointer-events:none;flex-direction:column;grid-area:1/2;justify-content:flex-end;align-items:center;width:100%;height:100%;display:flex}.interval-section-right .interval-controls{pointer-events:auto;margin-bottom:clamp(6px,1.5vh,14px)}.countdown-ring-container{margin-bottom:clamp(20px,6vh,40px);width:min(56vh,250px)!important;height:min(56vh,250px)!important}.countdown-digits{font-size:clamp(2.4rem,8.5vh,3.8rem)!important}.interval-controls{max-width:100%!important}}.history-modal-card{border:none;border-radius:0;width:100vw;max-width:none;height:100dvh;max-height:none}.history-header{border-bottom:1px solid var(--border-color);background:#0000004d;justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.history-title{align-items:center;gap:8px;display:flex}.history-count{color:var(--text-muted);background:#ffffff1a;border-radius:12px;padding:2px 8px;font-size:.75rem}.history-action-bar{border-bottom:1px solid var(--border-color);background:#0003;padding:10px 18px}.btn-history-undo{color:#fca5a5;cursor:pointer;background:#ef444426;border:1px solid #ef444466;border-radius:10px;width:100%;padding:12px;font-size:.95rem;font-weight:700}.history-list-scroll{flex:1;padding:14px 18px;overflow-y:auto}.empty-history{text-align:center;color:var(--text-muted);padding:40px 0;font-size:1rem}.history-items{flex-direction:column;gap:10px;display:flex}.history-row{background:#ffffff0a;border-left:4px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;padding:12px 16px;font-size:.95rem;display:flex}.history-row.team-a-point{border-left-color:#ef4444}.history-row.team-b-point{border-left-color:#3b82f6}.point-idx{color:var(--text-muted);width:40px;font-size:.88rem;font-weight:600}.point-game{color:var(--text-muted);font-size:.88rem}.point-score{font-family:var(--font-score);align-items:center;gap:6px;font-size:1.35rem;font-weight:800;display:flex}.score-sep{color:var(--text-muted)}.scorer-badge{color:#fff;border-radius:6px;padding:4px 10px;font-size:.86rem;font-weight:700}.point-time{color:var(--text-muted);font-size:.82rem}.summary-fullscreen-overlay{z-index:220000;background:radial-gradient(circle at 50% 25%,#182236 0%,#060912 100%);width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.summary-modal-card{box-sizing:border-box!important;width:100vw!important;max-width:none!important;height:100dvh!important;max-height:none!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;overflow:hidden!important}.summary-trophy-header{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.trophy-bounce{font-size:clamp(2.4rem,6vw,3.8rem);animation:.6s cubic-bezier(.175,.885,.32,1.275) bounce-in}.winner-headline{letter-spacing:.5px;text-shadow:0 0 25px #f59e0b66;font-size:clamp(1.3rem,3.5vw,1.9rem);font-weight:900}.match-status-badge{color:var(--text-muted);background:#ffffff1a;border:1px solid #ffffff26;border-radius:9999px;padding:3px 12px;font-size:clamp(.75rem,2vw,.88rem);font-weight:600}.summary-score-hero{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172ab3;border:1px solid #ffffff1f;border-radius:18px;justify-content:center;align-items:center;gap:clamp(14px,4vw,32px);margin:6px 0;padding:clamp(10px,2vh,18px) clamp(16px,3vw,28px);display:flex;box-shadow:0 10px 30px #00000080}.hero-team{flex-direction:column;align-items:center;gap:4px;display:flex}.hero-name{font-size:clamp(1rem,2.8vw,1.35rem);font-weight:800}.hero-games{font-family:var(--font-score);font-size:clamp(3rem,9vw,4.8rem);font-weight:900;line-height:.95}.hero-vs{color:#ffffff4d;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:800}.summary-format-pill{color:var(--text-muted);background:#ffffff0f;border-radius:9999px;justify-content:center;align-items:center;gap:8px;padding:4px 14px;font-size:.8rem;font-weight:600;display:inline-flex}.summary-dot-sep{opacity:.4}.summary-top-bar{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:4px 0 8px;display:flex}.summary-details-title{color:#94a3b8;font-size:clamp(.85rem,2.2vw,1rem);font-weight:700}.summary-close-btn{color:#cbd5e1;cursor:pointer;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:.85rem;transition:all .15s;display:flex}.summary-close-btn:active{background:#ef44444d;transform:scale(.9)}.games-breakdown-card{background:#0f172a80;border:1px solid #ffffff14;border-radius:12px;margin:6px 0;padding:8px 12px}.breakdown-list{flex-direction:column;gap:6px;display:flex}.breakdown-row{background:#ffffff08;border-radius:6px;justify-content:space-between;align-items:center;padding:4px 8px;font-size:clamp(.8rem,2.2vw,.92rem);display:flex}.breakdown-label{color:var(--text-muted);font-weight:600}.breakdown-score{font-family:var(--font-score);letter-spacing:1px;font-size:clamp(1rem,2.6vw,1.2rem);font-weight:800}.breakdown-sep{color:#fff6;margin:0 4px}.breakdown-winner{color:#34d399;font-size:.78rem;font-weight:700}.match-stats-grid{grid-template-columns:1fr 1fr;gap:8px;margin:6px 0;display:grid}.stat-box{background:#0f172a80;border:1px solid #ffffff14;border-radius:10px;flex-direction:column;gap:2px;padding:6px 10px;display:flex}.stat-label{color:var(--text-muted);font-size:clamp(.7rem,1.8vw,.78rem)}.stat-value{color:#fff;font-size:clamp(.95rem,2.4vw,1.15rem);font-weight:800}.summary-actions{flex-direction:column;gap:8px;margin-top:6px;display:flex}.btn-copy-report{color:#93c5fd;cursor:pointer;background:#3b82f62e;border:1px solid #3b82f673;border-radius:12px;padding:10px;font-size:clamp(.85rem,2.4vw,.95rem);font-weight:700;transition:all .15s}.btn-copy-report:active{transform:scale(.97)}.summary-btn-row{gap:10px;display:flex}.summary-btn-row .btn-secondary{border-radius:12px;flex:1;padding:12px;font-size:clamp(.88rem,2.4vw,1rem);font-weight:700}.summary-btn-row .btn-primary-action{border-radius:12px;flex:1.2;padding:12px;font-size:clamp(.88rem,2.4vw,1rem);font-weight:800}@media (orientation:portrait){.summary-modal-card{padding:max(14px, env(safe-area-inset-top,0px)) 16px max(20px, env(safe-area-inset-bottom,0px))!important;flex-direction:column!important;justify-content:space-between!important;display:flex!important;overflow-y:auto!important}}@media (orientation:landscape){.summary-modal-card{grid-template-rows:1fr!important;grid-template-columns:1fr 1fr!important;justify-content:stretch!important;align-items:stretch!important;gap:clamp(14px,2.5vw,28px)!important;padding:clamp(10px,2.5vh,18px) clamp(18px,3.5vw,36px)!important;display:grid!important;overflow:hidden!important}.summary-col-left{box-sizing:border-box;background:#0f172a66;border:1px solid #ffffff14;border-radius:16px;flex-direction:column;justify-content:space-around;align-items:center;height:100%;padding:clamp(10px,2vh,16px);display:flex}.summary-col-right{box-sizing:border-box;flex-direction:column;justify-content:space-between;height:100%;padding:0 4px;display:flex;overflow-y:auto}.trophy-bounce{font-size:clamp(2.2rem,8vh,3.2rem)!important}.winner-headline{font-size:clamp(1.2rem,4.5vh,1.6rem)!important}.summary-score-hero{width:90%;margin:4px 0}.hero-games{font-size:clamp(2.6rem,10vh,3.8rem)!important}}@media (orientation:landscape) and (height<=600px){.app-main-viewport{gap:0;max-width:100%;padding:0}.scoreboard-display-grid{min-height:180px}.score-digit{font-size:5.5rem}.court-surface{height:160px}.court-footer-tips{display:none}}@media (width<=680px){.app-main-viewport{gap:0;width:100%;max-width:100%;padding:0}.screen-bottom-bar{flex-direction:column;align-items:stretch;gap:10px;padding:10px 12px}.match-meta-info{justify-content:space-between;width:100%;font-size:.88rem}.top-actions-clean{justify-content:space-between;gap:6px;width:100%}.lang-switcher-pill{flex:1;justify-content:space-around}.lang-pill-btn{text-align:center;flex:1;padding:6px 8px;font-size:.82rem}.btn-prominent-fullscreen,.settings-btn-clean{padding:6px 12px;font-size:.88rem}.score-digit{font-size:5.2rem}.team-display-name{font-size:1.25rem;font-weight:800}.scoreboard-control-bar{flex-wrap:wrap;gap:8px;padding:10px 12px}.serve-status-indicator-strip{order:-1;justify-content:center;width:100%;padding:6px 10px;font-size:.88rem}.court-surface{height:220px}.player-box-badge{gap:6px;padding:5px 8px}.player-name{max-width:none;font-size:.84rem;font-weight:700;line-height:1.2}.player-avatar{border-radius:6px;width:26px;height:26px;font-size:.75rem}}.top-btn.mode-btn{color:#60a5fa;background:#3b82f633;border-color:#3b82f6;font-weight:600}.current-mode-status-bar{border-bottom:1px solid var(--border-color);background:#00000059;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 16px;display:flex}.status-label{color:var(--text-muted);font-size:.88rem;font-weight:600}.status-badge{border-radius:6px;padding:4px 10px;font-size:.84rem;font-weight:700}.status-badge.points-badge{color:#34d399;background:#10b98133}.status-badge.format-badge{color:#60a5fa;background:#3b82f633}.status-badge.mode-badge{color:#fbbf24;background:#f59e0b33}.status-badge.deuce-badge{color:#f87171;background:#ef444433}.presets-section-desc{color:var(--text-muted);margin-bottom:6px;font-size:.92rem;line-height:1.45}.mode-preset-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.preset-card{border:1.5px solid var(--border-color);cursor:pointer;background:#0000004d;border-radius:12px;flex-direction:column;gap:8px;padding:14px;transition:all .2s;display:flex;position:relative}.preset-card:hover{background:#ffffff0a;border-color:#ffffff4d;transform:translateY(-2px)}.preset-card.selected{background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 15px #3b82f64d}.preset-card.featured{border-left:3px solid #f59e0b}.preset-card-header{justify-content:space-between;align-items:center;display:flex}.preset-badge{color:#fbbf24;font-size:.82rem;font-weight:700}.preset-checked{color:#34d399;background:#10b98126;border-radius:6px;padding:2px 8px;font-size:.82rem;font-weight:700}.preset-title{color:#fff;font-size:1.1rem;font-weight:800}.preset-desc{color:#cbd5e1;flex:1;font-size:.88rem;line-height:1.4}.preset-meta-pills{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.meta-pill{color:#e2e8f0;background:#ffffff14;border-radius:6px;padding:3px 8px;font-size:.8rem}.custom-input-row{color:var(--text-muted);align-items:center;gap:8px;margin-top:6px;font-size:.85rem;display:flex}.custom-number-input{background:var(--bg-tertiary);border:1px solid var(--border-color);color:#fff;text-align:center;border-radius:8px;outline:none;width:90px;padding:6px 10px;font-size:.95rem;font-weight:700}.custom-number-input:focus{border-color:#3b82f6;box-shadow:0 0 8px #3b82f666}.custom-number-input.mini-input{width:70px;padding:4px 8px}.custom-input-unit{color:var(--text-muted);font-size:.85rem}.advanced-card{border:1px solid var(--border-color);background:#00000040;border-radius:12px;gap:10px;padding:12px}.sub-setting-row{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.82rem;display:flex}.sub-label{color:var(--text-main);font-weight:500}.sub-unit{color:var(--text-muted);font-size:.78rem}.top-btn.offline-download-btn{color:#34d399;background:#10b98133;border-color:#10b981;font-weight:700}.offline-modal-card{width:100vw;max-width:none;height:100dvh;max-height:none;box-shadow:none;background:#090d16;border:none;border-radius:0;flex-direction:column;display:flex;overflow:hidden}.offline-modal-header{border-bottom:1px solid var(--border-color);background:#00000059;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.header-title-box{align-items:center;gap:8px;display:flex}.header-title-box h3{color:#fff;font-size:1.1rem;font-weight:700}.offline-icon{font-size:1.3rem}.offline-modal-body{flex-direction:column;gap:16px;padding:20px;display:flex;overflow-y:auto}.offline-channel-card{border:1.5px solid var(--border-color);background:#0000004d;border-radius:16px;flex-direction:column;gap:8px;padding:16px;display:flex}.offline-channel-card.primary-channel{background:#10b98114;border-color:#10b98180}.channel-badge{color:#34d399;background:#10b98133;border-radius:10px;align-self:flex-start;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.offline-channel-card h4{color:#fff;font-size:1.05rem;font-weight:800}.channel-desc{color:var(--text-muted);font-size:.85rem;line-height:1.5}.channel-desc strong{color:#f1f5f9}.btn-download-offline{color:#fff;cursor:pointer;background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:6px;padding:12px 18px;font-size:.95rem;font-weight:700;transition:all .15s;display:flex;box-shadow:0 4px 14px #10b98166}.btn-download-offline:active{transform:scale(.97)}.download-success-tip{color:#34d399;background:#10b98126;border:1px solid #10b98166;border-radius:8px;margin-top:4px;padding:8px 12px;font-size:.8rem;line-height:1.4}.offline-tips-box{color:#fcd34d;background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:12px;gap:10px;padding:12px 14px;font-size:.82rem;line-height:1.45;display:flex}.offline-tips-box code{color:#fff;background:#0000004d;border-radius:4px;padding:2px 6px}.offline-modal-footer{border-top:1px solid var(--border-color);background:#0000004d;justify-content:flex-end;padding:12px 20px;display:flex}.btn-close-offline{background:var(--bg-tertiary);border:1px solid var(--border-color);color:var(--text-main);cursor:pointer;border-radius:8px;padding:8px 18px;font-size:.85rem;font-weight:600}.player-fullscreen-container{z-index:99999;-webkit-user-select:none;user-select:none;touch-action:manipulation;background:#000;flex-direction:column;width:100vw;height:100vh;display:flex;position:fixed;inset:0;overflow:hidden}.player-fs-meta-badge{z-index:10;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;pointer-events:none;background:#1e293bb3;border:1px solid #ffffff26;border-radius:9999px;align-items:center;gap:8px;padding:4px 16px;font-size:clamp(12px,1.8vw,16px);font-weight:600;transition:opacity .4s;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.player-fs-meta-badge.dimmed{opacity:.15}.player-fs-meta-badge.visible{opacity:1}.dot-sep{opacity:.5}.player-fs-boards-split{flex-direction:row;flex:1;width:100vw;height:100vh;margin:0;padding:0;display:flex}@media (orientation:portrait){.player-fs-boards-split{flex-direction:column!important;width:100vw!important;height:100vh!important}}.player-fs-half{cursor:pointer;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;height:100%;transition:background .15s;display:flex;position:relative;overflow:hidden;margin:0!important;padding:0!important}.player-fs-half:active{background:#ffffff0a}.player-fs-left{border-right:2px solid #ffffff1f}@media (orientation:portrait){.player-fs-left{border-bottom:2px solid #ffffff1f!important;border-right:none!important}.player-fs-half{justify-content:center!important;align-items:center!important;width:100vw!important;height:50vh!important}}.player-fs-half.serving{background:radial-gradient(circle,#ffffff0a 0%,#0000 80%)}.player-fs-score-digit-box{justify-content:center;align-items:center;width:100%;height:100%;margin:0;padding:0;display:flex;position:relative}.settings-modal-overlay{z-index:250000!important}.player-fs-giant-number{font-family:var(--font-score);letter-spacing:-2px;text-shadow:0 0 50px,0 10px 40px #000000e6;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;margin:0;padding:0;font-weight:900;line-height:.85;display:flex}.player-fs-giant-number.single-digit{font-size:min(75vh,36vw)}.player-fs-giant-number.double-digit{font-size:min(70vh,32vw)}@media (orientation:portrait){.player-fs-giant-number.single-digit{font-size:min(38vh,65vw)!important;line-height:.85!important}.player-fs-giant-number.double-digit{font-size:min(34vh,60vw)!important;line-height:.85!important}}.player-fs-point-tag{text-transform:uppercase;letter-spacing:2px;border-radius:9999px;padding:4px 16px;font-size:clamp(14px,2.2vw,24px);font-weight:800;position:absolute;top:10%}.player-fs-point-tag.match-point{color:#fff;background:#ef4444;animation:1s infinite pulse-serve-fs;box-shadow:0 0 20px #ef4444}.player-fs-point-tag.game-point{color:#000;background:#f59e0b;animation:1s infinite pulse-serve-fs;box-shadow:0 0 20px #f59e0b}.player-fs-touch-hint{color:#ffffff40;z-index:2;margin-bottom:clamp(10px,3vh,30px);font-size:clamp(11px,1.4vw,15px)}.player-fs-gesture-hint-pill{color:#f1f5f9;letter-spacing:.5px;pointer-events:none;z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);white-space:nowrap;background:#0f172ad1;border:1px solid #ffffff38;border-radius:999px;padding:6px 18px;font-size:clamp(.75rem,1.8vw,.92rem);font-weight:800;transition:opacity .4s;position:absolute;top:clamp(12px,3vh,28px);left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000080}.player-fs-gesture-hint-pill.dimmed{opacity:.2}.player-fs-gesture-hint-pill.visible{opacity:.95}.player-fs-gesture-indicator{pointer-events:none;z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-user-select:none;user-select:none;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;padding:10px 24px;font-size:clamp(1.8rem,4vw,3rem);font-weight:900;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-fs-gesture-indicator.hint-add,.player-fs-gesture-indicator.splash-add{color:#4ade80;background:#22c55e47;border:2px solid #22c55e;box-shadow:0 0 35px #22c55e8c}.player-fs-gesture-indicator.hint-subtract,.player-fs-gesture-indicator.splash-subtract{color:#f87171;background:#ef444447;border:2px solid #ef4444;box-shadow:0 0 35px #ef44448c}.player-fs-gesture-indicator.splash-add{animation:.65s cubic-bezier(.16,1,.3,1) forwards splashFloatUp}.player-fs-gesture-indicator.splash-subtract{animation:.65s cubic-bezier(.16,1,.3,1) forwards splashFloatDown}@keyframes splashFloatUp{0%{opacity:0;transform:translate(-50%,-20%)scale(.7)}30%{opacity:1;transform:translate(-50%,-60%)scale(1.25)}to{opacity:0;transform:translate(-50%,-120%)scale(1.05)}}@keyframes splashFloatDown{0%{opacity:0;transform:translate(-50%,-50%)scale(.7)}30%{opacity:1;transform:translate(-50%,-10%)scale(1.25)}to{opacity:0;transform:translate(-50%,40%)scale(1.05)}}.player-fs-center-line{z-index:5;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.player-fs-vs-text{color:#ffffff40;font-size:clamp(28px,5vw,60px);font-weight:900;font-family:var(--font-score)}.player-fs-controls-strip{z-index:20;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172ae0;border:1px solid #fff3;border-radius:9999px;align-items:center;gap:clamp(8px,2vw,18px);padding:6px 14px;transition:opacity .4s cubic-bezier(.4,0,.2,1);display:flex;position:absolute;bottom:clamp(14px,3vh,32px);left:50%;transform:translate(-50%);box-shadow:0 10px 30px #000000b3}.player-fs-controls-strip.dimmed{opacity:.15}.player-fs-controls-strip.dimmed:hover,.player-fs-controls-strip.dimmed:active,.player-fs-controls-strip.visible{opacity:1}.fs-ctrl-btn{color:#f8fafc;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #fff3;border-radius:12px;align-items:center;gap:6px;padding:clamp(8px,1.6vh,12px) clamp(14px,2.2vw,22px);font-size:clamp(14px,1.8vw,18px);font-weight:700;transition:all .2s;display:flex}.fs-ctrl-btn:hover{background:#ffffff2e;transform:scale(1.04)}.fs-ctrl-btn:active{transform:scale(.96)}.fs-ctrl-btn:disabled{opacity:.3;pointer-events:none}.fs-ctrl-btn.exit-btn{color:#fca5a5;background:#ef444438;border-color:#ef444473;font-weight:700}.fs-ctrl-btn.exit-btn:hover{color:#fff;background:#ef444461}.fs-ctrl-btn.lock-btn{color:#f1f5f9;background:#ffffff1a;border-color:#ffffff40}.fs-ctrl-btn.lock-btn.is-locked-active{color:#fef08a;background:linear-gradient(135deg,#f59e0b59,#d9770659);border-color:#f59e0b;font-weight:700;box-shadow:0 0 14px #f59e0b66}.badge-lock-status{color:#fbbf24;text-shadow:0 0 8px #f59e0b80;font-weight:700}.player-stadium-container{z-index:9999;-webkit-user-select:none;user-select:none;background:#000;flex-direction:column;width:100vw;height:100vh;display:flex;position:fixed;inset:0;overflow:hidden}.stadium-match-badge{z-index:100;pointer-events:none;align-items:center;gap:8px;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%)}.stadium-game-pill,.stadium-target-pill{color:#94a3b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172ad9;border:1px solid #ffffff26;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600}.stadium-alert-pill{border-radius:999px;padding:4px 14px;font-size:13px;font-weight:800;animation:.3s bounce-in}.stadium-alert-pill.match-alert{color:#fff;background:linear-gradient(90deg,#ef4444,#f97316);box-shadow:0 0 20px #ef4444cc}.stadium-alert-pill.game-alert{color:#000;background:linear-gradient(90deg,#f59e0b,#d97706);box-shadow:0 0 20px #f59e0bcc}.stadium-referee-bar{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172ad9;border:1px solid #fff3;border-radius:999px;gap:12px;padding:6px 12px;transition:opacity .3s;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.stadium-referee-bar.faded{opacity:.15}.stadium-referee-bar:hover,.stadium-referee-bar.visible{opacity:1}.stadium-btn{color:#f1f5f9;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.stadium-btn:active{background:#fff3;transform:scale(.95)}.stadium-btn:disabled{opacity:.3;pointer-events:none}.stadium-exit-btn{color:#fca5a5;background:#ef444440;border-color:#ef444480}.stadium-split-arena{flex:1;grid-template-columns:1fr 2px 1fr;width:100%;height:100%;display:grid}.stadium-side{cursor:pointer;flex-direction:column;justify-content:space-between;align-items:center;padding:30px 20px 20px;transition:background .15s;display:flex;position:relative;overflow:hidden}.stadium-side:active{background:#ffffff0a}.stadium-side.serving{box-shadow:inset 0 0 80px #f59e0b1f}.side-glow-overlay{pointer-events:none;background:radial-gradient(circle at center, var(--team-color) 0%, transparent 70%);opacity:.08;position:absolute;inset:0}.stadium-side.serving .side-glow-overlay{opacity:.15}.side-header{z-index:10;flex-direction:column;align-items:center;gap:8px;display:flex}.side-name-box{align-items:center;gap:10px;display:flex}.side-team-name{color:#fff;letter-spacing:.5px;text-shadow:0 2px 12px #000000e6;font-size:min(4.5vw,28px);font-weight:800}.side-serve-pill{color:#000;background:#f59e0b;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:13px;font-weight:900;animation:1.8s infinite stadium-pulse;display:flex;box-shadow:0 0 15px #f59e0bb3}@keyframes stadium-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.08)}}.side-tally-box{gap:8px;display:flex}.side-tally-dot{background:0 0;border:2px solid #ffffff4d;border-radius:50%;width:12px;height:12px}.side-tally-dot.won{box-shadow:0 0 8px}.stadium-score-display{z-index:10;flex:1;justify-content:center;align-items:center;width:100%;display:flex}.stadium-score-num{font-family:var(--font-score);letter-spacing:-4px;text-shadow:0 10px 40px #000000e6;font-size:min(44vw,68vh);font-weight:900;line-height:.85}.stadium-tap-tip{color:#ffffff40;letter-spacing:.5px;z-index:10;font-size:11px;font-weight:600}.stadium-center-line{z-index:20;background:#ffffff1a;justify-content:center;align-items:center;display:flex;position:relative}.stadium-vs-text{color:#64748b;background:#000;border:1px solid #fff3;border-radius:6px;padding:4px 6px;font-size:11px;font-weight:800}@media (orientation:landscape){.player-fs-meta-badge,.player-fs-touch-hint,.stadium-tap-tip,.stadium-top-meta{display:none!important}.player-fs-team-header,.side-header{z-index:25!important;opacity:.65!important;gap:8px!important;width:auto!important;position:absolute!important;top:10px!important;left:20px!important}.player-fs-right .player-fs-team-header,.stadium-side-right .side-header{left:auto!important;right:20px!important}.player-fs-team-name,.side-team-name{font-size:clamp(14px,2.2vw,22px)!important;font-weight:700!important}.player-fs-serve-pill,.side-serve-pill{padding:2px 8px!important;font-size:11px!important}.player-fs-boards-split,.stadium-split-board{width:100vw!important;height:100vh!important}.player-fs-half,.stadium-half-court{justify-content:center!important;align-items:center!important;padding:0!important;position:relative!important}.player-fs-score-digit-box,.stadium-score-display{justify-content:center!important;align-items:center!important;width:100%!important;height:100%!important;display:flex!important}.player-fs-giant-number.single-digit{font-size:min(75vh,36vw)!important;line-height:.85!important}.player-fs-giant-number.double-digit,.stadium-score-num{letter-spacing:-2px!important;text-shadow:0 0 50px,0 10px 40px #000000e6!important;font-size:min(70vh,32vw)!important;font-weight:900!important;line-height:.85!important}.player-fs-controls-strip,.stadium-floating-ctrls{opacity:.85!important;transition:opacity .3s!important;bottom:12px!important}.player-fs-controls-strip.dimmed,.stadium-floating-ctrls.dimmed{opacity:.18!important}.player-fs-controls-strip.dimmed:hover,.player-fs-controls-strip.dimmed:active,.player-fs-controls-strip.visible,.stadium-floating-ctrls:hover,.stadium-floating-ctrls:active{opacity:1!important}}[data-font-style=modern]{--font-score:"DIN Alternate", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", sans-serif;--font-score-weight:700;--font-score-spacing:-1px}[data-font-style=slim]{--font-score:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "PingFang SC", sans-serif;--font-score-weight:350;--font-score-spacing:2px}[data-font-style=condensed]{--font-score:"Arial Narrow", "Helvetica Neue Condensed", sans-serif-condensed, "Trebuchet MS", sans-serif;--font-score-weight:800;--font-score-spacing:-2px}[data-font-style=digital]{--font-score:"Consolas", "Courier New", "Roboto Mono", "Lucida Console", monospace;--font-score-weight:800;--font-score-spacing:2px}[data-font-style=heavy]{--font-score:"Impact", "Arial Black", -apple-system, sans-serif;--font-score-weight:900;--font-score-spacing:-3px}.score-digit,.player-fs-giant-number,.stadium-score-num,.giant-digit{font-family:var(--font-score,"DIN Alternate", -apple-system, sans-serif)!important;font-weight:var(--font-score-weight,700)!important;letter-spacing:var(--font-score-spacing,normal)!important}.font-options-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:8px;display:grid}.font-option-card{cursor:pointer;text-align:center;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;align-items:center;gap:4px;padding:10px;transition:all .2s;display:flex}.font-option-card:hover{background:#ffffff14;border-color:#ffffff40}.font-option-card.selected{background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 12px #3b82f64d}.font-card-header{justify-content:space-between;align-items:center;width:100%;display:flex}.font-name{color:#f8fafc;font-size:12px;font-weight:700}.font-tag{color:#94a3b8;background:#ffffff1a;border-radius:4px;padding:1px 5px;font-size:10px}.font-option-card.selected .font-tag{color:#93c5fd;background:#3b82f64d}.font-preview{color:#38bdf8;margin:6px 0;font-size:32px;line-height:1}.font-desc{color:#94a3b8;font-size:10px;line-height:1.3}.tactical-board-pure-landscape{z-index:9999;-webkit-user-select:none;user-select:none;touch-action:none;background:#06261a;width:100vw;height:100vh;animation:.2s cubic-bezier(.16,1,.3,1) fadeInPureBoard;position:fixed;inset:0;overflow:hidden}@keyframes fadeInPureBoard{0%{opacity:0;transform:scale(.99)}to{opacity:1;transform:scale(1)}}.tactical-pure-canvas-box{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;inset:0;overflow:hidden}.tactical-pure-canvas-box canvas{width:100%;height:100%;display:block}.tactical-pure-exit-btn{-webkit-backdrop-filter:blur(10px);color:#fff;cursor:pointer;z-index:30;background:#0f172abf;border:1.5px solid #ffffff40;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;font-size:16px;font-weight:800;transition:all .15s;display:flex;position:absolute;top:12px;right:14px;box-shadow:0 4px 14px #00000080}.tactical-pure-exit-btn:hover{background:#ef4444;border-color:#fca5a5;transform:scale(1.08)}.tactical-pure-timer-chip{-webkit-backdrop-filter:blur(10px);z-index:30;color:#f8fafc;background:#0f172abf;border:1px solid #34d39959;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:12px;display:flex;position:absolute;top:12px;left:14px;box-shadow:0 4px 14px #00000073}.timer-chip-icon{font-size:13px}.timer-chip-digits{color:#fde047;font-family:JetBrains Mono,monospace;font-size:13px;font-weight:800}.timer-chip-digits.pulsing-warning{color:#f87171;animation:.8s infinite alternate pulseIntervalAlert}.timer-chip-act-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;transition:background .15s}.timer-chip-act-btn:hover{background:#ffffff4d}.tactical-pure-floating-bar{-webkit-backdrop-filter:blur(16px);z-index:30;scrollbar-width:none;background:#06261ad9;border:1px solid #34d3994d;border-radius:999px;align-items:center;gap:8px;max-width:96vw;padding:4px 10px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;bottom:10px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 8px 30px #00000080,0 0 16px #10b98126}.tactical-pure-floating-bar::-webkit-scrollbar{display:none}.tactical-pure-floating-bar.collapsed{background:#0f172acc;border-radius:50%;justify-content:center;width:36px;height:36px;padding:4px}.toolbar-toggle-btn{color:#cbd5e1;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;transition:all .15s;display:flex}.toolbar-toggle-btn:hover{color:#fff;background:#ffffff40}.pure-group{flex-shrink:0;align-items:center;gap:4px;display:flex}.pure-group+.pure-group{border-left:1px solid #ffffff26;padding-left:6px}.pure-tool-btn{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:6px;justify-content:center;align-items:center;padding:4px 7px;font-size:13px;transition:all .15s;display:inline-flex}.pure-tool-btn:hover{color:#fff;background:#ffffff2e}.pure-tool-btn.active{color:#fff;background:#10b981;border-color:#34d399;box-shadow:0 0 10px #10b98180}.pure-color-btn{cursor:pointer;border:2px solid #ffffff40;border-radius:50%;flex-shrink:0;width:20px;height:20px;transition:transform .15s}.pure-color-btn:hover{transform:scale(1.15)}.pure-color-btn.selected{border-color:#fff;transform:scale(1.25);box-shadow:0 0 8px}.pure-width-btn{color:#cbd5e1;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:5px;justify-content:center;align-items:center;width:22px;height:22px;display:flex}.pure-width-btn.active{color:#34d399;background:#34d3994d;border-color:#34d399}.pure-action-btn{color:#cbd5e1;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:5px;padding:3px 6px;font-size:12px;transition:all .15s}.pure-action-btn:disabled{opacity:.35;cursor:not-allowed}.pure-action-btn:not(:disabled):hover{color:#fff;background:#fff3}.pure-action-btn.clear-btn:not(:disabled):hover{color:#f87171;background:#ef44444d;border-color:#f87171}.pure-action-btn.reset-btn{color:#93c5fd}.pure-preset-btn{color:#93c5fd;cursor:pointer;white-space:nowrap;background:#2563eb33;border:1px solid #60a5fa59;border-radius:5px;padding:3px 7px;font-size:11px;font-weight:700;transition:all .15s}.pure-preset-btn:hover{color:#fff;background:#2563eb66}
