/* media-panel * Outer HUD shell: #media-panel * Inner live pane: #tv-panel */ .hud-panel-media { top: var(--hud-offset); right: var(--hud-offset); width: calc(420px * var(--hud-scale)); max-width: calc(100vw - 32px); max-height: calc(100vh - (2 * var(--hud-offset))); min-height: 0; min-width: calc(300px * var(--hud-scale)); padding: calc(10px * var(--hud-scale)); display: flex; flex-direction: column; gap: var(--hud-gap-sm); z-index: 18; } .hud-panel-media:has(.tv-panel-meta-wrap.is-collapsed) { gap: 0; } .hud-panel-media.is-reforming { transition: height 0.24s cubic-bezier(0.22, 1, 0.36, 1), top 0.24s cubic-bezier(0.22, 1, 0.36, 1); will-change: height, top; } .hud-panel-media .hud-panel__header { align-items: center; gap: var(--hud-gap-xs); } .hud-panel-media:has(.tv-panel-meta-wrap.is-collapsed) .hud-panel__header { margin-bottom: var(--hud-gap-sm); } .hud-panel-media .hud-panel__title-group { flex: 0 0 auto; min-width: auto; } .tv-panel-header-title { flex: 0 0 auto; white-space: nowrap; margin: 0; } .hud-panel-media .hud-panel__header .hud-panel__action, .hud-panel-media .hud-panel__header .hud-panel-close { cursor: pointer; user-select: auto; } .hud-panel-media .hud-panel__header .tv-panel-select { cursor: pointer; user-select: auto; } .tv-panel-header-controls { display: flex; align-items: center; gap: var(--hud-gap-xs); flex: 1 1 auto; min-width: 0; } .tv-panel-content { display: flex; flex: 1 1 auto; min-height: 0; overflow: hidden; } .tv-tab-pane { display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; gap: var(--hud-gap-sm); overflow: hidden; } .tv-tab-pane:has(.tv-panel-meta-wrap.is-collapsed) { gap: 0; } .tv-panel-toolbar-actions { display: inline-flex; align-items: center; gap: var(--hud-gap-xs); flex-shrink: 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-meta-wrap { overflow: hidden; flex: 0 0 auto; max-height: none; opacity: 1; transition: max-height 0.22s ease, opacity 0.18s ease, margin 0.22s ease; } .tv-panel-meta-wrap.is-collapsed { max-height: 0; opacity: 0; pointer-events: none; margin-top: 0; margin-bottom: 0; } .tv-panel-meta { display: grid; gap: calc(4px * var(--hud-scale)); min-height: 0; } .tv-panel-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: calc(6px * var(--hud-scale)); min-width: 0; } .tv-panel-title { min-width: 0; color: var(--hud-text); font-size: calc(0.96rem * var(--hud-scale)); font-weight: 600; overflow-wrap: anywhere; } .tv-panel-tag { flex: 0 0 auto; border: 1px solid rgba(137, 179, 217, 0.22); border-radius: calc(999px * var(--hud-scale)); background: rgba(108, 153, 192, 0.12); color: rgba(214, 232, 248, 0.86); padding: calc(2px * var(--hud-scale)) calc(7px * var(--hud-scale)); font-size: calc(0.62rem * var(--hud-scale)); font-weight: 700; line-height: 1.35; letter-spacing: 0.04em; } .tv-panel-tag--status { border-color: rgba(111, 213, 161, 0.34); background: rgba(111, 213, 161, 0.13); color: rgba(174, 244, 202, 0.92); } .tv-panel-tag--warning { border-color: rgba(255, 209, 102, 0.36); background: rgba(255, 209, 102, 0.13); color: rgba(255, 226, 149, 0.92); } .tv-panel-tag--error { border-color: rgba(255, 117, 117, 0.36); background: rgba(255, 117, 117, 0.13); color: rgba(255, 184, 184, 0.94); } .tv-panel-subtitle { color: var(--hud-text-muted); font-size: calc(0.74rem * var(--hud-scale)); line-height: 1.35; white-space: normal; overflow-wrap: anywhere; } .tv-panel-notes { color: var(--hud-text-soft); font-size: calc(0.68rem * var(--hud-scale)); line-height: 1.45; white-space: normal; overflow-wrap: anywhere; } .tv-panel-catalog { color: var(--hud-text-soft); font-size: calc(0.66rem * var(--hud-scale)); letter-spacing: 0.04em; text-transform: uppercase; white-space: normal; overflow-wrap: anywhere; } .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-tab-pane[hidden] { display: none !important; } /* ── Multi-edge resize handles ───────────────────────────────── */ .tv-panel-edge { position: absolute; z-index: 10; } .tv-panel-edge[data-edge="r"] { right: 0; top: calc(12px * var(--hud-scale)); bottom: calc(12px * var(--hud-scale)); width: calc(6px * var(--hud-scale)); cursor: ew-resize; } .tv-panel-edge[data-edge="b"] { bottom: 0; left: calc(12px * var(--hud-scale)); right: calc(12px * var(--hud-scale)); height: calc(6px * var(--hud-scale)); cursor: ns-resize; } .tv-panel-edge[data-edge="l"] { left: 0; top: calc(12px * var(--hud-scale)); bottom: calc(12px * var(--hud-scale)); width: calc(6px * var(--hud-scale)); cursor: ew-resize; } .tv-panel-edge[data-edge="br"] { right: 0; bottom: 0; width: calc(20px * var(--hud-scale)); height: calc(20px * var(--hud-scale)); cursor: nwse-resize; } .tv-panel-edge[data-edge="bl"] { left: 0; bottom: 0; width: calc(20px * var(--hud-scale)); height: calc(20px * var(--hud-scale)); cursor: nesw-resize; } .layout-mode-mobile .hud-panel-media { position: fixed; left: 8px; right: 8px; top: calc(8px + var(--safe-top)); bottom: calc(84px + var(--safe-bottom)); width: auto; max-width: none; max-height: none; min-width: 0; z-index: 230; } .layout-mode-mobile .tv-panel-player { min-height: min(42vh, 360px); } .layout-mode-mobile .tv-panel-edge { display: none; } /* 右下角视觉标记 */ .tv-panel-edge[data-edge="br"]::before { content: ""; position: absolute; inset: calc(4px * var(--hud-scale)); border-right: 2px solid rgba(223, 235, 248, 0.4); border-bottom: 2px solid rgba(223, 235, 248, 0.4); transition: border-color 0.18s ease; } .tv-panel-edge[data-edge="br"]:hover::before { border-color: rgba(244, 249, 255, 0.75); } .hud-panel-media.is-resizing { transition: none !important; user-select: none; } /* Whole panel is draggable; player overrides back to default */ .hud-panel-media:not(.is-resizing) { cursor: grab; } .hud-panel-media.is-dragging { cursor: grabbing; } .hud-panel-media .tv-panel-player { cursor: default; } /* Disable iframe/video pointer capture while dragging so mouse events pass through */ .hud-panel-media.is-dragging .tv-panel-iframe, .hud-panel-media.is-dragging .tv-panel-video { pointer-events: none; } .earth-app.layout-expanded .hud-panel-media:not([data-dragged="true"]) { top: var(--hud-offset); right: var(--hud-offset); transform: translate(calc(100% - var(--hud-offset)), calc(-100% + var(--hud-offset))); } /* Media panel keeps its fixed width on all screen sizes. Responsive stretching removed — width only changes if user manually resizes. */