:root{--bg: #05070f;--panel: rgba(13, 18, 32, .82);--panel-solid: #0d1220;--border: rgba(255, 255, 255, .1);--text: #e8edf6;--muted: #9aa6bd;--live: #ff4d4f;--score-flash: #ffd34d;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--text);overscroll-behavior:none}.app{display:flex;flex-direction:column;height:100dvh;width:100vw;overflow:hidden}.topbar{display:flex;align-items:center;justify-content:space-between;padding:max(env(safe-area-inset-top),10px) 14px 10px;z-index:5}.brand{margin:0;font-size:1.05rem;font-weight:700;line-height:1}.brand-btn{display:flex;align-items:center;gap:8px;background:none;border:none;padding:4px;margin:-4px;cursor:pointer;color:inherit;font:inherit;border-radius:8px}.brand-btn:hover .brand-name,.brand-btn:focus-visible .brand-name{color:#cfe6ff}.brand-name{letter-spacing:-.2px;transition:color .15s ease}.brand-period{color:#2f8bff}.brand-dot{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#6bd5ff,#1d6cff);box-shadow:0 0 12px #2f8bff;flex-shrink:0}.counts{display:flex;align-items:center;gap:8px;font-size:.82rem;color:var(--muted);background:none;border:1px solid transparent;border-radius:999px;padding:4px 8px;cursor:pointer;font-family:inherit}.counts:hover{border-color:var(--border)}.counts-caret{font-size:.65rem;opacity:.8}.live-pill{color:#fff;background:var(--live);padding:2px 9px;border-radius:999px;font-weight:700;font-size:.78rem}.filterbar{display:flex;gap:8px;padding:0 14px 10px;overflow-x:auto;z-index:5;scrollbar-width:none}.filterbar::-webkit-scrollbar{display:none}.chip-wrap{position:relative;display:inline-flex;align-items:stretch;flex:none}.chip{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:6px 12px;border-radius:999px;font-size:.85rem;font-weight:600;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:opacity .15s,border-color .15s}.chip .chip-dot{width:9px;height:9px;border-radius:50%;background:var(--chip-color)}.chip-emoji{font-size:1.05rem;line-height:1}.chip-count{font-size:.74rem;font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums}.chip.on{border-color:var(--chip-color)}.chip.on .chip-count{color:var(--chip-color)}.chip.off{opacity:.45}.chip.has-caret{border-radius:999px 0 0 999px}.chip-caret{display:inline-flex;align-items:center;margin-left:-1px;padding:0 10px;border:1px solid var(--border);border-left:1px solid var(--border);border-radius:0 999px 999px 0;background:var(--panel);color:var(--muted);font-size:.78rem;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:color .15s,border-color .15s,opacity .15s}.chip-caret.on{border-color:var(--chip-color)}.chip-caret.off{opacity:.45}.caret-glyph{display:inline-block;transition:transform .15s}.chip-caret.open{color:var(--text)}.chip-caret.open .caret-glyph{transform:rotate(180deg)}.leaguebar{display:flex;align-items:center;gap:8px;padding:0 14px 10px;margin-top:-2px;overflow-x:auto;z-index:5;scrollbar-width:none}.leaguebar::-webkit-scrollbar{display:none}.leaguebar-label{flex:none;display:inline-flex;align-items:center;gap:6px;padding-left:4px;padding-right:4px;font-size:.72rem;font-weight:700;color:var(--chip-color);white-space:nowrap}.league-pill{flex:none;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;border:1px solid var(--border);background:var(--panel);color:var(--text);padding:5px 11px;border-radius:999px;font-size:.78rem;font-weight:600;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;transition:opacity .15s,border-color .15s}.league-pill.on{border-color:var(--chip-color)}.league-pill.off{opacity:.45}.league-check{color:var(--chip-color);font-weight:800;font-size:.7rem}.league-pill.off .league-check{display:none}.league-name{white-space:nowrap}.league-count{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.stage{position:relative;flex:1;min-height:0}.globe-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.banner{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:4;background:var(--panel);border:1px solid var(--border);padding:8px 14px;border-radius:10px;font-size:.85rem;color:var(--muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.banner.error{color:#ffd1d1;border-color:#ff505066}.marker{position:relative;width:14px;height:14px;transform:translate(-50%,-50%)}.marker-dot{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:11px;height:11px;border-radius:50%;background:var(--marker-color);border:1.5px solid rgba(255,255,255,.9);box-shadow:0 0 0 1.5px #0000008c,0 0 10px 2px var(--marker-color)}.marker-pre .marker-dot{opacity:.92}.marker-final .marker-dot{opacity:.7;border-color:#ffffff8c;box-shadow:0 0 0 1.5px #00000080}.marker-ring{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:11px;height:11px;border-radius:50%;background:var(--marker-color);animation:pulse calc(3.2s - var(--intensity, .5) * 1.4s) ease-out infinite}.marker-live .marker-dot{transform:scale(calc(1 + var(--intensity, 0) * .4))}.marker-count{position:absolute;top:-7px;left:9px;min-width:14px;height:14px;padding:0 3px;border-radius:999px;background:#0d1220;border:1px solid rgba(255,255,255,.85);color:#fff;font-size:9px;font-weight:700;line-height:13px;text-align:center}@keyframes pulse{0%{transform:scale(1);opacity:.7}to{transform:scale(calc(2.8 + var(--intensity, .45) * 1.6));opacity:0}}.legend{position:absolute;left:12px;bottom:12px;z-index:4;background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:9px 11px;font-size:.74rem;color:var(--muted);display:grid;gap:5px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.legend-row{display:flex;align-items:center;gap:7px}.legend-marker{width:10px;height:10px;border-radius:50%;background:#cbd5e1}.legend-live{background:var(--live);box-shadow:0 0 0 3px #ff4d4f4d}.legend-pre{background:#cbd5e1}.legend-final{background:#6b7280}.statusbar{padding:8px 14px max(env(safe-area-inset-bottom),8px);font-size:.72rem;color:var(--muted);text-align:center;z-index:5}.info-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:30;display:flex;align-items:center;justify-content:center;padding:18px}.info-modal{position:relative;width:100%;max-width:420px;background:var(--panel-solid);border:1px solid var(--border);border-radius:16px;padding:22px 22px 24px;box-shadow:0 18px 60px #00000080;animation:rise .2s ease-out}.info-close{position:absolute;top:12px;right:12px;width:30px;height:30px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text);font-size:1.1rem;line-height:1;cursor:pointer}.info-brand{display:flex;align-items:center;gap:9px;font-size:1.4rem;font-weight:700;letter-spacing:-.3px;margin-bottom:14px}.info-tagline{margin:0 0 12px;font-size:1.02rem;font-weight:600}.info-body{margin:0 0 12px;font-size:.9rem;line-height:1.5;color:var(--text)}.info-muted{color:var(--muted);font-size:.82rem;margin-bottom:0}.info-credit{margin:16px 0 0;text-align:right;font-size:.75rem;font-style:italic;color:var(--muted);opacity:.7}.info-muted+.info-muted{margin-top:10px}.info-link{background:none;border:none;padding:0;font:inherit;color:var(--accent, #5aa9ff);text-decoration:underline;cursor:pointer}.info-links{margin-top:14px;padding-top:12px;border-top:1px solid var(--border)}.disclosure-backdrop{z-index:31}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:20;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:460px;max-height:80dvh;overflow-y:auto;background:var(--panel-solid);border:1px solid var(--border);border-bottom:none;border-radius:18px 18px 0 0;padding:10px 18px max(env(safe-area-inset-bottom),18px);animation:rise .22s ease-out}@keyframes rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}.sheet-grab{width:38px;height:4px;border-radius:999px;background:var(--border);margin:4px auto 12px}.sheet-head{position:sticky;top:0;display:flex;align-items:center;gap:10px;margin-bottom:12px;padding-bottom:8px;background:var(--panel-solid)}.sheet-venue{display:flex;align-items:baseline;gap:7px;min-width:0}.sheet-venue-name{font-weight:700;font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sheet-venue-city{font-size:.8rem;color:var(--muted);white-space:nowrap}.sheet-count{margin-left:auto;font-size:.75rem;font-weight:700;color:var(--muted);background:#ffffff0f;border:1px solid var(--border);padding:2px 8px;border-radius:999px;white-space:nowrap}.games{display:grid;gap:14px}.game-head{display:flex;align-items:center;gap:10px;margin-bottom:6px}.game-league{font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px}.game-status{margin-left:auto;font-size:.8rem;color:var(--muted);display:inline-flex;align-items:center;gap:6px}.game-status.state-live{color:var(--live);font-weight:700}.game-finaltime{color:var(--muted);font-weight:400;font-variant-numeric:tabular-nums}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--live);animation:blink 1.2s steps(2,start) infinite}@keyframes blink{50%{opacity:.3}}.sheet-close{margin-left:auto;background:none;border:none;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 2px}.teams{display:grid;gap:6px}.team-row{display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:10px;background:#ffffff08}.team-row.winner{background:#ffffff14}.team-logo{width:30px;height:30px;object-fit:contain}.team-logo.placeholder{background:var(--border);border-radius:50%}.team-name{flex:1;font-weight:600;font-size:.98rem}.team-row.winner .team-name{font-weight:800}.team-record{font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums}.team-score{font-variant-numeric:tabular-nums;font-size:1.25rem;font-weight:800;min-width:30px;text-align:right}.set-scores{display:flex;gap:4px;align-items:center}.set-score{font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700;min-width:20px;padding:1px 5px;text-align:center;border-radius:5px;background:#ffffff14}.tmatches{display:flex;flex-direction:column;gap:8px}.tmatch{padding:8px 10px;border-radius:10px;background:#ffffff08}.tmatch-status{display:flex;align-items:center;gap:6px;font-size:.72rem;color:var(--muted);margin-bottom:4px}.tmatch-status.state-live{color:var(--live);font-weight:700}.tmatch-context{margin-left:auto;color:var(--muted);font-weight:400;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding-left:8px}.tplayer{display:flex;align-items:center;gap:10px;padding:3px 0}.tplayer-flag{width:22px;height:16px;object-fit:contain;border-radius:2px}.tplayer-flag.placeholder{background:var(--border)}.tplayer-name{flex:1;font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tplayer.winner .tplayer-name{font-weight:800}.tplayer-sets{display:flex;gap:4px;align-items:center}.tplayer-score{font-variant-numeric:tabular-nums;font-size:1.05rem;font-weight:800;min-width:24px;text-align:right}.tcontrols{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}.tsearch{width:100%;background:#ffffff0d;border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:.9rem}.tsearch::placeholder{color:var(--muted)}.tfilters{display:flex;flex-wrap:wrap;gap:6px}.tfilters .chip{font-size:.76rem;padding:5px 11px}.tsummary{font-size:.75rem;color:var(--muted);font-variant-numeric:tabular-nums}.tempty{color:var(--muted);font-size:.85rem;text-align:center;padding:18px 0}.tshowall{width:100%;margin-top:10px;background:#ffffff0d;border:1px solid var(--border);border-radius:10px;padding:10px;color:var(--text);font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer}.tshowall:hover{background:#ffffff14}.tmatches-grouped{gap:4px}.tround{display:flex;flex-direction:column}.tround-head{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;border-radius:8px;padding:8px 4px;cursor:pointer;text-align:left;color:var(--text);font-family:inherit}.tround-head:hover{background:#ffffff0d}.tround-caret{flex:none;width:10px;color:var(--muted);font-size:.75rem}.tround-name{flex:1;min-width:0;font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tround-sub{flex:none;font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.tround-body{display:flex;flex-direction:column;gap:8px;padding:2px 0 8px}.tshowall-round{margin-top:2px;padding:8px;font-size:.8rem}.tour-group{display:flex;flex-direction:column}.tour-head{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-radius:8px;padding:8px;cursor:pointer;text-align:left;color:var(--text);font-family:inherit}.tour-head:hover{background:#ffffff0d}.tour-caret{flex:none;color:var(--muted);font-size:.75rem;width:10px}.tour-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.tour-name{font-size:.9rem;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tour-sub{font-size:.72rem;color:var(--muted);font-variant-numeric:tabular-nums}.tour-group .grow{padding-left:26px}.game-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px;font-size:.78rem;color:var(--muted)}.meta-tv{display:inline-flex;align-items:center;gap:4px}.meta-odds{font-variant-numeric:tabular-nums;padding:2px 8px;border:1px solid var(--border);border-radius:999px}.poss-mark{font-size:.85rem;line-height:1;filter:drop-shadow(0 0 4px rgba(255,211,77,.5))}.situation{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-top:10px;padding:8px 10px;border-radius:10px;background:#ffffff08}.situation-baseball{display:flex;align-items:center;gap:12px}.diamond .base{fill:transparent;stroke:var(--muted);stroke-width:1.5}.diamond .base.on{fill:var(--score-flash);stroke:var(--score-flash)}.count{display:grid;gap:3px}.count-line{display:flex;align-items:center;gap:6px}.count-label{width:12px;font-size:.72rem;font-weight:700;color:var(--muted)}.count-dots{display:inline-flex;gap:4px}.count-dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--border);background:transparent}.count-dot.ball.on{background:#22c55e;border-color:#22c55e}.count-dot.strike.on{background:var(--score-flash);border-color:var(--score-flash)}.count-dot.out.on{background:var(--live);border-color:var(--live)}.situation-football{display:inline-flex;align-items:center;gap:8px}.down-distance{font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}.redzone-badge{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:#fff;background:var(--live);padding:2px 7px;border-radius:999px}.winprob{margin-top:12px}.winprob-head{display:flex;justify-content:space-between;font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:4px}.winprob-label{text-transform:uppercase;letter-spacing:.5px;font-weight:600;opacity:.8}.winprob-bar{display:flex;height:8px;border-radius:999px;overflow:hidden;background:var(--border)}.winprob-away{background:#ffffff47}.winprob-home{background:var(--live);transition:width .6s ease}.winprob-away{transition:width .6s ease}.winprob-pcts{display:flex;justify-content:space-between;font-size:.72rem;font-variant-numeric:tabular-nums;color:var(--muted);margin-top:3px}.venue{font-size:.85rem;color:var(--muted);display:flex;align-items:center;gap:6px}.venue-pin{font-size:.9rem}.plays{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.plays-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}.play{display:flex;gap:8px;font-size:.84rem;line-height:1.35;padding:3px 0}.play-clock{flex:none;min-width:34px;color:var(--muted);font-variant-numeric:tabular-nums}.play-text{color:var(--text)}.play.scoring .play-text{font-weight:700;color:#ffd66b}.highlights{margin-top:10px;border-top:1px solid var(--border);padding-top:10px}.highlights-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}.highlight-list{list-style:none;margin:0;padding:0}.highlight{display:flex;gap:10px;align-items:baseline;font-size:.84rem;line-height:1.35;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.04)}.highlight:last-child{border-bottom:none}.highlight-time{flex:none;min-width:40px;text-align:right;color:var(--muted);font-variant-numeric:tabular-nums;font-weight:600}.highlight-text{color:var(--text)}.highlight.scoring .highlight-time,.highlight.scoring .highlight-text{color:#ffd66b}.highlight.scoring .highlight-text{font-weight:700}.stats{margin-top:10px;border-top:1px solid var(--border);padding-top:8px}.stats-title{font-size:.7rem;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none}.stats-title::-webkit-details-marker{display:none}.stats-title:before{content:"▸ ";font-size:.7rem}.stats[open] .stats-title:before{content:"▾ "}.stat-rows{margin-top:8px}.stat-head,.stat-row{display:grid;grid-template-columns:3ch 1fr 3ch;gap:8px;align-items:center;font-size:.82rem;font-variant-numeric:tabular-nums;padding:3px 0}.stat-head{font-size:.66rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.stat-head span:first-child,.stat-away{text-align:left}.stat-head span:last-child,.stat-home{text-align:right}.stat-away,.stat-home{font-weight:700;color:var(--text)}.stat-label{text-align:center;color:var(--muted);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leaders{margin-top:10px;display:grid;gap:6px}.leader{display:flex;align-items:baseline;gap:8px;font-size:.8rem}.leader-cat{flex:none;min-width:64px;font-size:.66rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}.leader-name{font-weight:700;color:var(--text)}.leader-line{color:var(--muted);font-variant-numeric:tabular-nums}.callout-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:100;pointer-events:none;overflow:hidden}.co-line{position:absolute;top:0;left:0;z-index:1;width:1px;transform-origin:top left;background:#ffffff8c}.co-box{position:absolute;top:0;left:0;z-index:2;pointer-events:auto;background:#0d1220eb;border:1px solid var(--marker-color);border-radius:8px;padding:3px 8px;white-space:nowrap;box-shadow:0 2px 8px #00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;will-change:transform}.co-score{font-size:.74rem;font-weight:800;color:#fff;font-variant-numeric:tabular-nums;padding-right:12px}.co-clock{font-size:.62rem;font-weight:700;color:var(--live)}.co-play{display:none;font-size:.62rem;color:var(--muted);max-width:172px;white-space:normal;line-height:1.25;margin-top:3px}.co-box.expanded .co-play{display:block}.co-x{position:absolute;top:-7px;right:-7px;width:16px;height:16px;border-radius:50%;border:1px solid var(--border);background:#0d1220;color:var(--muted);font-size:12px;line-height:13px;text-align:center;padding:0;cursor:pointer}.co-x:hover{color:#fff;border-color:#fff9}@keyframes flash-pop{0%{transform:scale(1)}30%{transform:scale(1.9);filter:drop-shadow(0 0 8px var(--score-flash))}to{transform:scale(1)}}@keyframes flash-color{0%,to{background:var(--marker-color);box-shadow:0 0 0 1.5px #0000008c,0 0 10px 2px var(--marker-color)}30%{background:var(--score-flash);box-shadow:0 0 0 1.5px #0000008c,0 0 16px 5px var(--score-flash)}}.marker-flash .marker-dot{animation:flash-pop .9s ease-out 2,flash-color .9s ease-out 2}@keyframes flash-ring{0%{transform:scale(.6);opacity:.85}to{transform:scale(4.4);opacity:0}}.marker-flash-ring{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:11px;height:11px;border-radius:50%;background:var(--score-flash);pointer-events:none;animation:flash-ring .9s ease-out 2}.toasts{position:fixed;top:88px;left:50%;transform:translate(-50%);z-index:30;display:flex;flex-direction:column;gap:8px;width:min(92vw,360px);pointer-events:none}.toast{pointer-events:auto;display:flex;align-items:stretch;width:100%;background:var(--panel-solid);border:1px solid var(--border);border-left:4px solid var(--toast-color);border-radius:10px;color:var(--text);box-shadow:0 6px 20px #00000080;animation:toast-in .25s ease-out;overflow:hidden}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.toast-main{flex:1;display:flex;align-items:center;gap:10px;text-align:left;min-width:0;padding:8px 4px 8px 12px;background:transparent;border:none;color:inherit;cursor:pointer}.toast-x{flex:none;width:30px;border:none;border-left:1px solid var(--border);background:transparent;color:var(--muted);font-size:16px;line-height:1;cursor:pointer}.toast-x:hover{color:#fff;background:#ffffff0f}.toast-verb{flex:none;font-size:.7rem;font-weight:800;letter-spacing:.5px;color:var(--toast-color)}.toast-body{display:flex;flex-direction:column;min-width:0}.toast-team{font-weight:700;font-size:.9rem}.toast-detail{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.statebar{padding-top:0}.statebar .chip{font-size:.76rem;padding:5px 11px}.drawer-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:14;background:#00000059}.drawer{position:fixed;z-index:15;left:0;right:0;bottom:0;max-height:64%;display:flex;flex-direction:column;background:var(--panel-solid);border:1px solid var(--border);border-bottom:none;border-radius:16px 16px 0 0;transform:translateY(110%);transition:transform .25s ease}.drawer.open{transform:translateY(0)}.drawer-head{display:flex;gap:8px;padding:10px;border-bottom:1px solid var(--border)}.drawer-search{flex:1;min-width:0;background:#ffffff0d;border:1px solid var(--border);border-radius:8px;padding:8px 10px;color:var(--text);font-size:.9rem}.drawer-search::placeholder{color:var(--muted)}.drawer-close{flex:none;background:none;border:none;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 6px}.drawer-list{overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px}.drawer-empty{color:var(--muted);font-size:.85rem;padding:18px;text-align:center}@media(min-width:720px){.drawer{top:0;bottom:0;right:0;left:auto;width:340px;max-height:none;border-radius:0;border-right:none;transform:translate(110%)}.drawer.open{transform:translate(0)}.drawer-backdrop{display:none}}.grow{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;border-radius:8px;padding:8px;cursor:pointer;text-align:left;color:var(--text);font-family:inherit}.grow:hover{background:#ffffff0d}.grow-dot{flex:none;width:9px;height:9px;border-radius:50%}.grow-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.grow-teams{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grow-score{font-variant-numeric:tabular-nums}.grow-sep{color:var(--muted)}.grow-venue{font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grow-status{flex:none;max-width:42%;display:flex;align-items:center;gap:5px;font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grow-status.state-live{color:var(--live);font-weight:700}.tour-btn{background:var(--panel);border:1px solid var(--border);color:var(--text);border-radius:999px;padding:4px 9px;font-size:.9rem;line-height:1;font-family:inherit;cursor:pointer;white-space:nowrap}.tour-btn.on{border-color:var(--live);color:#fff;background:#ff4d4f2e}.alert-btn{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:.9rem;line-height:1;cursor:pointer;white-space:nowrap}.alert-btn.on{border-color:var(--fav);background:#fbbf2429}.recap-btn{position:relative;background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:4px 9px;font-size:.9rem;line-height:1;cursor:pointer;white-space:nowrap}.recap-badge{position:absolute;top:-6px;right:-6px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:var(--live);color:#fff;font-size:.62rem;font-weight:700;line-height:16px;text-align:center}.recap-modal{max-width:440px}.recap-title{margin:0 0 2px;font-size:1.2rem;font-weight:700}.recap-sub{margin:0 0 14px;font-size:.85rem;color:var(--muted)}.recap-list{list-style:none;margin:0;padding:0;max-height:56vh;overflow-y:auto;display:grid;gap:2px}.recap-row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 6px 9px 12px;border-radius:8px}.recap-row.unseen{background:#fbbf2414}.recap-newdot{position:absolute;left:3px;top:50%;transform:translateY(-50%);width:5px;height:5px;border-radius:50%;background:var(--fav)}.recap-main{min-width:0;display:grid;gap:2px}.recap-league{font-size:.68rem;font-weight:700;letter-spacing:.3px;text-transform:uppercase}.recap-score{font-size:.92rem;font-weight:600;white-space:nowrap}.recap-team.followed{color:var(--fav)}.recap-sep{margin:0 5px;color:var(--muted)}.recap-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.recap-outcome{font-size:.66rem;font-weight:700;padding:2px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px}.recap-outcome.o-W{color:#22c55e;background:#22c55e24}.recap-outcome.o-L{color:#f87171;background:#f8717124}.recap-outcome.o-D{color:var(--muted);background:#94a3b824}.recap-time{font-size:.72rem;color:var(--muted);white-space:nowrap}.recap-clear{margin-top:14px;width:100%;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px;color:var(--muted);font-size:.82rem;cursor:pointer}.recap-clear:hover{color:var(--text)}.ticker{position:relative;z-index:6;height:34px;display:flex;align-items:center;overflow:hidden;border-top:1px solid var(--border);background:#0d1220d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.ticker-track{display:inline-flex;align-items:center;white-space:nowrap;will-change:transform;animation:ticker-scroll 36s linear infinite}.ticker:hover .ticker-track{animation-play-state:paused}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:inline-flex;align-items:center;gap:7px;padding:0 16px;background:none;border:none;border-right:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.78rem;cursor:pointer}.ticker-dot{flex:none;width:8px;height:8px;border-radius:50%}.ticker-teams{font-weight:700;font-variant-numeric:tabular-nums}.ticker-status{color:var(--muted);font-size:.7rem}.ticker-status.live{color:var(--live);font-weight:700}@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}.ticker{overflow-x:auto}.marker-ring,.marker-flash-ring{display:none}.status-dot,.toast,.marker-flash .marker-dot{animation:none!important}.sheet{animation:none}.drawer{transition:none}}:root{--fav: #fbbf24}.fav-star{background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;padding:2px 4px;color:var(--muted);transition:transform .12s ease,color .12s ease}.fav-star:hover,.fav-star.on{color:var(--fav)}.fav-star:active{transform:scale(1.25)}.followbar{margin-top:6px}.follow-chip{--chip-color: var(--fav)}.chip-star{color:var(--fav);font-size:.85rem;line-height:1}.clutch-chip{--chip-color: #fb7185}.chip-flame{font-size:.85rem;line-height:1}.league-follow{display:inline-flex;align-items:center;gap:5px;background:none;border:0;padding:0;font:inherit;font-weight:700;font-size:.8rem;text-transform:uppercase;letter-spacing:.5px;cursor:pointer}.league-follow-star{color:var(--muted);font-size:.9rem}.league-follow.on .league-follow-star,.league-follow:hover .league-follow-star{color:var(--fav)}.game-standings{margin-top:6px;font-size:.72rem;color:var(--muted)}.team-pens{margin-left:3px;font-size:.7rem;color:var(--muted);font-weight:600;vertical-align:super}.grow.fav{box-shadow:inset 2px 0 0 var(--fav)}.grow-star{color:var(--fav);font-size:.8rem;line-height:1;margin-left:-4px}.marker-fav .marker-dot{border-color:var(--fav);box-shadow:0 0 0 1.5px #0000008c,0 0 12px 3px var(--fav)}.marker-star{position:absolute;top:-8px;right:8px;font-size:11px;line-height:1;color:var(--fav);text-shadow:0 0 3px rgba(0,0,0,.9);pointer-events:none}.team-form{display:inline-flex;gap:3px}.form-pip{width:14px;height:14px;border-radius:3px;font-size:9px;font-weight:800;line-height:14px;text-align:center;color:#05070f}.form-W{background:#22c55e}.form-D{background:#94a3b8}.form-L{background:#ef4444;color:#fff}.toast-fav{border-color:var(--fav);box-shadow:0 0 0 1px var(--fav),0 8px 24px #00000080}.toast-star{color:var(--fav);margin-right:4px}.install-btn{display:inline-flex;align-items:center;justify-content:center;background:#2f8bff29;border:1px solid #2f8bff;color:#cfe6ff;border-radius:999px;padding:4px 9px;font-size:.9rem;line-height:1;font-family:inherit;cursor:pointer;white-space:nowrap}.install-btn:hover{background:#2f8bff42}.install-steps{margin:14px 0 4px;padding-left:20px;display:grid;gap:12px;font-size:.92rem;line-height:1.5;color:var(--text)}.install-steps strong{color:#cfe6ff}.ios-share{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin:0 4px;color:#2f8bff}a.meta-tv{display:inline-flex;align-items:center;gap:4px;color:var(--muted);text-decoration:none;border-bottom:1px dotted rgba(154,166,189,.5);transition:color .15s}a.meta-tv:hover{color:#cfe6ff;border-bottom-color:#cfe6ff}.meta-tv-ext{font-size:.7rem;opacity:.7}.meta-tv-static{color:var(--muted)}.sheet-share{margin-left:auto;background:#ffffff0f;border:1px solid var(--border);color:var(--text);font-size:1rem;line-height:1;cursor:pointer;width:30px;height:30px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.sheet-share:hover{background:#ffffff1f;color:#cfe6ff}.sheet-share.done{color:#34d399;border-color:#34d399}.sheet-count+.sheet-share{margin-left:0}.standings-btn{display:inline-flex;align-items:center;gap:5px;background:#ffffff0f;border:1px solid var(--border);color:var(--muted);font-size:.72rem;font-weight:700;padding:3px 9px;border-radius:999px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.standings-btn:hover{background:#ffffff1f;color:var(--text)}.tplayer-serve{width:16px;font-size:.82rem;line-height:1;text-align:center;flex:none;filter:saturate(1.2)}.tplayer-serve:not(.on){visibility:hidden}.tplayer-point{font-variant-numeric:tabular-nums;font-size:.9rem;font-weight:800;color:var(--live);min-width:26px;text-align:center;padding:1px 6px;border-radius:6px;background:#ff4d4f24}.standings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#03050ca8;display:flex;align-items:flex-end;justify-content:center;padding:0}@media(min-width:640px){.standings-backdrop{align-items:center;padding:20px}}.standings-modal{background:var(--panel-solid);border:1px solid var(--border);border-radius:16px 16px 0 0;width:100%;max-width:560px;max-height:82vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 -8px 40px #00000080}@media(min-width:640px){.standings-modal{border-radius:16px}}.standings-head{display:flex;align-items:center;gap:10px;padding:16px 18px 12px;border-bottom:2px solid var(--border)}.standings-title{display:flex;flex-direction:column;min-width:0}.standings-league{font-weight:800;font-size:1.05rem}.standings-sub{font-size:.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.standings-close{margin-left:auto;background:none;border:none;color:var(--muted);font-size:1.5rem;line-height:1;cursor:pointer;padding:0 2px}.standings-body{overflow-y:auto;padding:6px 12px 20px}.standings-msg{color:var(--muted);text-align:center;padding:30px 10px}.standings-group-name{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 6px 6px}.standings-table{width:100%;border-collapse:collapse;font-size:.85rem}.standings-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:700;text-align:right;padding:6px}.standings-table th.col-rank{text-align:right;width:26px}.standings-table th.col-team{text-align:left}.standings-table td{padding:7px 6px;border-top:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums}.standings-table td.col-rank{color:var(--muted);font-weight:700}.standings-table td.col-team{text-align:left;display:flex;align-items:center;gap:8px}.standings-logo{width:20px;height:20px;object-fit:contain;flex:none}.standings-logo.placeholder{background:var(--border);border-radius:4px}.standings-team-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:42vw}.standings-table tr.followed td{background:#fbbf241a}.standings-table tr.followed .standings-team-name{font-weight:800;color:var(--fav, #fbbf24)}.game-eventname{margin:2px 0 6px;font-size:.72rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.field-title{margin:4px 0 8px;font-size:1.02rem;font-weight:800}.field-session{font-weight:600;font-size:.8rem;color:var(--muted)}.leaderboard{display:flex;flex-direction:column;gap:2px}.lb-row{display:flex;align-items:center;gap:8px;padding:4px 0;font-size:.9rem}.lb-row.winner .lb-name{font-weight:800}.lb-rank{flex:none;width:22px;text-align:right;font-variant-numeric:tabular-nums;color:var(--muted);font-size:.8rem}.lb-flag{flex:none;width:22px;height:16px;object-fit:contain;border-radius:2px}.lb-flag.placeholder{background:var(--border)}.lb-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lb-team{color:var(--muted);font-size:.78rem}.lb-stat{flex:none;font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem}.lb-more,.lb-empty{margin-top:4px;font-size:.75rem;color:var(--muted)}.grow-leaders{font-weight:500;font-size:.8rem;color:var(--muted)}.monogram{display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--mono-color, #5aa9ff) 22%,transparent);border:1px solid color-mix(in srgb,var(--mono-color, #5aa9ff) 45%,transparent);border-radius:50%;color:var(--mono-color, #5aa9ff);font-weight:800;font-size:.62rem;letter-spacing:.02em;line-height:1;flex:none;overflow:hidden}.lb-schedule{display:flex;flex-direction:column;gap:2px;margin-top:4px}.lb-session{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:5px 8px;border-radius:8px;background:#ffffff08}.lb-session-name{font-weight:600;font-size:.85rem}.lb-session-time{color:var(--muted);font-size:.8rem;font-variant-numeric:tabular-nums}.globe-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.globe-skeleton-sphere{width:min(62vmin,520px);height:min(62vmin,520px);border-radius:50%;background:radial-gradient(circle at 32% 30%,rgba(90,169,255,.28),transparent 55%),radial-gradient(circle at 65% 62%,rgba(34,197,94,.12),transparent 45%),radial-gradient(circle at 50% 45%,#0d1730,#070d1d 70%,#05070f);box-shadow:0 0 90px #5aa9ff29,inset -24px -18px 60px #0000008c;animation:skeleton-breathe 2.2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.globe-skeleton-sphere{animation:none}}@keyframes skeleton-breathe{0%,to{opacity:.55}50%{opacity:.9}}@media(min-width:900px){.filters{display:flex;flex-wrap:wrap;align-items:center}.filters .filterbar{overflow-x:visible;flex-wrap:wrap}.filters .leaguebar{flex-basis:100%}}.bracket-modal{max-width:min(96vw,1100px)}.bracket-body{overflow:hidden;display:flex;min-height:0}.bracket-scroll{display:flex;gap:14px;overflow-x:auto;padding:12px 14px 16px;flex:1;scrollbar-width:thin}.bk-round{flex:none;width:210px;display:flex;flex-direction:column}.bk-round-name{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 8px;text-align:center}.bk-round-matches{display:flex;flex-direction:column;justify-content:space-around;gap:8px;flex:1}.bk-match{display:block;width:100%;text-align:left;border:1px solid var(--border);border-radius:10px;background:#ffffff08;padding:6px 8px;font-family:inherit;color:inherit}.bk-match.state-live{border-color:#ff4d4f8c}.bk-link{cursor:pointer}.bk-link:hover{background:#ffffff12}.bk-status{font-size:.68rem;color:var(--muted);margin-bottom:4px;display:flex;align-items:center;gap:5px}.bk-status.state-live{color:var(--live);font-weight:700}.bk-side{display:flex;align-items:center;gap:6px;padding:2px 0;font-size:.85rem}.bk-side.winner{font-weight:800}.bk-side.loser{opacity:.55}.bk-side.tbd{color:var(--muted)}.bk-flag{width:18px;height:18px;object-fit:contain;flex:none;font-size:.5rem}.bk-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bk-score{font-variant-numeric:tabular-nums;font-weight:700}.bk-pens{font-size:.72rem;color:var(--muted);margin-left:3px}
