/* Homepage shelves. Player and admin layouts keep their existing styles. */
.homepage{background:#0b0b0d;--bg:#0b0b0d;--surface:#171719;--line:#29292e;--muted:#929299;font-family:Arial,Helvetica,sans-serif}
.homepage .wrap{width:min(1680px,calc(100% - 80px))}
.homepage .header{background:#0b0b0d}
.homepage .header-inner{min-height:78px}
.homepage .header-live{display:none}
.homepage .header-tools{margin-left:auto}
.sports-browser{padding-top:18px}
.sports-heading,.shelf-heading{display:flex;align-items:center;gap:20px;margin-bottom:16px}
.sports-heading h1,.shelf-heading h2{font-size:25px;letter-spacing:-.6px;margin:0;line-height:1.25}
.homepage .header-search{flex:0 1 310px}
.homepage .header-search input{background:#171719;border-color:#29292e}
.rail-controls{display:flex;gap:6px;flex-shrink:0;margin-left:auto}
.rail-arrow{height:38px;width:38px;display:grid;place-items:center;background:transparent;border:1px solid #303035;border-radius:7px;color:#f5f5f6;font-size:26px;line-height:1;cursor:pointer}
.rail-arrow:hover:not(:disabled){background:#26262a;border-color:#77777d}
.rail-arrow:disabled{opacity:.3;cursor:default}
.sports-rail{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 2px 6px}
.sports-rail::-webkit-scrollbar,.game-rail::-webkit-scrollbar{display:none}
.sport-category{flex:0 0 124px;min-width:0;padding:0;border:0;color:#f6f6f7;background:none;text-align:left;scroll-snap-align:start;cursor:pointer}
.category-art{height:80px;display:flex;align-items:center;justify-content:center;padding:10px;background:#fff2f3;color:#111;border-radius:9px;font-size:17px;font-weight:750;line-height:1.22;text-align:center;border:3px solid transparent;transition:background .15s,border-color .15s}
.sport-category:hover .category-art{background:#e7e7ec}
.sport-category.active .category-art{background:#c0f36b;border-color:#c0f36b}
.category-caption{display:none}
.homepage .content{padding-top:16px;min-height:350px}
.homepage .section-head{margin-bottom:22px;gap:15px}
.homepage .section-head h2{font-size:18px;letter-spacing:-.3px}
.homepage .section-head p:not(.eyebrow){font-size:12px;margin-top:4px}
.homepage .filters{background:#171719;border-color:#29292e}
.homepage .filter-btn.active{background:#343438}
.game-shelf{margin-bottom:30px;min-width:0}
.shelf-heading{margin-bottom:12px}
.shelf-heading h2{font-size:24px}
.game-rail{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none;padding:2px 2px 10px}
.game-tile{flex:0 0 250px;min-width:0;color:inherit;text-decoration:none;scroll-snap-align:start;border-radius:10px;display:block}
.game-poster{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:linear-gradient(145deg,#262846 0 48%,#111219 49% 52%,#433324 53%);isolation:isolate;transition:filter .15s,transform .15s}
.game-poster:before{content:'';position:absolute;width:180px;height:180px;left:-40px;top:-90px;border:1px solid #ffffff20;border-radius:50%;z-index:-1}
.game-poster:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 50%,#0008);z-index:-1}
.theme-football{background:linear-gradient(145deg,#243b34 0 48%,#0d1916 49% 52%,#202d44 53%)}
.theme-basketball{background:linear-gradient(145deg,#5b204a 0 48%,#18141b 49% 52%,#8a4a18 53%)}
.theme-american-football{background:linear-gradient(145deg,#452524 0 48%,#181313 49% 52%,#23334c 53%)}
.theme-hockey{background:linear-gradient(145deg,#284656 0 48%,#111b24 49% 52%,#333654 53%)}
.theme-baseball{background:linear-gradient(145deg,#273957 0 48%,#161721 49% 52%,#542b36 53%)}
.theme-motor-sports,.theme-fight{background:linear-gradient(145deg,#522428 0 48%,#161616 49% 52%,#424247 53%)}
.poster-match{position:absolute;inset:26px 14px 20px;display:flex;align-items:center;justify-content:space-around;gap:10px}
.poster-team{position:relative;display:grid;place-items:center;width:76px;height:76px;flex:0 1 76px}
.poster-team img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 5px #0006);background:inherit}
.poster-initials{font-size:30px;font-weight:800;color:#fff;letter-spacing:-1px}
.poster-team:has(img) .poster-initials{visibility:hidden}
.poster-vs{font-size:10px;font-weight:800;color:#fff9}
.poster-time{position:absolute;left:9px;top:9px;z-index:1;padding:5px 9px;background:#111e;border-radius:20px;font-size:11px;font-weight:700;line-height:1}
.poster-time.is-live{background:#b72d34;color:white}
.poster-featured{position:absolute;right:9px;top:9px;z-index:1;padding:3px 10px;border-radius:20px;background:#d18c00;color:white;font-size:15px;line-height:1.1}
.poster-league{position:absolute;bottom:8px;left:12px;right:12px;text-align:center;text-transform:uppercase;font-size:9px;font-weight:700;letter-spacing:1px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;color:#fff9}
.tile-title{font-size:16px;font-weight:700;line-height:1.4;margin:13px 0 3px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tile-meta,.tile-details{color:#929299;font-size:13px;line-height:1.5;margin:0;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.tile-details{font-size:11px;color:#85858d;margin-top:3px}
.game-tile:hover .game-poster{filter:brightness(1.18)}
.game-tile:hover .tile-title{color:#c0f36b}
.homepage button:focus-visible,.game-tile:focus-visible,.game-rail:focus-visible{outline:2px solid #c0f36b;outline-offset:3px}
.homepage .footer{background:#0b0b0d}
@media(min-width:1600px){.sport-category{flex-basis:136px}.game-tile{flex-basis:264px}}
@media(max-width:900px){.homepage .wrap{width:calc(100% - 40px)}.sport-category{flex-basis:116px}.category-art{font-size:16px}.game-tile{flex-basis:230px}.sports-heading{flex-wrap:wrap}.sports-heading .header-search{flex-basis:250px}.sports-browser{padding-top:22px}}
@media(max-width:600px){.homepage .wrap{width:calc(100% - 32px)}.homepage .header-inner{min-height:66px;gap:12px}.homepage .header-tools{gap:12px}.sports-heading{gap:12px}.sports-heading h1{font-size:23px}.sports-heading .header-search{order:3;flex-basis:100%;margin:0}.sport-category{flex-basis:104px}.category-art{height:68px;font-size:15px;padding:8px;border-radius:8px}.category-caption{font-size:13px;min-height:46px;padding-top:8px}.sports-rail,.game-rail{gap:12px}.homepage .content{padding-top:12px}.homepage .section-head{gap:12px;margin-bottom:20px}.homepage .filters{width:auto}.homepage .filter-btn{padding:8px 10px;min-height:32px;font-size:10px}.shelf-heading h2{font-size:21px}.game-tile{flex-basis:220px}.tile-title{font-size:15px}.rail-arrow{width:32px;height:32px;font-size:23px}.game-shelf{margin-bottom:23px}}
@media(prefers-reduced-motion:reduce){.game-poster,.category-art{transition:none}}

/* Schedule controls share the site header and wrap on smaller screens. */
.homepage .header-inner{flex-wrap:wrap;gap:16px;padding-block:12px}
.homepage .header-tools{margin-left:8px;gap:18px}
.header-controls{display:flex;align-items:center;gap:12px;margin-left:auto;min-width:0}
.homepage .header-controls .header-search{flex:1 1 250px;width:250px;min-width:180px;margin:0}
.homepage .header-controls .filters{width:auto;flex-shrink:0}
.homepage .header-controls .filter-btn{white-space:nowrap}
@media(max-width:1150px){.header-controls{flex-basis:100%}.homepage .header-tools{margin-left:auto}.homepage .header-controls .header-search{width:auto}}
@media(max-width:600px){.header-controls{flex-wrap:wrap;gap:8px}.homepage .header-controls .header-search{flex-basis:100%;min-width:0}.homepage .header-controls .filters{width:100%}.homepage .header-controls .filter-btn{min-height:38px}}
