:root{--accent:#69b7ff;--bg:#dff3ff;--panel:#f4fbff;--panel2:#e9f7ff;--text:#10273a;--muted:#58788f;--line:rgba(255,255,255,.085);--shadow:0 24px 80px rgba(0,0,0,.45)}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;color:var(--text);background:linear-gradient(145deg,#eefaff 0%,#d8f1ff 38%,#b9e2ff 72%,#8fc8f2 100%);background-attachment:fixed}button,input,select{font:inherit}button{cursor:pointer}.muted{color:var(--muted)}.glass{background:rgba(9,24,38,.82);border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(22px);box-shadow:var(--shadow)}.login-page{background:linear-gradient(145deg,#f5fcff 0%,#dff4ff 28%,#bfe6ff 62%,#8fcaf3 100%)}.login-page:before{content:"";position:fixed;inset:0;background-image:linear-gradient(rgba(226,246,255,.48),rgba(148,207,246,.60)),var(--login-bg,none);background-size:cover;background-position:center;z-index:-1}.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{width:min(460px,100%);padding:42px;border-radius:28px}.login-logo{display:block;max-width:210px;max-height:90px;object-fit:contain;margin:0 auto 28px}.wordmark{font-weight:900;font-size:34px;letter-spacing:-1.5px}.wordmark.small{font-size:24px}.login-card h1{font-size:34px;margin:12px 0 6px}.login-card form{display:grid;gap:18px;margin-top:28px}.login-card label,.admin-card label{display:grid;gap:8px;font-size:13px;color:#bdd3e5;font-weight:700}.login-card input,.admin-card input{width:100%;border:1px solid rgba(255,255,255,.12);background:#081522;color:#fff;border-radius:14px;padding:14px 15px;outline:none}.login-card input:focus,.admin-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(105,183,255,.12)}.primary{border:0;background:linear-gradient(135deg,#8ed0ff,var(--accent));color:#02111f;padding:14px 18px;border-radius:14px;font-weight:900}.error{min-height:20px;color:#ff8790;font-size:13px}
.player-page{background:radial-gradient(circle at 68% -8%,rgba(255,255,255,.88),transparent 30%),linear-gradient(145deg,#eefaff 0%,#d9f2ff 38%,#bce4ff 72%,#91caf2 100%);background-attachment:fixed}.tv-topbar{height:74px;display:grid;grid-template-columns:240px 1fr 180px;align-items:center;padding:0 32px;gap:20px;position:sticky;top:0;z-index:60;background:linear-gradient(rgba(230,247,255,.97) 25%,rgba(194,229,250,.94));backdrop-filter:blur(18px);border-bottom:1px solid rgba(255,255,255,.045)}.brand-wrap{text-decoration:none;color:#123047}.brand-logo{height:43px;max-width:190px;object-fit:contain}.main-nav{display:flex;justify-content:center;gap:8px}.topnav{border:0;background:transparent;color:#4d728b;padding:10px 15px;border-radius:999px;font-weight:800}.topnav:hover,.topnav.active{color:#123047;background:rgba(255,255,255,.58)}.header-tools{display:flex;justify-content:flex-end;align-items:center;gap:12px}.icon-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.05);color:#fff;font-size:25px}.profile-chip{width:38px;height:38px;border-radius:10px;background:linear-gradient(135deg,var(--accent),#326eaa);display:grid;place-items:center;color:#06101a;font-weight:950;text-decoration:none}.tv-main{max-width:1780px;margin:0 auto;padding-bottom:80px}.page-view{display:none}.page-view.active{display:block}.hero{min-height:600px;position:relative;padding:54px 44px 30px;display:grid;grid-template-columns:minmax(360px,.8fr) minmax(580px,1.35fr);align-items:center;gap:42px;overflow:hidden}.hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 42%,rgba(82,177,241,.20),transparent 30%),linear-gradient(90deg,#08131e 0,rgba(8,19,30,.92) 40%,rgba(5,11,18,.35) 75%,#050b12 100%);z-index:-2}.hero:after{content:"";position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,#050b12);z-index:-1}.hero-content{max-width:650px;z-index:2}.hero-kicker,.eyebrow{font-size:11px;letter-spacing:.16em;color:#9fd7ff;font-weight:950}.hero h1{font-size:clamp(42px,5vw,76px);line-height:.98;letter-spacing:-3px;margin:14px 0 18px}.hero-content p{font-size:19px;color:#abc0cf;line-height:1.55;max-width:600px}.hero-actions{display:flex;gap:12px;margin-top:26px}.watch-btn,.soft-btn{border:0;border-radius:12px;padding:12px 17px;font-weight:900}.watch-btn{background:#fff;color:#06101a}.watch-btn:disabled{opacity:.4}.soft-btn{background:rgba(255,255,255,.09);border:1px solid var(--line);color:#fff}.hero-preview{z-index:2}.hero-video-shell{aspect-ratio:16/9;background:#000;border-radius:22px;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.12);box-shadow:0 35px 100px rgba(0,0,0,.55)}video{width:100%;height:100%;display:block;background:#000}.video-empty{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:8px;background:radial-gradient(circle,#12314a,#020609);color:#8ea5b7}.play-mark{font-size:44px;color:var(--accent)}.player-status{position:absolute;left:16px;bottom:16px;background:rgba(0,0,0,.72);padding:7px 10px;border-radius:9px;font-size:12px}.player-status:empty{display:none}.now-strip{display:flex;justify-content:space-between;align-items:center;padding:13px 6px 0;font-weight:850}.now-strip .muted{font-size:13px;margin-top:3px;font-weight:500}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#fb4c5f;margin-right:8px;box-shadow:0 0 0 4px rgba(251,76,95,.12)}.favorite-btn{border:0;background:transparent;color:#8da5b6;font-size:31px}.favorite-btn.on{color:#ffd56b}.rail-section{padding:8px 44px 28px}.rail-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.rail-head h2{font-size:24px;margin:0;letter-spacing:-.6px}.text-btn{border:0;background:transparent;color:#a9d9fb;font-weight:800}.content-rail{display:flex;gap:15px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 15px;scrollbar-width:thin;scroll-snap-type:x proximity}.media-card{flex:0 0 190px;text-align:left;border:0;background:transparent;color:#fff;padding:0;scroll-snap-align:start}.media-card.wide{flex-basis:260px}.media-art{height:108px;background:linear-gradient(145deg,#0f2130,#08121c);border-radius:12px;display:grid;place-items:center;position:relative;overflow:hidden;border:1px solid rgba(255,255,255,.07);transition:.18s}.media-card.wide .media-art{height:145px}.media-art img{width:80%;height:75%;object-fit:contain}.media-art>span:first-child:not(.card-live):not(.card-play){font-size:25px;font-weight:950;color:#7392a9}.card-live{position:absolute;left:8px;top:8px;background:#e64055;color:#fff;font-size:9px;font-weight:950;padding:4px 6px;border-radius:5px}.card-play{position:absolute;inset:0;display:grid;place-items:center;font-size:30px;background:rgba(1,7,12,.38);opacity:0;transition:.18s}.media-card:hover .media-art{transform:scale(1.035);border-color:rgba(105,183,255,.42);box-shadow:0 18px 40px rgba(0,0,0,.28)}.media-card:hover .card-play{opacity:1}.media-name{font-weight:850;font-size:14px;margin-top:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-program{font-size:12px;color:#8098aa;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.guide-toolbar{padding:42px 44px 22px;display:flex;justify-content:space-between;align-items:end}.guide-toolbar h1,.library-head h1{font-size:42px;margin:6px 0 5px;letter-spacing:-1.6px}.guide-actions{display:flex;gap:8px}.guide-actions select{background:#0d1c28;border:1px solid var(--line);color:#fff;border-radius:11px;padding:10px 36px 10px 12px}.epg-wrap{margin:0 44px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#07111a}.epg-header{height:54px;display:grid;grid-template-columns:240px 1fr;position:sticky;top:74px;z-index:20;background:#0a1722;border-bottom:1px solid var(--line)}.epg-corner{padding:17px 16px;font-size:12px;font-weight:900;color:#8aa1b2;border-right:1px solid var(--line)}.time-track{display:grid;grid-template-columns:repeat(5,1fr)}.time-cell{padding:17px 12px;font-size:12px;font-weight:850;color:#9db1c0;border-right:1px solid var(--line)}.epg-grid{min-height:400px}.epg-row{height:82px;display:grid;grid-template-columns:240px 1fr;border-bottom:1px solid rgba(255,255,255,.055)}.epg-channel{display:grid;grid-template-columns:52px 1fr;gap:10px;align-items:center;text-align:left;border:0;border-right:1px solid var(--line);background:#08131d;color:#fff;padding:9px 12px}.epg-channel:hover{background:#10283a}.epg-logo{width:48px;height:48px;border-radius:9px;background:#0d2130;display:grid;place-items:center;overflow:hidden;color:#6f8ba0;font-size:10px}.epg-logo img{width:90%;height:90%;object-fit:contain}.epg-channel b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epg-channel small{font-size:9px;color:#e76575;font-weight:900}.program-track{position:relative;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(20% - 1px),rgba(255,255,255,.045) calc(20% - 1px),rgba(255,255,255,.045) 20%)}.program-block{position:absolute;top:7px;bottom:7px;border:0;border-right:2px solid #07111a;border-radius:7px;background:#0d2130;color:#e9f5fd;text-align:left;padding:9px 10px;overflow:hidden}.program-block:hover,.program-block.current{background:linear-gradient(135deg,rgba(105,183,255,.30),rgba(22,72,107,.55));box-shadow:inset 0 0 0 1px rgba(126,204,255,.26)}.program-block b,.program-block span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.program-block b{font-size:12px}.program-block span{font-size:10px;color:#92aabc;margin-top:4px}.program-block.placeholder{background:#0b1924;color:#879cac}.guide-loading,.empty{padding:46px;color:#839aaa;text-align:center}.library-head{padding:48px 44px 10px}.poster-grid{padding:24px 44px;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:24px 16px}.poster-grid .media-card{width:100%;flex:auto}.poster-grid .media-art{height:120px}
.search-overlay{position:fixed;inset:0;z-index:100;background:rgba(1,6,10,.88);backdrop-filter:blur(18px);opacity:0;pointer-events:none;transition:.18s}.search-overlay.open{opacity:1;pointer-events:auto}.search-panel{max-width:1300px;margin:0 auto;padding:70px 40px}.search-title{font-size:30px;font-weight:900;margin-bottom:16px}.search-panel input{width:100%;background:#0b1924;border:1px solid var(--line);border-radius:15px;padding:16px 18px;color:#fff;font-size:20px;outline:none}.search-panel input:focus{border-color:var(--accent)}.search-close{position:absolute;right:35px;top:25px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#0d1d29;color:#fff;font-size:28px}
.admin-page{padding:30px;background:radial-gradient(circle at 12% 0,rgba(255,255,255,.92),transparent 28%),linear-gradient(145deg,#f3fbff 0%,#d9f1ff 42%,#afdfff 100%);min-height:100vh}.admin-wrap{max-width:1000px;margin:0 auto}.admin-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-card{background:#0b1b29;border:1px solid var(--line);border-radius:18px;padding:22px}.admin-card h2{margin-top:0}.admin-card label{margin:14px 0}.admin-card input[type=file]{padding:10px}.preview{max-width:100%;max-height:160px;object-fit:contain;background:#07111d;border-radius:12px;padding:12px}.notice{padding:12px 14px;border-radius:11px;background:rgba(105,183,255,.11);color:#bfe1ff;margin-bottom:15px}.ghost{border:1px solid var(--line);background:rgba(255,255,255,.045);color:#dcedf9;text-decoration:none;padding:9px 13px;border-radius:11px;font-weight:700}
@media(max-width:1100px){.tv-topbar{grid-template-columns:180px 1fr 110px;padding:0 18px}.hero{grid-template-columns:1fr;padding:35px 24px}.hero-content{max-width:none}.hero h1{font-size:48px}.hero-preview{max-width:900px}.rail-section,.guide-toolbar,.library-head{padding-left:24px;padding-right:24px}.epg-wrap{margin:0 24px}.epg-header,.epg-row{grid-template-columns:200px 1fr}.epg-corner{width:200px}.admin-grid{grid-template-columns:1fr}}
@media(max-width:720px){.tv-topbar{height:auto;min-height:68px;grid-template-columns:1fr auto;padding:10px 14px}.main-nav{grid-column:1/-1;order:3;justify-content:flex-start;overflow:auto}.brand-logo{height:34px}.header-tools{grid-column:2}.hero{min-height:auto;padding:28px 14px 20px;gap:24px}.hero h1{font-size:38px;letter-spacing:-1.6px}.hero-content p{font-size:16px}.hero-preview{order:-1}.hero-video-shell{border-radius:13px}.rail-section,.guide-toolbar,.library-head{padding-left:14px;padding-right:14px}.media-card{flex-basis:155px}.media-card.wide{flex-basis:210px}.media-art{height:88px}.media-card.wide .media-art{height:118px}.guide-toolbar{align-items:flex-start;gap:16px;flex-direction:column}.guide-actions{width:100%;overflow:auto}.epg-wrap{margin:0 14px;overflow-x:auto}.epg-header,.epg-row{min-width:940px;grid-template-columns:180px 1fr}.epg-header{top:112px}.poster-grid{padding:18px 14px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 10px}.poster-grid .media-art{height:95px}.search-panel{padding:70px 14px}.login-card{padding:28px 22px;border-radius:20px}}

/* v2.3 Carolina high-contrast refinements */
.player-page{color:#10273a;background:radial-gradient(circle at 68% -8%,rgba(255,255,255,.96),transparent 30%),linear-gradient(145deg,#f5fcff 0%,#dff4ff 34%,#c2e8ff 68%,#91caf2 100%)}
.icon-btn{background:rgba(255,255,255,.42);color:#163b55;border-color:rgba(21,72,108,.12)}
.hero:before{background:radial-gradient(circle at 78% 40%,rgba(85,181,241,.24),transparent 34%),linear-gradient(90deg,rgba(245,252,255,.98) 0,rgba(223,244,255,.94) 43%,rgba(183,226,253,.62) 76%,rgba(145,202,242,.32) 100%)}
.hero:after{background:linear-gradient(transparent,rgba(202,235,255,.28))}
.hero-content{background:rgba(255,255,255,.36);border:1px solid rgba(255,255,255,.5);box-shadow:0 18px 50px rgba(52,111,150,.10);backdrop-filter:blur(10px);border-radius:22px;padding:24px}
.hero-kicker,.eyebrow{color:#1b678f}.hero h1{color:#0a2940;text-shadow:0 1px 0 rgba(255,255,255,.75)}.hero-content p{color:#3b647d}.soft-btn{background:rgba(255,255,255,.62);border-color:rgba(25,85,124,.15);color:#123c58}.text-btn{color:#176e9f}.rail-head h2,.library-head h1,.guide-toolbar h1{color:#0d2c43}
.media-card{color:#0d2c43}.media-name{color:#0b2a41;font-weight:900;font-size:15px;line-height:1.25;text-shadow:0 1px 0 rgba(255,255,255,.7)}.media-program{color:#446b83;font-size:13px;font-weight:650}.media-art{background:linear-gradient(145deg,#12314a,#081a2a);border-color:rgba(10,55,84,.11);box-shadow:0 8px 24px rgba(33,91,128,.12)}
.now-strip{color:#0d2c43}.now-strip .muted{color:#4b7087}.favorite-btn{color:#50758c}
.epg-wrap{border-color:rgba(8,48,75,.20);box-shadow:0 18px 46px rgba(47,103,139,.16)}.epg-header{background:#123b56}.epg-corner,.time-cell{color:#eaf8ff}.epg-channel{background:#f1faff;color:#0c2c43;border-right-color:rgba(17,70,104,.16)}.epg-channel:hover{background:#dff3ff}.epg-channel b{font-size:14px;font-weight:900;color:#0a2b43}.epg-channel small{font-size:10px;color:#d7354a}.epg-logo{background:#d8eefb;color:#315f7b}
.program-track{background:repeating-linear-gradient(90deg,#f7fcff 0,#f7fcff calc(20% - 1px),#d5eaf6 calc(20% - 1px),#d5eaf6 20%)}.program-block{background:#e2f3fd;color:#0b3049;border-right:2px solid #c8e3f2;box-shadow:inset 0 0 0 1px rgba(35,107,149,.10)}.program-block b{font-size:13px;font-weight:900;color:#0a2b43}.program-block span{font-size:11px;color:#52748a;font-weight:700}.program-block:hover,.program-block.current{background:linear-gradient(135deg,#c1e8ff,#93d0f5);box-shadow:inset 0 0 0 2px rgba(25,117,170,.28)}.program-block.placeholder{background:#eef8fe;color:#466b82}
.guide-toolbar .muted,.library-head .muted,.guide-loading,.empty{color:#4d7188}.guide-actions select{background:#f3fbff;border-color:rgba(17,70,104,.18);color:#123c58}.search-title{color:#fff}
@media(max-width:720px){.hero-content{padding:18px}.media-name{font-size:14px}.media-program{font-size:12px}}


/* v2.6 Guide visibility, logo presentation, category selector */
html{scroll-behavior:auto}
.guide-toolbar{scroll-margin-top:82px}
.epg-wrap{overflow:visible;background:#f7fcff}
.epg-header{position:sticky;top:74px;z-index:35;border-radius:16px 16px 0 0;overflow:hidden;box-shadow:0 5px 14px rgba(12,55,82,.14)}
.epg-grid{position:relative;z-index:1;background:#f7fcff;border-radius:0 0 16px 16px;overflow:hidden}
.epg-row:first-child{border-top:1px solid rgba(17,70,104,.14)}
.epg-logo img,.media-art img{background:rgba(255,255,255,.94);border-radius:8px;padding:4px;max-width:92%;max-height:92%}
.guide-actions select{min-width:260px;font-weight:800}
.guide-actions select optgroup{font-weight:900;color:#123c58;background:#f3fbff}
.guide-actions select option{font-weight:650;color:#123c58;background:#fff}
@media(max-width:720px){.epg-wrap{overflow-x:auto;overflow-y:visible}.epg-header{top:112px}.guide-actions select{min-width:230px}}


/* v2.7 active-channel logo backdrop */
.hero-video-shell{isolation:isolate;background:linear-gradient(145deg,#06131d,#0c2638)}
.hero-video-shell video{position:relative;z-index:2;background:transparent}
.player-logo-backdrop{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .28s ease;background:radial-gradient(circle at center,rgba(255,255,255,.09),transparent 58%)}
.player-logo-backdrop.show{opacity:1}
.player-logo-backdrop img{width:min(62%,470px);height:min(62%,260px);object-fit:contain;opacity:.24;filter:drop-shadow(0 10px 30px rgba(0,0,0,.20));transform:scale(1);transition:opacity .25s ease,transform .25s ease}
.player-logo-backdrop.is-playing img{opacity:.075;transform:scale(.96)}
.player-logo-backdrop.is-playing{background:transparent}
.video-empty{z-index:4;background:transparent}
.player-status{z-index:5}
@media(max-width:720px){.player-logo-backdrop img{width:68%;height:62%;opacity:.22}.player-logo-backdrop.is-playing img{opacity:.065}}

/* v2.9 selected channel logo belongs to the hero background, never over video */
.player-logo-backdrop{display:none!important}
.hero-channel-backdrop{position:absolute;right:1.5%;top:50%;width:48%;height:78%;transform:translateY(-50%);z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0;transition:opacity .3s ease;overflow:hidden}
.hero-channel-backdrop.show{opacity:1}
.hero-channel-backdrop:before{content:"";position:absolute;inset:3%;background:radial-gradient(circle at center,rgba(255,255,255,.30),rgba(157,218,255,.13) 42%,transparent 72%);filter:blur(14px)}
.hero-channel-backdrop img{position:relative;width:min(76%,620px);height:min(72%,390px);object-fit:contain;opacity:.14;filter:drop-shadow(0 20px 50px rgba(25,84,125,.16));}
.hero-content,.hero-preview{position:relative;z-index:2}
.hero-video-shell{z-index:3;background:#000}
@media(max-width:980px){.hero-channel-backdrop{right:0;width:62%;height:62%}.hero-channel-backdrop img{opacity:.10}}
@media(max-width:720px){.hero-channel-backdrop{width:100%;height:48%;top:28%;right:0}.hero-channel-backdrop img{opacity:.08}}

/* v3.0 mobile streaming + guide stability */
@media(max-width:720px){
  .epg-wrap{overflow-x:auto;overflow-y:visible;padding-top:0!important;scroll-padding-top:0!important}
  .epg-header{position:relative!important;top:auto!important;z-index:2!important}
  .epg-grid{position:relative!important;margin-top:0!important;padding-top:0!important}
  .epg-row:first-child{margin-top:0!important}
  .guide-toolbar{scroll-margin-top:0!important}
}


/* v3.3 NFL showcase */
.nfl-showcase{
  margin-top:32px;
  padding:26px 24px 30px;
  border-radius:28px;
  background:linear-gradient(135deg,rgba(255,255,255,.82),rgba(209,237,255,.68));
  border:1px solid rgba(16,72,112,.13);
  box-shadow:0 18px 50px rgba(18,82,125,.12);
  overflow:hidden;
}
.nfl-showcase-head{align-items:flex-end;margin-bottom:18px}
.nfl-showcase-head h2{font-size:clamp(28px,3vw,42px);margin:2px 0 0}
.nfl-showcase-copy{margin:4px 0 0;color:#37627d;font-weight:700}
.nfl-showcase-rail{gap:18px}
.nfl-showcase .media-card{min-width:300px;width:300px}
.nfl-showcase .media-art{height:172px;border-radius:18px}
.nfl-showcase .media-name{font-size:17px;margin-top:10px}
.nfl-showcase .media-program{font-size:14px}
@media(max-width:700px){
  .nfl-showcase{margin:24px 12px 0;padding:20px 14px 24px;border-radius:22px}
  .nfl-showcase .media-card{min-width:245px;width:245px}
  .nfl-showcase .media-art{height:140px}
}


/* v4.1 Video.js integration */
.hero-video-shell .video-js{
  width:100%;
  height:100%;
  background:#000;
  border-radius:inherit;
  overflow:hidden;
}
.hero-video-shell .video-js .vjs-tech{
  object-fit:contain;
}
.hero-video-shell .vjs-control-bar{
  background:linear-gradient(to top,rgba(4,19,32,.92),rgba(4,19,32,.12));
}
.hero-video-shell .vjs-big-play-button{
  border:0;
  border-radius:999px;
  width:72px;
  height:72px;
  line-height:72px;
  margin-left:-36px;
  margin-top:-36px;
  background:rgba(84,174,234,.9);
}
.hero-video-shell .vjs-loading-spinner{
  border-color:rgba(255,255,255,.65);
  border-top-color:transparent;
}
@media(max-width:700px){
  .hero-video-shell .vjs-big-play-button{
    width:58px;height:58px;line-height:58px;
    margin-left:-29px;margin-top:-29px;
  }
}


/* v5.0 JW Player */
.jw-player-host,
.native-fallback{
  width:100%;
  height:100%;
  min-height:100%;
  background:#000;
  border-radius:inherit;
  overflow:hidden;
}
.jw-player-host .jwplayer,
.jw-player-host .jw-wrapper,
.jw-player-host .jw-media,
.jw-player-host video{
  border-radius:inherit;
}
.native-fallback{
  display:none;
  object-fit:contain;
}
.hero-video-shell #jwPlayer{
  position:absolute;
  inset:0;
}
.hero-video-shell #nativeFallback{
  position:absolute;
  inset:0;
}


/* v5.3 — Login / branding polish (playback remains v5.1 JW Hosted) */
.login-page{
  background:
    radial-gradient(circle at 20% 12%, rgba(255,255,255,.78), transparent 36%),
    linear-gradient(135deg,#dff5ff 0%,#bfe7fb 48%,#8fd0f3 100%);
}

.login-card{
  background:rgba(255,255,255,.94) !important;
  border:1px solid rgba(13,64,98,.12);
  box-shadow:0 22px 55px rgba(15,66,101,.20);
  color:#0a2940 !important;
  backdrop-filter:blur(10px);
}

.login-card .brand-logo,
.login-card .login-logo,
.login-card img.logo,
.login-card .brand-wrap img{
  background:#f8fcff;
  padding:12px 16px;
  border-radius:14px;
  max-width:190px;
  max-height:72px;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:none !important;
  opacity:1 !important;
  box-shadow:0 8px 24px rgba(26,92,132,.10);
}

.login-card h1,
.login-card h2,
.login-card .login-title,
.login-card .wordmark{
  color:#082b45 !important;
  text-shadow:none !important;
}

.login-card p,
.login-card .muted,
.login-card .subtitle,
.login-card .login-subtitle{
  color:#55758a !important;
}

.login-card label{
  color:#173f58 !important;
  font-weight:800;
}

.login-card input{
  background:#f7fbfe !important;
  color:#102d40 !important;
  border:1px solid #b8d8e9 !important;
  box-shadow:inset 0 1px 2px rgba(15,60,90,.04);
}

.login-card input:focus{
  outline:none;
  border-color:#58ace2 !important;
  box-shadow:0 0 0 3px rgba(88,172,226,.18);
}

.login-card .primary,
.login-card button[type="submit"],
.login-card .login-btn{
  background:linear-gradient(135deg,#75c6f6,#4fa9e5) !important;
  color:#06243a !important;
  font-weight:900;
  border:none !important;
  box-shadow:0 9px 22px rgba(66,155,213,.25);
}

.login-card .primary:hover,
.login-card button[type="submit"]:hover,
.login-card .login-btn:hover{
  filter:brightness(1.03);
  transform:translateY(-1px);
}

.login-card small,
.login-card .help-text{
  color:#68889c !important;
}

@media(max-width:600px){
  .login-card{
    width:min(92vw,420px);
    padding:24px 20px !important;
  }
  .login-card .brand-logo,
  .login-card .login-logo,
  .login-card img.logo,
  .login-card .brand-wrap img{
    max-width:170px;
  }
}


/* v5.4 — Minimal customer login + matching admin login */
.login-card h1,
.login-card h2,
.login-card .login-title,
.login-card .login-subtitle{
  margin-top:0;
}

/* Customer login intentionally keeps only logo, credentials, and sign-in. */
.login-page .login-card > p:empty,
.login-page .login-card > div:empty{
  display:none;
}

/* Admin login gets the same light/high-contrast treatment even if its markup differs. */
.admin-login-page{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(circle at 20% 12%, rgba(255,255,255,.78), transparent 36%),
    linear-gradient(135deg,#dff5ff 0%,#bfe7fb 48%,#8fd0f3 100%);
  color:#0a2940;
}

.admin-login-page form,
.admin-login-page .login-card,
.admin-login-page .admin-login,
.admin-login-page .login-box{
  background:rgba(255,255,255,.95) !important;
  color:#0a2940 !important;
  border:1px solid rgba(13,64,98,.12);
  border-radius:18px;
  box-shadow:0 22px 55px rgba(15,66,101,.20);
}

.admin-login-page h1,
.admin-login-page h2,
.admin-login-page h3,
.admin-login-page label,
.admin-login-page .wordmark,
.admin-login-page .title{
  color:#082b45 !important;
  text-shadow:none !important;
}

.admin-login-page p,
.admin-login-page .muted,
.admin-login-page small{
  color:#55758a !important;
}

.admin-login-page input{
  background:#f7fbfe !important;
  color:#102d40 !important;
  border:1px solid #b8d8e9 !important;
}

.admin-login-page input:focus{
  outline:none;
  border-color:#58ace2 !important;
  box-shadow:0 0 0 3px rgba(88,172,226,.18);
}

.admin-login-page button,
.admin-login-page .primary{
  background:linear-gradient(135deg,#75c6f6,#4fa9e5) !important;
  color:#06243a !important;
  font-weight:900;
  border:none !important;
}


/* v5.5 — Dedicated admin login fix */
body.admin-login-page{
  margin:0 !important;
  min-height:100vh !important;
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,.80), transparent 34%),
    linear-gradient(135deg,#e8f8ff 0%,#c7ebfc 50%,#93d2f3 100%) !important;
  color:#0b2c43 !important;
  font-family:inherit;
}

.admin-login-shell{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 18px;
  box-sizing:border-box;
}

.admin-login-card{
  width:min(390px,92vw);
  padding:30px 28px 28px;
  border-radius:22px;
  background:rgba(255,255,255,.96) !important;
  color:#0b2c43 !important;
  border:1px solid rgba(21,75,108,.12);
  box-shadow:0 24px 60px rgba(20,76,111,.18);
  box-sizing:border-box;
}

.admin-login-brand{
  font-size:30px;
  line-height:1;
  font-weight:900;
  color:#092b43 !important;
  letter-spacing:-.7px;
}

.admin-login-subbrand{
  margin-top:4px;
  margin-bottom:24px;
  font-size:20px;
  font-weight:800;
  color:#3d6c88 !important;
}

.admin-login-card form{
  display:grid;
  gap:16px;
  background:transparent !important;
  padding:0 !important;
  margin:0 !important;
  box-shadow:none !important;
  border:0 !important;
}

.admin-login-card label{
  display:grid;
  gap:7px;
  color:#173e57 !important;
  font-size:13px;
  font-weight:800;
}

.admin-login-card input{
  width:100%;
  min-height:46px;
  box-sizing:border-box;
  border-radius:10px;
  border:1px solid #b8d8e9 !important;
  background:#f7fbfe !important;
  color:#102d40 !important;
  padding:0 13px;
  font-size:15px;
  box-shadow:none !important;
}

.admin-login-card input:focus{
  outline:none;
  border-color:#57ace3 !important;
  box-shadow:0 0 0 3px rgba(87,172,227,.18) !important;
}

.admin-login-card button.primary{
  min-height:46px;
  border:0 !important;
  border-radius:10px;
  background:linear-gradient(135deg,#77c9f7,#4fa9e5) !important;
  color:#06243a !important;
  font-weight:900;
  font-size:14px;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(64,151,207,.22);
}

.admin-login-card button.primary:hover{
  filter:brightness(1.03);
  transform:translateY(-1px);
}

.admin-login-card .login-error{
  margin:0 0 16px;
  padding:10px 12px;
  border-radius:10px;
  background:#fff0f0;
  color:#9b2323 !important;
  font-size:13px;
  font-weight:700;
  border:1px solid #f1c7c7;
}

@media(max-width:600px){
  .admin-login-card{
    width:min(94vw,380px);
    padding:26px 20px 24px;
  }
}


/* v5.7 — Smart local channel logos (zero external image requests) */
.media-art{
  display:flex;
  align-items:center;
  justify-content:center;
}

.smart-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  width:78%;
  height:68%;
  padding:8px 12px;
  box-sizing:border-box;
  border-radius:10px;
  background:#fff;
  color:#102b3d;
  font-size:clamp(18px,1.55vw,30px);
  line-height:1;
  font-weight:900;
  letter-spacing:-.5px;
  text-align:center;
  white-space:normal;
  overflow:hidden;
  box-shadow:0 5px 16px rgba(0,0,0,.14);
}

.smart-logo-generic{
  background:linear-gradient(145deg,#f9fcff,#d9effb);
  color:#184765;
  border:1px solid rgba(24,71,101,.12);
}

.smart-logo-espn{color:#d71920;font-style:italic;font-size:clamp(22px,2vw,36px)}
.smart-logo-foxnews{background:#fff;color:#173f78}
.smart-logo-fox{background:#fff;color:#123f75}
.smart-logo-abc{background:#111;color:#fff;border-radius:50%;width:58%;height:78%;text-transform:lowercase}
.smart-logo-cbs{background:#fff;color:#111}
.smart-logo-nbc{background:#fff;color:#24374a}
.smart-logo-cnn{background:#fff;color:#cc161c}
.smart-logo-msnbc{background:#fff;color:#222}
.smart-logo-cnbc{background:#fff;color:#184b73}
.smart-logo-tnt,.smart-logo-tbs{background:#fff;color:#111;border-radius:999px}
.smart-logo-ae{background:#fff;color:#111;font-size:clamp(24px,2.1vw,38px)}
.smart-logo-amc{background:#fff;color:#111;border:3px solid #111}
.smart-logo-adultswim{background:#fff;color:#111;font-family:monospace}
.smart-logo-animal{background:#fff;color:#2475a4;font-size:clamp(13px,1.2vw,21px)}
.smart-logo-discovery{background:#fff;color:#1d4863;font-size:clamp(14px,1.25vw,22px)}
.smart-logo-history{background:#fff;color:#a52024}
.smart-logo-hgtv{background:#fff;color:#15689d}
.smart-logo-food{background:#fff;color:#b52638;font-size:clamp(13px,1.2vw,21px)}
.smart-logo-tlc{background:#fff;color:#d1222a}
.smart-logo-bravo{background:#fff;color:#111}
.smart-logo-e{background:#111;color:#fff}
.smart-logo-fx{background:#111;color:#fff}
.smart-logo-usa{background:#fff;color:#1e4381}
.smart-logo-syfy{background:#fff;color:#563b84}
.smart-logo-trutv{background:#fff;color:#62a93b}
.smart-logo-paramount{background:#fff;color:#255d9b;font-size:clamp(14px,1.25vw,22px)}
.smart-logo-comedy{background:#fff;color:#111;font-size:clamp(12px,1.1vw,19px)}
.smart-logo-mtv{background:#fff;color:#111}
.smart-logo-vh1{background:#fff;color:#111}
.smart-logo-disney{background:#fff;color:#2463a4}
.smart-logo-nick{background:#fff;color:#f58220}
.smart-logo-cartoon{background:linear-gradient(90deg,#111 0 50%,#fff 50%);color:#fff;text-shadow:2px 2px #111}
.smart-logo-nfl{background:#fff;color:#183b6b}
.smart-logo-nba{background:#fff;color:#1c4f9a}
.smart-logo-mlb{background:#fff;color:#193d6c}
.smart-logo-nhl{background:#fff;color:#111}
.smart-logo-golf{background:#fff;color:#176b4d}
.smart-logo-btn{background:#fff;color:#1c4f95}
.smart-logo-sec{background:#fff;color:#1f55a5}
.smart-logo-acc{background:#fff;color:#194f91}
.smart-logo-weather{background:#fff;color:#1465a0;font-size:clamp(13px,1.2vw,21px)}
.smart-logo-hallmark{background:#fff;color:#9b7a30;font-family:serif}
.smart-logo-lifetime{background:#fff;color:#8e316d}
.smart-logo-cspan{background:#fff;color:#1c4d82}
.smart-logo-bloomberg{background:#fff;color:#111;font-size:clamp(13px,1.2vw,21px)}
.smart-logo-newsmax{background:#fff;color:#1b4f91}
.smart-logo-court{background:#fff;color:#204d72}
.smart-logo-ion{background:#fff;color:#278b9d}
.smart-logo-cw{background:#fff;color:#111}
.smart-logo-pbs{background:#fff;color:#183e73}
.smart-logo-qvc{background:#fff;color:#246f7a}
.smart-logo-hsn{background:#fff;color:#187aa1}

.epg-channel-icon .smart-logo,
.channel-logo .smart-logo{
  width:100%;
  height:100%;
  padding:4px 6px;
  font-size:12px;
  border-radius:7px;
  box-shadow:none;
}

@media(max-width:700px){
  .smart-logo{
    width:80%;
    height:66%;
    font-size:18px;
    padding:6px 8px;
  }
}


/* v5.8 — Search overlay readability */
.search-overlay{
  color:#f7fbff;
}

.search-overlay .search-title{
  color:#ffffff !important;
}

.search-overlay #search,
.search-overlay input{
  color:#f7fbff !important;
  background:#0b1f2d !important;
  border-color:#4da6dc !important;
}

.search-overlay #search::placeholder,
.search-overlay input::placeholder{
  color:#9fc4db !important;
}

.search-overlay .media-card{
  color:#ffffff !important;
}

.search-overlay .media-name,
.search-overlay .media-card .media-name{
  color:#ffffff !important;
  font-weight:800;
  text-shadow:0 1px 2px rgba(0,0,0,.45);
}

.search-overlay .media-program,
.search-overlay .media-card .media-program{
  color:#9ed5f4 !important;
  font-weight:600;
}

.search-overlay .media-art{
  background:#0c2639;
}

.search-overlay .empty{
  color:#c8e6f8 !important;
}

.search-overlay .search-close{
  color:#ffffff !important;
  background:#0d2b3e !important;
  border:1px solid rgba(255,255,255,.12);
}

.search-overlay .smart-logo{
  box-shadow:0 5px 16px rgba(0,0,0,.25);
}


/* v5.9 — Real local channel logos */
.real-channel-logo{
  display:block;
  max-width:82%;
  max-height:74%;
  width:auto;
  height:auto;
  object-fit:contain;
  filter:none;
}

.search-overlay .real-channel-logo{
  max-width:80%;
  max-height:72%;
}

.epg-channel-icon .real-channel-logo,
.channel-logo .real-channel-logo{
  max-width:88%;
  max-height:82%;
}

.media-art:has(.real-channel-logo){
  background:#0d2638;
}

.media-art .real-channel-logo[src*="abc"],
.media-art .real-channel-logo[src*="nbc"],
.media-art .real-channel-logo[src*="cnn"],
.media-art .real-channel-logo[src*="fox-news"],
.media-art .real-channel-logo[src*="food-network"],
.media-art .real-channel-logo[src*="tbs"],
.media-art .real-channel-logo[src*="nickelodeon"],
.media-art .real-channel-logo[src*="disney"]{
  background:#fff;
  border-radius:10px;
  padding:6px;
  box-sizing:border-box;
}


/* v6.0 — expanded lightweight USA logo pack */
.real-channel-logo{
  contain:content;
  image-rendering:auto;
}
.media-art .real-channel-logo{
  max-width:84%;
  max-height:76%;
}
.epg-channel-icon .real-channel-logo,
.channel-logo .real-channel-logo{
  max-width:92%;
  max-height:86%;
}


/* v6.1 — Channel logo contrast fix */
.media-art{
  background:#0b2435 !important;
}

.real-channel-logo{
  background:transparent !important;
  border-radius:10px;
  padding:5px;
  box-sizing:border-box;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.28));
}

/* Logos that include their own light rectangular artwork still look natural
   against the dark media card. */
.media-art .real-channel-logo[src*="abc"],
.media-art .real-channel-logo[src*="nbc"],
.media-art .real-channel-logo[src*="cnn"],
.media-art .real-channel-logo[src*="fox-news"],
.media-art .real-channel-logo[src*="food-network"],
.media-art .real-channel-logo[src*="tbs"],
.media-art .real-channel-logo[src*="nickelodeon"],
.media-art .real-channel-logo[src*="disney"]{
  background:transparent !important;
  padding:5px !important;
}

/* Keep locally composited dark-plate logos crisp and roomy. */
.real-channel-logo[src*="-dark.webp"]{
  max-width:86%;
  max-height:78%;
  padding:0 !important;
  background:transparent !important;
  border-radius:10px;
}

/* Guide/search use the same contrast-safe treatment. */
.search-overlay .media-art,
.epg-channel-icon,
.channel-logo{
  background:#0b2435 !important;
}


/* v6.4.3 — transparent/lightweight channel-logo presentation
   Keep the logo artwork itself transparent and let the WebPlayer background show through. */
.media-art,
.media-art:has(.real-channel-logo){
  background:rgba(255,255,255,.16) !important;
  border:1px solid rgba(15,67,99,.12) !important;
  box-shadow:0 5px 16px rgba(31,92,128,.07) !important;
  backdrop-filter:none !important;
}

.media-art .real-channel-logo,
.search-overlay .real-channel-logo{
  background:transparent !important;
  padding:2px !important;
  border-radius:0 !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.12)) !important;
}

/* Guide logo tile: translucent rather than dark navy. */
.epg-logo,
.epg-channel-icon,
.channel-logo{
  background:rgba(255,255,255,.28) !important;
  border:1px solid rgba(13,63,94,.10);
}

.epg-logo .real-channel-logo,
.epg-channel-icon .real-channel-logo,
.channel-logo .real-channel-logo{
  background:transparent !important;
  padding:1px !important;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.10)) !important;
}

/* Search results use the same transparent card treatment. */
.search-overlay .media-art{
  background:rgba(255,255,255,.18) !important;
}

/* Keep fallback initials readable when there is no real logo. */
.media-art .smart-logo{
  box-shadow:none;
}

/* The large hero logo remains intentionally translucent/background-only. */
.hero-channel-backdrop img{
  background:transparent !important;
}


/* v6.4.4 — fully opaque/sharp hero channel logo */
.hero-channel-backdrop{
  opacity:1 !important;
}
.hero-channel-backdrop img{
  opacity:1 !important;
  filter:none !important;
  background:transparent !important;
}
