/* Geometria original em paisagem para uso em TVs pelo Media Station X. */
html,body,#app,#gate,.native-host{height:100vh}#app,#gate{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;border:0}.player-page,.native-player,dialog.native-modal{top:0;right:0;bottom:0;left:0;height:100vh}.native-stage .inline-player{top:0;right:0;bottom:0;left:0}.native-panel-background{top:0;right:0;bottom:0;left:0}
.native-dialog{width:78vw;max-width:1050px;max-height:90vh}.native-dialog .body{max-height:65vh}.native-host{height:100vh}.restart-app{right:24px;bottom:16px;font-size:18px;padding:9px 14px}
button:focus,input:focus,select:focus,a:focus,[tabindex="0"]:focus{outline:3px solid #fff!important;outline-offset:2px;filter:brightness(1.2)}.native-stage button:focus,.native-stage input:focus,.native-stage select:focus{outline-width:1.5px!important;outline-offset:0}.native-stage .native-poster-grid{grid-gap:3px}.native-stage .native-settings{grid-gap:6px}.native-stage .native-poster-grid.live-channels .native-item{margin-bottom:1px}.native-stage .native-playlist-row>button+button{margin-left:3px}.native-stage .native-playlists>div+div{margin-top:7px}.native-dialog .buttons>button+button{margin-left:12px}.theme-list{grid-gap:10px}


/* LG webOS TV 5.0+ / 1920x1080. Mantém seleção clara para 5-way e Magic Remote. */
html,body{margin:0;overflow:hidden;background:#000;cursor:default}body{overscroll-behavior:none}
button,input,select,a,[tabindex="0"]{min-height:44px}
button:focus,input:focus,select:focus,a:focus,[tabindex="0"]:focus{outline:4px solid #fff!important;outline-offset:3px!important;box-shadow:0 0 0 3px rgba(0,115,255,.75)!important}
.native-stage{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right));}
video{background:#000;object-fit:contain}

.session-recovery{width:760px;max-width:85vw;margin:12vh auto;padding:40px;border:1px solid #34506c;border-radius:20px;background:#101d2e;color:#fff;font:24px/1.5 Arial,sans-serif}.session-recovery h1{font-size:32px}.session-recovery button{display:block;width:100%;padding:18px;margin-top:18px;border:1px solid #8caccf;border-radius:10px;background:#1d426a;color:white;font:24px Arial,sans-serif}.session-recovery button:focus{outline:4px solid white}

/* Vídeo ao vivo em coordenadas da viewport, fora do layout com escala. */
.live-video-portal{position:fixed;right:auto;bottom:auto;min-height:0;max-width:none;max-height:none;margin:0;padding:0;border:0;border-radius:0;transform:none;-webkit-transform:none;background:#000;overflow:hidden;z-index:20;display:block}
.live-video-portal .video-wrap{position:absolute;top:0;left:0;width:100%;height:100%;max-height:none;margin:0;padding:0;transform:none;-webkit-transform:none;display:block}
.live-video-portal video{position:absolute;top:0;left:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;outline:0;border-radius:0;transform:none;-webkit-transform:none;object-fit:contain;opacity:1;visibility:visible;display:block;background:#000}
.live-video-portal .player-status{font-size:1.3vw;width:auto;max-width:90%;bottom:10%;padding:8px 12px;z-index:2}
.live-video-portal .player-retry{font-size:1.2vw;padding:8px 12px;bottom:2%;z-index:3}
.live-video-portal.tv-live-fullscreen{z-index:80}
.live-video-portal.tv-live-fullscreen .player-status{font-size:24px;padding:12px 20px}
.live-video-portal.tv-live-fullscreen .player-retry{font-size:22px;padding:12px 20px;bottom:4%}
body.tv-live-fullscreen-active #restart-app{display:none!important}
.live-expand{position:absolute;right:12px;bottom:12px;z-index:5;border:1px solid #9baebf;border-radius:6px;padding:8px 14px;color:#fff;background:rgba(0,0,0,.65);font:16px Arial,sans-serif;cursor:pointer}
.live-video-portal.tv-live-fullscreen .live-expand{font-size:22px;right:24px;bottom:24px}
#grid.live-channels [data-item]{touch-action:manipulation;-ms-touch-action:manipulation}
/* Não aplicar efeitos de foco ao plano de vídeo acelerado da TV. */
.live-video-portal video,.live-video-portal video:focus{filter:none!important;-webkit-filter:none!important;outline:0!important;outline-offset:0!important;box-shadow:none!important;min-width:0;min-height:0}
.live-video-portal.live-video-focused:not(.tv-live-fullscreen)::after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;border:3px solid #fff;box-shadow:inset 0 0 0 2px #0073ff;box-sizing:border-box;pointer-events:none;z-index:4}

/* Flex fallback for TVs without CSS Grid; theme geometry remains the APK's. */
.native-stage .native-poster-grid{display:flex;flex-wrap:wrap}
.native-stage .native-poster-grid.live-channels{flex-wrap:nowrap}
@supports (display:grid){.native-stage .native-poster-grid{display:grid}.native-stage .native-poster-grid.live-channels{display:flex}}

/* 2.0.3: fixed title contrast and native button defaults on older TV engines. */
.native-stage .native-poster-grid:not(.live-channels) .poster{background:#0c1627;color:#fff;border:1px solid rgba(255,255,255,.3);box-sizing:border-box;-webkit-appearance:none;appearance:none}
.native-stage .native-poster-grid:not(.live-channels) .poster [data-native-id="txt_name"]{display:block!important;background:rgba(8,15,26,.96)!important;color:#fff!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-sizing:border-box;padding:2px 3px!important;text-align:left}
.native-stage .native-description{display:block!important;overflow:auto!important;white-space:pre-wrap;word-wrap:break-word;overflow-wrap:break-word;min-height:0!important;line-height:1.35;-webkit-overflow-scrolling:touch}
.native-stage img[data-tv26-image]{border:0;color:#c4d4e5;background:#101b2c}
.native-stage [data-native-id="movie_bg"] img[data-tv26-image]{background:transparent}
