/* Application layout, built on the supplied and unmodified gtv.css. */
@font-face{font-family:Archivo;src:url('assets/fonts/Archivo.woff2') format('woff2');font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:Inter;src:url('assets/fonts/Inter.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('assets/fonts/JetBrainsMono.woff2') format('woff2');font-weight:100 800;font-display:swap}
:root{font-synthesis:none;--sidebar-width:248px;--video-bg:#000}
[hidden]{display:none!important}button,input,select{font-family:var(--font-body)}button{cursor:pointer;color:inherit;font-size:inherit}button:disabled{cursor:not-allowed}p{color:var(--text-muted)}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}button:focus-visible{z-index:1}.input:focus-visible,.select:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.badge{font-size:var(--text-xs)}.icon{width:24px;height:24px;display:block;flex-shrink:0}.stack{display:flex;flex-direction:column;gap:var(--space-5)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.field{min-width:0}.full-width{width:100%}.btn{white-space:normal;text-align:center}.skip-link{position:fixed;top:var(--space-2);left:var(--space-2);z-index:var(--z-toast);transform:translateY(-200%);background:var(--surface);padding:var(--space-3);border:2px solid var(--focus);border-radius:var(--radius-md)}.skip-link:focus{transform:none}
/* Original artwork, with no filters, distortion or redrawing. */
.brand{display:block;width:160px;text-decoration:none;flex-shrink:0}.brand img{display:block;width:100%;height:auto}.brand:focus-visible{border-radius:var(--radius-sm)}
[data-theme=light] .brand{background:var(--gtv-ink-900);border-radius:var(--radius-md);padding:var(--space-4)}
.login-screen{min-height:100vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:1440px;margin:auto}.login-art{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;border-right:1px solid var(--border);padding:var(--space-8);min-width:0;background:var(--surface)}.login-art .brand{width:192px;margin:var(--space-5) 0 var(--space-8)}.login-editorial{margin:auto 0;max-width:100%}.login-editorial h1{margin:var(--space-5) 0 var(--space-6);font-size:clamp(2.25rem,4vw,3.5rem)}.login-art-bottom{display:flex;gap:var(--space-4);flex-wrap:wrap;border-top:1px solid var(--border);padding-top:var(--space-5);margin-top:var(--space-9);font:500 var(--text-xs)/1.6 var(--font-mono);color:var(--text-subtle)}.login-content{padding:var(--space-8);align-self:center;min-width:0;max-width:640px;width:100%;margin:auto}.login-content h2{font-size:var(--text-h3);margin:var(--space-3) 0 var(--space-4)}.login-intro{margin-bottom:var(--space-6);font-size:var(--text-sm)}.password-field{position:relative}.password-field input{padding-right:var(--space-7)}.password-field .btn{position:absolute;right:0;top:0;color:var(--text-muted)}.password-field .btn svg{width:20px;height:20px}.connection-options{color:var(--text-muted);font-size:var(--text-sm)}.connection-options summary{cursor:pointer;min-height:32px}.connection-options[open] summary{margin-bottom:var(--space-4)}.error-message{font-size:var(--text-sm);color:var(--danger);overflow-wrap:anywhere}.error-message:empty{display:none}.demo-divider{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0;color:var(--text-subtle);font-size:var(--text-xs);white-space:nowrap}.demo-divider:before,.demo-divider:after{content:'';height:1px;background:var(--border);flex:1}.login-footnote{display:flex;gap:var(--space-2);font-size:var(--text-xs);margin-top:var(--space-5);color:var(--text-subtle)}.login-footnote .icon{width:16px;height:16px;margin-top:var(--space-1)}
/* Navigation: one small yellow marker for the current section. */
.sidebar{width:var(--sidebar-width);position:fixed;inset:0 auto 0 0;z-index:var(--z-sticky);padding:var(--space-6) var(--space-5);background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto}.compact{width:144px;align-self:center;margin:var(--space-4) auto var(--space-7)}.nav-caption{color:var(--text-subtle);margin:0 var(--space-4) var(--space-4)}.nav-group{display:grid;gap:var(--space-2)}.nav-item{position:relative;display:flex;align-items:center;gap:var(--space-3);width:100%;min-height:48px;padding:var(--space-3) var(--space-4);background:transparent;border:0;border-radius:var(--radius-md);text-align:left;color:var(--text-muted);font-size:var(--text-sm);font-weight:600;transition:background-color var(--duration-fast) var(--ease),color var(--duration-fast) var(--ease)}.nav-item:hover{background:var(--surface-hover);color:var(--text)}.nav-item.active{background:var(--surface-raised);color:var(--text)}.nav-item.active:before{content:'';position:absolute;left:0;top:var(--space-4);bottom:var(--space-4);width:3px;border-radius:var(--radius-full);background:var(--accent)}.nav-item.active .icon{color:var(--link)}.nav-item>span{display:block}.sidebar-bottom{margin-top:auto;padding-top:var(--space-8);display:grid;gap:var(--space-2)}.sidebar-version{font-size:var(--text-xs);color:var(--text-subtle);padding:var(--space-4)}.main{margin-left:var(--sidebar-width);padding:0 var(--space-7) var(--space-8);min-height:100vh}.main>*{max-width:1280px;margin-inline:auto}.topbar{min-height:96px;display:flex;align-items:center;gap:var(--space-5);border-bottom:1px solid var(--border);margin-bottom:var(--space-7)}.connection-indicator{display:flex;align-items:center;gap:var(--space-2);min-width:0;font-size:var(--text-xs);color:var(--text-muted)}.connection-indicator>span>.icon{width:16px;height:16px;color:var(--success)}#account-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:180px}.search-box{display:flex;align-items:center;gap:var(--space-3);margin-left:auto;border:1px solid var(--border-strong);border-radius:var(--radius-full);padding:0 var(--space-4);min-height:48px;width:min(45%,440px);color:var(--text-muted);background:var(--surface);min-width:0}.search-box:focus-within{outline:2px solid var(--focus);outline-offset:3px}.search-box input{font-size:var(--text-sm);min-width:0;width:100%;background:transparent;border:0;outline:0;color:var(--text);height:44px}.search-box input::placeholder{color:var(--text-subtle)}.search-box kbd{font-family:var(--font-mono);font-size:var(--text-xs);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:0 var(--space-2)}#clock{font-size:var(--text-sm);color:var(--text-muted)}.menu-toggle,.menu-close,.nav-backdrop{display:none}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-5);margin-bottom:var(--space-6)}.page-heading h1{font-size:var(--text-h2);line-height:1.1;margin-bottom:var(--space-3)}.page-heading p{font-size:var(--text-sm)}.catalog-toolbar{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.catalog-toolbar .select{max-width:288px;font-size:var(--text-sm)}.counter{font:400 var(--text-xs)/1.5 var(--font-mono);color:var(--text-subtle);white-space:nowrap}
/* Provider artwork stays 16:9 for live content, 2:3 for movies/series. */
.catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-5)}.media-card{padding:0;text-align:left;min-width:0;display:flex;position:relative;font-family:var(--font-body)}.media-card .card__body{width:100%;gap:var(--space-2);padding:var(--space-4)}.poster{position:relative;aspect-ratio:2/3;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--surface-raised);width:100%}.poster>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:var(--surface-raised)}.poster-fallback{display:flex;flex-direction:column;gap:var(--space-4);text-align:center;max-width:100%;padding:var(--space-5);font-family:var(--font-display);font-stretch:110%;font-weight:700;font-size:var(--text-h4);line-height:1.2;overflow-wrap:anywhere;color:var(--text-muted)}.poster-fallback small{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400;color:var(--text-muted)}.media-card:nth-child(even) .poster{background:var(--surface-hover)}.card-title{display:block;font-size:var(--text-sm);font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.card-meta{font-size:var(--text-xs);color:var(--text-muted)}.play-on-hover{position:absolute;width:48px;height:48px;border-radius:var(--radius-full);background:var(--primary);color:var(--primary-contrast);display:grid;place-content:center;opacity:0;z-index:2;transform:scale(.9);transition:opacity var(--duration-fast) var(--ease),transform var(--duration-base) var(--ease)}.media-card:hover .play-on-hover,.media-card:focus-visible .play-on-hover{opacity:1;transform:scale(1)}.live-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.live-grid .poster{aspect-ratio:16/9}.live-grid .poster>img{object-fit:contain;padding:var(--space-6)}.live-grid .poster-fallback{font-size:var(--text-h4)}.live-tag{position:absolute;top:var(--space-3);left:var(--space-3);z-index:3}.load-more{display:flex;margin:var(--space-6) auto}.empty-state{padding:var(--space-8) var(--space-5);text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);max-width:800px}.empty-state p{max-width:520px;margin:var(--space-4) auto var(--space-5)}.loading{padding:var(--space-8) var(--space-3);color:var(--text-muted)}.loading:before{content:'';display:inline-block;width:16px;height:16px;border:2px solid var(--border-strong);border-top-color:var(--link);border-radius:var(--radius-full);margin-right:var(--space-3);vertical-align:middle;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
/* Details, episodes and playback. */
dialog{border:1px solid var(--border-strong);border-radius:var(--radius-xl);background:var(--surface);color:var(--text);padding:var(--space-6);max-width:960px;width:88%;max-height:90vh;overflow:auto;box-shadow:var(--shadow-2)}dialog::backdrop{background:rgba(5,8,15,.9)}.dialog-close{position:absolute;top:var(--space-3);right:var(--space-3);border-radius:var(--radius-full);background:var(--surface-raised)}.detail-grid{display:grid;grid-template-columns:208px minmax(0,1fr);gap:var(--space-6);padding-top:var(--space-5)}.detail-grid>.poster{width:208px;border-radius:var(--radius-md)}.detail-copy{padding:var(--space-3) 0;min-width:0}.detail-copy h2{font-size:var(--text-h3);line-height:1.2;margin:var(--space-3) 0 var(--space-4);overflow-wrap:anywhere}.detail-copy p{font-size:var(--text-sm);margin-bottom:var(--space-5)}.detail-facts{display:flex;flex-wrap:wrap;gap:var(--space-3);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--text-muted);margin-bottom:var(--space-4)}.season-tabs{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-6) 0 var(--space-4)}.episode-list{display:grid;gap:var(--space-2)}.episode-button{display:flex;width:100%;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);text-align:left;font-size:var(--text-sm);min-height:48px}.episode-button span{font-family:var(--font-mono);color:var(--text-muted);font-size:var(--text-xs);min-width:24px}.episode-button:hover{background:var(--surface-hover);border-color:var(--border-strong)}.player-header{display:flex;justify-content:space-between;gap:var(--space-5);align-items:center;margin-bottom:var(--space-4)}.player-header h2{font-size:var(--text-h3);margin-top:var(--space-2);overflow-wrap:anywhere}.eyebrow{font-size:var(--text-xs);color:var(--link)}#player-dialog{width:94vw;max-width:1360px;padding:var(--space-5)}#player-stage{background:var(--video-bg);aspect-ratio:16/9;border-radius:var(--radius-md);overflow:hidden;position:relative}video{display:block;width:100%;height:100%;object-fit:contain;background:var(--video-bg)}.player-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);padding-top:var(--space-4)}.player-footer p{font-size:var(--text-sm);max-width:60%}.player-footer>div{display:flex;gap:var(--space-2);flex-wrap:wrap}#player-epg{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-5)}.epg-channel{display:grid;grid-template-columns:176px minmax(0,1fr);gap:var(--space-5);align-items:start;border-bottom:1px solid var(--border);padding:var(--space-5) 0}.epg-channel>button{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:var(--space-4);text-align:left;font-size:var(--text-sm);min-height:48px}.epg-programs{display:grid;grid-template-columns:repeat(auto-fit,minmax(144px,1fr));gap:var(--space-3)}.epg-program{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);min-height:96px;background:var(--surface)}.epg-program.current{border-color:var(--focus);background:var(--surface-raised)}.epg-program time{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-muted)}.epg-program strong{display:block;font-size:var(--text-sm);margin-top:var(--space-2);font-weight:500}
/* TV packages. */
.hint{font-size:var(--text-sm);max-width:800px}.export-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:var(--space-6)}.export-layout>section>.label{display:block;margin:var(--space-5) 0 var(--space-2)}.export-layout>section>.hint{margin:var(--space-3) 0 var(--space-5)}.tv-options{display:grid;gap:var(--space-3);margin-bottom:var(--space-6)}.tv-option{display:flex;gap:var(--space-4);text-align:left;align-items:center;padding:var(--space-5);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);color:var(--text)}.tv-option:hover{background:var(--surface-hover)}.tv-option.selected{border-color:var(--focus);background:var(--surface-raised)}.tv-option .tv-icon{color:var(--link);flex-shrink:0;display:grid;place-content:center;width:48px;height:48px;background:var(--surface-hover);border-radius:var(--radius-md)}.tv-option strong{display:block;font-size:var(--text-base);margin-bottom:var(--space-1)}.tv-option small{display:block;color:var(--text-muted);font-size:var(--text-xs)}.tv-option .extension{margin-left:auto;font:500 var(--text-xs)/1.4 var(--font-mono);color:var(--text-muted)}.export-aside{border-left:1px solid var(--border);padding-left:var(--space-6)}.export-aside h3{font-size:var(--text-h4)}.feature-list{list-style:none;padding:0;display:grid;gap:var(--space-4);font-size:var(--text-sm);color:var(--text-muted);margin:var(--space-5) 0}.feature-list li{display:flex;gap:var(--space-2);align-items:center}.feature-list .icon{width:16px;height:16px;color:var(--success)}.export-result{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--surface-raised);overflow-wrap:anywhere}.export-result a{display:inline-block;margin:var(--space-3) 0;font-weight:600}.export-result p{font-size:var(--text-sm)}.toast{position:fixed;bottom:var(--space-5);left:50%;transform:translateX(-50%);z-index:var(--z-toast);background:var(--surface-raised);color:var(--text);border:1px solid var(--border-strong);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);box-shadow:var(--shadow-1);max-width:90%;font-size:var(--text-sm)}.global-section{margin-bottom:var(--space-7)}.global-section h2{font-size:var(--text-h3);margin-bottom:var(--space-5)}.status-note{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-4) var(--space-5);background:var(--surface-raised);border:1px solid var(--border-strong);border-left:3px solid var(--warning);border-radius:var(--radius-md);color:var(--text-muted);font-size:var(--text-sm);line-height:1.6;margin:var(--space-5) 0}.status-note>.icon{color:var(--warning)}
@media(min-width:1280px){.live-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1279px){.main{padding-inline:var(--space-6)}.topbar{gap:var(--space-4)}.connection-indicator{flex-wrap:wrap}.export-layout{grid-template-columns:1fr}.export-aside{border-left:0;border-top:1px solid var(--border);padding:var(--space-6) 0 0}.login-content,.login-art{padding:var(--space-7)}}
@media(max-width:1023px){:root{--sidebar-width:224px}.sidebar{padding-inline:var(--space-4)}.main{padding-inline:var(--space-5)}.topbar{flex-wrap:wrap;padding-block:var(--space-4);gap:var(--space-3)}.search-box{order:3;width:100%;max-width:none}.connection-indicator{margin-right:auto}.login-screen{grid-template-columns:1fr 1.1fr}.login-art,.login-content{padding:var(--space-6)}.login-art .brand{width:160px}.login-editorial h1{font-size:2.25rem}.login-art-bottom{margin-top:var(--space-8)}.two-columns{grid-template-columns:1fr}.catalog-grid{gap:var(--space-4)}.live-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.epg-channel{grid-template-columns:1fr}}
@media(max-width:767px){.login-screen{grid-template-columns:1fr;max-width:560px}.login-art{border:0;background:transparent;padding:var(--space-6) var(--space-5) 0}.login-art .brand{width:140px;margin:var(--space-5) auto var(--space-6)}.login-editorial,.login-art-bottom{display:none}.login-content{padding:var(--space-5) var(--space-5) var(--space-7)}.two-columns{grid-template-columns:1fr 1fr}.login-content>.overline{display:none}.login-content h2{font-size:var(--text-h3)}.sidebar{width:280px;max-width:88vw;transform:translateX(-100%);visibility:hidden;transition:transform var(--duration-base) var(--ease),visibility var(--duration-base);z-index:var(--z-overlay)}.nav-open .sidebar{transform:none;visibility:visible}.nav-open{overflow:hidden}.nav-backdrop{display:block;position:fixed;inset:0;width:100%;height:100%;background:rgba(5,8,15,.9);border:0;z-index:var(--z-dropdown)}.menu-toggle,.menu-close{display:inline-flex;flex-shrink:0}.menu-close{position:absolute;right:var(--space-2);top:var(--space-2)}.compact{margin-top:var(--space-6);margin-bottom:var(--space-6)}.main{margin:0;padding:0 var(--space-5) var(--space-7)}.topbar{min-height:128px;margin-bottom:var(--space-6);gap:var(--space-2)}.connection-indicator{flex:1;flex-wrap:wrap;column-gap:var(--space-2);row-gap:var(--space-1)}#account-label{max-width:132px}#clock{font-size:var(--text-xs)}.search-box{order:3;width:100%;margin:0}.search-box input{font-size:var(--text-base)}.search-box kbd{display:none}.page-heading h1{font-size:var(--text-h2)}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.catalog-toolbar{align-items:flex-start;flex-wrap:wrap;gap:var(--space-3)}.catalog-toolbar .select{max-width:100%;flex:1;min-width:192px}.counter{align-self:center}.media-card .card__body{padding:var(--space-3)}.poster-fallback{padding:var(--space-4);font-size:var(--text-lg)}.poster-fallback small{font-size:var(--text-xs)}.live-grid .poster-fallback{font-size:var(--text-base);padding-top:var(--space-7)}.live-tag{left:var(--space-2);top:var(--space-2);padding-inline:var(--space-2);font-size:var(--text-xs);letter-spacing:0}.live-grid .poster>img{padding:var(--space-5)}.detail-grid{grid-template-columns:96px minmax(0,1fr);gap:var(--space-4);padding-top:var(--space-7)}.detail-grid>.poster{width:96px}.detail-copy{padding:0}.detail-copy h2{font-size:var(--text-h4)}dialog{width:94%;padding:var(--space-5)}.epg-programs{grid-template-columns:repeat(2,minmax(0,1fr))}.player-header h2{font-size:var(--text-h4)}.player-header{align-items:flex-start}.player-footer{flex-wrap:wrap;gap:var(--space-4)}.player-footer p{max-width:100%}#player-epg{grid-template-columns:1fr}.tv-option{padding:var(--space-4);gap:var(--space-3)}.tv-option .tv-icon{width:32px;height:32px;background:none}.tv-option .extension{margin-left:auto}.tv-option>span:nth-child(2){min-width:0}.export-layout{gap:var(--space-5)}.btn--sm{min-height:44px}}
@media(max-width:479px){.two-columns{grid-template-columns:1fr}.main{padding-inline:var(--space-4)}.catalog-grid{gap:var(--space-3)}.tv-option .extension{display:none}.login-content h2{font-size:1.5rem}.login-content .btn{padding-inline:var(--space-4)}}
/* Chromium versions shipped with older TVs predate native aspect-ratio. */
@supports not (aspect-ratio:16/9){
 .poster{display:block}.poster:before{content:'';display:block;padding-top:150%}
 .poster-fallback{position:absolute;inset:0;align-items:center;justify-content:center}
 .live-grid .poster:before{padding-top:56.25%}
 .play-on-hover{left:calc(50% - 24px);top:calc(50% - 24px)}
 #player-stage:before{content:'';display:block;padding-top:56.25%}
 #player-stage>video,#player-stage>object{position:absolute;inset:0;width:100%;height:100%}
 
 
}

.catalog-toolbar{flex-wrap:wrap}.sort-field{display:flex;align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--text-muted);margin:0}.catalog-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-6)}.movie-cast{margin-top:var(--space-5)}.movie-cast h3{font-size:var(--text-base);margin-bottom:var(--space-2)}.movie-cast p{color:var(--text-muted)}#pin-dialog{max-width:440px}#pin-dialog h2{font-size:var(--text-h3)}.pin-actions{display:flex;gap:var(--space-3);flex-wrap:wrap}
/* Favorites keep their own focus target beside the playback button. */
.media-tile{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.media-tile>.media-card{width:100%;flex:1}
.favorite-button{min-height:48px;white-space:normal;overflow-wrap:anywhere;width:100%;font-size:var(--text-sm)}
.favorite-button[aria-pressed="true"],.favorites-filter[aria-pressed="true"]{border-color:var(--focus);background:var(--surface-raised);color:var(--text)}
@media(prefers-reduced-motion:reduce){.loading:before{animation:none}.sidebar,.play-on-hover{transition:none}html{scroll-behavior:auto}}
