/* Homepage match-night treatment. Decorative layers never cover controls. */
.public .portal-intro{position:relative;isolation:isolate;margin:24px 0;padding:38px 32px;min-height:242px;overflow:hidden;border-radius:16px;background:#081a33}
.public .portal-intro:before{content:"";position:absolute;z-index:-2;inset:0;background:linear-gradient(90deg,#07182ff5 0%,#081b31dc 43%,#081b3185 78%,#07182fba 100%),url('/assets/editorial-time.jpg') center 52%/cover no-repeat}
.public .portal-intro:after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(118deg,transparent 32%,#e52b4521 48%,transparent 62%);opacity:.8;animation:stadium-light-in 1.2s ease-out both}
.public .portal-intro h1{font-size:clamp(30px,3.4vw,44px);line-height:1.35;text-shadow:0 2px 18px #020b18}
.public .portal-intro h1 span{color:#a9ceff}
.public .portal-intro p{color:#ccd9eb;max-width:650px}
.public .portal-intro .service-links{border-color:#8ba5c5;background:#071b329c;padding:0 16px;border-radius:0 0 8px 8px}
.public .portal-intro .service-links a{color:#edf4ff;border-color:#466381;padding:14px 0}
.public .portal-intro .service-links a span{color:#bccde2}
.public .broadcast-stage{background:linear-gradient(135deg,#102849,#0b1d37 68%);border-color:#314d71;padding:26px;border-radius:16px}
.public .broadcast-stage .stage-heading{margin-bottom:20px}
.public .broadcast-stage .stage-heading h2{font-size:24px}
.public .broadcast-stage .sport-tabs{gap:8px;padding:6px 6px 16px;margin:0 0 16px;border-color:#304965}
.public .broadcast-stage .sport-tabs button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:10px 20px;color:#c3d6ee;border:1px solid transparent;background:transparent;border-radius:9px;transition:background .18s,border-color .18s}
.public .broadcast-stage .sport-tabs button.active{color:white;background:#a91f3a;border-color:#ee4662;box-shadow:inset 0 1px #ff799c33}
.public .broadcast-stage .sport-tabs button[data-sport-filter=football] .category-icon{color:#91d3ff}
.public .broadcast-stage .sport-tabs button[data-sport-filter=basketball] .category-icon{color:#ffc286}
.public .broadcast-stage .sport-tabs button[data-sport-filter=other] .category-icon{color:#bed4ff}
.public .broadcast-stage .sport-tabs button.active .category-icon{color:white}
.public .category-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:20px;height:20px;color:#b7ceea}
.public .category-icon svg{width:100%;height:100%;display:block}
.public .broadcast-stage .toolbar{background:#091b34;border:1px solid #2c4566;padding:10px}
.public .broadcast-stage .filter-row{gap:8px;align-items:center;margin:0 0 12px;padding:4px 0 12px}
.public .broadcast-stage .filter{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:8px 12px;font-size:12px;background:#102642;border-color:#334b68;border-radius:7px;color:#dce8f8;white-space:nowrap}
.public .broadcast-stage .filter .category-icon{width:17px;height:17px}
.public .broadcast-stage .filter [data-count]{display:inline-grid;place-items:center;min-width:21px;min-height:20px;margin-left:2px;padding:0 4px;font-size:10px;line-height:1;border-radius:4px;background:#06172b9c;color:#dbeaff;opacity:1;font-variant-numeric:tabular-nums}
.public .broadcast-stage .filter[data-status=live] .category-icon{color:#6de3c4}
.public .broadcast-stage .filter[data-status=hot] .category-icon{color:#ffad78}
.public .broadcast-stage .filter[data-status=today] .category-icon,.public .broadcast-stage .filter[data-status=tomorrow] .category-icon{color:#8ec7ff}
.public .broadcast-stage .filter.active{background:#b61f3c;border-color:#e74a68}
.public .broadcast-stage .filter.active .category-icon{color:white}
.public .broadcast-stage #update-state{font-size:10px;margin-left:auto}
.public .broadcast-stage #pause{font-size:11px;min-height:36px;padding:6px 10px;background:transparent;border-color:#334b68}
.public .broadcast-stage .match-grid{gap:14px;overflow:visible}
.public .broadcast-stage .match-card{position:relative;isolation:isolate;overflow:hidden;align-items:stretch;border:1px solid #314a6a!important;border-radius:12px!important;background:#0c203b;box-shadow:inset 0 1px #96bde815!important;transition:border-color .18s,background .18s}
.public .broadcast-stage .match-card:before{content:"";position:absolute;z-index:-2;pointer-events:none;inset:0;background:url('/assets/pitch-lines.svg') center/cover no-repeat;opacity:.7}
.public .broadcast-stage .match-card:after{content:"";position:absolute;z-index:-1;pointer-events:none;inset:0;background:radial-gradient(ellipse at 0 0,#a8274930,transparent 55%),radial-gradient(ellipse at 100% 70%,#1c64ab35,transparent 65%)}
.public .broadcast-stage .match-card[data-state=live]{border-color:#83415e!important}
.public .broadcast-stage .match-card[data-state=live]:after{background:radial-gradient(ellipse at 0 0,#ce294143,transparent 55%),radial-gradient(ellipse at 100% 70%,#2169bd3d,transparent 65%)}
.public .broadcast-stage .match-card .match-meta{gap:8px}
.public .broadcast-stage .match-card .fixture-league{max-width:40%;color:#c6d6e9}
.public .broadcast-stage .match-card .match-main{min-height:118px}
.public .broadcast-stage .match-card .team strong{font-weight:600;color:#edf5ff}
.public .broadcast-stage .match-card .crest{width:60px;height:60px;padding:6px;background:#122b49;border:1px solid #57769b66;box-shadow:0 0 0 5px #081a3033}
.public .broadcast-stage .match-card .score{background:linear-gradient(125deg,#203c68,#12315e);border:1px solid #547cad;border-radius:9px;padding:7px 5px;color:#e8f2ff}
.public .broadcast-stage .match-card .match-bottom{margin:auto -20px -20px;padding:13px 20px;align-self:stretch;flex-shrink:0;flex-direction:column;align-items:center;justify-content:flex-end;min-height:104px;gap:8px;text-align:center;background:#06182b80;border-color:#354c68;color:#b7c9df}
.public .broadcast-stage .match-card .match-bottom>span:empty{display:none}
.public .broadcast-stage .match-card .match-bottom a{margin-inline:0;color:#d7e9ff}
.public .broadcast-stage button:focus-visible,.public .broadcast-stage a:focus-visible{outline:2px solid #b7ddff;outline-offset:3px}
@media(hover:hover){.public .broadcast-stage .sport-tabs button:not(.active):hover,.public .broadcast-stage .filter:not(.active):hover{background:#1a3558;border-color:#7c9ec9}.public .broadcast-stage .match-card:hover{background:#102946;border-color:#7598bf!important}}
@keyframes stadium-light-in{from{opacity:0;transform:translateX(-5%)}to{opacity:.8;transform:translateX(0)}}
@media(max-width:1050px){.public .portal-intro{grid-template-columns:minmax(0,1fr);gap:22px;padding:28px}.public .portal-intro .service-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;border-top:1px solid #56708d;padding:0;background:transparent}.public .portal-intro .service-links a{font-size:13px}.public .portal-intro .service-links a span{display:none}}
@media(max-width:640px){
 .public .site-header{min-height:0;padding:8px 14px;gap:0}
 .public .portal-intro{margin:14px 0 18px;min-height:0;padding:18px 18px 12px;border-radius:12px;gap:12px}
 .public .portal-intro:before{background:linear-gradient(90deg,#07182ff2,#07182fa6),url('/assets/editorial-time.jpg') 62% center/cover no-repeat}
 .public .portal-intro h1{font-size:27px;margin:0 0 10px}.public .portal-intro h1 span{font-size:.68em}
 .public .portal-intro p{font-size:12px;line-height:1.7}
 .public .portal-intro .service-links{gap:10px}.public .portal-intro .service-links a{font-size:11px;padding:10px 0}
 .public .broadcast-stage{padding:16px 12px;border-radius:12px}
 .public .broadcast-stage .stage-heading{gap:8px;margin-bottom:12px}.public .broadcast-stage .stage-heading h2{font-size:20px}.public .broadcast-stage .stage-heading>span{font-size:10px}
 .public .broadcast-stage .sport-tabs{padding:0 0 12px;gap:5px;margin-bottom:12px;scrollbar-width:none}
 .public .broadcast-stage .sport-tabs button{min-height:46px;gap:7px;padding:9px 12px;font-size:12px}
 .public .broadcast-stage .sport-tabs .category-icon{width:19px;height:19px}
 .public .broadcast-stage .toolbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 54px;padding:8px;gap:7px}
 .public .broadcast-stage .toolbar .search{grid-column:1/-1}
 .public .broadcast-stage .toolbar>label:last-child{display:none}
 .public .broadcast-stage .toolbar input,.public .broadcast-stage .toolbar select{min-width:0;width:100%;font-size:12px;padding:8px 6px}
 .public .broadcast-stage .toolbar .search input{font-size:16px}
 .public .broadcast-stage .toolbar #clear-date{padding:8px 3px;min-width:0;font-size:11px}
 .public .broadcast-stage .filter-row{display:flex;flex-wrap:nowrap;overflow-x:auto;padding:4px 0 12px;margin-bottom:4px;gap:6px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#54779d #0a1c33}
 .public .broadcast-stage .filter-row button{min-height:44px;padding:9px 11px;font-size:12px;scroll-snap-align:start}
 .public .broadcast-stage .filter-row #update-state{min-width:100px;max-width:112px;font-size:10px}
 .public .broadcast-stage #board{margin-top:8px}
 .public .broadcast-stage .match-card{padding:14px;gap:12px}
 .public .broadcast-stage .match-card .fixture-league{max-width:40%;font-size:10px}
 .public .broadcast-stage .match-card .match-meta{font-size:10px;gap:5px}
 .public .broadcast-stage .match-card .match-main{min-height:108px;grid-template-columns:minmax(0,1fr) 64px minmax(0,1fr);gap:8px}
 .public .broadcast-stage .match-card .crest{width:52px;height:52px;padding:5px}
 .public .broadcast-stage .match-card .team strong{font-size:13px;line-height:1.5}
 .public .broadcast-stage .match-card .match-bottom{margin:auto -14px -14px;padding:12px 14px}
}
@media(prefers-reduced-motion:reduce){.public .portal-intro:after{animation:none}.public .broadcast-stage .match-card,.public .broadcast-stage button{transition:none}}
