/* VideoHighlights v1.2.11 — unified frontend design system. */
:root{color-scheme:dark;--bg:#0b111a;--panel:#151f2d;--panel2:#192635;--line:#2c3a4d;--text:#f5f7fb;--sub:#9eb0c7;--red:#ef5c59;--green:#89d5ad;--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.52 system-ui,-apple-system,"Segoe UI",sans-serif}a{color:inherit;text-decoration:none}a:hover{color:#ff8a86}button,select,input{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.wrap{width:min(1190px,100% - 40px);margin:0 auto}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(29px,3.6vw,43px);line-height:1.12;letter-spacing:-.035em}h2{font-size:clamp(19px,2.2vw,24px);line-height:1.2;letter-spacing:-.02em}.lead{color:#c2cfdf;font-size:15px}.muted,small{color:var(--sub)}.small{font-size:13px}.eyebrow{color:#ff9390;font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin:0 0 9px}.tag{display:inline-flex;align-items:center;border-radius:7px;background:#39232d;color:#ffaaa7;padding:4px 9px;font-weight:750;font-size:11px}.btn{display:inline-flex;justify-content:center;align-items:center;border:0;background:var(--red);color:white;border-radius:9px;padding:11px 16px;font-weight:700}.btn:hover{color:white;background:#fa7370}.status{font-size:12px;font-weight:700}.ready{color:var(--green)}.pending{color:var(--sub)}
/* Header and footer */
.top{position:sticky;z-index:15;top:0;background:rgba(15,23,34,.96);border-bottom:1px solid #2d3948;backdrop-filter:blur(12px)}.topinner{height:68px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-size:19px;white-space:nowrap;font-weight:800;color:var(--red)}.brand b{color:#fff}.brand span{color:var(--red)}.top nav{display:flex;align-items:center;gap:25px;font-weight:600;color:#d5ddea}.country-label{display:flex;align-items:center;gap:7px}.country-label select{background:#263344;border:1px solid #405269;color:#fff;border-radius:8px;padding:8px 12px;max-width:170px}.footer{padding:20px 0;margin-top:48px;background:#111925;color:#8397b2;border-top:1px solid #26364a;font-size:12px}
/* Site cards and league overview */
.hero,.league-hero,.match-hero,.team-page-head,.round-page-head{border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#172331,#202331);padding:28px}.hero{margin:26px 0;display:flex;justify-content:space-between;gap:24px;background:linear-gradient(115deg,#242d3d,#381e2a)}.hero h1{max-width:710px;font-size:clamp(30px,4vw,48px)}.hero-copy>p:not(.eyebrow){color:#d8e2ee;max-width:680px}.hero-actions{margin-top:20px}.hero-side,.league-hero-stats{display:flex;gap:12px}.hero-stat{background:rgba(8,15,25,.38);border:1px solid #2f3b4c;border-radius:13px;padding:15px 19px;min-width:124px;display:flex;flex-direction:column;gap:3px}.hero-stat strong{font-size:28px;line-height:1.1}.hero-stat span{font-size:11px;letter-spacing:.05em;color:#a5b4c9;text-transform:uppercase}.section-row,.page-head{margin:25px 0 16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.section-row h2,.page-head h1{margin:0}.section-link,.back-link{font-size:13px;font-weight:700;color:#ff9390}.section-space{margin-top:36px}.page-head{margin-top:30px}.page-head .lead{margin-top:10px}.league-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.league-overview-card,.featured-card,.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px}.league-overview-card:hover,.fixture-row:hover{border-color:#4e6179}.league-head{display:flex;align-items:center;gap:14px}.league-head h2{font-size:19px;margin:0 0 4px}.league-head p{color:var(--sub);font-size:13px;margin:0}.league-stats{display:flex;gap:9px;margin-top:20px;flex-wrap:wrap}.league-stats span{border-radius:20px;background:#102032;padding:6px 10px;font-size:12px;color:#c4d0e1}.league-stats strong{color:#fff}.league-logo{position:relative;display:grid;place-items:center;width:70px;height:70px;flex:none;background:#101a29;border:1px solid #29394c;border-radius:14px;padding:8px}.league-logo img{width:100%;height:100%;object-fit:contain}.league-logo-fallback-label{font-size:17px;font-weight:800;display:none}.league-logo-fallback .league-logo-fallback-label{display:block}.league-logo.hero-logo{width:92px;height:92px}.featured-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.versus-mini{display:grid;grid-template-columns:minmax(0,1fr) 50px minmax(0,1fr);align-items:center;gap:12px;margin:22px 0}.mini-team{display:flex;align-items:center;min-width:0}.mini-team.align-right{justify-content:flex-end;text-align:right}.mini-team.align-right .team-link{flex-direction:row-reverse}.mini-team .team-link .club-name{font-size:15px}.mini-score{font-size:17px}
.featured-top,.featured-meta{display:flex;justify-content:space-between;gap:10px;align-items:center}.featured-meta{font-size:12px;color:var(--sub)}.watch-pill{padding:7px 10px;border:1px solid #315343;border-radius:8px;color:var(--green)}.empty-state{text-align:center;padding:32px}
/* Breadcrumbs */
.crumb{margin:23px 0 16px;color:var(--sub);font-size:13px}.crumb ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.crumb li:not(:last-child)::after{content:"/";display:inline-block;color:#63758c;margin-left:8px}.crumb a:hover{color:#ff9390}.crumb [aria-current]{color:#dce7f4}
/* Team crest reusable, including native TheSportsDB artwork fallback */
.team-badge{width:52px;height:52px;display:grid;place-items:center;position:relative;flex:none;border-radius:50%;background:radial-gradient(circle at 36% 25%,#2c4156,#152130);border:1px solid #43566d}.team-badge.alt{background:radial-gradient(circle at 36% 25%,#4a3342,#211d2b)}.team-badge-image{width:83%;height:83%;object-fit:contain}.team-badge .badge-fallback-label{display:none}.team-badge.badge-fallback .badge-fallback-label,.team-badge:not(:has(img)) span{display:block;font-weight:800;font-size:14px}.team-badge.large{width:80px;height:80px}.team-badge.large .badge-fallback-label{font-size:21px}.team-link{display:inline-flex;align-items:center;gap:10px;min-width:0;max-width:100%;font-weight:700;color:var(--text)}.team-link .club-name{min-width:0;line-height:1.3;overflow-wrap:anywhere}.team-link:not(.inert):hover .club-name{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:4px}.team-link.inert{cursor:default}.team-page-head{display:flex;align-items:center;gap:22px;margin-bottom:22px}.team-page-head h1{margin:0 0 7px}.team-page-head .lead{margin:0}
/* League: one selected round, consistent compact fixture rows */
.league-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.league-hero-main{display:flex;align-items:center;gap:20px}.league-hero h1{margin-bottom:6px}.league-hero .lead{margin:0}.league-hero-stats{flex:none}
.round-browser{border:1px solid var(--line);background:#111b29;border-radius:18px;padding:24px;margin-top:18px}
.round-browser-title{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:18px}.round-browser-title h2{margin:0}
.round-picker{display:flex;align-items:center;gap:10px;background:#172335;border:1px solid #324155;border-radius:12px;padding:12px}
.round-picker label{color:var(--sub);font-size:13px;font-weight:700;white-space:nowrap}
.round-picker select{flex:1;min-width:0;padding:11px 14px;border-radius:9px;border:1px solid #43556c;background:#0e1928;color:var(--text);font-size:15px}
.round-apply,.round-arrow{display:inline-flex;align-items:center;justify-content:center;border:1px solid #42566f;border-radius:9px;background:#26374c;color:#fff;min-height:44px;padding:0 15px;font-weight:750;white-space:nowrap}
.round-arrow{width:44px;font-size:25px}.round-arrow.disabled{opacity:.35;pointer-events:none}.round-arrow:hover,.round-apply:hover{background:#334a62;color:#fff}
/* A round header and a single two-tier match component, reused on league, team and match pages. */
.round-selected{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin:20px 0 16px}
.round-selected-heading{display:flex;align-items:center;gap:9px}
.round-selected h3{font-size:20px;line-height:1.2;margin:0}
.round-selected p{font-size:13px;margin:0}
.round-permalink{display:grid;place-items:center;width:28px;height:28px;border:1px solid #3c5066;border-radius:8px;color:#ffa29e;font-size:16px;line-height:1;transition:background .15s}
.round-permalink:hover,.round-permalink:focus-visible{background:#304459;color:#fff}
.round-list{display:grid;gap:10px}.round-list-page{margin:15px 0 0}
.fixture-row{position:relative;min-width:0;display:flex;flex-direction:column;gap:0;padding:0 18px;border:1px solid #304357;background:#1a2839;border-radius:13px;transition:border-color .15s,background .15s}
.fixture-row:hover,.fixture-row:focus-within{border-color:#627b98;background:#203248}
.fixture-open{position:absolute;inset:0;z-index:1;border-radius:inherit}
.fixture-main{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);gap:16px;align-items:center;padding:15px 0}
.fixture-side{min-width:0;display:flex;align-items:center}
.fixture-side-home{justify-content:flex-end}
.fixture-side-away{justify-content:flex-start}
.fixture-side .team-link{position:relative;z-index:2;display:inline-flex;align-items:center;gap:12px;max-width:100%;min-width:0;font-weight:750}
.fixture-side-home .team-link{flex-direction:row-reverse;text-align:right}
.fixture-side-away .team-link{flex-direction:row;text-align:left}
.fixture-side .club-name{min-width:0;overflow-wrap:break-word;font-size:15px;line-height:1.3}
.fixture-side .team-badge{width:42px;height:42px}
.fixture-side .badge-fallback-label{font-size:12px}
.fixture-score{min-width:0;white-space:nowrap;text-align:center;font-size:18px;font-weight:850;font-variant-numeric:tabular-nums;color:#ff8985}
.mini-score{font-weight:850;text-align:center;white-space:nowrap;color:#ff8985;font-size:17px}
.fixture-bottom{display:flex;justify-content:space-between;align-items:center;gap:10px 18px;border-top:1px solid #31445a;padding:9px 0 11px;color:var(--sub);font-size:12px}
.fixture-time{font-variant-numeric:tabular-nums;color:#a7bbd1}
.fixture-indicators{display:flex;justify-content:flex-end;align-items:center;gap:9px;flex-wrap:wrap}
.fixture-state{background:#243449;border:1px solid #3b5068;border-radius:999px;padding:3px 9px;color:#dae5f2;font-size:11px;white-space:nowrap}
.fixture-status{color:var(--sub);white-space:nowrap;font-size:12px}
.fixture-status.ready{color:var(--green)}
.round-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.round-page-head h1{margin:0 0 8px}.round-page-head p{margin-bottom:0}
.team-fixtures{margin-top:28px}
/* Match hero, compact empty state and video controls */
.match-hero{margin:0 0 23px;padding:23px 28px}.match-hero-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.versus-row{display:grid;grid-template-columns:minmax(0,1fr) 98px minmax(0,1fr);align-items:center;gap:20px;margin:16px 0 12px}.club{display:flex;align-items:center;gap:14px;min-width:0}.club-right{justify-content:flex-end}.club-right .team-link{flex-direction:row-reverse;text-align:right}.club .club-name{font-size:20px}.versus-score{text-align:center;color:#ff8c87;font-size:23px;font-weight:900;background:#122232;border-radius:100px;border:1px solid #2d4056;padding:8px 0}.match-hero .muted{font-size:13px;margin:0}.twocol{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:20px;margin:0 0 24px}.twocol>section,.twocol>aside{min-width:0}.player{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border:1px solid var(--line);border-radius:14px;background:#172638 center / cover;overflow:hidden}.player:before{content:"";inset:0;position:absolute;background:#0005;pointer-events:none}.player button{position:relative;z-index:1;border:0;background:var(--red);color:#fff;border-radius:100px;padding:13px 22px;font-weight:750}.player iframe{position:relative;z-index:2;width:100%;height:100%;border:0}.prevideo-note{display:flex;align-items:center;gap:17px;padding:24px;border-radius:13px;border:1px dashed #43546a;background:#152131}.prevideo-note strong{display:block;font-size:18px;margin-bottom:4px}.prevideo-note p{font-size:13px;margin:0;color:var(--sub)}.prevideo-icon{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:#26384a;color:#ff8c87;flex:none}.video-choice{display:flex;gap:12px;align-items:center;text-align:left;background:#15202e;border:1px solid var(--line);border-radius:10px;color:#fff;padding:12px 14px;width:100%;margin:8px 0}.video-choice>span:nth-child(2){flex:1;min-width:0}.video-choice b{font-size:14px}.video-choice small{display:block;font-size:12px}.video-choice em{font-size:11px;color:var(--green);font-style:normal}.video-choice[data-availability="restricted"] em{color:#ff9b96}.video-choice[data-availability="unknown"] em{color:#dfc994}.video-choice.hidden{display:none}.video-choice.chosen{background:#27232e;border-color:#e16b67}.bar{margin-top:11px;color:var(--sub);font-size:12px}.bar label{cursor:pointer}.info-panel h2{margin:0 0 19px}.info-panel dl{display:grid;grid-template-columns:103px 1fr;gap:15px 10px;font-size:13px;margin:0}.info-panel dt{color:var(--sub)}.info-panel dd{margin:0;overflow-wrap:anywhere}.related-matches{margin-top:25px}.match-meta-line{display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;color:var(--sub);font-size:13px;margin:0}.match-result-state{color:#e4edf7;background:#243449;border:1px solid #39516b;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}
/* Compatibility classes for existing templates */
.card h2{margin:0 0 12px}.secthead{display:flex;justify-content:space-between;align-items:center}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.match-card h3{font-size:18px}.match-top{display:flex;justify-content:space-between}.availability{color:var(--green)}.auth{max-width:450px;margin:45px auto}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.card form label{display:block;margin:12px 0}.card input,.card select{display:block;background:#101720;border:1px solid #3d4b60;padding:10px;width:100%;border-radius:7px;color:#fff;margin-top:5px}.notice{background:#203746;border:1px solid #426070;padding:12px;border-radius:8px}.error{color:#ff928d}.table-scroll{overflow:auto;margin-bottom:30px}table{border-collapse:collapse;width:100%;font-size:13px}td,th{padding:10px;border-bottom:1px solid var(--line);text-align:left}
/* Breakpoints are defined once for the full frontend. */

/* Team directory and date-grouped team fixtures */
.directory-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin:26px 0 20px}
.directory-head h1{font-size:clamp(28px,3vw,38px);line-height:1.14;margin:5px 0 9px}
.directory-head .lead{color:var(--sub);margin:0}
.directory-total{flex:none;color:#bbccdf;font-size:13px;background:#1a2a3b;border:1px solid #314559;border-radius:99px;padding:7px 12px}
.teams-search{background:var(--panel);border:1px solid var(--line);padding:16px 18px;border-radius:14px;margin-bottom:22px}
.teams-search label{display:block;font-weight:750;font-size:13px;margin-bottom:8px}
.teams-search>div{display:flex;gap:10px}
.teams-search input{min-width:0;flex:1;background:#111b28;color:#f3f7fc;border:1px solid #3b4b60;border-radius:10px;padding:10px 13px;font:inherit}
.teams-search button{background:#e75c59;color:#fff;border:0;border-radius:10px;padding:10px 18px;font-weight:750;cursor:pointer}
.team-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.directory-team{display:flex;align-items:center;gap:14px;min-width:0;background:#172332;border:1px solid var(--line);border-radius:13px;padding:16px;transition:border-color .16s,background .16s}
.directory-team:hover,.directory-team:focus-visible{background:#203047;border-color:#607690;color:#fff}
.directory-team .team-badge{width:54px;height:54px}
.directory-team-name{min-width:0;flex:1;line-height:1.3;font-size:15px;font-weight:800;overflow-wrap:anywhere}
.directory-team-count{font-size:11px;color:var(--sub);white-space:nowrap}
.team-tabs{display:flex;align-items:center;gap:10px;margin:22px 0;border-bottom:1px solid var(--line)}
.team-tabs a{display:flex;gap:9px;align-items:center;padding:12px 15px;border-bottom:2px solid transparent;color:#9db1c8;font-weight:750}
.team-tabs a.active{border-color:#f17876;color:#fff}
.team-tabs a:hover{color:#fff}
.team-tabs span{background:#2b3b50;border-radius:100px;padding:1px 9px;font-size:12px;color:#d8e6f5}
.team-results-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:22px 0 16px}
.team-results-heading h2{margin:0;font-size:22px}
.team-fixture-groups{display:grid;gap:23px}
.team-date-group h3{font-size:15px;color:#d7e4f3;margin:0 0 11px;border-bottom:1px solid #2d4053;padding:0 0 10px}
.team-date-group .round-list{display:grid;gap:9px}
.team-competition-label{color:#91a8c4;font-size:12px;margin-top:6px;margin-bottom:-4px}
.team-competition-label a{color:#b4c7e1}
.team-competition-label a:hover{color:#ff9b97}
.pagination{display:flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;margin:28px 0 10px}
.pagination a{display:grid;place-items:center;min-width:39px;min-height:39px;padding:7px 11px;border:1px solid #354860;border-radius:9px;background:#172435;color:#ccdaeb;font-weight:750;font-size:13px}
.pagination a.active{background:#e75c59;color:#fff;border-color:#e75c59}
.pagination a:hover,.pagination a:focus-visible{border-color:#ff9692;color:#fff}

@media(max-width:1100px){
 .team-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero,.league-hero{flex-direction:column;align-items:stretch}.league-hero-stats{justify-content:flex-start}
 .league-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fixture-main{grid-template-columns:minmax(0,1fr) 70px minmax(0,1fr);gap:12px}
 .fixture-bottom{flex-wrap:wrap}
}
@media(max-width:800px){
 .topinner{height:auto;min-height:68px;flex-wrap:wrap;padding:13px 0;gap:12px}.top nav{order:3;justify-content:center;width:100%;gap:22px}.country-label{margin-left:auto}
 .twocol{grid-template-columns:1fr}.league-hero-main{align-items:flex-start}
 .featured-grid,.league-card-grid{grid-template-columns:1fr}.hero-side{flex-direction:row}.info-panel dl{grid-template-columns:120px 1fr}
 .round-browser-title{align-items:flex-start}
}
@media(max-width:520px){
 .team-directory-grid{grid-template-columns:1fr}
 .directory-head{align-items:start;flex-direction:column;gap:10px}
 .teams-search>div{flex-direction:column}
 .team-results-heading{align-items:start;flex-direction:column;gap:5px}
 .team-tabs a{padding:11px 13px}
 .directory-team-count{margin-left:auto}
 .wrap{width:calc(100% - 28px)}.topinner{gap:10px}.brand{font-size:16px}.country-label select{width:145px}
 .hero,.league-hero,.match-hero,.team-page-head,.round-page-head{padding:18px;border-radius:15px}.hero{margin:18px 0}
 .hero-side,.league-hero-stats{gap:8px}.hero-stat{padding:10px;min-width:0;flex:1}.hero-stat strong{font-size:21px}.hero-stat span{font-size:10px}
 .league-hero-main{align-items:center;gap:12px}.league-logo.hero-logo{width:66px;height:66px}.league-hero h1{font-size:26px}
 .round-browser{padding:14px;border-radius:14px}.round-browser-title{display:block}.round-browser-title>span{display:block;margin-top:6px;font-size:12px}
 .round-picker{display:grid;grid-template-columns:minmax(0,1fr) 44px 44px;gap:7px;padding:10px}
 .round-picker label{grid-column:1/-1}.round-picker select{grid-column:1;grid-row:2}.round-apply{grid-column:1/-1;grid-row:3}
 .round-picker .round-arrow{grid-row:2;width:44px;padding:0}.round-picker .round-arrow:nth-last-child(2){grid-column:2}.round-picker .round-arrow:last-child{grid-column:3}
 .round-selected h3{font-size:18px}
 .fixture-row{padding:0 12px}
 .fixture-main{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:5px;padding:12px 0}
 .fixture-side .team-link,.fixture-side-home .team-link,.fixture-side-away .team-link{flex-direction:column;align-items:center;text-align:center;gap:5px;width:100%}
 .fixture-side .team-badge{width:38px;height:38px}
 .fixture-side .club-name{font-size:12px;line-height:1.2;overflow-wrap:anywhere}
 .fixture-score{font-size:16px}
 .fixture-bottom{align-items:flex-start;flex-wrap:wrap;gap:6px;padding:9px 0}
 .fixture-time{font-size:11px}
 .fixture-indicators{justify-content:flex-start;gap:7px}
 .fixture-state,.fixture-status{font-size:10px}
 .versus-mini{gap:5px;grid-template-columns:minmax(0,1fr) 36px minmax(0,1fr)}
 .mini-team .team-link,.mini-team.align-right .team-link{flex-direction:column;align-items:center;text-align:center;gap:6px}.mini-team .team-link .club-name{font-size:12px}.mini-team .team-badge{width:42px;height:42px}
 .match-hero-top{align-items:center}.match-hero-top .muted{font-size:11px;text-align:right}
 .versus-row{grid-template-columns:minmax(0,1fr) 63px minmax(0,1fr);gap:7px;margin:15px 0}
 .club,.club-right{justify-content:center}.club .team-link,.club-right .team-link{flex-direction:column;gap:8px;text-align:center}
 .club .club-name{font-size:14px}.team-badge.large{width:66px;height:66px}.team-badge.large .badge-fallback-label{font-size:17px}
 .versus-score{font-size:18px;padding:7px 0}.match-meta-line{font-size:12px}.info-panel dl{grid-template-columns:110px 1fr}
 .team-page-head{gap:13px}.team-page-head h1{font-size:27px}.round-page-head{align-items:flex-start;gap:10px;flex-direction:column}
}
