*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#080b10;color:#f5f7fb;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}.app{min-height:100dvh}.topbar{height:58px;display:flex;align-items:center;padding:0 16px;border-bottom:1px solid #1c2430;background:#0c1118;position:sticky;top:0;z-index:20}.brand{font-size:19px;font-weight:800}.brand span{font-weight:500;color:#9aa7b6}.screen{padding:18px 14px 28px;max-width:760px;margin:auto}.hero{padding:14px 2px 18px}.hero h1{font-size:27px;margin:0 0 8px}.muted{color:#94a1b1}.cards{display:grid;gap:12px}.card,.panel{background:#111821;border:1px solid #202b38;border-radius:18px;padding:16px}.card h2{margin:0 0 6px;font-size:18px}.field{width:100%;background:#090e14;border:1px solid #2b3745;color:#fff;border-radius:12px;padding:13px 14px;margin:7px 0}.btn{border:0;border-radius:12px;background:#fff;color:#080b10;font-weight:800;padding:13px 16px;min-height:48px}.btn.block{width:100%}.btn.ghost{background:#1b2531;color:#fff}.hidden{display:none!important}.progress{height:8px;background:#1a2430;border-radius:99px;overflow:hidden;margin:14px 0}.progress i{display:block;height:100%;width:0;background:#fff;transition:.2s}.home-grid{display:grid;grid-template-columns:1fr;gap:14px;padding-top:10px}.homebox{min-height:132px;text-align:left;padding:20px;border-radius:20px;border:1px solid #263241;background:#111821;color:#fff}.homebox strong{font-size:24px;display:block}.homebox small{color:#98a5b5;font-size:14px}.browser{display:grid;grid-template-columns:132px minmax(0,1fr);height:calc(100dvh - 58px);overflow:hidden}.groups{overflow-y:auto;background:#0b1016;border-right:1px solid #1c2632;padding:8px}.group{display:block;width:100%;border:0;background:transparent;color:#aeb8c5;text-align:left;padding:12px 10px;border-radius:11px;font-size:13px}.group.active{background:#202b38;color:#fff;font-weight:800}.channels{overflow-y:auto;padding:9px}.channel{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr);gap:10px;text-align:left;background:#111821;color:#fff;border:1px solid #202b38;border-radius:14px;padding:10px;margin-bottom:9px}.logo{width:46px;height:46px;border-radius:10px;background:#1b2530;object-fit:contain}.ctitle{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epg{font-size:12px;color:#a7b3c1;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.epg b{color:#fff}.more{width:100%;margin:8px 0 18px}.player{position:fixed;inset:0;background:#000;z-index:100;display:flex;flex-direction:column}.player-head{height:54px;display:flex;align-items:center;gap:12px;padding:0 12px;background:#080b10}.player-head button{border:0;background:#1b2530;color:#fff;border-radius:10px;padding:8px 12px}.player-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:800}.video-wrap{flex:1;display:flex;align-items:center;justify-content:center;background:#000}.video-wrap video{width:100%;height:100%;object-fit:contain}.status{font-size:13px;color:#aeb8c5;margin-top:8px}@media(min-width:700px){.home-grid{grid-template-columns:repeat(3,1fr)}.browser{grid-template-columns:220px minmax(0,1fr)}.groups{padding:12px}.channels{padding:14px}.screen{padding-top:28px}}
.poster-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.media-card{border:0;background:#111821;color:#fff;border-radius:14px;padding:0 0 10px;overflow:hidden;text-align:left}.media-card img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;background:#1b2530}.media-card strong,.media-card small{display:block;padding:8px 9px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.media-card small{padding-top:2px;color:#94a1b1}.player-actions{margin-left:auto;display:flex;gap:8px}.settings{position:absolute;right:10px;top:60px;z-index:110;width:min(330px,calc(100vw - 20px));background:#111821;border:1px solid #293544;border-radius:16px;padding:14px;box-shadow:0 15px 50px #000}.settings h3{margin:0 0 10px}.settings h4{margin:14px 0 7px}.track{border:0;background:#202b38;color:#fff;border-radius:9px;padding:9px;margin:3px}.track.active{background:#fff;color:#000}.track.disabled{opacity:.55}.sheet{position:fixed;inset:0;background:#080b10;z-index:80;overflow:auto;padding:12px}.sheet-head{position:sticky;top:0;background:#080b10;padding:8px 0 14px;display:flex;align-items:center;gap:10px}.season{margin:8px 0 20px}.episode{width:100%;text-align:left;background:#111821;color:#fff;border:1px solid #202b38;padding:14px;border-radius:12px;margin:5px 0}@media(min-width:520px){.poster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}

.player-status{position:absolute;left:12px;bottom:12px;z-index:105;background:#080b10cc;padding:7px 10px;border-radius:9px;pointer-events:none}

.page-indicator{grid-column:1/-1;text-align:center;color:#94a1b1;padding:16px 8px 28px;font-size:13px}.epg{display:block;min-height:16px}

.homebox-wrap{position:relative}.homebox-wrap .homebox{width:100%;height:100%}.refresh-bucket{position:absolute;right:10px;bottom:9px;border:0;background:transparent;color:#8ea0b5;font-size:12px;padding:5px 7px;z-index:2}.refresh-bucket:disabled{opacity:.55}.series-hero{display:grid;grid-template-columns:95px 1fr;gap:14px;padding:8px 2px 18px}.series-hero img{width:95px;aspect-ratio:2/3;object-fit:cover;border-radius:12px}.series-hero h2{margin:2px 0 6px;font-size:20px}.series-hero p,.series-meta{color:#94a1b1;font-size:12px}.season-tabs{display:flex;gap:7px;overflow-x:auto;padding:4px 0 12px}.season-tab{flex:0 0 auto;border:1px solid #293544;background:#111821;color:#fff;border-radius:10px;padding:10px 13px}.season-tab.active{background:#fff;color:#000}.episode{display:grid;grid-template-columns:34px 1fr 28px;align-items:center;gap:9px}.episode-number{width:30px;height:30px;display:grid;place-items:center;border-radius:8px;background:#202b38}.episode-copy{min-width:0}.episode-copy b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* v2.8 mobile UX only — no import/parser/API behaviour changes */
.group-picker,.group-shade{display:none}
.epg>span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.player-loading{position:absolute;inset:54px 0 0;z-index:102;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:#000c;pointer-events:none;text-align:center;padding:24px}.player-loading-name{font-size:18px;font-weight:800;max-width:88vw}.player-loading-text{font-size:13px;color:#aeb8c5}.channel-nav{position:absolute;inset:54px 0 0;z-index:104;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding:0 10px;opacity:0;transition:opacity .2s}.controls-visible .channel-nav{opacity:1}.channel-jump{pointer-events:auto;width:48px;height:64px;border:0;border-radius:16px;background:#080b10b8;color:#fff;font-size:44px;line-height:1}.player-head{z-index:106;transition:opacity .2s}.player:not(.controls-visible) .player-head{opacity:0;pointer-events:none}
@media(max-width:699px){
 .browser{display:block;height:calc(100dvh - 58px);position:relative;padding-top:58px}.channels{height:100%;padding:8px 10px 86px}.group-picker{display:flex;position:absolute;left:10px;right:10px;top:8px;height:44px;z-index:42;align-items:center;justify-content:space-between;border:1px solid #293544;border-radius:13px;background:#18222e;color:#fff;padding:0 14px;font-weight:800;text-align:left}.group-picker span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:12px}.groups{position:absolute;z-index:45;top:0;bottom:0;left:0;width:min(86vw,340px);padding:14px 10px 90px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:16px 0 40px #0008}.groups-open .groups{transform:translateX(0)}.group-shade{position:absolute;z-index:44;inset:0;background:#0009}.groups-open .group-shade{display:block}.group{font-size:15px;padding:14px 12px}.channel{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:12px;margin-bottom:10px;border-radius:16px;align-items:center}.logo{width:58px;height:58px}.ctitle{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;text-overflow:ellipsis;font-size:16px;line-height:1.18}.epg{font-size:12px;line-height:1.35;margin-top:5px}.epg:not(:has(b)){font-size:11px;color:#6f7d8c}.player-head{position:absolute;top:0;left:0;right:0;background:linear-gradient(#05080de8,#05080d80,transparent);height:72px;padding-bottom:14px}.video-wrap{position:absolute;inset:0}.player .status{position:absolute;left:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:105;margin:0}.settings{top:66px}.channel-nav{inset:0;padding-top:54px}.player-loading{inset:0}.player-title{font-size:15px}.player-head button{min-width:44px;min-height:44px}.poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:699px) and (orientation:landscape){
 .player{width:100vw;height:100dvh}.player-head{height:64px;padding:8px max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left))}.video-wrap{inset:0}.video-wrap video{width:100vw;height:100dvh;object-fit:contain}.settings{top:60px;right:max(10px,env(safe-area-inset-right))}.channel-nav{padding-left:max(10px,env(safe-area-inset-left));padding-right:max(10px,env(safe-area-inset-right))}.channel-jump{height:72px}.player-title{font-size:16px}.player-loading-name{font-size:20px}
}
@media(min-width:700px){.player-head{opacity:1!important;pointer-events:auto!important}.channel-nav{inset:54px 0 0}}

/* v2.9 licence / 60-second bandwidth-limited preview */
.trial-badge{margin-left:auto;white-space:nowrap;font-size:11px;font-weight:800;background:#263241;color:#fff;border-radius:999px;padding:6px 9px}.player-actions{margin-left:0}.paywall{position:fixed;inset:0;z-index:300;background:#000d;display:grid;place-items:center;padding:18px}.paywall-card{width:min(440px,100%);max-height:92dvh;overflow:auto;background:#111821;border:1px solid #2a3746;border-radius:22px;padding:24px;text-align:center;box-shadow:0 24px 80px #000}.paywall-card h2{font-size:27px;margin:18px 0 8px}.paywall-card p{line-height:1.5}.unlock-price{font-size:42px;font-weight:900;margin:18px 0}.unlock-price small{font-size:14px;font-weight:600;color:#94a1b1}.restore-link,.paywall-close{border:0;background:transparent;color:#b9c5d3;padding:13px;margin-top:7px;text-decoration:underline}.restore-form{margin-top:8px;text-align:left}.restore-form .status{text-align:center}.paywall .btn{cursor:pointer}.paywall code{user-select:all}
@media(max-width:699px){.trial-badge{position:absolute;top:74px;right:10px;z-index:107;background:#080b10c9}.paywall-card{padding:21px 18px}.unlock-price{font-size:38px}}
