/* TelaFlix television EPG — scoped exclusively to individual channel pages */
.tfx-tv-layout{--tv-bg:#0e1016;--tv-panel:#191c25;--tv-border:#30323d;--tv-text:#f7f7fa;--tv-muted:#a9acb9;--tv-red:#ef3349;--tv-rowheight:88px;max-width:1600px;margin:0 auto;padding:38px clamp(16px,4vw,64px) 90px;color:var(--tv-text);font-family:inherit}
.tfx-tv-layout *, .tfx-tv-layout *:before,.tfx-tv-layout *:after{box-sizing:border-box}
.tfx-tv-topline{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:28px;font-size:13px;font-weight:700;color:#aeb1bd;letter-spacing:.08em}
.tfx-tv-back{color:#ebebf0!important;text-decoration:none!important;letter-spacing:0;font-size:14px}.tfx-tv-back:hover{color:#fff!important}
.tfx-tv-live-label{display:flex;align-items:center;gap:9px}.tfx-tv-live-label i,.tfx-tv-red-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--tv-red);box-shadow:0 0 0 4px #ef334924}.tfx-tv-sep{color:#5f6169}
.tfx-tv-clock{font-size:14px;white-space:nowrap}
.tfx-tv-stage{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(24px,3.5vw,55px);align-items:center;margin-bottom:42px}
.tfx-tv-preview{position:relative;border-radius:16px;background:#050609;box-shadow:0 24px 66px #0007;border:1px solid #33343b;overflow:hidden}
.tfx-tv-preview-head{position:absolute;left:0;right:0;top:0;z-index:8;display:flex;justify-content:space-between;align-items:center;padding:13px 15px;pointer-events:none;background:linear-gradient(#000b,transparent);color:white;font-weight:800;font-size:11px;letter-spacing:.09em}
.tfx-tv-preview-head>*{pointer-events:auto}.tfx-tv-preview-head button,.tfx-tv-close{border:1px solid #ffffff4d;color:#fff;background:#1c1f28dd;border-radius:8px;padding:6px 10px;cursor:pointer;font-size:12px}
.tfx-tv-preview-head button:hover,.tfx-tv-close:hover{background:#343842}.tfx-tv-player-inner{aspect-ratio:16/9;min-height:0;position:relative;overflow:hidden}
.tfx-tv-player-inner>.ls-video-container,.tfx-tv-player-inner .ls-video-controller-inner,.tfx-tv-player-inner #ls-video-controller{width:100%!important;height:100%!important;max-width:none!important;margin:0!important;padding:0!important}
.tfx-tv-player-inner video,.tfx-tv-player-inner .plyr,.tfx-tv-player-inner .plyr__video-wrapper{width:100%!important;height:100%!important;max-height:none!important}
.tfx-tv-player-inner .ls-video-container{background:#060607}
.tfx-tv-player-inner .ls-not-found{padding:15px;color:white}.tfx-tv-player-inner img{max-height:100%;object-fit:contain}
.tfx-tv-close{display:none;position:absolute;z-index:12;top:15px;right:15px}
.tfx-tv-preview.is-expanded{position:fixed;inset:4vh 4vw;z-index:999999;border-radius:16px;background:#000;display:flex;align-items:center;justify-content:center}
.tfx-tv-preview.is-expanded .tfx-tv-player-inner{width:100%;aspect-ratio:auto;height:100%}
.tfx-tv-preview.is-expanded .tfx-tv-preview-head{display:none}.tfx-tv-preview.is-expanded .tfx-tv-close{display:block}
body.tfx-tv-modal-open{overflow:hidden}body.tfx-tv-modal-open:after{content:"";position:fixed;inset:0;background:#000e;z-index:999998}
.tfx-tv-eyebrow{font-size:11px;color:#989dac;letter-spacing:.18em;font-weight:800;text-transform:uppercase}.tfx-tv-eyebrow span{color:#fff}
.tfx-tv-current h1{font-size:clamp(26px,3.1vw,47px);line-height:1.13;letter-spacing:-.035em;font-weight:800;color:#fff;margin:15px 0!important}
.tfx-tv-current-meta{display:flex;gap:14px;align-items:center;color:#bfc1cc;font-weight:650;font-size:14px;flex-wrap:wrap}.tfx-tv-onair{display:inline-flex;align-items:center;border-radius:5px;background:#da2139;color:#fff;padding:5px 9px;font-size:11px;font-weight:850}
.tfx-tv-description{font-size:15px;line-height:1.7;color:#b3b6c2;margin:15px 0 24px;max-width:640px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tfx-tv-quick{display:flex;align-items:center;gap:20px;flex-wrap:wrap;font-size:13px;color:#848996}.tfx-tv-quick a{background:#f4f4f6;color:#14151b!important;padding:11px 17px;border-radius:8px;font-weight:800;text-decoration:none}.tfx-tv-quick a:hover{background:#fff}
.tfx-tv-guide{background:#14161d;border:1px solid #2b2e39;border-radius:18px;padding:clamp(13px,2vw,30px);box-shadow:0 14px 55px #0003}
.tfx-tv-guide-header{display:flex;justify-content:space-between;gap:20px;align-items:end;margin-bottom:23px;flex-wrap:wrap}.tfx-tv-guide-header h2{font-size:clamp(22px,2.1vw,32px);color:#fff;margin:5px 0 0;font-weight:800;letter-spacing:-.03em}
.tfx-tv-guide-tools{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.tfx-tv-search{border:1px solid #383b46;border-radius:9px;display:flex;align-items:center;gap:9px;padding:0 13px;background:#20222c;color:#999}.tfx-tv-search input{min-width:160px;width:190px;height:39px;border:0!important;outline:0!important;box-shadow:none!important;color:#fff!important;background:transparent!important;font-size:13px}
.tfx-tv-day{font-weight:750;color:#ddd;font-size:13px}.tfx-tv-guide-tools button{border:1px solid #474958;background:#292c37;color:#fff;padding:9px 16px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:750}
.tfx-tv-timeline-scroll{overflow:auto;max-height:650px;border:1px solid #323540;border-radius:12px;scrollbar-color:#626575 #1a1d25;position:relative}
.tfx-tv-timeline{min-width:970px}.tfx-tv-axis,.tfx-tv-row{display:grid;grid-template-columns:206px minmax(0,1fr)}.tfx-tv-axis{position:sticky;top:0;z-index:7;background:#242631;height:45px;border-bottom:1px solid #3d404c;font-size:12px;letter-spacing:.055em;color:#c8cad3;font-weight:800}
.tfx-tv-axis-channel{position:sticky;left:0;z-index:8;background:#242631;padding:13px 17px;border-right:1px solid #3d404c}.tfx-tv-axis-hours{display:flex;position:relative;overflow:hidden}.tfx-tv-hour{flex:1;padding:12px 0 0 12px;border-left:1px solid #414450}
.tfx-tv-row{height:var(--tv-rowheight);border-bottom:1px solid #333640;background:#191b24}.tfx-tv-row:nth-child(even){background:#1d2029}.tfx-tv-row.is-selected{background:#26242f}.tfx-tv-row[hidden]{display:none}
.tfx-tv-row-channel{position:sticky;left:0;z-index:3;display:flex;gap:12px;align-items:center;background:inherit;border-right:1px solid #3d404c;border-left:3px solid transparent;padding:7px 11px;color:#f3f3f6!important;text-decoration:none!important;min-width:0}
.tfx-tv-row.is-selected .tfx-tv-row-channel{border-left-color:#ed304b}.tfx-tv-row-channel img{width:49px;height:41px;object-fit:contain;flex-shrink:0;border-radius:5px;background:#101117;padding:3px}.tfx-tv-logo-placeholder{width:49px;text-align:center;font-weight:800;color:#aeb4c3}
.tfx-tv-channel-name{font-size:12px;line-height:1.35;font-weight:760;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tfx-tv-watching{margin-left:auto;color:var(--tv-red);font-size:14px}
.tfx-tv-row-programs{position:relative;min-width:0;overflow:hidden}.tfx-tv-program{position:absolute;top:5px;bottom:5px;display:flex;flex-direction:column;justify-content:center;gap:4px;text-align:left;padding:8px 12px;background:#30333f;border:1px solid #474a58;border-radius:7px;cursor:pointer;color:#fff;overflow:hidden;font-size:12px;transition:background .15s,border .15s}
.tfx-tv-program:hover,.tfx-tv-program:focus-visible{background:#464956;border-color:#9497a4;outline:none}.tfx-tv-program.is-live{background:#702b3b;border-color:#ee4962}.tfx-tv-program.is-live:hover{background:#97354a}
.tfx-tv-program strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800;font-size:12px}.tfx-tv-program small{font-size:11px;color:#c7c8d1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tfx-tv-program.is-live small{color:#fff}
.tfx-tv-empty,.tfx-tv-loading{display:block;padding:30px 14px;color:#777e8e;font-size:12px}.tfx-tv-now-line{position:absolute;width:2px;top:0;bottom:0;background:#ff3c54;z-index:2;pointer-events:none}.tfx-tv-now-line:before{content:"";position:absolute;top:0;left:-4px;width:10px;height:10px;background:#ff3c54;border-radius:50%}
.tfx-tv-legend{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:14px;color:#9195a2;font-size:12px}.tfx-tv-legend-red{display:inline-block;width:8px;height:8px;background:#f0445d;border-radius:50%;margin-right:5px}
.tfx-tv-detail{margin-top:17px;padding:22px 24px;border-radius:12px;border:1px solid #424554;background:#222530;display:flex;justify-content:space-between;gap:20px;align-items:center}.tfx-tv-detail[hidden]{display:none}.tfx-tv-detail h3{color:#fff;margin:7px 0;font-size:23px}.tfx-tv-detail p{color:#aeb3c0;margin:0;max-width:850px;font-size:13px;line-height:1.6}.tfx-tv-detail-right{display:flex;flex-direction:column;gap:13px;align-items:end;white-space:nowrap;font-size:13px}.tfx-tv-detail-right a{padding:10px 15px;border-radius:8px;background:#ed314a;color:white!important;text-decoration:none;font-weight:800}
@media(max-width:900px){.tfx-tv-stage{grid-template-columns:1fr;gap:23px}.tfx-tv-current h1{font-size:30px}.tfx-tv-description{margin-bottom:18px}.tfx-tv-layout{padding-top:22px}.tfx-tv-preview{max-width:780px}.tfx-tv-current{max-width:750px}}
@media(max-width:600px){.tfx-tv-layout{padding:14px 10px 55px}.tfx-tv-topline{margin-bottom:16px;letter-spacing:0;font-size:10px}.tfx-tv-clock{display:none}.tfx-tv-stage{gap:18px;margin-bottom:24px}.tfx-tv-preview{border-radius:11px}.tfx-tv-current{padding:0 6px}.tfx-tv-current h1{font-size:25px}.tfx-tv-description{font-size:13px;line-height:1.55}.tfx-tv-guide{padding:13px 9px;border-radius:12px}.tfx-tv-guide-header{align-items:start;gap:12px}.tfx-tv-guide-tools{width:100%;gap:7px}.tfx-tv-search{flex:1;min-width:140px}.tfx-tv-search input{width:100%;min-width:0}.tfx-tv-day{display:none}.tfx-tv-timeline{min-width:850px}.tfx-tv-axis,.tfx-tv-row{grid-template-columns:146px minmax(0,1fr)}.tfx-tv-row-channel{padding:6px;gap:6px}.tfx-tv-row-channel img{width:35px;height:33px}.tfx-tv-channel-name{font-size:10px}.tfx-tv-detail{padding:16px;flex-direction:column;align-items:start}.tfx-tv-detail h3{font-size:18px}.tfx-tv-detail-right{align-items:start}.tfx-tv-legend span:nth-child(2){display:none}.tfx-tv-preview.is-expanded{inset:0;border-radius:0}}

/* Force the live player to stay inside the phone viewport; only the EPG grid scrolls. */
body.ls-channel-single,body.ls-channel-single #page,body.ls-channel-single .site-content{max-width:100%;overflow-x:clip}
.tfx-tv-layout{width:100%;min-width:0;overflow-x:clip}
.tfx-tv-stage,.tfx-tv-preview,.tfx-tv-player-inner,.tfx-tv-current{min-width:0;max-width:100%}
.tfx-tv-preview .ls-video-container,.tfx-tv-preview #ls-video-controller,.tfx-tv-preview .ls-video-controller-inner,.tfx-tv-preview .plyr,.tfx-tv-preview .plyr__video-wrapper,.tfx-tv-preview video{min-width:0!important;max-width:100%!important}
.tfx-tv-preview .ls-video-container{padding:0!important;margin:0!important}
@media(max-width:900px){
 .tfx-tv-layout{width:100%;max-width:100%;padding-left:12px;padding-right:12px}
 .tfx-tv-stage{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0}
 .tfx-tv-preview{width:100%;max-width:100%;flex:none}
 .tfx-tv-player-inner{width:100%;height:auto;aspect-ratio:16/9}
 .tfx-tv-preview .ls-video-container,.tfx-tv-preview #ls-video-controller,.tfx-tv-preview .ls-video-controller-inner{width:100%!important;max-width:100%!important}
}
@media(max-width:600px){
 .tfx-tv-layout{padding-left:8px;padding-right:8px}
 .tfx-tv-player-inner video,.tfx-tv-player-inner .plyr{object-fit:contain!important}
 .tfx-tv-preview.is-expanded{width:100vw;max-width:100vw}
}
/* Controls stay out of the picture until interaction. Keyboard focus remains accessible. */
.tfx-tv-preview-head{opacity:0;transition:opacity .24s ease;background:linear-gradient(180deg,rgba(0,0,0,.38),transparent);pointer-events:none}
.tfx-tv-preview:hover .tfx-tv-preview-head,
.tfx-tv-preview:focus-within .tfx-tv-preview-head,
.tfx-tv-preview.tfx-tv-controls-visible .tfx-tv-preview-head{opacity:1}
.tfx-tv-preview-head button{background:rgba(15,18,25,.28)!important;border:1px solid rgba(255,255,255,.3)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:.78;transition:opacity .2s,background .2s}
.tfx-tv-preview-head button:hover,.tfx-tv-preview-head button:focus-visible{background:rgba(15,18,25,.75)!important;opacity:1}
@media(hover:none){.tfx-tv-preview:hover .tfx-tv-preview-head{opacity:0}.tfx-tv-preview.tfx-tv-controls-visible .tfx-tv-preview-head,.tfx-tv-preview:focus-within .tfx-tv-preview-head{opacity:1}}
@media(prefers-reduced-motion:reduce){.tfx-tv-preview-head,.tfx-tv-preview-head button{transition:none}}
/* Strict visibility: never show the overlay while idle, even with player focus. */
.tfx-tv-preview .tfx-tv-preview-head{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .18s ease,visibility .18s ease!important}
@media(hover:hover) and (pointer:fine){
 .tfx-tv-preview:not(.is-expanded):hover .tfx-tv-preview-head{opacity:1!important;visibility:visible!important}
}
.tfx-tv-preview.tfx-tv-controls-visible:not(.is-expanded) .tfx-tv-preview-head{opacity:1!important;visibility:visible!important}
.tfx-tv-preview .tfx-tv-preview-head button{pointer-events:auto}
@media(hover:none),(pointer:coarse){
 .tfx-tv-preview:hover .tfx-tv-preview-head,.tfx-tv-preview:focus-within .tfx-tv-preview-head{opacity:0!important;visibility:hidden!important}
 .tfx-tv-preview.tfx-tv-controls-visible:not(.is-expanded) .tfx-tv-preview-head{opacity:1!important;visibility:visible!important}
}
/* Channel logos: preserve original aspect ratio and prevent theme crop/cover rules. */
.tfx-tv-layout .tfx-tv-row-channel img{display:block!important;width:54px!important;height:52px!important;min-width:54px!important;max-width:54px!important;max-height:52px!important;object-fit:contain!important;object-position:center center!important;aspect-ratio:auto!important;clip-path:none!important;transform:none!important;border-radius:5px!important;padding:4px!important;background:#101117!important;overflow:visible!important}
@media(max-width:600px){
 .tfx-tv-layout .tfx-tv-row-channel img{width:40px!important;height:42px!important;min-width:40px!important;max-width:40px!important;max-height:42px!important;padding:2px!important}
}

/* Full channel artwork, never the cropped WP thumbnail. */
.tfx-tv-layout .tfx-tv-row-channel img{
 width:62px!important;height:60px!important;min-width:62px!important;max-width:62px!important;
 max-height:60px!important;object-fit:contain!important;object-position:center!important;
 padding:2px!important;border:0!important;box-shadow:none!important;flex-shrink:0!important;
}
@media(max-width:600px){
 .tfx-tv-layout .tfx-tv-row-channel img{width:46px!important;height:46px!important;min-width:46px!important;max-width:46px!important;max-height:46px!important}
}

/* iOS touch fix: EPG expand header must never intercept taps on the video. */
@media (hover:none), (pointer:coarse) {
 .tfx-tv-preview:not(.is-expanded) .tfx-tv-preview-head {pointer-events:none!important;visibility:hidden!important;opacity:0!important}
 .tfx-tv-preview:not(.is-expanded) .tfx-tv-preview-head * {pointer-events:none!important}
 .tfx-tv-preview.tfx-tv-controls-visible:not(.is-expanded) .tfx-tv-preview-head {pointer-events:none!important;visibility:hidden!important;opacity:0!important}
 .tfx-tv-preview .tfx-tv-player-inner {position:relative;z-index:2}
}

/* TelaFlix: dedicated 16:9 access gate for live channels (not the tall VOD card). */
.tfx-tv-preview--gated .tfx-tv-player-inner{aspect-ratio:16/9;min-height:340px;overflow:hidden}
.tfx-tv-preview--gated .tfx-tv-preview-head{display:none!important}
.tfx-channel-gate,.tfx-channel-gate *{box-sizing:border-box}
.tfx-channel-gate{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:340px;overflow:hidden;background:#100d12;color:#fff;text-align:center}
.tfx-channel-gate__art{position:absolute;inset:0;z-index:-2;background-position:center;background-size:cover;filter:blur(9px) saturate(.8);transform:scale(1.09);opacity:.32;pointer-events:none}
.tfx-channel-gate:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 35%,rgba(40,10,20,.42),rgba(7,7,10,.92) 78%),linear-gradient(0deg,#09090c99,transparent);pointer-events:none}
.tfx-channel-gate__body{position:relative;z-index:1;width:min(100%,510px);padding:18px 24px 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.tfx-channel-gate__icon{display:grid;place-items:center;width:48px;height:48px;margin:0 0 10px;border-radius:15px;background:linear-gradient(135deg,#f32143,#b6002e);box-shadow:0 10px 28px #c400393d;color:white}
.tfx-channel-gate__icon svg{width:25px;height:25px}
.tfx-channel-gate__eyebrow{font-size:10px;font-weight:850;letter-spacing:.15em;color:#ff6a7f;margin-bottom:7px}
.tfx-channel-gate h2{font-size:clamp(23px,2.1vw,31px)!important;line-height:1.13!important;letter-spacing:-.025em!important;font-weight:850!important;color:#fff!important;margin:0 0 8px!important;text-transform:none!important}
.tfx-channel-gate h2:before,.tfx-channel-gate h2:after{display:none!important}
.tfx-channel-gate p{color:#d0cbd0!important;font-size:13px!important;line-height:1.45!important;margin:0 0 17px!important;max-width:410px}
.tfx-channel-gate__actions{display:flex;width:100%;gap:10px;justify-content:center}
.tfx-channel-gate__btn{flex:1;min-width:0;min-height:44px;display:inline-flex;align-items:center;justify-content:center;text-align:center;border-radius:10px;padding:10px 12px;font-size:13px;font-weight:800;line-height:1.25;text-decoration:none!important;transition:filter .2s,background .2s}
.tfx-channel-gate__btn--main{background:linear-gradient(135deg,#ed1531,#c60026);color:#fff!important;border:1px solid #e42c46}
.tfx-channel-gate__btn--outline{background:#ffffff12;color:#fff!important;border:1px solid #ffffff52}
.tfx-channel-gate__btn:hover{filter:brightness(1.17);color:#fff!important}
.tfx-channel-gate__btn:focus-visible,.tfx-channel-gate__plans:focus-visible{outline:2px solid #fff;outline-offset:3px}
.tfx-channel-gate__plans{margin-top:14px;color:#e5dce0!important;text-decoration:underline;text-underline-offset:3px;font-size:12px;font-weight:650}
@media(max-width:600px){
 .tfx-tv-preview--gated .tfx-tv-player-inner{height:auto;aspect-ratio:auto;min-height:360px}
 .tfx-channel-gate{min-height:360px}
 .tfx-channel-gate__body{padding:19px 16px 20px}
 .tfx-channel-gate__icon{width:43px;height:43px;border-radius:13px;margin-bottom:9px}
 .tfx-channel-gate__icon svg{width:23px;height:23px}
 .tfx-channel-gate h2{font-size:24px!important}
 .tfx-channel-gate p{font-size:12px!important;margin-bottom:15px!important}
 .tfx-channel-gate__actions{flex-direction:column;gap:9px}
 .tfx-channel-gate__btn{width:100%;flex:auto;min-height:42px}
 .tfx-channel-gate__plans{margin-top:11px;font-size:11px}
}
@media(max-width:370px){.tfx-tv-preview--gated .tfx-tv-player-inner,.tfx-channel-gate{min-height:380px}.tfx-channel-gate__body{padding:16px 13px}}
/* StreamVid palette override, limited to individual channel page */
.tfx-tv-layout{--tv-bg:#04061d;--tv-panel:#1c1e39;--tv-border:#35365b;--tv-red:#7954f2;--tv-muted:#abaec7;background:#05061c;color:#f9f9ff}
.tfx-tv-stage{gap:28px}.tfx-tv-preview{border-color:#30335c}.tfx-tv-guide{background:#13152e;border-color:#292b51}.tfx-tv-quick a{background:linear-gradient(105deg,#6558f3,#9448f4);color:#fff!important}.tfx-tv-onair{background:#7954f2}.tfx-tv-row.is-selected .tfx-tv-row-channel{border-left-color:#8a62f9}.tfx-tv-program.is-live{background:#54418e;border-color:#8d62ff}.tfx-tv-program.is-live:hover{background:#624eaa}.tfx-tv-now-line,.tfx-tv-now-line:before{background:#9264ff}.tfx-tv-row{background:#171930}.tfx-tv-row:nth-child(even){background:#1b1d37}.tfx-tv-row.is-selected{background:#232043}.tfx-tv-axis,.tfx-tv-axis-channel{background:#242646}.tfx-tv-search{background:#20213c}.tfx-tv-guide-tools button{background:#373160;border-color:#514984}.tfx-tv-preview-head button{background:#342b63dd}
@media(max-width:767px){.tfx-tv-layout{padding:20px 16px 60px}.tfx-tv-stage{gap:20px}.tfx-tv-guide{padding:12px}.tfx-tv-timeline-scroll{max-width:100%}}
/* Wider StreamVid-style EPG, swipe through all available hours */
.tfx-tv-layout{max-width:1900px;padding-left:clamp(16px,2.5vw,46px);padding-right:clamp(16px,2.5vw,46px)}
.tfx-tv-guide{padding:clamp(18px,1.9vw,34px)}
.tfx-tv-timeline-scroll{max-height:750px;overflow-x:auto;overflow-y:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}
.tfx-tv-timeline{max-width:none!important}
.tfx-tv-axis,.tfx-tv-row{grid-template-columns:206px minmax(0,1fr)}
.tfx-tv-days{display:flex;gap:9px;align-items:center;overflow-x:auto;padding:3px 0 16px;scrollbar-width:thin;scrollbar-color:#535075 transparent}
.tfx-tv-day-option{border:1px solid #2d2e4c;background:#20223c;color:#c4c4d6;border-radius:11px;min-width:78px;min-height:69px;padding:9px 15px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer;flex:none;font:inherit}
.tfx-tv-day-option span{font-size:12px;font-weight:600}.tfx-tv-day-option strong{font-size:19px;font-weight:800;color:#fff}
.tfx-tv-day-option.is-active{border-color:#7451f0;background:#7451f0;color:#fff}
.tfx-tv-day-option:hover:not(.is-active){background:#303150}
.tfx-tv-timeline-scroll .tfx-tv-hour{box-sizing:border-box}
@media(max-width:767px){.tfx-tv-guide{padding:14px}.tfx-tv-days{gap:7px}.tfx-tv-day-option{min-width:65px;min-height:63px;padding:7px 11px}.tfx-tv-day-option strong{font-size:17px}.tfx-tv-guide-tools{width:100%}.tfx-tv-search{flex:1}.tfx-tv-search input{width:100%;min-width:100px}}
/* Exact timeline geometry: two columns only, no artificial empty side panels. */
.tfx-tv-axis,.tfx-tv-row{grid-template-columns:206px var(--tfx-track-width,100%)!important}
.tfx-tv-axis::after,.tfx-tv-row::after{content:none!important;display:none!important}
.tfx-tv-axis-hours,.tfx-tv-row-programs{width:var(--tfx-track-width,100%);min-width:0}
.tfx-tv-program.is-past{background:#24263b;border-color:#343650;color:#9d9fb6;opacity:.78}
.tfx-tv-program.is-past small{color:#8c90aa}
.tfx-tv-program.is-live{background:#54418e;border-color:#8d62ff;color:#fff}
.tfx-tv-program.is-future{background:#2b2e41;border-color:#44475e;color:#fff;opacity:1}
.tfx-tv-program.is-future small{color:#bdc0d2}
@media(max-width:767px){.tfx-tv-axis,.tfx-tv-row{grid-template-columns:146px var(--tfx-track-width,100%)!important}}

/* Past programming is visually unavailable: fine diagonal stripes stop at "now". */
.tfx-tv-program{isolation:isolate}
.tfx-tv-elapsed{position:absolute;inset:0 auto 0 0;height:100%;pointer-events:none;z-index:1;background:repeating-linear-gradient(135deg,rgba(8,10,24,.08) 0px,rgba(8,10,24,.08) 3px,rgba(7,8,23,.34) 3px,rgba(7,8,23,.34) 5px);border-right:1px solid rgba(218,211,255,.2)}
.tfx-tv-program.is-past{opacity:1;background:#24263b;border-color:#343650;color:#a9acc2}
.tfx-tv-program.is-past .tfx-tv-elapsed{background:repeating-linear-gradient(135deg,rgba(3,4,14,.13) 0px,rgba(3,4,14,.13) 3px,rgba(3,4,14,.34) 3px,rgba(3,4,14,.34) 5px)}
.tfx-tv-program strong,.tfx-tv-program small{position:relative;z-index:2}

/* Access control uses our paid TelaFlix PMPro levels, not StreamVid demo plans. */
.tfx-live-access-gate{position:relative;isolation:isolate;display:grid;place-items:center;width:100%;height:100%;min-height:300px;background:#0d0e22;color:#fff;text-align:center;overflow:hidden}
.tfx-live-access-art{position:absolute;z-index:-1;inset:0;display:grid;place-items:center;opacity:.13;filter:blur(10px)}.tfx-live-access-art img{width:75%;height:75%;object-fit:contain}
.tfx-live-access-content{max-width:530px;padding:24px;position:relative}.tfx-live-access-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:13px;margin:0 auto 16px;background:#7652ee;font-size:27px;color:#fff}.tfx-live-access-gate h2{font-size:clamp(20px,2.3vw,30px)!important;color:#fff!important;font-weight:800;margin:0 0 10px!important}.tfx-live-access-gate p{font-size:14px;color:#bbbad0;line-height:1.55;margin:0 0 22px}.tfx-live-access-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.tfx-live-access-actions a{padding:11px 16px;background:#292a47;border:1px solid #494b70;border-radius:9px;color:#fff!important;text-decoration:none!important;font-size:13px;font-weight:750}.tfx-live-access-actions a.tfx-live-access-plan{background:linear-gradient(105deg,#6850ef,#9854f5);border-color:transparent}@media(max-width:600px){.tfx-live-access-gate{min-height:360px}.tfx-live-access-content{padding:18px}.tfx-live-access-actions{gap:8px}.tfx-live-access-actions a{flex:1;min-width:110px}}

/* Lightweight branded loading state: only rendered for paid users. */
.tfx-tv-player-inner{background:#080b1b}
.tfx-player-loading{position:absolute;inset:0;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;pointer-events:none;background:radial-gradient(ellipse at center,#252341 0%,#101326 55%,#080b1b 100%);transition:opacity .28s ease,visibility .28s ease}
.tfx-player-loading.is-hidden{opacity:0;visibility:hidden}
.tfx-player-loading-logo{display:block;max-width:min(66%,420px)!important;width:auto;height:auto;max-height:55%;object-fit:contain;filter:drop-shadow(0 8px 30px #0008)}
.tfx-player-loading-fallback{font-size:clamp(40px,7vw,85px);font-weight:900;color:#fff}
.tfx-player-loading-bottom{display:flex;gap:11px;align-items:center;justify-content:center;color:#d8d8e9;font-size:clamp(11px,1.2vw,14px);font-weight:600;letter-spacing:.01em}
.tfx-player-loading-spinner{width:17px;height:17px;border:2px solid #a393d144;border-top-color:#9d7aff;border-radius:50%;animation:tfx-player-spin .85s linear infinite;flex:none}
.tfx-player-loading.is-error .tfx-player-loading-spinner{display:none}
@keyframes tfx-player-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.tfx-player-loading-spinner{animation:none}.tfx-player-loading{transition:none}}

/* Poster-only state: no loader, overlay or click interception. */
.tfx-tv-player-inner{background:#080b1b!important}
.tfx-tv-player-inner #ls_video_player{background:#080b1b!important;object-fit:contain!important}
.tfx-tv-player-inner .plyr__poster{background-size:contain!important;background-repeat:no-repeat!important;background-position:center!important;background-color:#080b1b!important}
.tfx-player-loading{display:none!important}

/* Always-visible starter over the poster, but never over an initialized player. */
.tfx-player-start{position:absolute;z-index:5;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;padding:0;display:flex;align-items:center;justify-content:center;border:2px solid #ffffffab;border-radius:50%;background:#7250e9ee;color:#fff;box-shadow:0 6px 30px #0009;cursor:pointer;transition:background .18s,transform .18s}
.tfx-player-start:hover{background:#9568ff;transform:translate(-50%,-50%) scale(1.06)}.tfx-player-start svg{width:36px;height:36px;margin-left:5px}.tfx-player-start[hidden]{display:none!important}
.tfx-player-unavailable[hidden]{display:none!important}.tfx-player-unavailable{position:absolute;inset:0;z-index:15;background:radial-gradient(ellipse at center,#222345f5,#080a1cfb 90%);display:grid;place-items:center;text-align:center;color:#fff;padding:16px;overflow:auto}
.tfx-player-unavailable-card{width:min(100%,540px);margin:auto;padding:12px 8px}.tfx-player-unavailable-icon{display:grid;place-items:center;width:47px;height:47px;margin:0 auto 12px;border-radius:50%;background:#8d6aff22;border:1px solid #9573ec;color:#c9b8ff;font-size:29px}
.tfx-player-unavailable h2{font-size:clamp(18px,2vw,24px)!important;line-height:1.2!important;color:#fff!important;font-weight:800!important;margin:0 0 10px!important}.tfx-player-unavailable p{font-size:clamp(11px,1.2vw,13px)!important;line-height:1.5!important;color:#d3d1e7!important;margin:0 auto 16px!important}.tfx-player-unavailable-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:9px}.tfx-player-unavailable-actions a,.tfx-player-unavailable-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;border-radius:9px;padding:9px 13px;border:1px solid #6a638e;background:#292744;color:#fff!important;text-decoration:none!important;font-size:12px;font-weight:750;cursor:pointer}.tfx-player-unavailable-actions button{background:#7452ea;border-color:#7452ea}.tfx-player-unavailable-actions a:last-child{border-color:#296e50;background:#17432e}
@media(max-width:600px){.tfx-player-start{width:62px;height:62px}.tfx-player-start svg{width:29px;height:29px}.tfx-player-unavailable{padding:10px}.tfx-player-unavailable-icon{width:35px;height:35px;font-size:22px;margin-bottom:7px}.tfx-player-unavailable-card{padding:6px}.tfx-player-unavailable h2{font-size:17px!important;margin-bottom:6px!important}.tfx-player-unavailable p{font-size:11px!important;margin-bottom:9px!important}.tfx-player-unavailable-actions{gap:6px}.tfx-player-unavailable-actions a,.tfx-player-unavailable-actions button{min-height:34px;padding:6px 9px;font-size:11px}}

/* Only the original Plyr button, never our previous custom purple play. */
.tfx-player-start{display:none!important}
.tfx-tv-player-inner .plyr__control--overlaid{opacity:1!important;visibility:visible!important;display:flex!important}
.tfx-tv-program strong,.tfx-tv-program small{transition:transform .08s linear;will-change:transform;max-width:calc(100% - 4px)}

/* Current broadcast's title follows the visible timeline viewport, even when its original block scrolls away. */
.tfx-tv-current-program-label{position:absolute;top:50%;left:50%;z-index:15;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-width:0;max-width:calc(100% - 20px);pointer-events:none;text-align:center;text-shadow:0 1px 4px #070819af}
.tfx-tv-current-program-label strong{font-size:12px;font-weight:850;line-height:1.3;color:#fff;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tfx-tv-current-program-label small{font-size:11px;color:#ddd9ff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tfx-tv-program.is-live>strong,.tfx-tv-program.is-live>small{visibility:hidden}

/* EPG live title anchored exactly to NOW line, not to program block or viewport center. */
.tfx-tv-current-program-label{z-index:16;left:0;max-width:min(280px,calc(100vw - 175px));transform:translate(-50%,-50%);text-align:center}
.tfx-tv-current-program-label strong,.tfx-tv-current-program-label small{display:block;max-width:100%}
/* The native Plyr overlay must disappear during playback. */
.tfx-tv-player-inner .plyr--playing .plyr__control--overlaid,.tfx-tv-player-inner.tfx-player-is-playing .plyr__control--overlaid{opacity:0!important;visibility:hidden!important;display:none!important;pointer-events:none!important}
.tfx-tv-player-inner .plyr__control--overlaid{pointer-events:auto}
