.section.tv-online { padding-top: 28px; padding-bottom: 32px; }
.tv-online .tv-online__heading { margin-bottom: 20px; }
.tv-player { display: grid; grid-template-columns: minmax(0, 1fr) 340px; border: 1px solid #efd9c5; border-radius: 24px; background: var(--paper); overflow: hidden; }
.tv-player [hidden] { display: none !important; }
.tv-player__main { min-width: 0; padding: 0; scroll-margin-top: 160px; }
.tv-player__screen { position: relative; isolation: isolate; width: 100%; aspect-ratio: 16 / 9; display: grid; place-items: center; background: linear-gradient(135deg, #fffaf5, #ffe1be); overflow: hidden; }
.tv-player__screen::before, .tv-player__screen::after { content: ''; position: absolute; z-index: -1; width: 65%; aspect-ratio: 1; border: 1px solid #f8c797; border-radius: 50%; pointer-events: none; }
.tv-player__screen::before { top: -55%; right: -15%; box-shadow: 0 0 0 36px #f5841508, 0 0 0 72px #f5841508; }
.tv-player__screen::after { bottom: -70%; left: -18%; box-shadow: 0 0 0 36px #f5841508, 0 0 0 72px #f5841508; }
.tv-player__screen video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; background: #222222; object-fit: contain; }
.tv-player__placeholder { position: absolute; inset: 0; width: 100%; padding: 24px; border: 0; text-align: center; color: var(--ink); background: transparent; font-family: var(--font-body); cursor: pointer; }
.tv-player__placeholder:focus-visible { outline: 3px solid var(--ink); outline-offset: -6px; }
.tv-player__placeholder:disabled { cursor: default; }
.tv-player__placeholder .icon { display: block; box-sizing: content-box; width: 32px; height: 32px; padding: 20px; margin: 0 auto 20px; border-radius: 50%; color: var(--action-ink); background: var(--action); }
.tv-player__placeholder:hover:not(:disabled) .icon { background: var(--action-hover); }
.tv-player__placeholder:active:not(:disabled) .icon { background: var(--link); }
.tv-player__placeholder:disabled .icon { color: var(--control-disabled-ink); background: var(--control-disabled); }
.tv-player__placeholder strong { display: block; overflow-wrap: anywhere; font-size: clamp(1.125rem, 1.8vw, 1.5rem); font-weight: 700; line-height: 1.35; }
.tv-player__placeholder > span { display: block; margin: 10px 0 0; color: var(--ink-soft); font-size: 14px; line-height: 1.5; }
/* Keep announcements available without adding a second panel below the screen. */
.tv-player__feedback { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); pointer-events: none; }
[data-playback="loading"] .tv-player__feedback,
[data-playback="error"] .tv-player__feedback,
[data-playback="blocked"] .tv-player__feedback { inset: 0; width: auto; height: auto; padding: 20px; clip-path: none; display: grid; align-content: safe center; justify-items: center; gap: 16px; overflow-y: auto; background: #222222; color: #ffffff; text-align: center; }
.tv-player .tv-player__status { max-width: 460px; margin: 0; color: inherit; font-size: 14px; line-height: 1.6; }
[data-playback="error"] .tv-player__feedback,
[data-playback="blocked"] .tv-player__feedback { pointer-events: auto; }
.tv-player__feedback .button { pointer-events: auto; }
/* The screen sets the desktop height; a long catalogue scrolls inside it. */
.tv-channels { display: flex; flex-direction: column; min-width: 0; min-height: 0; contain: size; border-left: 1px solid #efd9c5; background: #fff8f1; }
.tv-channels__header { flex: 0 0 auto; padding: 18px 20px 14px; color: var(--action-ink); background: var(--action); }
.tv-channels__heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.tv-channels__heading h3 { margin: 0; color: inherit; font: 700 22px/1.3 var(--font-body); }
.tv-channels__heading .icon { width: 24px; height: 24px; }
.tv-channels__header label { display: block; margin-bottom: 8px; font-size: 13px; font-weight: 600; }
.tv-channels__header input { width: 100%; height: 44px; padding: 0 12px; font: 400 15px/1.5 var(--font-body); border: 1px solid transparent; border-radius: 10px; color: var(--ink); background: var(--paper); }
.tv-channels__header input:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.tv-channels__header input:disabled { color: var(--control-disabled-ink); background: var(--control-disabled); }
.tv-channels__header p { margin: 12px 0 0; min-height: 20px; font-size: 12px; color: inherit; }
.tv-channels__list { flex: 1 1 0; min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; padding: 10px; scrollbar-width: thin; scrollbar-color: var(--orange) transparent; }
.tv-channel { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 58px; margin-bottom: 6px; padding: 8px; text-align: left; color: var(--ink); background: var(--paper); border: 1px solid #f0e5da; border-radius: 12px; cursor: pointer; font: 500 14px/1.4 var(--font-body); }
.tv-channel:last-child { margin-bottom: 0; }
.tv-channel__name { min-width: 0; overflow-wrap: anywhere; }
.tv-channel__number { flex: 0 0 22px; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.tv-channel__logo { position: relative; flex: 0 0 40px; display: grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); overflow: hidden; }
.tv-channel__logo img { position: absolute; width: 32px; height: 32px; object-fit: contain; opacity: 0; }
.tv-channel__logo img.is-loaded { opacity: 1; }
.tv-channel__initials { color: var(--muted); font: 600 12px/1 var(--font-body); }
.tv-channel:hover { border-color: var(--orange); background: var(--orange-soft); color: var(--link); }
.tv-channel:active { background: #ffe3c5; }
.tv-channel[aria-pressed="true"] { border-color: var(--action); background: var(--action); color: var(--action-ink); }
.tv-channel[aria-pressed="true"] .tv-channel__number { color: var(--action-ink); }
.tv-channel:focus-visible { outline: 2px solid var(--ink); outline-offset: -3px; }
.tv-channels__empty { overflow-y: auto; padding: 0 20px 16px; font-size: 14px; line-height: 1.6; }
.tv-player__note { margin: 20px 0 0; max-width: 980px; font-size: 13px; line-height: 1.65; color: var(--muted); }
@media (max-width: 1000px) {
  .tv-player { grid-template-columns: minmax(0, 1fr) 280px; }
  .tv-player__placeholder .icon { width: 28px; height: 28px; padding: 16px; margin-bottom: 16px; }
}
@media (max-width: 760px) {
  .section.tv-online { padding-top: 20px; padding-bottom: 24px; }
  .tv-online .tv-online__heading { margin-bottom: 16px; }
  .tv-player { grid-template-columns: minmax(0, 1fr); }
  .tv-player__placeholder { padding: 14px; }
  .tv-player__placeholder .icon { width: 24px; height: 24px; padding: 12px; margin-bottom: 10px; }
  .tv-player__placeholder > span { font-size: 12px; margin-top: 6px; }
  .tv-player .tv-player__status { font-size: 13px; line-height: 1.4; }
  [data-playback] .tv-player__feedback { padding: 12px; gap: 10px; }
  .tv-channels { contain: none; border-left: 0; border-top: 1px solid #efd9c5; }
  .tv-channels__header { padding: 16px; }
  .tv-channels__list { flex: 0 1 auto; max-height: 300px; }
}
