/* NFLBite Matchora-inspired sports dashboard — presentation only; app.js hooks preserved */
:root{--bg:#090b0e;--panel:#14171c;--panel2:#1b2027;--line:#292f39;--text:#f1f4f8;--muted:#8c96a5;--red:#e50914;--green:#20d884;--gold:#f2a900;--blue:#75a9ed}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{min-height:100%;background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font:13px/1.45 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.app-topbar{height:44px;position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:28px;padding:0 22px;background:rgba(9,11,14,.97);border-bottom:1px solid #242932;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:7px;white-space:nowrap;font-weight:900}
.brandmark{display:grid;place-items:center;width:22px;height:22px;background:var(--red);border-radius:6px;color:#fff;font-weight:950;font-size:13px}
.brand-name{font-family:"Barlow Condensed",Impact,sans-serif;font-size:22px;letter-spacing:-.3px}
.main-nav{display:flex;align-items:center;gap:19px;height:100%;min-width:0;overflow:auto;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{height:100%;display:flex;align-items:center;gap:6px;color:#929baa;border-bottom:2px solid transparent;font-size:12px;font-weight:700;white-space:nowrap}
.main-nav a:hover,.main-nav a.active{color:#f2f4f8}
.main-nav a.active{border-bottom-color:#f2f4f8}
.main-nav a.premium-link{color:var(--gold)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.feed-state{display:flex;align-items:center;gap:6px;color:#8993a2;font-size:10px;white-space:nowrap}
.feed-state i,.schedule-status i,.ticker-item i,.live-pulse,.live-badge i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--green);flex:none}
.mobile-menu{display:none;border:1px solid var(--line);background:var(--panel);color:var(--text);border-radius:7px;padding:6px 9px}
.ticker-wrap{height:37px;overflow:hidden;border-bottom:1px solid #252a32;background:#101318}
.ticker-track{display:flex;width:max-content;min-width:100%;height:100%;animation:ticker-scroll 80s linear infinite}
.ticker-wrap:hover .ticker-track{animation-play-state:paused}
.ticker-item{display:flex;align-items:center;gap:7px;padding:0 14px;border-right:1px solid #2a3039;white-space:nowrap;font-size:10px}
.ticker-item i{width:6px;height:6px}.ticker-item strong{font-weight:750}.ticker-item b{font-size:10px;color:#fff}.ticker-item small{font-size:9px;color:var(--green)}
@keyframes ticker-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.sports-layout{display:grid;grid-template-columns:150px 48px minmax(0,1fr);gap:12px;max-width:1800px;margin:0 auto;padding:13px 18px 35px}
.sports-sidebar{position:sticky;top:57px;align-self:start;max-height:calc(100vh - 70px);overflow:auto;scrollbar-width:thin;scrollbar-color:#303742 transparent;padding:0 0 12px}
.sidebar-title{padding:5px 8px 10px;color:#747e8d;font-size:9px;font-weight:850;letter-spacing:.13em}
.sport-filter,.sidebar-link{display:flex;align-items:center;gap:8px;width:100%;min-height:34px;padding:7px 9px;border:1px solid transparent;background:transparent;border-radius:9px;color:#929baa;text-align:left;font-size:11px;cursor:pointer}
.sport-filter>span:first-child,.sidebar-link>span:first-child{width:17px;text-align:center;font-size:13px;flex:none}
.sport-label{min-width:0;flex:1;overflow-wrap:anywhere}
.sport-filter b,.sidebar-link b{margin-left:auto;color:#8993a2;font-size:10px;font-weight:650}
.sport-filter:hover,.sidebar-link:hover{background:#14171c;color:#fff}
.sport-filter.selected{background:#191d24;border-color:#2c323d;color:#f5f6f8;font-weight:800}
.sport-filter.selected b{color:#f3f5f8}
.sidebar-divider{height:1px;background:var(--line);margin:12px 7px}
.sidebar-link{font-size:10px}
.sidebar-foot{padding:15px 8px 0;color:#606b7a;font-size:9px;line-height:1.65}
.date-rail{display:flex;flex-direction:column;align-items:stretch;gap:6px;position:sticky;top:57px;align-self:start}
.date-rail-label{text-align:center;color:#687282;font-size:8px;font-weight:850;letter-spacing:.1em;padding:4px 0}
.date-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:67px;padding:7px 3px;border:1px solid #2a303a;border-radius:12px;background:#14171c;color:#a4adba;cursor:pointer}
.date-chip small{font-size:8px;text-transform:uppercase;color:#818b99;font-weight:700}
.date-chip strong{font-family:"Barlow Condensed",Impact,sans-serif;font-size:23px;line-height:1.05;color:#e7ebf1}
.date-chip.active{border-color:#3b424e;background:#1b2027}
.date-chip.active strong{color:var(--red)}
.schedule-main{min-width:0}
.schedule-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:1px 0 12px}
.section-kicker{display:flex;align-items:center;gap:6px;color:#9ba5b4;font-size:9px;font-weight:850;letter-spacing:.12em}
.live-pulse{width:6px;height:6px;box-shadow:0 0 0 3px rgba(32,216,132,.12)}
.schedule-toolbar h1{margin:3px 0 2px;font-family:"Barlow Condensed",Impact,sans-serif;font-size:31px;line-height:1.1;font-weight:800;letter-spacing:-.3px}
.schedule-toolbar p{margin:0;color:#8590a0;font-size:11px}
.toolbar-actions{display:flex;align-items:center;gap:7px}
.searchbox{display:flex;align-items:center;gap:7px;min-width:190px;padding:0 10px;height:34px;border:1px solid #2b313b;border-radius:9px;background:#12151a;color:#929baa}
.searchbox>span{font-size:19px}
.searchbox input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--text);font-size:11px}
.searchbox input::placeholder{color:#727d8c}
.toolbar-actions select{height:34px;max-width:125px;border:1px solid #2b313b;border-radius:9px;padding:0 8px;background:#12151a;color:#cbd2dc;font-size:10px}
.notice-bar{display:flex;align-items:center;gap:8px;min-height:35px;margin:0 0 12px;padding:7px 11px;border:1px solid #624819;border-radius:10px;background:rgba(111,75,10,.16);color:#c8cdd5;font-size:10px}
.notice-bar strong{color:#f4b32d}.notice-pin{font-size:12px}.notice-bar>span:nth-child(2){flex:1}.notice-close{border:0;background:transparent;color:#9ba4b2;font-size:19px;cursor:pointer}
.schedule-status{display:flex;align-items:center;gap:13px;margin:0 0 13px;color:#7e8998;font-size:10px}
.schedule-status>span:first-child{display:flex;align-items:center;gap:6px;color:#d8dee7}.schedule-status>span:first-child strong{padding:2px 6px;background:#1b2027;border-radius:999px;font-size:9px;color:#9da8b8}
.schedule-status i{width:6px;height:6px}.schedule-status a{margin-left:auto;color:#9ba6b5}.status-source{margin-left:auto;color:#647080;font-size:9px}
.sport-group{margin:0 0 18px}
.sport-group-heading{display:flex;align-items:center;gap:7px;margin:0 0 8px}
.sport-heading-icon{font-size:14px}.sport-group-heading h2{margin:0;font-family:"Barlow Condensed",Impact,sans-serif;font-size:15px;line-height:1.2;font-weight:800}
.group-count{display:inline-flex;align-items:center;justify-content:center;min-width:19px;height:18px;padding:0 5px;border-radius:99px;background:#20252d;color:#aab3c0;font-size:9px;font-weight:800}
.group-line{height:1px;flex:1;background:linear-gradient(90deg,#292f39,transparent)}
.match-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.match-card{min-width:0;min-height:116px;padding:10px 11px 8px;border:1px solid #2a303a;border-radius:13px;background:linear-gradient(145deg,#171b21,#111419);transition:border-color .15s,transform .15s,background .15s}
.match-card:hover{border-color:#48515e;background:linear-gradient(145deg,#1b2027,#14171c);transform:translateY(-1px)}
.match-card.is-live{border-color:#176b4a}.match-card.is-live:hover{border-color:#269d6d}
.match-card.is-finished{opacity:.85}
.match-card-top{display:flex;align-items:center;gap:6px;min-height:13px;margin-bottom:8px;color:#8e9aaa;font-size:9px}
.league-label{min-width:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#a5b0bf}
.match-card-top time{color:#e1e6ed;font-size:9px;font-weight:800;white-space:nowrap}
.live-badge,.finished-badge{display:inline-flex;align-items:center;gap:4px;color:var(--green);font-size:8px;font-weight:900;white-space:nowrap}
.live-badge i{width:6px;height:6px}.finished-badge{color:#929baa}
.match-card-link{display:block}
.teams{display:flex;flex-direction:column;gap:5px}
.team-row{display:grid;grid-template-columns:29px minmax(0,1fr) auto;align-items:center;gap:7px;min-width:0}
.team-avatar{display:grid;place-items:center;width:28px;height:28px;border:1px solid #333a45;border-radius:50%;background:#080a0d;color:#dce2eb;font-size:10px;font-weight:850}
.team-row strong{min-width:0;overflow-wrap:anywhere;color:#edf1f6;font-size:11px;line-height:1.25;font-weight:750}
.team-score{min-width:20px;text-align:center;padding:2px 5px;border-radius:4px;background:#20262e;color:#f1f4f8;font-size:11px;font-weight:900}
.match-card.is-live .team-score{background:#15945f;color:#fff}
.match-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-top:8px;padding-top:6px;border-top:1px solid rgba(255,255,255,.035);color:#718091;font-size:9px}
.match-card-bottom>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.match-card-bottom a{color:#a9b5c4;font-size:9px;font-weight:800;white-space:nowrap}
.match-card-bottom a:hover{color:#fff}
.no-events{padding:28px;border:1px dashed var(--line);border-radius:12px;color:#98a2b0;text-align:center}
.app-footer{display:flex;flex-wrap:wrap;gap:15px;margin-top:24px;padding:15px 0;border-top:1px solid var(--line);color:#657181;font-size:10px}
.app-footer span{margin-right:auto}
.app-footer a:hover{color:#cbd2dc}
@media(min-width:1500px){.sports-layout{grid-template-columns:150px 48px minmax(0,1fr);gap:14px;padding-left:22px;padding-right:22px}.match-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.app-topbar{gap:18px;padding:0 14px}.main-nav{gap:13px}.main-nav a{font-size:11px}.sports-layout{grid-template-columns:135px 44px minmax(0,1fr);gap:9px;padding:12px 10px}.match-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.top-actions .feed-state{display:none}}
@media(max-width:760px){
 .app-topbar{height:48px;padding:0 11px;gap:10px}.brand-name{font-size:20px}.main-nav{display:none}.top-actions{margin-left:auto}.feed-state{display:none}.mobile-menu{display:block}
 .sports-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:10px 10px 24px}
 .sports-sidebar{display:none;position:fixed;z-index:60;top:48px;left:0;bottom:0;width:min(290px,85vw);max-height:none;overflow:auto;padding:12px;background:#0d1014;border-right:1px solid var(--line);box-shadow:15px 0 35px rgba(0,0,0,.4)}
 .sports-sidebar.open{display:block}
 .date-rail{position:static;display:flex;flex-direction:row;gap:6px;overflow-x:auto;margin:0 0 12px;padding:1px 0 7px;scrollbar-width:thin}
 .date-rail-label{display:none}.date-chip{flex:0 0 52px;min-height:54px;border-radius:10px}.date-chip strong{font-size:19px}.date-chip small{font-size:7px}
 .schedule-toolbar{display:block}.schedule-toolbar h1{font-size:29px}.toolbar-actions{margin-top:11px}.searchbox{flex:1;min-width:0}.toolbar-actions select{max-width:115px}
 .notice-bar{font-size:9px}.schedule-status{gap:9px;flex-wrap:wrap}.status-source{display:none}
 .match-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.match-card{padding:9px 8px;min-height:112px;border-radius:11px}.team-row{grid-template-columns:25px minmax(0,1fr) auto;gap:5px}.team-avatar{width:24px;height:24px}.team-row strong{font-size:10px}.team-score{font-size:10px;min-width:18px}.match-card-bottom{font-size:8px}
 .app-footer{padding-bottom:12px}
}
@media(max-width:420px){
 .match-grid{grid-template-columns:minmax(0,1fr)}.match-card{min-height:105px;padding:10px 11px}.teams{gap:5px}.team-row{grid-template-columns:28px minmax(0,1fr) auto}.team-avatar{width:27px;height:27px}.team-row strong{font-size:11px}
 .schedule-toolbar h1{font-size:27px}.toolbar-actions select{max-width:105px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
