/* tv-panel */ .hud-panel-tv { bottom: var(--hud-offset); right: var(--hud-offset); width: calc(420px * var(--hud-scale)); max-width: calc(100vw - 32px); min-width: calc(300px * var(--hud-scale)); min-height: calc(340px * var(--hud-scale)); padding: calc(18px * var(--hud-scale)); display: flex; flex-direction: column; gap: var(--hud-gap-sm); z-index: 18; } .tv-panel-header-copy { display: grid; gap: calc(3px * var(--hud-scale)); } .tv-panel-status { color: var(--hud-text-soft); font-size: calc(0.68rem * var(--hud-scale)); letter-spacing: 0.08em; text-transform: uppercase; } .tv-panel-controls { display: flex; gap: var(--hud-gap-sm); align-items: center; min-width: 0; } .tv-panel-select { flex: 1 1 auto; min-width: 0; appearance: none; -webkit-appearance: none; color-scheme: dark; border: 1px solid rgba(201, 225, 247, 0.14); border-radius: calc(12px * var(--hud-scale)); background: rgba(255, 255, 255, 0.04); color: var(--hud-text); padding: calc(10px * var(--hud-scale)) calc(12px * var(--hud-scale)); font-size: calc(0.84rem * var(--hud-scale)); } .tv-panel-select option, .tv-panel-select optgroup { background: #0a1422; color: #eef5fc; } .tv-panel-actions { display: flex; gap: var(--hud-gap-xs); } .tv-panel-action { border: 1px solid rgba(201, 225, 247, 0.12); border-radius: calc(12px * var(--hud-scale)); background: rgba(255, 255, 255, 0.05); color: var(--hud-text); padding: calc(10px * var(--hud-scale)) calc(12px * var(--hud-scale)); display: inline-flex; align-items: center; justify-content: center; white-space: nowrap; font-size: calc(0.84rem * var(--hud-scale)); line-height: 1; cursor: pointer; transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease; } .tv-panel-action--icon { padding: calc(9px * var(--hud-scale)); border-radius: calc(10px * var(--hud-scale)); } .tv-panel-action--icon .material-symbols-rounded { font-size: calc(18px * var(--hud-scale)); line-height: 1; font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 20; pointer-events: none; } .tv-panel-action:hover:not(:disabled) { background: rgba(255, 255, 255, 0.08); border-color: rgba(225, 239, 255, 0.2); color: var(--hud-accent-strong); } .tv-panel-action:disabled { opacity: 0.45; cursor: not-allowed; } .tv-panel-meta { display: grid; gap: calc(4px * var(--hud-scale)); } .tv-panel-title { color: var(--hud-text); font-size: calc(0.96rem * var(--hud-scale)); font-weight: 600; } .tv-panel-subtitle { color: var(--hud-text-muted); font-size: calc(0.74rem * var(--hud-scale)); line-height: 1.35; } .tv-panel-notes { color: var(--hud-text-soft); font-size: calc(0.68rem * var(--hud-scale)); line-height: 1.45; } .tv-panel-catalog { color: var(--hud-text-soft); font-size: calc(0.66rem * var(--hud-scale)); letter-spacing: 0.04em; text-transform: uppercase; } .tv-panel-player { position: relative; flex: 1 1 auto; min-height: calc(220px * var(--hud-scale)); border-radius: calc(16px * var(--hud-scale)); overflow: hidden; border: 1px solid rgba(201, 225, 247, 0.1); background: linear-gradient(180deg, rgba(9, 18, 32, 0.94), rgba(5, 11, 22, 0.94)); } .tv-panel-empty, .tv-panel-iframe, .tv-panel-video { position: absolute; inset: 0; width: 100%; height: 100%; } .tv-panel-empty { display: grid; place-items: center; padding: calc(18px * var(--hud-scale)); text-align: center; color: var(--hud-text-muted); font-size: calc(0.84rem * var(--hud-scale)); line-height: 1.5; } .tv-panel-iframe, .tv-panel-video { border: 0; background: #050a14; } .tv-panel-resize-handle { position: absolute; right: calc(8px * var(--hud-scale)); bottom: calc(8px * var(--hud-scale)); width: calc(18px * var(--hud-scale)); height: calc(18px * var(--hud-scale)); border: 0; padding: 0; background: transparent; cursor: nwse-resize; z-index: 2; } .tv-panel-resize-handle::before { content: ""; position: absolute; inset: 0; border-right: 2px solid rgba(223, 235, 248, 0.46); border-bottom: 2px solid rgba(223, 235, 248, 0.46); border-bottom-right-radius: calc(10px * var(--hud-scale)); opacity: 0.78; transition: opacity 0.18s ease, border-color 0.18s ease; } .tv-panel-resize-handle:hover::before { opacity: 1; border-color: rgba(244, 249, 255, 0.78); } .hud-panel-tv.is-resizing { transition: none !important; user-select: none; } .earth-app.layout-expanded .hud-panel-tv:not([data-dragged="true"]) { bottom: var(--hud-offset); right: var(--hud-offset); transform: translate(calc(100% - var(--hud-offset)), calc(100% - var(--hud-offset))); } /* TV panel keeps its fixed width on all screen sizes. Responsive stretching removed — width only changes if user manually resizes. */