:root{--ink:#151a25;--muted:#747d8b;--line:#e9edf1;--bg:#f7f8fa;--red:#ee3146;--radius:19px}*{box-sizing:border-box}body{margin:0;background:#fff;color:var(--ink);font:15px/1.5 Inter,Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}a:hover{color:var(--red)}.container{max-width:1240px;padding:0 28px;margin:auto}.site-header{position:sticky;top:0;z-index:10;background:#ffffffee;backdrop-filter:blur(9px);border-bottom:1px solid var(--line)}.header-inside{display:flex;align-items:center;gap:32px;height:76px}.brand{white-space:nowrap;font-size:23px;font-weight:900;letter-spacing:-1.1px;display:flex;align-items:center;gap:4px}.brand>span:not(.brand-icon){color:var(--red)}.brand small{font-weight:500;font-size:12px;color:#a9b1be;letter-spacing:0}.brand-icon{display:inline-grid;place-items:center;background:var(--red);border-radius:9px;width:32px;height:32px;color:#fff;font-size:16px;margin-right:5px}.main-nav{display:flex;gap:22px}.main-nav a{font-size:14px;font-weight:650;color:#4b5361}.search{margin-left:auto;background:#f4f5f7;display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:12px;max-width:280px;min-width:170px}.search input{background:transparent;border:0;outline:0;width:100%;font:inherit;font-size:13px}.main{padding-top:34px;padding-bottom:80px;min-height:72vh}.eyebrow{font-size:12px;font-weight:800;letter-spacing:1.6px;color:#7b8390;display:flex;gap:9px;align-items:center}.eyebrow i{display:inline-block;background:var(--red);width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 4px #ffe5e9}.page-intro{margin:14px 0 24px}.page-intro h1,.team-head h1{font-size:clamp(31px,4vw,43px);line-height:1.18;margin:0 0 10px;letter-spacing:-1.7px}.page-intro h1 em,.team-head h1 em{font-style:normal;color:var(--red)}.page-intro p,.team-head p{color:var(--muted);font-size:14px;margin:0}.sport-tabs{display:flex;gap:9px;overflow:auto;padding:6px 0 13px;margin-bottom:19px;scrollbar-width:thin}.sport-tabs a{white-space:nowrap;font-size:13px;font-weight:750;border:1px solid #e6e9ed;border-radius:24px;padding:9px 16px}.sport-tabs a:hover{background:#181d27;color:#fff}.section{margin:35px 0 38px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 17px}.section-title h2{font-size:25px;letter-spacing:-.7px;margin:0}.section-title span{font-size:12px;color:#8f99a5}.stream-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px}.stream-card{border-radius:var(--radius);border:1px solid var(--line);overflow:hidden;background:white;transition:transform .18s,border-color .18s,box-shadow .18s}.stream-card:hover{transform:translateY(-4px);border-color:#dce0e6;box-shadow:0 14px 38px #1118270e}.preview{aspect-ratio:16/9;display:block;background:linear-gradient(120deg,#202637,#636b7d);position:relative;overflow:hidden}.preview>img{height:100%;width:100%;object-fit:cover}.preview:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0007,transparent 55%);pointer-events:none}.stream-badge{position:absolute;left:13px;top:13px;z-index:1;background:var(--red);color:white;border-radius:7px;font-size:11px;font-weight:900;padding:6px 10px;letter-spacing:.6px}.stream-badge:before{content:'●';font-size:8px;margin-right:6px}.stream-badge.upcoming{background:#fff;color:#263244}.stream-badge.replay{background:#f8fafc;color:#263244}.play-symbol{position:absolute;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:#ffffffee;color:#18212d}.card-content{padding:16px}.card-minor{text-transform:uppercase;letter-spacing:.65px;font-size:10px;font-weight:800;color:#87919e}.card-content h3{font-size:16px;line-height:1.4;min-height:45px;margin:9px 0 13px}.card-footer{border-top:1px solid #edf0f2;display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:12px}.channel-name{font-size:12px;color:#7b8492;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.watch-cta{font-size:12px;color:var(--red);font-weight:850;white-space:nowrap}.empty{border:1px dashed #dbe1e8;background:#f8f9fb;color:#75808d;border-radius:17px;padding:37px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px}.empty strong{color:#26303d;font-size:15px}.empty p{margin:0;max-width:500px;font-size:13px}.empty-icon{font-size:34px;color:#8a95a4}.link-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.link-tiles>a{background:#fafbfc;padding:18px;border:1px solid #e7ebf0;border-radius:14px;font-weight:750}.link-tiles a span{font-size:20px}.link-tiles a small{display:block;margin-top:3px;color:#96a0ac;font-size:11px;font-weight:500}.crumb{display:flex;gap:8px;color:#8c94a1;font-size:12px;flex-wrap:wrap;margin-bottom:23px}.crumb span{color:#c2c6cf}.team-head{display:flex;align-items:center;gap:23px}.team-head img{width:92px;height:92px;object-fit:contain}.player{width:100%;max-width:1050px;aspect-ratio:16/9;background:#151a25;border-radius:18px;overflow:hidden;margin:23px 0}.player iframe{width:100%;height:100%;border:0}.panel{border:1px solid #e7ebf0;background:#fbfcfd;padding:20px 24px;border-radius:16px;margin-top:25px}.fixture-list{border:1px solid #e8edf1;border-radius:16px;overflow:hidden}.fixture-item{display:flex;align-items:center;gap:14px;justify-content:space-between;padding:15px;border-bottom:1px solid var(--line)}.fixture-item:last-child{border-bottom:0}.fixture-item b{flex:1}.fixture-item span{font-size:12px;color:var(--muted)}.fixture-item strong{font-size:14px;min-width:40px;text-align:right}.site-footer{border-top:1px solid var(--line);padding:28px 0 44px;color:#929ba7;font-size:12px}@media(max-width:1050px){.main-nav{gap:14px}.stream-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.link-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:720px){.container{padding:0 16px}.header-inside{gap:12px;height:auto;min-height:68px;flex-wrap:wrap;padding-top:12px;padding-bottom:12px}.brand{font-size:20px}.main-nav{order:3;width:100%;justify-content:space-between}.search{flex:1;min-width:120px}.main{padding-top:24px}.stream-grid,.link-tiles{grid-template-columns:1fr}.section-title h2{font-size:22px}.fixture-item{flex-wrap:wrap}.fixture-item span{order:3;width:100%}}

.featured{display:grid;grid-template-columns:1.25fr 1fr;min-height:320px;border-radius:23px;overflow:hidden;background:#151c29;color:#fff;margin:20px 0 35px}.featured-visual{background-position:center;background-size:cover;position:relative;display:grid;place-items:center}.featured-empty{background:radial-gradient(ellipse at 70% 35%,#626d88 0%,#293448 37%,#111821 80%)}.featured-empty:before{content:'';position:absolute;width:220px;height:220px;border-radius:50%;border:38px solid #ffffff0e;transform:rotate(-20deg) scaleX(1.45)}.featured-label{position:absolute;left:19px;top:20px;background:#ee3146;padding:7px 12px;font-weight:900;font-size:11px;border-radius:7px}.featured-play{display:grid;place-items:center;background:#fff;color:#141c2b;border-radius:50%;width:73px;height:73px;font-size:24px;z-index:1}.featured-body{padding:40px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.featured-kicker{font-size:11px;font-weight:850;letter-spacing:1.2px;color:#b2bdcc}.featured-body h2{font-size:31px;letter-spacing:-.8px;line-height:1.2;margin:14px 0}.featured-body p{font-size:13px;color:#bbc4d0;line-height:1.7;margin:0 0 23px}.featured-button{background:#ee3146;color:#fff!important;font-size:13px;font-weight:850;border-radius:10px;padding:12px 20px}@media(max-width:750px){.featured{grid-template-columns:1fr}.featured-visual{min-height:230px}.featured-body{padding:24px}.featured-body h2{font-size:24px}}
.setup-note{padding:12px 17px;background:#fff7df;color:#685222;border-radius:11px;font-size:13px;margin:18px 0}

/* v0.2.3 — Team directory */
.team-filters{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 12px}.team-filters input,.team-filters select{border:1px solid var(--line);border-radius:11px;padding:12px 14px;font:inherit;min-width:190px;background:#fff}.team-filters input{flex:1;min-width:230px}.team-filters button{border:0;border-radius:11px;padding:12px 22px;background:var(--red);color:#fff;font-weight:800;cursor:pointer}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.team-count{font-size:13px;color:var(--muted);margin:12px 0 17px}.team-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.team-directory-item{display:flex;align-items:center;gap:13px;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff;min-width:0;transition:box-shadow .15s,border-color .15s}.team-directory-item:hover{border-color:#f0aab2;box-shadow:0 7px 22px #151a2510}.team-directory-item img,.team-fallback{width:54px;height:54px;object-fit:contain;flex:0 0 54px}.team-fallback{display:grid;place-items:center;background:#f6f7f9;border-radius:12px;font-size:24px;font-weight:800;color:#87919e}.team-directory-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.team-directory-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}.team-directory-copy small{color:var(--muted);font-size:11px}.team-directory-arrow{margin-left:auto;color:var(--red);font-weight:800}.section-more{font-size:13px;color:var(--red);font-weight:750}.page-nav{display:flex;align-items:center;gap:12px;margin:25px 0;flex-wrap:wrap}.page-nav a{border:1px solid var(--line);padding:9px 14px;border-radius:9px;font-weight:700}.page-nav span{font-size:12px;color:var(--muted)}
@media(max-width:1000px){.team-directory{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.team-directory{grid-template-columns:1fr}.team-filters select,.team-filters button{flex:1}.team-directory-item{padding:11px}}

/* v0.2.5: genuinely compact empty sections, including team live/upcoming/past. */
.empty-inline{margin:0;color:#667386;font-size:13px;display:flex;align-items:center;gap:9px;min-height:26px;}
.empty-inline-icon{font-size:16px;color:#8e9aac;line-height:1;}
.section:has(> .empty-inline){margin:23px 0 28px;}
.section:has(> .empty-inline) .section-title{margin-bottom:6px;}
.watch-context{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0 18px;color:#657182;font-size:13px;}
.watch-context a{font-weight:700;color:#29394d;}
.watch-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;}
.watch-fact{padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;}
.watch-fact small{display:block;font-size:11px;color:#7e8796;margin-bottom:5px;}
.watch-fact strong{font-size:13px;}
.watch-description{white-space:pre-line;overflow-wrap:anywhere;line-height:1.7;}
.watch-lead{font-size:15px;color:#667386;margin:4px 0 0;}
@media(max-width:720px){.watch-facts{grid-template-columns:1fr}.watch-fact{padding:11px 13px}}

/* v0.2.6: fixture cards, compact team navigation and result privacy. */
.match-scorecard{border:1px solid var(--line);border-radius:17px;background:#fbfcfe;padding:20px;margin-top:15px}.scorecard-top{text-align:center;font-size:12px;color:var(--muted)}.scorecard-match{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:20px;margin:16px auto}.score-team{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;font-size:14px;min-width:0}.score-team img,.score-fallback{width:67px;height:67px;object-fit:contain}.score-fallback{display:grid;place-items:center;background:#f2f4f7;border-radius:50%;font-weight:700;font-size:27px}.score-value{font-size:30px;font-weight:850;white-space:nowrap}.score-value span{color:#aab2c0;font-size:19px}.scorecard-link{display:block;text-align:center;border-top:1px solid var(--line);padding-top:12px;font-size:13px;color:var(--red);font-weight:700}.fixture-group{border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-bottom:10px}.fixture-group summary{cursor:pointer;padding:13px 17px;font-weight:750;display:flex;gap:12px;align-items:center}.fixture-group summary span{margin-left:auto;color:var(--muted);font-size:12px}.fixture-group .fixture-list{border:0;border-top:1px solid var(--line);border-radius:0}.fixture-group .empty-inline{margin:12px 17px}.fixture-help{font-size:12px;color:var(--muted)}.spoiler-toggle{border:1px solid var(--line);border-radius:8px;background:white;padding:8px 11px;font:inherit;font-size:12px;cursor:pointer}.fixture-score.score-hidden{color:transparent!important;position:relative}.fixture-score.score-hidden:after{content:'Hidden';position:absolute;color:var(--muted);inset:0;background:white;text-align:right}.fixture-item b{min-width:0}@media(max-width:680px){.scorecard-match{gap:8px}.score-team img,.score-fallback{width:45px;height:45px}.score-value{font-size:21px}.score-team{font-size:11px}.match-scorecard{padding:14px}.fixture-item{align-items:flex-start}}
/* v0.2.7: compact fixture-first upcoming schedule */
.upcoming-controls{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:22px 0 12px}
.upcoming-leagues{display:flex;flex-wrap:wrap;gap:8px;max-width:100%}
.upcoming-filter{display:inline-flex;padding:9px 13px;border:1px solid #e4e8ee;border-radius:24px;text-decoration:none;color:#1d2939;background:white;font-size:13px;font-weight:650}
.upcoming-filter:hover,.upcoming-filter.active{border-color:#ed324d;background:#fff1f3;color:#d62241}
.upcoming-view{display:flex;align-items:center;gap:8px;font-size:13px;color:#667085}
.upcoming-view select{border:1px solid #e4e8ee;border-radius:9px;background:#fff;padding:8px 10px;color:#1d2939}
.schedule-timezone{margin:12px 0 24px;color:#667085;font-size:13px}
.upcoming-league-block{margin:0 0 34px;scroll-margin-top:96px}
.upcoming-league-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9edf2;padding-bottom:12px;margin-bottom:4px}
.upcoming-league-header>div{display:flex;align-items:center;gap:11px}
.upcoming-league-header h2{font-size:22px;line-height:1.3;margin:0;color:#152033}
.upcoming-league-emoji{font-size:23px}
.upcoming-match-count{font-size:12px;color:#8a94a4}
.upcoming-league-header>a{font-size:12px;color:#ed2847;text-decoration:none;font-weight:700}
.upcoming-match-list{border:1px solid #e9edf2;border-radius:13px;overflow:hidden}
.upcoming-match-row{display:grid;grid-template-columns:96px minmax(0,1fr) 85px;gap:12px;align-items:center;min-height:72px;padding:11px 15px;border-bottom:1px solid #e9edf2}
.upcoming-match-row:last-child{border-bottom:0}
.upcoming-local-time{display:flex;flex-direction:column;gap:4px;font-variant-numeric:tabular-nums}
.upcoming-local-time strong{font-size:17px;color:#101828}
.upcoming-local-time span{font-size:12px;color:#8b95a5}
.upcoming-match-teams{display:flex;align-items:center;gap:14px;min-width:0}
.upcoming-team{display:flex;align-items:center;gap:8px;flex:1;min-width:0;font-size:13px;font-weight:650;color:#101828}
.upcoming-team img{height:29px;width:29px;object-fit:contain;flex-shrink:0}
.upcoming-team a{color:inherit;text-decoration:none}
.upcoming-team a:hover{color:#ed2847}
.upcoming-versus{flex-shrink:0;font-size:11px;font-weight:700;color:#98a2b3}
.upcoming-status{justify-self:end;font-size:11px;color:#667085;background:#f3f5f8;padding:6px 8px;border-radius:6px}
.upcoming-no-games{margin:12px 0 0;padding:14px;border-radius:10px;background:#f7f9fb;color:#667085;font-size:13px}
.upcoming-data-note{font-size:12px;color:#8a94a4;margin:22px 0 35px}
@media(max-width:720px){.upcoming-match-row{grid-template-columns:67px minmax(0,1fr);gap:8px;padding:9px}.upcoming-team{font-size:12px}.upcoming-team img{height:23px;width:23px}.upcoming-match-teams{gap:7px}.upcoming-status{display:none}.upcoming-league-header h2{font-size:19px}.upcoming-match-count{font-size:11px}.upcoming-local-time strong{font-size:14px}}

/* Upcoming fixture-first schedule with independently validated YouTube upcoming videos. */
.upcoming-video-section{margin:28px 0 40px}.upcoming-video-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:17px}.upcoming-stream-time{font-size:12px;color:#596577;margin:10px 2px}.upcoming-countdown{display:block;font-size:11px;font-weight:750;color:#b3233e;margin-top:5px;font-variant-numeric:tabular-nums}.upcoming-video-section .upcoming-countdown{display:inline;font-size:12px}.upcoming-warning{font-size:12px;color:#667085;margin:12px 0 0}.upcoming-status{min-width:137px;text-align:right;background:none}.upcoming-match-row{grid-template-columns:96px minmax(0,1fr) 155px}@media(max-width:750px){.upcoming-video-grid{grid-template-columns:1fr 1fr}.upcoming-match-row{grid-template-columns:75px minmax(0,1fr)}.upcoming-status{grid-column:2;justify-self:start;text-align:left;padding:0;margin-top:-5px}.upcoming-countdown{display:inline;margin-left:6px}}@media(max-width:530px){.upcoming-video-grid{grid-template-columns:1fr}}

/* v0.2.8 — single-game-day schedule, aligned broadcast rows */
.upcoming-day-nav{display:grid;grid-template-columns:150px minmax(0,1fr) 150px;gap:12px;align-items:center;background:#fff;border:1px solid #e4e8ef;border-radius:15px;padding:12px;margin:18px 0 26px;box-shadow:0 4px 16px #10182805}
.upcoming-day-nav[hidden],.upcoming-league-block[hidden],.upcoming-match-row[hidden],#upcoming-no-date-games[hidden]{display:none!important}
.upcoming-day-button{background:#fff;border:1px solid #e4e8ef;border-radius:10px;min-height:42px;padding:10px 12px;color:#233047;font-size:12px;font-weight:800;cursor:pointer}
.upcoming-day-button:not(:disabled):hover{border-color:#ed324d;color:#d62241;background:#fff7f8}
.upcoming-day-button:disabled{opacity:.4;cursor:default}
.upcoming-day-center{display:flex;flex-direction:column;gap:3px;text-align:center;min-width:0}
.upcoming-day-caption{font-size:10px;font-weight:850;letter-spacing:1.2px;color:#ed324d}
.upcoming-day-center strong{font-size:16px;line-height:1.35;color:#101828}
.upcoming-day-total{font-size:11px;color:#7b8697}
.upcoming-league-block{margin-bottom:23px}
.upcoming-match-list{background:#fff;border-color:#e6ebf1}
.upcoming-match-row{grid-template-columns:84px minmax(0,1fr) 182px;min-height:76px;gap:16px;padding:12px 17px}
.upcoming-match-teams{display:grid;grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr);gap:12px;align-items:center;width:100%}
.upcoming-team{display:flex;min-width:0;gap:10px;align-items:center}
.upcoming-team:nth-child(3){justify-content:flex-start}
.upcoming-team a{line-height:1.35;overflow-wrap:anywhere}
.upcoming-team img{width:32px;height:32px;object-fit:contain}
.upcoming-versus{text-align:center}
.upcoming-status{min-width:0;width:100%;text-align:right;justify-self:stretch;white-space:normal;font-size:11px;padding:0;color:#596579}
.upcoming-status .upcoming-countdown{display:block;font-size:12px;margin:5px 0 0;color:#ba3049;font-weight:800;font-variant-numeric:tabular-nums}
.upcoming-local-time strong{font-size:16px}
.upcoming-controls{align-items:center}
.upcoming-video-section{margin:22px 0 30px}
.upcoming-league-header{gap:12px}
@media(max-width:760px){
 .upcoming-day-nav{grid-template-columns:1fr 1fr;gap:10px;padding:10px}
 .upcoming-day-center{grid-row:1;grid-column:1 / -1;padding:4px 0 6px}
 .upcoming-day-button{grid-row:2;min-height:40px}
 .upcoming-match-row{grid-template-columns:64px minmax(0,1fr);gap:9px;padding:12px 10px;min-height:78px}
 .upcoming-match-teams{gap:6px;grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr)}
 .upcoming-team{gap:5px;font-size:11px}
 .upcoming-team img{width:22px;height:22px}
 .upcoming-status{grid-column:2;text-align:left;display:block;margin:0;font-size:10px}
 .upcoming-status .upcoming-countdown{display:inline;margin:0 0 0 7px;font-size:11px}
 .upcoming-local-time strong{font-size:13px}
 .upcoming-local-time span{font-size:10px}
 .upcoming-league-header h2{font-size:18px}
}
