*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e0f18;--surface:#14151f;--surface2:#1c1d2a;--surface3:#22233200;--border:#252636;--border2:#1e1f2e;--text:#e8e9f0;--text-dim:#7c7f9a;--text-muted:#3e4058;--accent:#4f8ef7;--accent-dim:#4f8ef71a;--accent-glow:#4f8ef72e;--ok:#34d399;--stale:#fbbf24;--error:#f87171;--pending:#3e4058;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,Segoe UI,system-ui,sans-serif;font-size:14px;line-height:1.5}html,body{height:100%}body{background:var(--bg);overflow:hidden}#root{height:100%}button{cursor:pointer;font:inherit;color:inherit;background:0 0;border:none}:root{--side-pad:max(20px, 5vw);--nav-bg:#101125}.app{flex-direction:column;width:100%;height:100%;display:flex;overflow:hidden}.header{padding:16px var(--side-pad) 14px;border-bottom:1px solid var(--border);background:var(--nav-bg);align-items:center;display:flex}.header h1{letter-spacing:-.4px;color:var(--text);flex:1;font-size:19px;font-weight:700}.header h1 span{color:var(--accent)}.day-picker{scrollbar-width:none;padding:8px var(--side-pad);background:var(--surface);border-bottom:1px solid var(--border);gap:2px;display:flex;overflow-x:auto}.day-picker::-webkit-scrollbar{display:none}.day-btn{color:var(--text-dim);white-space:nowrap;background:0 0;border-radius:6px;flex-shrink:0;padding:7px 16px;font-size:13px;font-weight:500;transition:color .12s,background .12s}.day-btn:hover{color:var(--text);background:var(--surface2)}.day-btn.active{color:#fff;background:var(--accent);font-weight:600}.day-btn--empty{opacity:.38}.day-btn--empty:hover{opacity:.65}.sport-tabs{scrollbar-width:none;background:var(--nav-bg);border-bottom:2px solid var(--border);padding:0 var(--side-pad);display:flex;overflow-x:auto}.sport-tabs::-webkit-scrollbar{display:none}.sport-tab{color:var(--text-dim);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;align-items:center;gap:7px;margin-bottom:-2px;padding:11px 18px;font-size:13px;font-weight:500;transition:color .12s,border-color .12s;display:flex}.sport-tab:hover{color:var(--text)}.sport-tab.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.sport-tab--live{color:#22c55e}.sport-tab--live.active{color:#22c55e;border-bottom-color:#22c55e}.sport-tab--live:hover{color:#4ade80}.tab-live-dot{background:#22c55e;border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:1.8s ease-in-out infinite live-pulse}@keyframes live-pulse{0%{box-shadow:0 0 #22c55e99}70%{box-shadow:0 0 0 5px #22c55e00}to{box-shadow:0 0 #22c55e00}}.content-row{flex:1;min-height:0;display:flex;overflow:hidden}.main-col{--side-pad:16px;flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.content-area{flex:1;min-height:0;display:flex;overflow:hidden}.sidebar{border-right:1px solid var(--border);background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--border) transparent;flex-direction:column;flex-shrink:0;width:210px;display:flex;overflow-y:auto}.sidebar-search{background:var(--surface);border-bottom:1px solid var(--border2);z-index:1;padding:10px 10px 8px;position:sticky;top:0}.sidebar-search input{box-sizing:border-box;background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:6px;outline:none;padding:6px 10px;font-family:inherit;font-size:12px;transition:border-color .12s}.sidebar-search input:focus{border-color:var(--accent)}.sidebar-search input::placeholder{color:var(--text-muted)}.sidebar-search input::-webkit-search-cancel-button{display:none}.sidebar-list{margin:0;padding:6px 0;list-style:none}.sidebar-comp-btn{text-align:left;width:100%;color:var(--text-dim);align-items:center;gap:6px;padding:7px 12px;font-family:inherit;font-size:12.5px;transition:background .1s,color .1s;display:flex}.sidebar-comp-btn:hover{background:var(--surface2);color:var(--text)}.sidebar-comp-btn.active{color:var(--accent);background:var(--accent-dim);font-weight:500}.sidebar-comp-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sidebar-count{background:var(--surface2);min-width:18px;height:18px;color:var(--text-dim);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;padding:0 5px;font-size:11px;font-weight:600;display:flex}.sidebar-count--live{color:var(--ok);background:#34d39926}.sidebar-empty{color:var(--text-muted);text-align:center;padding:16px 12px;font-size:12px}.sidebar-providers{border-top:1px solid var(--border2);margin-top:auto;padding:10px 10px 8px}.sidebar-provider-item{align-items:center;gap:6px;padding:3px 2px;display:flex}.sidebar-provider-name{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:10.5px;overflow:hidden}.fixtures-col{flex:1;min-width:0;padding-bottom:24px;overflow-y:auto}.comp-filter-bar{padding:10px var(--side-pad);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;align-items:center;gap:8px;display:flex;position:sticky;top:0}.comp-filter-logo{object-fit:contain;flex-shrink:0;width:18px;height:18px}.comp-filter-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;font-weight:600;overflow:hidden}.comp-filter-clear{color:var(--text-muted);border-radius:4px;flex-shrink:0;padding:4px 8px;font-size:13px;transition:color .12s,background .12s}.comp-filter-clear:hover{color:var(--text);background:var(--surface2)}.standings-panel{border-left:1px solid var(--border);background:var(--surface);scrollbar-width:thin;scrollbar-color:var(--border) transparent;--side-pad:8px;flex:0 0 42%;min-width:320px;overflow-y:auto}.standings-panel-header{letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);border-bottom:1px solid var(--border);background:var(--surface);z-index:1;padding:12px 12px 10px;font-size:11px;font-weight:700;position:sticky;top:0}.standings-panel-loading{color:var(--text-muted);padding:16px 12px;font-size:12px}.state-msg{padding:60px var(--side-pad);text-align:center;color:var(--text-dim);font-size:14px}.state-msg.error{color:var(--error)}.no-fixtures{padding:60px var(--side-pad);text-align:center;color:var(--text-muted);font-size:14px}.upcoming-section{margin-top:8px}.upcoming-heading{padding:20px var(--side-pad) 6px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-top:1px solid var(--border);font-size:11px;font-weight:600}.fixture-list{padding-top:8px}.comp-group{margin-bottom:8px}.comp-heading{padding:16px var(--side-pad) 8px;letter-spacing:.6px;text-transform:uppercase;color:var(--text-dim);text-align:left;align-items:center;gap:10px;width:100%;font-size:11px;font-weight:600;transition:color .12s;display:flex}.comp-heading:after{content:"";background:var(--border);flex:1;height:1px}button.comp-heading:hover{color:var(--accent)}button.comp-heading:hover:after{background:var(--accent);opacity:.35}.comp-logo{object-fit:contain;flex-shrink:0;width:18px;height:18px}.fixture-card{margin:0 var(--side-pad) 4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;grid-template-columns:46px 1fr auto 1fr auto;align-items:center;column-gap:10px;padding:13px 14px;transition:border-color .15s,box-shadow .15s;display:grid}.fixture-card:hover{border-color:var(--text-muted);box-shadow:0 3px 10px #00000059}.fixture-card--live{box-shadow:inset 3px 0 0 var(--error);border-color:#f8717159}.fixture-card--finished{opacity:.72}.fixture-card-time{color:var(--accent);font-variant-numeric:tabular-nums;font-size:14px;font-weight:700}.fixture-card-home,.fixture-card-away{justify-content:center;align-items:center;gap:8px;min-width:0;display:flex;overflow:hidden}.fixture-card-badge{color:#ffffffed;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:9px;font-weight:800;display:flex}.fixture-card-team-name{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.fixture-card-mid{flex-direction:column;flex-shrink:0;align-items:center;gap:1px;display:flex}.fixture-card-vs{letter-spacing:1px;color:var(--text-muted);font-size:10px;font-weight:800}.fixture-card-venue{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:150px;font-size:10px;overflow:hidden}.fixture-card-event{color:var(--text);text-align:center;text-overflow:ellipsis;white-space:nowrap;grid-column:2/5;font-size:13px;font-weight:600;overflow:hidden}.fixture-badge{white-space:nowrap;border-radius:4px;flex-shrink:0;padding:3px 7px;font-size:10px;font-weight:700}.badge-live{color:#fff;background:var(--error);animation:1.6s ease-in-out infinite pulse-live}@keyframes pulse-live{0%,to{opacity:1}50%{opacity:.65}}.badge-ft{color:var(--text-muted);background:var(--surface2);letter-spacing:.6px;text-transform:uppercase}.badge-del{color:#7c5c00;background:#fff3cd;border:1px solid #f0c040}.badge-ppd{color:#111;background:var(--stale)}.fixture-score{color:var(--text);letter-spacing:1px;white-space:nowrap;font-size:15px;font-weight:800}.fixture-card-status{justify-content:flex-end;align-items:center;min-width:68px;display:flex}.fixture-live-indicator{align-items:center;gap:5px;display:flex}.live-dot{background:var(--error);border-radius:50%;flex-shrink:0;width:7px;height:7px;animation:1.5s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}.fixture-clock{color:var(--error);white-space:nowrap;font-size:12px;font-weight:700}.last-updated{color:var(--text-dim);margin-left:auto;font-size:13px;font-weight:500}.badge-cxl{color:var(--error);background:#f871711f;border:1px solid #f8717140}.back-btn{border:1px solid var(--border);background:var(--surface2);color:var(--text-dim);border-radius:6px;flex-shrink:0;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:500;transition:color .12s,border-color .12s;display:flex}.back-btn:hover{color:var(--text);border-color:var(--text-dim)}.standings-loading{padding:24px var(--side-pad);color:var(--text-muted);font-size:13px}.standings{padding-top:12px}.standings-group{margin-bottom:16px}.standings-group-name{letter-spacing:.8px;text-transform:uppercase;color:var(--text-muted);padding:0 var(--side-pad) 6px;font-size:10px;font-weight:700}.standings-card{background:var(--surface);border:1px solid var(--border);margin:0 var(--side-pad);border-radius:10px;overflow:hidden}.standings-table-wrap{scrollbar-width:thin;scrollbar-color:var(--border) transparent;overflow-x:auto}.standings-table-wrap::-webkit-scrollbar{height:4px}.standings-table-wrap::-webkit-scrollbar-track{background:0 0}.standings-table-wrap::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.standings-table{border-collapse:collapse;width:100%;font-size:13px}.standings-table thead tr{background:var(--surface2);border-bottom:1px solid var(--border)}.standings-table th{letter-spacing:.7px;text-transform:uppercase;color:var(--text-muted);text-align:right;white-space:nowrap;padding:9px 12px;font-size:10px;font-weight:700}.standings-table th:first-child{text-align:center;padding-left:12px}.standings-table th.col-name{text-align:left;min-width:130px}.standings-table th.col-extra{text-align:left}.standings-table td{color:var(--text-dim);text-align:right;font-variant-numeric:tabular-nums;border-bottom:1px solid var(--border2);white-space:nowrap;padding:9px 12px}.standings-table tbody tr:last-child td{border-bottom:none}.standings-table td:first-child{text-align:center;color:var(--text-muted);width:32px;padding-left:12px;font-size:11px;font-weight:600}.standings-table td.col-name{text-align:left;color:var(--text);text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-weight:600;overflow:hidden}.standing-team-badge{object-fit:contain;vertical-align:middle;flex-shrink:0;width:16px;height:16px;margin-right:6px}.standings-table td.col-extra{text-align:left;color:var(--text-dim);font-size:12px}.standings-table td.col-pts{font-weight:700}.standings-table td.diff-pos{color:var(--ok)}.standings-table td.diff-neg{color:var(--error)}.standings-table tbody tr:nth-child(2n) td{background:#ffffff05}.standings-table tbody tr:hover td{background:var(--surface2)}.pts-chip{background:var(--accent-dim);min-width:26px;color:var(--accent);font-variant-numeric:tabular-nums;border-radius:5px;justify-content:center;align-items:center;padding:2px 7px;font-size:12px;font-weight:700;display:inline-flex}.team-badge{color:#ffffffed;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:flex}.team-badge--sm{letter-spacing:.3px;width:26px;height:26px;font-size:9px}.team-badge--lg{letter-spacing:.5px;width:56px;height:56px;font-size:16px}.team-badge--logo{background:0 0;overflow:hidden}.team-badge-img{object-fit:contain;width:100%;height:100%;display:block}.match-detail-header{padding:12px var(--side-pad);border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:14px;display:flex}.match-detail-comp{color:var(--text);font-size:14px;font-weight:600}.match-detail-card{margin:16px var(--side-pad);background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:24px 20px 18px}.match-detail-teams{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.match-detail-team{flex-direction:column;align-items:center;gap:10px;display:flex}.match-detail-team-name{color:var(--text);text-align:center;font-size:15px;font-weight:700}.match-detail-centre{flex-direction:column;align-items:center;gap:6px;display:flex}.match-detail-time{color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:22px;font-weight:700}.match-detail-score{color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-1px;font-size:32px;font-weight:800}.match-detail-live{align-items:center;gap:6px;display:flex}.match-detail-clock{color:var(--error);font-size:13px;font-weight:600}.match-detail-venue{color:var(--text-muted);text-align:center;margin-top:14px;font-size:12px}.match-detail-event{flex-direction:column;align-items:center;gap:8px;display:flex}.match-detail-event-name{color:var(--text);text-align:center;font-size:18px;font-weight:700}.match-detail-broadcasts{padding:0 var(--side-pad) 12px;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.match-detail-broadcasts-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;flex-shrink:0;font-size:12px;font-weight:600}.broadcast-chip{color:var(--text);background:var(--surface);border:1px solid var(--border);letter-spacing:.3px;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700}.detail-halftime{color:var(--text-muted);margin-top:4px;font-size:11px}.detail-goals{gap:8px;margin-top:12px;padding:0 2px;display:flex}.detail-goals-col{flex-direction:column;flex:1;gap:4px;display:flex}.detail-goals-col--away{text-align:right;align-items:flex-end}.goal-line{align-items:baseline;gap:5px;font-size:12px;line-height:1.5;display:flex}.goal-line--away{flex-direction:row-reverse}.goal-time{color:var(--text-muted);flex-shrink:0;font-size:11px}.goal-scorer{color:var(--text);font-weight:500}.goal-note{color:var(--text-dim);font-weight:400}.goal-assist{color:var(--text-muted);font-size:11px}.detail-breakdown{margin-top:12px;overflow-x:auto}.detail-period-table{border-collapse:collapse;width:100%;font-size:12px}.detail-period-table th,.detail-period-table td{text-align:center;border-bottom:1px solid var(--border);color:var(--text-dim);min-width:28px;padding:5px 6px}.detail-period-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.detail-period-table--mlb th,.detail-period-table--mlb td{min-width:22px;padding:5px 4px}.detail-team-label{white-space:nowrap;font-weight:500;text-align:left!important;color:var(--text)!important;padding-right:10px!important}.detail-total{font-weight:700;color:var(--text)!important}.detail-period-goals{flex-direction:column;gap:10px;margin-top:10px;display:flex}.detail-period-group{flex-direction:column;gap:3px;display:flex}.detail-period-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:2px;font-size:11px;font-weight:600}.standings-table tbody tr.row-highlight td{background:var(--accent-dim);color:var(--text)}.standings-table tbody tr.row-highlight td.col-name{color:var(--accent)}.standings-table tbody tr.row-highlight td.col-pts .pts-chip{background:var(--accent);color:#fff}.match-play-card{padding:0;overflow:hidden}.match-row{border-bottom:1px solid var(--border);grid-template-columns:1fr auto 1fr;align-items:center;gap:6px;padding:7px 12px;font-size:12px;display:grid}.match-row:last-child{border-bottom:none}.match-player{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.match-player--intl{text-align:right}.match-player--usa{text-align:left}.match-player--winner{color:var(--text);font-weight:600}.match-score{min-width:56px;color:var(--text);text-align:center;flex-direction:column;flex-shrink:0;align-items:center;font-size:12px;font-weight:600;display:flex}.match-score--final{color:var(--text-dim)}.match-status-label{color:var(--text-muted);margin-top:1px;font-size:10px;font-weight:400}.fixture-card--clickable{cursor:pointer}.provider-footer{background:var(--surface);border-top:1px solid var(--border);padding:12px var(--side-pad);flex-wrap:wrap;gap:6px 20px;display:flex}.provider-item{align-items:center;gap:6px;font-size:11.5px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dot-ok{background:var(--ok);box-shadow:0 0 5px var(--ok)}.dot-stale{background:var(--stale)}.dot-error{background:var(--error)}.dot-pending{background:var(--pending)}.provider-name{color:var(--text-dim);font-weight:500}.provider-time{color:var(--text-muted);font-size:11px}@media (width<=1050px){.content-area{flex-direction:column;overflow-y:auto}.fixtures-col{flex:none;overflow-y:visible}.standings-panel{border-left:none;border-top:1px solid var(--border);flex:none;width:100%;min-width:0;max-height:none;overflow-y:visible}}@media (width<=700px){:root{--side-pad:14px}.sidebar{display:none}.sport-tab{padding:10px 12px;font-size:12px}.fixture-card{grid-template-columns:36px 1fr auto 1fr auto;column-gap:6px;padding:8px 10px}.fixture-card-time{font-size:12px}.fixture-card-badge{width:22px;height:22px;font-size:8px}.fixture-card-team-name{font-size:12px}.fixture-card-venue{max-width:90px}}
