*{box-sizing:border-box}body{margin:0;padding:0;overflow:hidden;background:#000}.tv-page{width:100vw;height:100vh;overflow:hidden;position:relative}.tv-player{position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;background:#000}.tv-player video{width:100%;height:100%;object-fit:contain}.tv-content{position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:horizontal;-webkit-flex-direction:row;flex-direction:row;height:100%;-webkit-transition:opacity .3s;transition:opacity .3s}.tv-content.with-player{background:rgba(0,0,0,.7)}.tv-content.hidden{opacity:0;pointer-events:none}.tv-column{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;height:100%;overflow:hidden;background:rgba(0,0,0,.5)}.tv-sidebar{width:25%;-webkit-flex-shrink:0;flex-shrink:0;border-right:1px solid rgba(255,255,255,.1)}.tv-channels{width:35%;-webkit-flex-shrink:0;flex-shrink:0;border-right:1px solid rgba(255,255,255,.1)}.tv-epg{width:40%;-webkit-flex-shrink:0;flex-shrink:0}.tv-column-header{padding:16px;border-bottom:1px solid rgba(255,255,255,.1);-webkit-flex-shrink:0;flex-shrink:0}.tv-column-header-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.tv-column-header-content>*{margin-right:8px}.tv-column-header-content>:last-child{margin-right:0}.tv-column-header svg{width:16px;height:16px;color:var(--c)}.tv-column-title{font-size:14px;font-weight:600;color:#fff}.tv-column-count{margin-left:auto;font-size:12px;color:rgba(255,255,255,.5)}.tv-column-content{-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:12px;overflow-y:auto;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column}.tv-column-content>*{margin-bottom:4px}.category-item,.channel-item{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;padding:10px 12px;border-radius:8px;border:2px solid transparent!important;outline:0!important;box-shadow:none!important;background:rgba(255,255,255,.05);-webkit-transition:background .15s,color .15s,border-color .15s;transition:background .15s,color .15s,border-color .15s;cursor:pointer;text-decoration:none;color:rgba(255,255,255,.7);font-size:14px;-webkit-transform:none!important;transform:none!important;-webkit-flex-shrink:0;flex-shrink:0}.category-item>*,.channel-item>*{margin-right:8px}.category-item>:last-child,.channel-item>:last-child{margin-right:0}.category-item:hover,.channel-item:hover{background:rgba(255,255,255,.1);color:#fff;border-color:transparent!important}.category-item.focused,.channel-item.focused{color:#fff;border:2px solid var(--c)!important;outline:0!important;box-shadow:none!important;-webkit-transform:none!important;transform:none!important}.category-item.active,.channel-item.active{background:rgba(var(--c-rgb),.4);color:var(--c);font-weight:500;border:2px solid transparent!important;outline:0!important;-webkit-transform:none!important;transform:none!important}.category-item.active.focused,.channel-item.active.focused{border:2px solid var(--c)!important}.category-item span,.channel-item .channel-name{-webkit-box-flex:1;-webkit-flex:1;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.favorites-item{margin-bottom:8px}.favorites-item svg{width:16px;height:16px;color:#ef4444}.favorites-item.active svg{fill:#ef4444}.scores-item{margin-bottom:8px}.scores-item svg{width:16px;height:16px;color:#22c55e}.lock-icon{width:12px;height:12px;color:rgba(255,255,255,.4)}.channel-logo{width:20px;height:20px;object-fit:contain;-webkit-flex-shrink:0;flex-shrink:0}.channel-logo-placeholder{width:20px;height:20px;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-flex-shrink:0;flex-shrink:0}.channel-logo-placeholder svg{width:16px;height:16px;color:rgba(255,255,255,.5)}.play-indicator{width:12px;height:12px;-webkit-flex-shrink:0;flex-shrink:0}.play-indicator.playing{color:#22c55e}.epg-section{margin-bottom:16px}.epg-section-title{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:12px;font-weight:500;color:rgba(255,255,255,.5);margin-bottom:8px}.epg-section-title>*{margin-right:6px}.epg-section-title>:last-child{margin-right:0}.epg-section-title .live-dot{width:8px;height:8px;background:#ef4444;border-radius:50%;-webkit-animation:2s infinite pulse;animation:2s infinite pulse}@-webkit-keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.epg-program{padding:12px;border-radius:8px;margin-bottom:8px;background:rgba(255,255,255,.05)}.epg-program.current{background:rgba(var(--c-rgb),.1);border:1px solid rgba(var(--c-rgb),.3)}.epg-program-time{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;font-size:12px;color:rgba(255,255,255,.5);margin-bottom:4px}.epg-program-time>*{margin-right:6px}.epg-program-time>:last-child{margin-right:0}.epg-program-time svg{width:12px;height:12px}.epg-program.current .live-badge{margin-left:auto;padding:2px 6px;background:#ef4444;color:#fff;font-size:10px;font-weight:700;border-radius:4px}.epg-program-title{font-size:14px;font-weight:500;color:#fff;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.epg-program.current .epg-program-title{color:var(--c)}.epg-program-description{font-size:12px;color:rgba(255,255,255,.5);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.epg-progress{margin-top:8px}.epg-progress-bar{height:6px;background:rgba(255,255,255,.1);border-radius:3px;overflow:hidden}.epg-progress-fill{height:100%;background:var(--c);-webkit-transition:width 1s linear;transition:width 1s linear}.epg-progress-text{font-size:10px;color:rgba(255,255,255,.5);margin-top:4px}.epg-empty{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;height:100%;color:rgba(255,255,255,.3)}.epg-empty svg{width:48px;height:48px;margin-bottom:12px}.epg-empty p{font-size:14px}.tv-osd{position:absolute;left:0;right:0;bottom:0;z-index:30;background:-webkit-linear-gradient(bottom,#000 0,rgba(0,0,0,.9) 50%,transparent 100%);background:linear-gradient(to top,#000 0,rgba(0,0,0,.9) 50%,transparent 100%);padding:80px 24px 16px;opacity:0;pointer-events:none;-webkit-transition:opacity .3s;transition:opacity .3s}.tv-osd.visible{opacity:1;pointer-events:auto}.tv-osd-content{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.tv-osd-content>*{margin-right:24px}.tv-osd-content>:last-child{margin-right:0}.tv-osd-logo{width:56px;height:56px;object-fit:contain;background:rgba(255,255,255,.1);border-radius:8px;padding:4px;-webkit-flex-shrink:0;flex-shrink:0}.tv-osd-info{-webkit-flex-shrink:0;flex-shrink:0}.tv-osd-header{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;margin-bottom:4px}.tv-osd-header>*{margin-right:12px}.tv-osd-header>:last-child{margin-right:0}.tv-osd-channel{font-size:20px;font-weight:700;color:#fff}.tv-osd-time{font-size:14px;color:rgba(255,255,255,.5)}.tv-osd-program-row{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:baseline;-webkit-align-items:baseline;align-items:baseline;max-width:800px}.tv-osd-program{font-size:16px;font-weight:500;color:rgba(255,255,255,.9);-webkit-flex-shrink:0;flex-shrink:0}.tv-osd-separator{margin:0 8px;color:rgba(255,255,255,.4);-webkit-flex-shrink:0;flex-shrink:0}.tv-osd-description{font-size:14px;color:rgba(255,255,255,.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tv-osd-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;width:200px;margin-top:4px}.tv-osd-progress>*{margin-right:12px}.tv-osd-progress>:last-child{margin-right:0}.tv-osd-progress-bar{-webkit-box-flex:1;-webkit-flex:1;flex:1;height:4px;background:rgba(255,255,255,.2);border-radius:2px;overflow:hidden}.tv-osd-progress-fill{height:100%;background:var(--c);-webkit-transition:width 1s linear;transition:width 1s linear}.tv-osd-progress-text{font-size:12px;color:rgba(255,255,255,.4)}.tv-osd-spacer{-webkit-box-flex:1;-webkit-flex:1;flex:1}.tv-loading{position:absolute;top:0;left:0;right:0;bottom:0;z-index:15;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;background:rgba(0,0,0,.7)}.tv-loading.hidden{display:none}.tv-page.player-mode .tv-content{opacity:0;pointer-events:none}.empty-state{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-orient:vertical;-webkit-flex-direction:column;flex-direction:column;-webkit-box-align:center;-webkit-align-items:center;align-items:center;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center;padding:32px;color:rgba(255,255,255,.3);text-align:center}.empty-state svg{width:32px;height:32px;margin-bottom:8px}.empty-state p{font-size:14px}.favorite-icon{width:14px;height:14px;color:#ef4444;fill:#ef4444;-webkit-flex-shrink:0;flex-shrink:0;margin-left:auto}.tv-toast{position:fixed;bottom:80px;left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%);background:rgba(0,0,0,.9);color:#fff;padding:12px 24px;border-radius:8px;font-size:14px;z-index:100;-webkit-animation:.3s toast-in;animation:.3s toast-in}.tv-toast.fade-out{opacity:0;-webkit-transition:opacity .3s;transition:opacity .3s}@-webkit-keyframes toast-in{from{opacity:0;-webkit-transform:translateX(-50%) translateY(20px)}to{opacity:1;-webkit-transform:translateX(-50%) translateY(0)}}@keyframes toast-in{from{opacity:0;transform:translateX(-50%) translateY(20px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}@media screen and (max-width:768px){.tv-page{width:100%;height:100vh;overflow:hidden}.tv-content{position:absolute;top:0;left:0;right:0;bottom:0;-webkit-flex-direction:row;flex-direction:row;height:100%}.tv-column{height:100%;overflow:hidden}.tv-column-content{-webkit-box-flex:1;-webkit-flex:1;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.tv-sidebar{position:static;left:auto;top:auto;bottom:auto;width:50%;max-width:none;height:100%;z-index:auto;border-right:1px solid rgba(255,255,255,.1);background:rgba(0,0,0,.5)}.tv-channels{width:50%;height:100%;border-right:none}.tv-epg{display:none}.tv-osd{padding:8px 12px;bottom:0;top:auto}.tv-osd-content{-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.tv-osd-content>*{margin-right:12px}.tv-osd-logo{width:32px;height:32px;-webkit-flex-shrink:0;flex-shrink:0}.tv-osd-info{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0;overflow:hidden}.tv-osd-channel{font-size:14px}.tv-osd-program{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tv-osd-description,.tv-osd-separator{display:none!important}.tv-osd-progress,.tv-osd-spacer{display:none}.tv-osd-header{margin-bottom:0}.tv-osd-program-row{margin-top:2px}}@media screen and (max-width:480px){.tv-sidebar{position:fixed!important;left:-100%!important;top:0!important;bottom:0!important;width:80%!important;max-width:300px!important;z-index:100!important;-webkit-transition:left .3s;transition:left .3s;background:var(--bg)!important;border-right:1px solid rgba(255,255,255,.1)}.tv-sidebar.open{left:0!important}.tv-channels{width:100%!important}.category-item,.channel-item{padding:8px 10px;font-size:13px}.tv-column-header{padding:10px 12px}.tv-column-title{font-size:12px}.tv-column-content{padding:8px}}