/* TV edition: original palette, screens and live-data behavior. */
html{--tv-unit:1px;--tv-nav:100px;--tv-edge:24px;--tv-map-height:600px}
body{font-size:calc(20 * var(--tv-unit));overflow-x:hidden}
.app{padding-bottom:calc(var(--tv-nav) + var(--tv-edge));min-height:100vh}
.screen{min-height:0;padding-left:var(--tv-edge);padding-right:var(--tv-edge)}
.map-screen{padding-top:var(--tv-edge)}
.map-header{max-width:none;padding:0;margin:0 0 8px}
.map-header h1{font-size:calc(30 * var(--tv-unit))}
.install-guide{max-width:none;margin:4px 0;padding:0;font-size:calc(16 * var(--tv-unit))}
.install-guide summary{padding:4px 0;font-size:inherit}
#connection,.legend,#geometryState{max-width:none;margin:4px 0;padding:0;font-size:calc(17 * var(--tv-unit));line-height:1.25}
.map-stage{width:100%;max-width:none;min-height:0;height:var(--tv-map-height);margin:0;padding:0;overflow:hidden;display:flex}
.map-stage #mapImage{width:100%;height:100%;min-height:0;max-height:none;flex:1 1 auto;overflow:visible}
.region-label{font-size:16px}
.info{max-width:none;margin:4px 0;padding:0}
.info .site,.info .date{font-size:calc(18 * var(--tv-unit));line-height:1.4}
#selectedRegion{font-size:calc(21 * var(--tv-unit))}
.nav{height:var(--tv-nav);padding:calc(8 * var(--tv-unit)) var(--tv-edge);padding-bottom:var(--tv-edge);display:flex;gap:0}
.nav button{flex:1 1 25%;margin:0 4px;font-size:calc(22 * var(--tv-unit));border-radius:calc(32 * var(--tv-unit))}
.nav .icon{font-size:calc(32 * var(--tv-unit))}
.page,.music-page{max-width:calc(1400 * var(--tv-unit));padding:var(--tv-edge);font-size:calc(22 * var(--tv-unit))}
.page h1,.music-page h1{font-size:calc(36 * var(--tv-unit))}
.page p,.music-note{font-size:calc(20 * var(--tv-unit))}
.music-card h2{font-size:calc(26 * var(--tv-unit))}
.music-frame{height:calc(550 * var(--tv-unit));max-height:65vh}
#subscriptions select,#subscriptions button,#watchBanner button{font-size:calc(22 * var(--tv-unit));min-height:calc(52 * var(--tv-unit))}
.region-row{font-size:calc(22 * var(--tv-unit));padding:calc(18 * var(--tv-unit))}
.region-row small{font-size:calc(18 * var(--tv-unit))}
button:focus,a:focus,select:focus,summary:focus,[tabindex]:focus{outline:3px solid #ffdd19;outline-offset:3px}
dialog{display:none}dialog[open]{display:block;position:fixed;top:5vh;left:0;right:0;margin:auto;z-index:200;max-height:80vh;overflow:auto}
#regionDialog{width:calc(950 * var(--tv-unit));max-width:90vw;max-height:80vh}
.rd-content{max-height:65vh}.global-threat-banner{max-width:none;font-size:calc(20 * var(--tv-unit))}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
