:root{--bg:#eef2f6;--chrome:#0f1720;--chrome-2:#151f2b;--panel:#fff;--panel-2:#f4f7fa;--text:#121923;--muted:#667386;--border:#d8e0ea;--accent:#0a7f5a;--accent-strong:#00a86b;--accent-soft:#dff4ec;--live:#e11d48;--warning:#f59e0b;--shadow:0 10px 28px #10182814;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}a{color:inherit;text-decoration:none}#app{min-height:100vh}.app-shell{grid-template-columns:248px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--chrome);color:#e7edf5;border-right:1px solid #172334;padding:18px}.brand{align-items:center;gap:10px;height:44px;font-weight:750;display:flex}.brand svg{color:var(--accent-strong)}.nav-list{gap:4px;margin-top:22px;display:grid}.nav-list a{color:#98a6b8;border-radius:8px;padding:10px 12px}.nav-list a.router-link-active,.nav-list a:hover{color:#fff;background:#00a86b24}.sidebar-section{border-top:1px solid #d8e0ea2e;margin-top:24px;padding-top:18px}.sidebar-section.compact{margin-top:18px}.section-title,.date-control,.search-box{align-items:center;gap:8px;display:flex}.section-title{color:#8795a8;text-transform:uppercase;font-size:13px;font-weight:700}.league-nav{gap:4px;margin-top:12px;display:grid}.data-status{border-radius:8px;gap:8px;margin-top:12px;display:grid}.data-status:hover{background:#ffffff0f}.data-status div{background:#ffffff14;border-radius:8px;justify-content:space-between;align-items:center;padding:9px 10px;display:flex}.data-status span{color:#a7b4c5;font-size:13px}.data-status strong{color:#fff}.data-status-page{gap:18px;margin:24px;display:grid}.status-badge{background:var(--panel-2);color:var(--muted);text-transform:uppercase;border-radius:999px;padding:7px 11px;font-size:13px;font-weight:900}.status-badge.ready,.source-row b.ready,.source-row b.completed{background:var(--accent-soft);color:var(--accent)}.status-badge.needs-import,.source-row b.needs-import,.source-row b.failed,.source-row b.completed-with-errors{color:#a16207;background:#fff3d8}.source-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) 120px 120px;align-items:center;gap:12px;padding:11px 0;display:grid}.source-row:last-child{border-bottom:0}.source-row div{gap:3px;display:grid}.source-row span,.source-row em{color:var(--muted);font-size:13px;font-style:normal}.source-row b{text-align:center;text-transform:uppercase;border-radius:999px;padding:5px 8px;font-size:12px}.league-nav a{border-radius:8px;gap:2px;padding:9px 10px;display:grid}.league-nav a:hover,.league-nav a.router-link-active{background:#ffffff14}.league-nav span{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:750;overflow:hidden}.league-nav small{color:#8795a8;font-size:12px}.main-panel{min-width:0}.topbar{z-index:10;background:var(--chrome-2);color:#e7edf5;border-bottom:1px solid #182435;justify-content:space-between;align-items:center;gap:16px;padding:12px 24px;display:flex;position:sticky;top:0}.date-control{background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;padding:9px 12px;font-weight:650}.search-box{background:#ffffff14;border:1px solid #ffffff1f;border-radius:8px;width:min(440px,48vw);padding:0 12px;position:relative}.search-box input{color:#fff;background:0 0;border:0;outline:0;width:100%;padding:10px 0}.search-box input::placeholder,.search-box svg,.date-control svg{color:#9fb0c4}.search-results{z-index:30;border:1px solid var(--border);background:var(--panel);width:min(520px,80vw);max-height:420px;color:var(--text);border-radius:8px;padding:6px;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto;box-shadow:0 18px 38px #060c143d}.search-results a{border-radius:8px;grid-template-columns:68px minmax(0,1fr);gap:2px 10px;padding:9px 10px;display:grid}.search-results a:hover{background:var(--panel-2)}.search-results span{background:var(--accent-soft);color:var(--accent);text-align:center;border-radius:6px;grid-row:span 2;align-self:center;padding:4px 6px;font-size:12px;font-weight:900}.search-results strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-results small,.search-empty{color:var(--muted)}.search-empty{padding:12px}.page-header,.scoreboard-header,.status-tabs,.matchday-strip,.league-hero,.match-hero,.team-hero,.player-hero,.content-grid,.detail-layout,.league-layout,.league-index,.team-index,.player-index,.data-section{margin:24px}.page-header{justify-content:space-between;align-items:end;gap:20px;display:flex}.scoreboard-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:18px;padding-bottom:18px;display:flex}.scoreboard-title{min-width:0}.eyebrow{color:var(--accent);text-transform:uppercase;margin:0 0 6px;font-size:13px;font-weight:800}h1,h2,p{margin:0}h1{font-size:34px;line-height:1.12}h2{margin-bottom:16px;font-size:18px}.segmented-control{border:1px solid var(--border);background:var(--panel);border-radius:8px;display:flex;overflow:hidden}.date-strip,.status-tabs{align-items:center;display:flex}.date-strip{border:1px solid var(--border);background:var(--panel);border-radius:8px;gap:10px;padding:5px}.date-strip button,.status-tabs button{color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.date-strip button{border-radius:6px;width:32px;height:32px}.date-strip button:hover,.status-tabs button:hover{background:var(--panel-2);color:var(--text)}.date-strip span{text-align:center;min-width:78px;font-weight:750}.status-tabs{gap:8px;padding-bottom:2px;overflow-x:auto}.status-tabs button{border:1px solid var(--border);background:var(--panel);border-radius:8px;flex:none;gap:7px;min-height:36px;padding:8px 12px;font-weight:750}.status-tabs button.active{border-color:var(--accent);background:var(--accent);color:#fff}.status-tabs span{text-align:center;background:#00000014;border-radius:999px;min-width:22px;padding:2px 6px;font-size:12px}.status-tabs .active span{background:#ffffff38}.status-tabs .filter-button{width:38px;padding:0}.matchday-strip{gap:8px;display:flex;overflow-x:auto}.matchday-strip button{border:1px solid var(--border);background:var(--panel);min-width:74px;color:var(--text);border-radius:8px;justify-items:center;gap:3px;padding:8px 10px;display:grid}.matchday-strip button.active,.matchday-strip button:hover{border-color:var(--accent);background:var(--accent-soft)}.matchday-strip span{color:var(--muted);font-size:12px;font-weight:850}.matchday-strip strong{font-size:16px}.segmented-control button{border:0;border-right:1px solid var(--border);color:var(--muted);background:0 0;padding:9px 14px}.segmented-control button:last-child{border-right:0}.segmented-control .active{background:var(--accent);color:#fff}.content-grid{grid-template-columns:minmax(0,1fr) 280px;gap:18px;display:grid}.match-list,.detail-layout{gap:14px;display:grid}.competition-block,.insight-panel,.data-section,.state-box{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:8px}.competition-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;gap:12px;padding:11px 14px;display:flex}.state-box{color:var(--muted);padding:18px}.state-box.error{color:var(--live)}.competition-header div{align-items:baseline;gap:8px;display:flex}.competition-header span,.competition-header small,.muted{color:var(--muted)}.match-row{border-bottom:1px solid var(--border);grid-template-columns:78px minmax(0,1fr) 72px minmax(0,1fr);align-items:center;gap:12px;padding:10px 14px;display:grid}.match-row:last-child{border-bottom:0}.match-row:hover{background:#f7fbff}.match-status{color:var(--live);font-size:13px;font-weight:800}.match-status.finished{color:var(--muted)}.match-status.scheduled{color:var(--accent)}.team-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.score{text-align:center;background:#edf2f7;border-radius:6px;padding:5px 8px}.insight-panel,.data-section{padding:16px}.insight-panel dl,.metric-grid{gap:10px;margin:0;display:grid}.insight-panel dl div,.metric-grid div,.stat-row{background:var(--panel-2);border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}dt,.metric-grid span,.stat-row span{color:var(--muted)}dd{margin:0;font-weight:800}.detail-layout{grid-template-columns:minmax(0,1fr) minmax(280px,420px)}.match-hero{color:#fff;box-shadow:var(--shadow);background:linear-gradient(#111c29 0%,#0f1720 100%);border:1px solid #162235;border-radius:8px;padding:18px}.match-competition{color:#8fa2b9;text-transform:uppercase;margin-bottom:16px;font-size:13px;font-weight:800;display:inline-flex}.match-competition:hover{color:#fff}.match-scoreboard{grid-template-columns:minmax(0,1fr) 180px minmax(0,1fr);align-items:center;gap:18px;display:grid}.match-team-card{background:#ffffff0f;border-radius:8px;gap:5px;padding:16px;display:grid}.match-team-card:hover{background:#ffffff1a}.match-team-card.right{text-align:right}.match-team-card span{color:#9fb0c4;text-transform:uppercase;font-size:13px;font-weight:800}.match-team-card strong{text-overflow:ellipsis;white-space:nowrap;font-size:22px;overflow:hidden}.match-score-center{justify-items:center;gap:8px;display:grid}.match-status-pill{color:#c8d3df;text-transform:uppercase;background:#ffffff1a;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:900}.match-status-pill.live{color:#ff6b8a;background:#e11d482e}.match-status-pill.finished{color:#51d39c;background:#00a86b29}.match-scoreline{align-items:baseline;gap:12px;display:flex}.match-scoreline strong{font-size:46px;line-height:1}.match-scoreline span,.match-score-center small{color:#9fb0c4}.league-hero{border-bottom:1px solid var(--border);padding-bottom:18px}.team-hero,.player-hero{border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);border-radius:8px;justify-content:space-between;align-items:end;gap:18px;padding:18px;display:flex}.profile-team-link{background:var(--accent);color:#fff;border-radius:8px;padding:10px 12px;font-weight:800}.team-record{grid-template-columns:repeat(4,62px);gap:8px;display:grid}.team-record div{background:var(--panel-2);border-radius:8px;justify-items:center;gap:3px;padding:10px;display:grid}.team-record span{color:var(--muted);font-size:12px;font-weight:900}.team-record strong{font-size:20px}.league-layout{grid-template-columns:minmax(420px,.85fr) minmax(0,1.15fr);gap:18px;display:grid}.league-side-stack{align-content:start;gap:18px;display:grid}.league-index{gap:18px;display:grid}.team-index,.player-index{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.player-coverage{flex-wrap:wrap;grid-column:1/-1;gap:8px;display:flex}.player-coverage.compact{margin-bottom:12px}.player-coverage span,.source-pill{border-radius:999px;align-items:center;font-size:12px;font-weight:900;display:inline-flex}.player-coverage span{border:1px solid var(--border);background:var(--panel);color:var(--muted);gap:5px;padding:7px 10px}.player-coverage strong{color:var(--text)}.league-card-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px;display:grid}.league-card,.team-card,.player-card{border:1px solid var(--border);background:#f8fafc;border-radius:8px;gap:8px;min-height:142px;padding:14px;display:grid}.card-topline{justify-content:space-between;align-items:center;gap:8px;display:flex}.card-topline b{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.source-pill{color:var(--muted);text-transform:uppercase;background:#edf2f7;flex:none;padding:4px 7px;font-style:normal}.source-pill.thesportsdb{background:var(--accent-soft);color:var(--accent)}.source-pill.mvp-squad{color:#a16207;background:#fff3d8}.player-profile-strip{grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:10px;margin-bottom:18px;display:grid}.player-profile-strip div,.player-profile-strip a{background:var(--panel-2);border-radius:8px;gap:4px;padding:10px 12px;display:grid}.player-profile-strip span{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:900}.player-profile-strip a{background:var(--accent);color:#fff;align-content:center;font-weight:850}.subsection-title{color:var(--muted);text-transform:uppercase;margin:14px 0 8px;font-size:12px}.roster-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(92px,140px) auto;align-items:center;gap:10px;padding:9px 0;display:grid}.roster-row:last-child{border-bottom:0}.roster-row a{text-overflow:ellipsis;white-space:nowrap;font-weight:800;overflow:hidden}.roster-row span{color:var(--muted);font-size:13px;font-weight:750}.league-card:hover,.team-card:hover,.player-card:hover,.league-list-row:hover{background:#f1fbf7;border-color:#0a7f5a6b}.league-card svg{color:var(--accent)}.league-card span,.league-card small,.team-card span,.team-card small,.player-card span,.player-card small,.league-list-row span,.league-list-row small{color:var(--muted);font-size:13px;font-weight:750}.league-card strong,.team-card strong,.player-card strong{align-self:end;font-size:20px}.directory-tools{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.inline-search{border:1px solid var(--border);background:var(--panel);border-radius:8px;width:min(320px,100%);padding:0 12px}.inline-search input{background:0 0;border:0;outline:0;width:100%;padding:10px 0}.inline-select{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:0 12px}.league-list-row{border:1px solid #0000;border-bottom-color:var(--border);border-radius:8px;grid-template-columns:130px minmax(0,1fr) 110px;align-items:center;gap:14px;padding:11px 12px;display:grid}.league-coverage-row{border:1px solid #0000;border-bottom-color:var(--border);border-radius:8px;grid-template-columns:120px minmax(0,1fr) 110px 150px 90px 100px;align-items:center;gap:12px;padding:11px 12px;display:grid}.league-coverage-row:hover{background:#f1fbf7;border-color:#0a7f5a6b}.league-coverage-row span,.league-coverage-row small,.league-coverage-row em,.league-coverage-row b{color:var(--muted);font-size:13px;font-style:normal;font-weight:750}.league-coverage-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.league-coverage-row b{background:var(--panel-2);text-align:center;border-radius:999px;padding:5px 8px}.timeline{gap:10px;margin:0;padding:0;list-style:none;display:grid}.timeline li{gap:12px;display:flex}.empty-note{background:var(--panel-2);color:var(--muted);border-radius:8px;padding:14px}.timeline span,.form-strip span{background:var(--accent-soft);width:34px;height:28px;color:var(--accent);border-radius:6px;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:inline-flex}.stat-compare{border-bottom:1px solid var(--border);gap:8px;padding:10px 0;display:grid}.stat-compare:last-child{border-bottom:0}.stat-compare-values{text-align:center;grid-template-columns:54px minmax(0,1fr) 54px;align-items:center;gap:10px;display:grid}.stat-compare-values span{color:var(--muted);font-size:13px;font-weight:750}.stat-bars{background:#e6edf4;border-radius:999px;height:6px;display:flex;overflow:hidden}.stat-bars i{min-width:2px;display:block}.home-bar{background:var(--accent)}.away-bar{background:#94a3b8}.standings-table{border-collapse:collapse;width:100%}.standings-table th,.standings-table td{border-bottom:1px solid var(--border);text-align:right;white-space:nowrap;padding:9px 8px}.standings-table th:nth-child(2),.standings-table td:nth-child(2){text-align:left}.standings-table th{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.fixture-row{border-bottom:1px solid var(--border);grid-template-columns:72px minmax(0,1fr) 58px minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;display:grid}.fixture-row:last-child{border-bottom:0}.fixture-row:hover{background:var(--panel-2)}.fixture-row span{color:var(--muted);font-size:13px;font-weight:700}.fixture-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fixture-row b{background:var(--panel-2);text-align:center;border-radius:6px;padding:5px 7px}.team-match-row{border-bottom:1px solid var(--border);grid-template-columns:34px 72px minmax(0,1fr) 58px minmax(0,1fr);align-items:center;gap:10px;padding:10px 0;display:grid}.team-match-row:last-child{border-bottom:0}.team-match-row b{color:#fff;text-align:center;border-radius:6px;padding:4px 0;font-size:12px}.team-match-row b.w{background:var(--accent)}.team-match-row b.d{background:#94a3b8}.team-match-row b.l{background:var(--live)}.team-match-row span{color:var(--muted);font-size:13px;font-weight:700}.team-match-row strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.team-match-row em{background:var(--panel-2);text-align:center;border-radius:6px;padding:5px 7px;font-style:normal;font-weight:800}.form-strip{gap:8px;display:flex}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{z-index:20;border-right:0;border-bottom:1px solid var(--border);padding:12px;position:sticky;top:0}.nav-list{grid-template-columns:repeat(4,1fr);margin-top:12px}.nav-list a{text-align:center;padding:9px 6px}.sidebar-section{display:none}.topbar,.page-header,.scoreboard-header,.team-hero,.player-hero{flex-direction:column;align-items:stretch}.search-box{width:100%}.content-grid,.detail-layout,.league-layout{grid-template-columns:1fr}.league-list-row{grid-template-columns:1fr;gap:4px}.match-scoreboard{grid-template-columns:1fr}.match-team-card.right{text-align:left}.match-row{grid-template-columns:54px minmax(0,1fr) 54px}.match-row .team-name:last-child{grid-column:2/4}.league-hero{margin-top:18px}.fixture-row{grid-template-columns:54px minmax(0,1fr) 52px}.fixture-row strong:last-child{grid-column:2/4}.team-record{grid-template-columns:repeat(4,1fr)}.team-match-row{grid-template-columns:32px 54px minmax(0,1fr) 52px}.team-match-row strong:last-child{grid-column:3/5}}
