body{min-height:100dvh;background:var(--color-bg-primary);color:var(--color-text-primary)}.container{max-width:480px;margin:0 auto;padding:16px;padding-top:env(safe-area-inset-top,16px);padding-bottom:calc(env(safe-area-inset-bottom,16px) + 100px)}.scoring-logo-section{text-align:center;padding:20px 0 12px}.scoring-logo{width:200px;height:200px;object-fit:contain;border-radius:16px;display:block;margin:0 auto}.scoring-title-section{text-align:center;margin-bottom:12px}.scoring-title{font-family:var(--font-mono);font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:var(--tracking-wider);margin:0 0 4px}.scoring-venue{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;letter-spacing:var(--tracking-wide);color:var(--color-text-tertiary);text-transform:uppercase;margin:0}.scoring-match-bar{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:8px 12px;margin-bottom:16px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px}.scoring-match-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary)}.scoring-match-table{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-accent);background:#6366f11a;padding:2px 8px;border-radius:4px}.scoring-match-race{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.scoring-match-race strong{font-family:var(--font-mono);color:var(--color-text-secondary)}.scoring-match-bracket{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-accent);text-decoration:none}.scoring-match-bracket:active{opacity:.7}.timer-bar{position:relative;height:28px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:6px;margin-bottom:12px;overflow:hidden}.timer-bar-fill{position:absolute;top:0;left:0;height:100%;width:0%;background:linear-gradient(90deg,var(--accent-color),color-mix(in srgb,var(--accent-color) 70%,white));border-radius:6px 0 0 6px;transition:width 1s linear}.timer-bar-label{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:5px;height:100%;font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--color-text-primary);letter-spacing:var(--tracking-wider);text-shadow:0 1px 3px rgba(0,0,0,.5)}.timer-bar-label svg{opacity:.8}.shot-clock-controls{margin:10px 0 8px;padding:10px;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;display:flex;flex-direction:column;gap:10px}.shot-clock-controls-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.shot-clock-toggle{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide);user-select:none}.shot-clock-toggle input{width:16px;height:16px;accent-color:var(--accent-color)}.shot-clock-presets{display:inline-flex;gap:6px}.shot-clock-preset{min-width:50px;height:32px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-secondary);font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.shot-clock-preset.active{border-color:var(--accent-color);background:var(--accent-color-dim);color:var(--accent-color)}.shot-clock-actions{display:flex;gap:8px}.shot-clock-action-btn{flex:1;height:34px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-family:var(--font-ui);font-size:12px;font-weight:700;letter-spacing:var(--tracking-wide);text-transform:uppercase;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.shot-clock-action-btn:disabled{opacity:.45;cursor:not-allowed}.shot-clock-bar{margin:8px 0 12px}.shot-clock-bar.hidden{display:none}.shot-clock-bar-inner{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden}.shot-clock-bar-fill{height:100%;background:#4ade80;border-radius:3px;width:100%;transition:width .1s linear,background .3s ease}.shot-clock-bar-fill.warning{background:#facc15}.shot-clock-bar-fill.expired{background:#ef4444}.shot-clock-bar-info{display:flex;align-items:center;gap:8px;margin-top:4px}.shot-clock-bar-time{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;color:#4ade80;min-width:28px;transition:color .3s ease}.shot-clock-bar-time.warning{color:#facc15}.shot-clock-bar-time.expired{color:#ef4444}.shot-clock-bar-label{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#888}.score-controls{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.score-panel{flex:1;display:flex;flex-direction:column;align-items:center;background:var(--color-bg-tertiary);border:1px solid var(--color-border);padding:16px 12px;gap:8px;transition:border-color .15s}.score-panel.leading{border-color:var(--accent-color)}.score-player-name{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.score-value{font-family:var(--font-mono);font-size:48px;font-weight:700;color:var(--color-text-primary);line-height:1;transition:color .2s}.score-value.winner{color:var(--accent-color)}.score-buttons{display:flex;gap:8px}.btn-score{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-bg-secondary);border:1px solid var(--color-border);color:var(--color-text-primary);font-size:20px;font-weight:700;cursor:pointer;transition:all .1s;-webkit-tap-highlight-color:transparent}.btn-score:active{transform:scale(.95)}.btn-score:disabled{opacity:.3;cursor:not-allowed}.btn-score-plus{background:var(--accent-color);border-color:var(--accent-color);color:var(--color-bg-primary)}.vs-label{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-muted);letter-spacing:var(--tracking-wide)}.race-tracker{padding:14px 16px;margin-bottom:12px;background:var(--color-bg-secondary);border:1px solid var(--color-border)}.race-lane{margin-bottom:10px}.race-lane:last-of-type{margin-bottom:12px}.race-lane-name{display:block;font-family:var(--font-ui);font-size:11px;font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-bottom:4px}.race-lane-bar-row{display:flex;align-items:center;gap:8px}.race-lane-bar{flex:1;display:flex;gap:3px}.race-block{flex:1;height:10px;border-radius:2px;background:var(--color-border);transition:background .2s,transform .15s}.race-block-filled{background:var(--accent-color)}.race-lane-count{font-family:var(--font-mono);font-size:11px;font-weight:700;color:var(--color-text-muted);white-space:nowrap;min-width:36px;text-align:right}.race-callout{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);text-align:center;margin:0;letter-spacing:var(--tracking-wide);transition:color .2s}.race-callout-matchpoint{font-weight:700;color:var(--accent-color)}.race-callout-winner{font-weight:700;color:var(--accent-color);font-size:var(--font-size-sm)}.coin-fab{position:fixed;bottom:calc(env(safe-area-inset-bottom,16px) + 80px);right:20px;width:52px;height:52px;border-radius:50%;background:var(--color-bg-tertiary);border:1px solid var(--color-border);box-shadow:0 4px 12px #0000004d;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:40;-webkit-tap-highlight-color:transparent;transition:transform .15s,background .15s}.coin-fab:active{transform:scale(.95)}.coin-fab-icon{font-size:24px;line-height:1}.coin-fab-done{font-family:var(--font-mono);font-size:var(--font-size-lg);font-weight:800;color:var(--accent-color)}.coin-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:20px;box-sizing:border-box}.coin-overlay.hidden{display:none!important}.coin-overlay-backdrop{position:absolute;inset:0;background:#0009;-webkit-tap-highlight-color:transparent}.coin-overlay-panel{position:relative;width:100%;max-width:340px;max-height:90vh;overflow:auto;background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:20px;border-radius:0}.coin-overlay-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.coin-overlay-title{font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);color:var(--color-text-primary);margin:0}.coin-overlay-close{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--color-text-tertiary);font-size:24px;line-height:1;cursor:pointer;-webkit-tap-highlight-color:transparent}.coin-overlay-close:active{opacity:.7}.coin-overlay-body{text-align:center}.coin-overlay-coin{margin:16px auto}body.coin-modal-open{overflow:hidden}.coin-step-label{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:8px;text-transform:uppercase;letter-spacing:var(--tracking-wide)}.coin-btns{display:flex;gap:8px;justify-content:center;margin-bottom:16px}.caller-btn{flex:1;max-width:160px;padding:10px 16px;background:var(--color-bg-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.caller-btn.selected{border-color:var(--accent-color);background:var(--accent-color-dim);color:var(--accent-color)}.coin{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,gold,#b8860b);display:flex;align-items:center;justify-content:center;margin:16px auto;font-family:var(--font-mono);font-size:28px;font-weight:800;color:#1a1a2e;cursor:pointer;transition:transform .1s;box-shadow:0 4px 16px #ffd70033;-webkit-tap-highlight-color:transparent}.coin:active{transform:scale(.95)}.coin.flipping{animation:coinFlip 1s ease-out}@keyframes coinFlip{0%{transform:rotateY(0)}50%{transform:rotateY(1800deg) scale(1.2)}to{transform:rotateY(3600deg)}}.coin-result{font-family:var(--font-mono);font-size:var(--font-size-sm);font-weight:700;color:var(--accent-color);margin-top:8px}.flip-btn{padding:10px 28px;border:1px solid var(--color-border);background:var(--color-bg-tertiary);color:var(--color-text-primary);font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:all .15s}.flip-btn:active{transform:scale(.95)}.flip-btn:disabled{opacity:.3;cursor:not-allowed}.submit-section{position:fixed;bottom:0;left:0;right:0;padding:16px;padding-bottom:calc(env(safe-area-inset-bottom,16px) + 16px);background:linear-gradient(transparent,var(--color-bg-primary) 30%)}.submit-btn{width:100%;max-width:480px;margin:0 auto;display:block;padding:14px;border:none;font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:all .15s}.submit-btn.ready{background:var(--accent-color);color:var(--color-bg-primary)}.submit-btn.not-ready{background:var(--color-bg-tertiary);color:var(--color-text-muted);border:1px solid var(--color-border)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{opacity:.4;cursor:not-allowed}.status-banner{text-align:center;padding:14px;margin-bottom:12px;font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide)}.status-banner.submitted{background:var(--color-success-bg);border:1px solid var(--color-success);color:var(--color-success)}.status-banner.rejected{background:var(--color-warning-bg);border:1px solid var(--color-warning);color:var(--color-warning)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;gap:16px}.loading-text{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.error-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--color-error-bg);border:1px solid var(--color-error);color:var(--color-error);font-family:var(--font-mono);font-size:var(--font-size-xl);font-weight:700}.error-text{font-family:var(--font-ui);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center;max-width:300px}.spinner{width:32px;height:32px;border:2px solid var(--color-border);border-top-color:var(--accent-color);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.hidden{display:none!important}.pre-match-overlay{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:20px;box-sizing:border-box}.pre-match-card{width:100%;max-width:440px;background:var(--color-bg-secondary);border:1px solid var(--color-border);padding:32px 24px;text-align:center}.pre-match-logo{width:64px;height:64px;object-fit:contain;border-radius:12px;margin:0 auto 12px;display:block}.pre-match-venue{font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-widest);margin:0 0 4px}.pre-match-tournament-name{font-family:var(--font-ui);font-size:var(--font-size-sm);font-weight:700;color:var(--color-text-secondary);margin:0 0 20px}.pre-match-label{font-family:var(--font-mono);font-size:var(--font-size-2xl);font-weight:700;color:var(--accent-color);text-transform:uppercase;letter-spacing:var(--tracking-widest);margin:0 0 6px}.pre-match-race{font-family:var(--font-ui);font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin:0 0 24px}.pre-match-race strong{font-family:var(--font-mono);color:var(--color-text-secondary)}.pre-match-vs{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:32px;flex-wrap:wrap}.pre-match-name{font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:700;color:var(--color-text-primary)}.pre-match-divider{font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-muted);text-transform:lowercase}.pre-match-start-btn{display:block;width:100%;padding:16px;background:var(--accent-color);color:var(--color-bg-primary);border:none;font-family:var(--font-ui);font-size:var(--font-size-base);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:transform .1s,opacity .15s;-webkit-tap-highlight-color:transparent;margin-bottom:24px}.pre-match-start-btn:active{transform:scale(.98)}.pre-match-noshow{display:flex;flex-direction:column;gap:10px}.noshow-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 16px;background:var(--color-error-bg, rgba(220, 38, 38, .1));border:1px solid var(--color-error, #dc2626);color:var(--color-error, #dc2626);font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}.noshow-btn:active{transform:scale(.98)}.noshow-btn:disabled{opacity:.5;cursor:not-allowed}.pre-match-bracket-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:600;color:var(--color-text-tertiary);text-decoration:none;text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-top:20px;transition:color .15s}.pre-match-bracket-link:hover{color:var(--accent-color)}.noshow-banner{text-align:center;padding:14px;margin-top:16px;font-family:var(--font-ui);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);background:var(--color-warning-bg);border:1px solid var(--color-warning);color:var(--color-warning)}
