/* App-wide TideView Media themes. Only the Music player has a separate theme. */
html[data-app-theme="tideview"] {
  --bg:#00143f; --bg-soft:#001b4d; --surface:#06345f; --surface-strong:#094474; --surface-warm:#102f55;
  --line:#23658e; --line-soft:#124a76; --text:#f6fbff; --muted:#97bdd6; --muted-strong:#cce2f2;
  --accent:#3ec6ff; --accent-strong:#149bd6; --coral:#ff8f66; --gold:#f4c95d; --good:#b6f55d; --danger:#ff6f7e;
  --app-header:#000e31; --app-sidebar:#001b4d; --app-popover:#00234f; --app-poster:#073b6b; --app-shadow:rgba(0,7,28,.42);
}

html[data-app-theme="retro"] {
  --bg:#05070b; --bg-soft:#080c12; --surface:#0c1119; --surface-strong:#172131; --surface-warm:#121827;
  --line:#2a4058; --line-soft:#182535; --text:#f6fbff; --muted:#90a5ba; --muted-strong:#cfdeeb;
  --accent:#00d9ff; --accent-strong:#009fbe; --coral:#c126ff; --gold:#ffc247; --good:#58e6ac; --danger:#ff647a;
  --app-header:#05070b; --app-sidebar:#080c12; --app-popover:#0c1119; --app-poster:#101927; --app-shadow:rgba(0,0,0,.58);
}

html[data-app-theme="midnight"] {
  --bg:#080b14; --bg-soft:#101525; --surface:#171e30; --surface-strong:#202a43; --surface-warm:#25233f;
  --line:#304567; --line-soft:#202e47; --text:#f4fbff; --muted:#a1b0c7; --muted-strong:#d5e0ee;
  --accent:#24e8ff; --accent-strong:#29a8d8; --coral:#9d7cff; --gold:#f0c66d; --good:#79e0b2; --danger:#ff7185;
  --app-header:#060811; --app-sidebar:#101525; --app-popover:#171e30; --app-poster:#18243a; --app-shadow:rgba(0,0,0,.54);
}

html[data-app-theme="sunset"] {
  --bg:#170a10; --bg-soft:#251018; --surface:#351820; --surface-strong:#4a202a; --surface-warm:#51262b;
  --line:#6d3442; --line-soft:#47212c; --text:#fff8f4; --muted:#d3aeb1; --muted-strong:#f2d9d4;
  --accent:#ff8a5b; --accent-strong:#e95a45; --coral:#ff4f82; --gold:#ffc75c; --good:#8ee6ac; --danger:#ff6f79;
  --app-header:#0f0609; --app-sidebar:#221018; --app-popover:#351820; --app-poster:#412029; --app-shadow:rgba(12,0,3,.58);
}

html[data-app-theme="black"] {
  --bg:#000000; --bg-soft:#050506; --surface:#090a0c; --surface-strong:#14171b; --surface-warm:#101216;
  --line:#292d33; --line-soft:#171a1e; --text:#f7f8fa; --muted:#90969f; --muted-strong:#d6dae0;
  --accent:#e7edf3; --accent-strong:#b8c0c9; --coral:#61d9f0; --gold:#e8c05a; --good:#7cdda9; --danger:#ff667d;
  --app-header:#000000; --app-sidebar:#050506; --app-popover:#0a0b0d; --app-poster:#101216; --app-shadow:rgba(0,0,0,.72);
}

html[data-app-theme="cinema"] {
  --bg:#151515; --bg-soft:#1b1b1b; --surface:#202020; --surface-strong:#2b2b2b; --surface-warm:#31291b;
  --line:#3c3c3c; --line-soft:#2a2a2a; --text:#f2f2f2; --muted:#a1a1a1; --muted-strong:#d8d8d8;
  --accent:#e5a00d; --accent-strong:#bd7f00; --coral:#f0b532; --gold:#e5a00d; --good:#79c979; --danger:#e76464;
  --app-header:#0e0e0e; --app-sidebar:#171717; --app-popover:#202020; --app-poster:#252525; --app-shadow:rgba(0,0,0,.62);
}

html[data-app-theme] body,
html[data-app-theme] .content { color:var(--text); background:var(--bg); }
html[data-app-theme] .topbar { border-bottom-color:var(--line-soft); background:color-mix(in srgb, var(--app-header) 96%, transparent); }
html[data-app-theme] .topbar .topbar-actions {
  border-color:color-mix(in srgb,var(--accent) 26%,var(--line-soft));
  color:var(--text);
  background:linear-gradient(135deg,color-mix(in srgb,var(--app-popover) 88%,transparent),color-mix(in srgb,var(--app-header) 94%,transparent));
  box-shadow:0 8px 24px var(--app-shadow),inset 0 1px color-mix(in srgb,var(--accent) 14%,transparent);
}
html[data-app-theme] .topbar .topbar-actions :is(.icon-button,.profile-button) {
  border-color:color-mix(in srgb,var(--accent) 18%,var(--line-soft));
  color:var(--text);
  background:color-mix(in srgb,var(--surface) 58%,transparent);
}
html[data-app-theme] .topbar .topbar-actions :is(.icon-button,.profile-button):where(:hover,:focus-visible) {
  border-color:var(--accent);
  background:color-mix(in srgb,var(--surface-strong) 78%,transparent);
}
html[data-app-theme] .topbar .topbar-actions :is(.icon-button,.profile-button):focus-visible { outline-color:var(--accent); }
html[data-app-theme] .topbar .topbar-actions .server-status { color:var(--muted-strong); }
html[data-app-theme] .topbar .topbar-actions .profile-copy small { color:var(--muted); }
html[data-app-theme] .topbar .topbar-actions .avatar { box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 38%,transparent); }
html[data-app-theme] .profile-popover { border-color:var(--line); color:var(--text); background:var(--app-popover); }
html[data-app-theme] .sidebar { border-right-color:var(--line-soft); background:var(--app-sidebar); }
html[data-app-theme] .search-box,
html[data-app-theme] .secondary-button,
html[data-app-theme] .select-control,
html[data-app-theme] .segmented-control,
html[data-app-theme] .library-filter-bar,
html[data-app-theme] .selection-toolbar { border-color:var(--line); background:var(--surface); }
html[data-app-theme] .search-box:focus-within,
html[data-app-theme] .secondary-button:hover,
html[data-app-theme] .secondary-button:focus-visible { border-color:var(--accent); background:var(--surface-strong); }
html[data-app-theme] .primary-button { border-color:var(--accent); color:var(--app-header); background:var(--accent); }
html[data-app-theme] .primary-button:hover,
html[data-app-theme] .primary-button:focus-visible { background:color-mix(in srgb, var(--accent) 76%, white); }
html[data-app-theme] .alpha-filter { border-color:var(--line); color:var(--muted-strong); background:var(--surface); }
html[data-app-theme] .alpha-filter:where(:hover,:focus-visible) { border-color:var(--accent); color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .alpha-filter.active { border-color:var(--accent); color:var(--app-header); background:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 17%,transparent); }
html[data-app-theme] .nav-item:hover,
html[data-app-theme] .library-navigation button:hover,
html[data-app-theme] .sidebar-more-button:hover,
html[data-app-theme] .sidebar-collapse-button:hover { background:var(--surface); }
html[data-app-theme] .nav-item.active,
html[data-app-theme] .library-navigation button.active { color:var(--text); background:var(--surface-strong); box-shadow:inset 3px 0 0 var(--accent); }
html[data-app-theme] .poster-frame,
html[data-app-theme] .poster-fallback,
html[data-app-theme] .channel-card,
html[data-app-theme] .collection-card,
html[data-app-theme] .media-card-surface { border-color:var(--line); background:var(--app-poster); }
html[data-app-theme] #homeView {
  background:radial-gradient(ellipse at 82% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 44%),var(--bg);
}
html[data-app-theme] .home-setup-hero {
  background:radial-gradient(ellipse at 85% 80%,color-mix(in srgb,var(--accent) 23%,transparent),transparent 55%),linear-gradient(125deg,var(--app-header),var(--surface));
}
html[data-app-theme] .channel-card {
  color:var(--text);
  box-shadow:4px 7px 18px var(--app-shadow),0 0 14px color-mix(in srgb,var(--accent) 13%,transparent),inset 0 1px 0 color-mix(in srgb,var(--accent) 12%,transparent);
}
html[data-app-theme] .channel-card::before {
  border-color:color-mix(in srgb,var(--accent) 14%,var(--line-soft));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 55%);
  box-shadow:inset 0 0 15px color-mix(in srgb,var(--accent) 7%,transparent);
}
html[data-app-theme] .channel-logo-plate {
  border-color:color-mix(in srgb,var(--accent) 24%,var(--line));
  background:linear-gradient(166deg,color-mix(in srgb,var(--app-poster) 65%,var(--surface-strong)),color-mix(in srgb,var(--app-poster) 60%,var(--app-header)));
  box-shadow:inset 0 1px 0 color-mix(in srgb,var(--accent) 18%,transparent),inset 0 -1px 0 rgba(0,0,0,.7),0 5px 12px var(--app-shadow);
}
html[data-app-theme] .channel-logo-plate::before { background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 56%); }
html[data-app-theme] .channel-logo-plate::after { background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 13%,var(--surface)),transparent); }
html[data-app-theme] .channel-logo span { color:var(--muted-strong); }
html[data-app-theme] .channel-name { color:var(--muted-strong); }
html[data-app-theme] .channel-now { color:var(--muted-strong); }
html[data-app-theme="cinema"] #homeView .channel-card {
  border-color:#3b3933;
  background:linear-gradient(155deg,rgba(49,49,49,.92),rgba(13,13,13,.97));
  box-shadow:4px 7px 18px rgba(0,0,0,.43),inset 0 1px 0 rgba(255,255,255,.08);
}
html[data-app-theme="cinema"] #homeView .channel-card::before { border-color:rgba(255,255,255,.07); background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 54%); box-shadow:none; }
html[data-app-theme="cinema"] #homeView .channel-logo-plate {
  border-color:#494336;
  background:linear-gradient(160deg,rgba(34,34,34,.91),rgba(6,6,6,.96));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 5px 12px rgba(0,0,0,.4);
}
html[data-app-theme="cinema"] #homeView .channel-logo-plate::before { background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 56%); }
html[data-app-theme="cinema"] #homeView .channel-logo-plate::after { background:linear-gradient(165deg,rgba(120,100,53,.17),transparent); }
html[data-app-theme] .media-card-button:hover .poster-frame,
html[data-app-theme] .media-card-button:focus-visible .poster-frame,
html[data-app-theme] .channel-card:hover,
html[data-app-theme] .channel-card:focus-visible { border-color:var(--accent); box-shadow:0 13px 32px var(--app-shadow), 0 0 0 2px color-mix(in srgb, var(--accent) 22%, transparent); }
html[data-app-theme] .popover,
html[data-app-theme] .context-menu,
html[data-app-theme] .activity-drawer { border-color:var(--line); color:var(--text); background:var(--app-popover); }
html[data-app-theme] .profile-list button:hover,
html[data-app-theme] .context-menu button:hover { background:var(--surface-strong); }
html[data-app-theme] .activity-item > span { color:var(--accent); background:color-mix(in srgb, var(--accent) 12%, transparent); }
html[data-app-theme] .web-quality-menu {
  border-color:color-mix(in srgb,var(--accent) 36%,var(--line));
  color:var(--text);
  background:linear-gradient(150deg,color-mix(in srgb,var(--app-popover) 72%,var(--surface-strong)),var(--app-popover) 56%,color-mix(in srgb,var(--app-popover) 72%,var(--app-header)));
}
html[data-app-theme] .web-quality-heading small { color:var(--accent); }
html[data-app-theme] .web-quality-menu :is(p,.web-quality-note) { color:var(--muted-strong); }
html[data-app-theme] .web-quality-menu label span { color:var(--muted); }
html[data-app-theme] .web-quality-menu select { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .web-quality-menu select:focus-visible { border-color:var(--accent); outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent); }
html[data-app-theme] .web-quality-menu option { color:var(--text); background:var(--surface); }

/* The EPG can use its own palette without changing Media, the player, or Music. */
#liveView {
  --guide-bg:var(--bg-soft); --guide-surface:var(--surface); --guide-strong:var(--surface-strong);
  --guide-line:var(--line); --guide-accent:var(--accent); --guide-text:var(--text); --guide-muted:var(--muted-strong);
}
#liveView[data-guide-theme="tideview"] { --guide-bg:#001b4d; --guide-surface:#06345f; --guide-strong:#094474; --guide-line:#23658e; --guide-accent:#3ec6ff; --guide-text:#f6fbff; --guide-muted:#cce2f2; }
#liveView[data-guide-theme="retro"] { --guide-bg:#080c12; --guide-surface:#0c1119; --guide-strong:#172131; --guide-line:#2a4058; --guide-accent:#00d9ff; --guide-text:#f6fbff; --guide-muted:#cfdeeb; }
#liveView[data-guide-theme="midnight"] { --guide-bg:#101525; --guide-surface:#171e30; --guide-strong:#202a43; --guide-line:#304567; --guide-accent:#24e8ff; --guide-text:#f4fbff; --guide-muted:#d5e0ee; }
#liveView[data-guide-theme="sunset"] { --guide-bg:#251018; --guide-surface:#351820; --guide-strong:#4a202a; --guide-line:#6d3442; --guide-accent:#ff8a5b; --guide-text:#fff8f4; --guide-muted:#f2d9d4; }
#liveView[data-guide-theme="black"] { --guide-bg:#050506; --guide-surface:#090a0c; --guide-strong:#14171b; --guide-line:#292d33; --guide-accent:#e7edf3; --guide-text:#f7f8fa; --guide-muted:#d6dae0; }
#liveView[data-guide-theme="cinema"] { --guide-bg:#1b1b1b; --guide-surface:#202020; --guide-strong:#2b2b2b; --guide-line:#3c3c3c; --guide-accent:#e5a00d; --guide-text:#f2f2f2; --guide-muted:#d8d8d8; }
#liveView .live-dvr-tabs button { border-color:var(--guide-line); color:var(--guide-muted); background:var(--guide-surface); }
#liveView .live-dvr-tabs button:where(:hover,:focus-visible) { border-color:var(--guide-accent); color:var(--guide-text); background:var(--guide-strong); }
#liveView .live-dvr-tabs button.active { border-color:var(--guide-accent); color:var(--guide-bg); background:var(--guide-accent); }
#liveGuidePanel .guide-theme-picker,
#liveGuidePanel .guide-epg-search,
#liveGuidePanel .guide-tabs button,
#liveGuidePanel .guide-day-strip button,
#liveGuidePanel .guide-filter-chip,
#liveGuidePanel .guide-scroll-controls { border-color:var(--guide-line); color:var(--guide-muted); background:var(--guide-surface); }
#liveGuidePanel .guide-theme-picker svg,
#liveGuidePanel .guide-epg-search svg { color:var(--guide-accent); }
#liveGuidePanel .guide-theme-picker select,
#liveGuidePanel .guide-epg-search input { color:var(--guide-text); }
#liveGuidePanel .guide-epg-search input::placeholder { color:var(--guide-muted); opacity:.72; }
#liveGuidePanel .guide-tabs button:where(:hover,:focus-visible),
#liveGuidePanel .guide-day-strip button:where(:hover,:focus-visible),
#liveGuidePanel .guide-scroll-controls .icon-button:where(:hover,:focus-visible) { border-color:var(--guide-accent); background:var(--guide-strong); }
#liveGuidePanel .guide-tabs button.active,
#liveGuidePanel .guide-day-strip button.active { border-color:var(--guide-accent); color:var(--guide-bg); background:var(--guide-accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--guide-accent) 16%,transparent); }
#liveGuidePanel .guide-day-strip button span { color:var(--guide-muted); }
#liveGuidePanel .guide-day-strip button.active span { color:var(--guide-bg); }
#liveGuidePanel .guide-filter-chip.active { border-color:color-mix(in srgb,var(--guide-category) 66%,var(--guide-line)); background:color-mix(in srgb,var(--guide-category) 13%,var(--guide-strong)); }
#liveGuidePanel .guide-filter-chip:not(.active) { border-color:var(--guide-line); background:var(--guide-surface); }
#liveGuidePanel .guide-filter-chip.guide-recording,
#liveGuidePanel .guide-program.guide-recording { --guide-category:#ff4f8f; }
#liveGuidePanel .guide-filter-chip.guide-new,
#liveGuidePanel .guide-program.guide-new { --guide-new-category:#d8ff58; }
#liveGuidePanel .guide-filter-chip.guide-new { --guide-category:var(--guide-new-category); }
#liveGuidePanel .guide-filter-chip.guide-news,
#liveGuidePanel .guide-program.guide-news { --guide-category:#36d9ff; }
#liveGuidePanel .guide-filter-chip.guide-sports,
#liveGuidePanel .guide-program.guide-sports { --guide-category:#6dff8d; }
#liveGuidePanel .guide-filter-chip.guide-movie,
#liveGuidePanel .guide-program.guide-movie { --guide-category:#ffb54a; }
#liveGuidePanel .guide-program.guide-recording { --guide-category:#ff4f8f; }
#liveGuidePanel .guide-filter-chip:is(.guide-recording,.guide-new,.guide-news,.guide-sports,.guide-movie) { color:var(--guide-category); }
#liveGuidePanel .guide-shell { border-color:var(--guide-line); background:var(--guide-bg); }
#liveGuidePanel .guide-loading { color:var(--guide-text); background:color-mix(in srgb,var(--guide-bg) 92%,transparent); }
#liveGuidePanel .guide-scroll { scrollbar-color:var(--guide-accent) var(--guide-bg); }
#liveGuidePanel .guide-time-row,
#liveGuidePanel .guide-channel-heading,
#liveGuidePanel .guide-channel-cell,
#liveGuidePanel .guide-channel { border-color:var(--guide-line); color:var(--guide-text); background:var(--guide-bg); }
#liveGuidePanel .guide-channel:where(:hover,:focus-visible) { background:var(--guide-strong); box-shadow:inset 3px 0 0 var(--guide-accent); }
#liveGuidePanel .guide-channel :is(small,span),
#liveGuidePanel .guide-channel-heading span,
#liveGuidePanel .guide-time-lane span { color:var(--guide-muted); }
#liveGuidePanel .guide-time-lane span,
#liveGuidePanel .guide-row + .guide-row :is(.guide-channel,.guide-program-lane) { border-color:var(--guide-line); }
#liveGuidePanel .guide-program-lane { background:var(--guide-surface); }
#liveGuidePanel .guide-program,
#liveGuidePanel .guide-program.plain { border-color:var(--guide-line); color:var(--guide-text); background:var(--guide-strong); }
#liveGuidePanel .guide-program:is(.guide-recording,.guide-news,.guide-sports,.guide-movie):not(.plain) {
  border-color:color-mix(in srgb,var(--guide-category) 55%,var(--guide-line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--guide-category) 19%,var(--guide-strong)),var(--guide-strong));
  box-shadow:inset 4px 0 0 var(--guide-category);
}
#liveGuidePanel .guide-program.guide-new:not(.guide-recording):not(.guide-news):not(.guide-sports):not(.guide-movie):not(.plain) {
  border-color:color-mix(in srgb,var(--guide-new-category) 55%,var(--guide-line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--guide-new-category) 13%,var(--guide-strong)),var(--guide-strong));
  box-shadow:inset 4px 0 0 var(--guide-new-category);
}
#liveGuidePanel .guide-program.past:is(.guide-recording,.guide-news,.guide-sports,.guide-movie) {
  border-color:color-mix(in srgb,var(--guide-category) 45%,var(--guide-line)) !important;
  background:color-mix(in srgb,var(--guide-category) 10%,var(--guide-strong)) !important;
  box-shadow:inset 3px 0 0 var(--guide-category) !important;
  filter:none;
}
#liveGuidePanel .guide-program.past.guide-new:not(.guide-recording):not(.guide-news):not(.guide-sports):not(.guide-movie) {
  border-color:color-mix(in srgb,var(--guide-new-category) 45%,var(--guide-line)) !important;
  background:color-mix(in srgb,var(--guide-new-category) 10%,var(--guide-strong)) !important;
  box-shadow:inset 3px 0 0 var(--guide-new-category) !important;
  filter:none;
}
#liveGuidePanel .guide-program > span,
#liveGuidePanel .guide-program em.plain-badge { color:var(--guide-muted); }
#liveGuidePanel .guide-program:where(:hover,:focus-visible) { border-color:var(--guide-accent); background:color-mix(in srgb,var(--guide-accent) 16%,var(--guide-strong)); box-shadow:0 0 0 2px color-mix(in srgb,var(--guide-accent) 19%,transparent); }
#liveGuidePanel .guide-program:is(.guide-recording,.guide-news,.guide-sports,.guide-movie):not(.plain):where(:hover,:focus-visible) { border-color:var(--guide-category); box-shadow:inset 4px 0 0 var(--guide-category),0 0 0 2px color-mix(in srgb,var(--guide-category) 24%,transparent); }
#liveGuidePanel .guide-program.guide-new:not(.guide-recording):not(.guide-news):not(.guide-sports):not(.guide-movie):not(.plain):where(:hover,:focus-visible) { border-color:var(--guide-new-category); box-shadow:inset 4px 0 0 var(--guide-new-category),0 0 0 2px color-mix(in srgb,var(--guide-new-category) 24%,transparent); }
#liveGuidePanel .guide-scroll-controls .icon-button { border-color:var(--guide-line); color:var(--guide-text); background:var(--guide-strong); }
#liveGuidePanel .guide-channel-heading.next-day { border-right-color:var(--guide-accent); background:var(--guide-strong); box-shadow:inset 4px 0 0 var(--guide-accent); }
#liveGuidePanel .guide-channel-heading.next-day strong { color:var(--guide-accent); }

/* Movie and series details inherit the app palette while artwork keeps its original pixels. */
html[data-app-theme] .detail-view { color:var(--text); background:var(--bg); }
html[data-app-theme] .detail-shade {
  background:linear-gradient(90deg,color-mix(in srgb,var(--bg) 98%,transparent) 0%,color-mix(in srgb,var(--bg) 88%,transparent) 35%,color-mix(in srgb,var(--bg) 38%,transparent) 70%,color-mix(in srgb,var(--bg) 72%,transparent) 100%),linear-gradient(0deg,var(--bg),transparent 48%);
}
html[data-app-theme] .detail-back { border-color:var(--line); color:var(--text); background:color-mix(in srgb,var(--app-popover) 78%,transparent); }
html[data-app-theme] .detail-poster-wrap,
html[data-app-theme] .season-art { border-color:var(--line); background:var(--app-poster); }
html[data-app-theme] .detail-meta span,
html[data-app-theme] .detail-technical span { border-color:var(--line); color:var(--muted-strong); background:color-mix(in srgb,var(--app-popover) 74%,transparent); }
html[data-app-theme] .detail-overview,
html[data-app-theme] .episode-details p:last-child,
html[data-app-theme] .review-card p { color:var(--muted-strong); }
html[data-app-theme] .detail-provider,
html[data-app-theme] .detail-empty,
html[data-app-theme] .season-card > small,
html[data-app-theme] .part-card small,
html[data-app-theme] .cast-card small,
html[data-app-theme] .extra-card > small,
html[data-app-theme] .review-card header small { color:var(--muted); }
html[data-app-theme] .detail-provider,
html[data-app-theme] .detail-section:first-of-type,
html[data-app-theme] .detail-facts-section,
html[data-app-theme] .episode-details { border-color:var(--line-soft); }
html[data-app-theme] .detail-section:first-of-type { background:var(--bg-soft); }
html[data-app-theme] .detail-fact-grid { border-color:var(--line-soft); background:var(--line-soft); }
html[data-app-theme] .detail-fact-grid > div,
html[data-app-theme] .review-card,
html[data-app-theme] .extra-card { border-color:var(--line-soft); color:var(--text); background:var(--surface); }
html[data-app-theme] .detail-fact-grid small { color:var(--muted); }
html[data-app-theme] .detail-fact-grid strong,
html[data-app-theme] .episode-details h3 { color:var(--text); }
html[data-app-theme] .detail-tagline { color:var(--muted-strong); }
html[data-app-theme] .part-card,
html[data-app-theme] .season-back-card,
html[data-app-theme] .availability-server,
html[data-app-theme] .availability-item.local { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .part-card:where(:hover,:focus-visible,.active),
html[data-app-theme] .season-back-card:where(:hover,:focus-visible),
html[data-app-theme] .availability-server:where(:hover,:focus-visible) { border-color:var(--accent); background:var(--surface-strong); }
html[data-app-theme] .part-play,
html[data-app-theme] .resume-progress-button { border-color:var(--accent); color:var(--app-header); background:var(--accent); }
html[data-app-theme] .part-card > svg,
html[data-app-theme] .season-back-card svg,
html[data-app-theme] .detail-technical svg,
html[data-app-theme] .episode-detail-meta,
html[data-app-theme] .availability-server small,
html[data-app-theme] .availability-item > svg { color:var(--accent); }
html[data-app-theme] .availability-server b,
html[data-app-theme] .availability-group h3 { color:var(--muted-strong); }
html[data-app-theme] .cast-card:where(:hover,:focus-visible) strong { color:var(--accent); }
html[data-app-theme] .person-dialog { border-color:var(--line); color:var(--text); background:var(--app-popover); box-shadow:0 30px 90px var(--app-shadow); }
html[data-app-theme] .person-dialog :is(.dialog-heading,.dialog-footer) { border-color:var(--line-soft); background:var(--app-header); }
html[data-app-theme] .person-dialog .eyebrow,
html[data-app-theme] .person-dialog .text-button { color:var(--accent); }

/* Player chrome follows the app palette; the video stage remains black. */
html[data-app-theme] .player-dialog { color:var(--text); }
html[data-app-theme] .player-dialog .player-topbar { border-color:var(--line-soft); background:linear-gradient(180deg,var(--app-popover),var(--app-header)); }
html[data-app-theme] .player-dialog:not(.is-mini) .player-topbar,
html[data-app-theme] .player-dialog.is-mini .player-topbar {
  border-color:transparent;
  background:transparent;
}
html[data-app-theme] .player-dialog:not(.is-mini) .player-cinema-title { text-shadow:0 2px 9px #000,0 0 18px #000; }
html[data-app-theme] .player-cinema-mark { border-color:var(--line); color:var(--accent); }
html[data-app-theme] .player-mode-button,
html[data-app-theme] .player-track-field select,
html[data-app-theme] .player-tool-button,
html[data-app-theme] .player-control-button { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .player-mode-button:where(:hover,:focus-visible),
html[data-app-theme] .player-tool-button:where(:hover,:focus-visible,.is-active),
html[data-app-theme] .player-control-button:where(:hover,:focus-visible) { border-color:var(--accent); color:var(--app-header); background:var(--accent); }
html[data-app-theme] .player-dialog .player-primary-control { border-color:var(--accent); color:var(--app-header); background:var(--accent); }
html[data-app-theme] .player-dialog .player-controls,
html[data-app-theme] .player-dialog:not(.is-mini) .player-controls { border-color:var(--line); background:linear-gradient(180deg,color-mix(in srgb,var(--app-popover) 79%,transparent),color-mix(in srgb,var(--app-header) 95%,transparent)); }
html[data-app-theme] .player-dialog.is-mini { border-color:var(--line); }
html[data-app-theme] .player-timeline input,
html[data-app-theme] .player-volume { accent-color:var(--accent); }
html[data-app-theme] .player-timeline input::-webkit-slider-runnable-track { background:linear-gradient(to right,var(--accent) var(--player-seek-progress,0%),color-mix(in srgb,var(--text) 27%,transparent) var(--player-seek-progress,0%)); }
/* PC Live TV: the colored range is retained video, not the full airing or watched progress. */
html.is-pc-media-browser[data-app-theme] .player-timeline input.is-program-timeline::-webkit-slider-runnable-track {
  background:linear-gradient(to right,
    color-mix(in srgb,var(--text) 27%,transparent) 0 var(--player-seek-buffer-start,0%),
    var(--accent) var(--player-seek-buffer-start,0%) var(--player-seek-buffered,0%),
    color-mix(in srgb,var(--text) 27%,transparent) var(--player-seek-buffered,0%) 100%);
}
html.is-pc-media-browser[data-app-theme] .player-timeline input.is-program-timeline::-moz-range-track {
  background:linear-gradient(to right,
    color-mix(in srgb,var(--text) 27%,transparent) 0 var(--player-seek-buffer-start,0%),
    var(--accent) var(--player-seek-buffer-start,0%) var(--player-seek-buffered,0%),
    color-mix(in srgb,var(--text) 27%,transparent) var(--player-seek-buffered,0%) 100%);
}
html.is-pc-media-browser[data-app-theme] .player-timeline input.is-program-timeline::-moz-range-progress { background:transparent; }
html[data-app-theme] .player-timeline input::-webkit-slider-thumb,
html[data-app-theme] .player-timeline input::-moz-range-thumb { background:var(--accent); }
html[data-app-theme] .player-timeline input::-moz-range-progress { background:var(--accent); }
html[data-app-theme] .player-program-panel,
html[data-app-theme] .player-diagnostics-panel { border-color:var(--line); color:var(--text); background:linear-gradient(145deg,color-mix(in srgb,var(--app-popover) 94%,transparent),color-mix(in srgb,var(--app-header) 89%,transparent)); }
html[data-app-theme] .player-program-eyebrow { color:var(--accent); }
html[data-app-theme] .player-dialog.is-live .player-program-eyebrow { color:#ff7186; }
html[data-app-theme] .player-program-meta,
html[data-app-theme] .player-program-description,
html[data-app-theme] .player-control-context { color:var(--muted-strong); }
@media(pointer:coarse) and (max-width:1400px) {
  html[data-app-theme] .tablet-sidebar-heading {
    border-bottom-color:var(--line);
    color:var(--text);
    background:linear-gradient(135deg,var(--app-sidebar),color-mix(in srgb,var(--app-sidebar) 65%,var(--surface)));
  }
  html[data-app-theme] .tablet-sidebar-heading .icon-button { border:1px solid var(--line); border-radius:11px; color:var(--text); background:var(--surface); }
  html[data-app-theme] .tablet-sidebar-heading .icon-button:where(:hover,:focus-visible) { border-color:var(--accent); background:var(--surface-strong); }
  html[data-app-theme] .sidebar,
  html[data-app-theme].sidebar-collapsed .sidebar,
  html[data-app-theme].sidebar-collapsed .sidebar:hover,
  html[data-app-theme].sidebar-collapsed .sidebar.sidebar-hover-suppressed:hover {
    border-color:color-mix(in srgb,var(--accent) 25%,var(--line));
    color:var(--text);
    background:linear-gradient(160deg,color-mix(in srgb,var(--app-sidebar) 88%,var(--app-popover)),color-mix(in srgb,var(--app-header) 75%,var(--app-sidebar)));
  }
  html[data-app-theme] .sidebar-profile-menu { border-color:color-mix(in srgb,var(--accent) 25%,var(--line)); color:var(--text); background:var(--app-popover); }
  html[data-app-theme] .sidebar-profile-trigger,
  html[data-app-theme] .sidebar-search-button,
  html[data-app-theme] .sidebar .nav-item,
  html[data-app-theme] .sidebar .library-navigation button,
  html[data-app-theme] .sidebar-profile-choices > button,
  html[data-app-theme] .sidebar-profile-back,
  html[data-app-theme] .sidebar-detail-action,
  html[data-app-theme] .sidebar-profile-users button,
  html[data-app-theme] .sidebar-theme-options button { color:var(--text); }
  html[data-app-theme] .sidebar-libraries-label,
  html[data-app-theme] .sidebar-profile-label,
  html[data-app-theme] .sidebar-profile-users small { color:var(--muted); }
  html[data-app-theme] .sidebar-profile-trigger:where(:hover,:focus-visible,[aria-expanded="true"]),
  html[data-app-theme] .sidebar-search-button:where(:hover,:focus-visible),
  html[data-app-theme] .sidebar-profile-choices > button:where(:hover,:focus-visible),
  html[data-app-theme] .sidebar-profile-back:where(:hover,:focus-visible),
  html[data-app-theme] .sidebar-detail-action:where(:hover,:focus-visible),
  html[data-app-theme] .sidebar-profile-users button:where(:hover,:focus-visible),
  html[data-app-theme] .sidebar-theme-options button:where(:hover,:focus-visible,.active) { border-color:color-mix(in srgb,var(--accent) 35%,transparent); background:var(--surface-strong); }
  html[data-app-theme] .edge-navigation-hint { border-color:color-mix(in srgb,var(--accent) 42%,var(--line)); background:color-mix(in srgb,var(--app-sidebar) 78%,transparent); }
  html[data-app-theme] .edge-navigation-hint::before { background:var(--accent); box-shadow:0 0 9px color-mix(in srgb,var(--accent) 65%,transparent); }
  html[data-app-theme] .edge-navigation-hint:where(:hover,:focus-visible) { outline-color:var(--accent); background:var(--surface-strong); }
  html[data-app-theme="black"] .sidebar,
  html[data-app-theme="black"].sidebar-collapsed .sidebar,
  html[data-app-theme="black"].sidebar-collapsed .sidebar:hover,
  html[data-app-theme="black"].sidebar-collapsed .sidebar.sidebar-hover-suppressed:hover { background:linear-gradient(160deg,#090a0c,#020203); }
  html[data-app-theme="black"] .sidebar-profile-menu { background:#0b0c0f; }
  html[data-app-theme="black"] .sidebar .nav-item.active { color:#101215; background:#f2f4f6; box-shadow:0 5px 18px rgba(255,255,255,.13); }
}
html[data-app-theme] .toast { border-color:var(--line); border-left-color:var(--accent); color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .eyebrow,
html[data-app-theme] .text-button,
html[data-app-theme] .metadata-credit a { color:var(--accent); }
html[data-app-theme] .progress-track span { background:var(--accent); }
html[data-app-theme] .match-badge { color:var(--app-header); background:var(--accent); }

.profile-popover {
  width:min(330px, calc(100vw - 24px));
  max-height:calc(100vh - 76px);
  max-height:calc(100dvh - 76px);
  overflow-y:auto;
  overscroll-behavior:contain;
}
.profile-appearance { margin-top:7px; padding:11px 8px 4px; border-top:1px solid var(--line-soft); }
.profile-appearance-heading { display:grid; gap:4px; margin-bottom:10px; }
.profile-appearance-heading > span { display:flex; align-items:center; gap:7px; }
.profile-appearance-heading svg { width:15px; color:var(--accent); }
.profile-appearance-heading strong { font-size:12px; }
.profile-appearance-heading small { color:var(--muted); font-size:9px; line-height:1.4; }
.app-theme-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; }
.app-theme-grid button { position:relative; min-height:52px; display:grid; grid-template-columns:24px minmax(0,1fr) 14px; align-items:center; gap:7px; padding:7px; border:1px solid var(--line-soft); border-radius:7px; color:var(--muted-strong); background:var(--surface); cursor:pointer; text-align:left; }
.app-theme-grid button:hover,.app-theme-grid button:focus-visible { border-color:var(--accent); outline:0; background:var(--surface-strong); }
.app-theme-grid button.active { border-color:var(--accent); color:var(--text); box-shadow:inset 3px 0 0 var(--accent); }
.app-theme-grid button > svg { width:14px; opacity:0; color:var(--accent); }
.app-theme-grid button.active > svg { opacity:1; }
.app-theme-grid button strong { overflow:hidden; text-overflow:ellipsis; font-size:10px; white-space:nowrap; }
.app-theme-swatch { width:24px; height:32px; display:block; border:1px solid rgba(255,255,255,.18); border-radius:5px; box-shadow:inset 0 -9px 0 var(--swatch-accent), inset 0 -18px 0 var(--swatch-surface); background:var(--swatch-bg); }
.app-theme-swatch.tideview { --swatch-bg:#00143f; --swatch-surface:#06345f; --swatch-accent:#3ec6ff; }
.app-theme-swatch.retro { --swatch-bg:#05070b; --swatch-surface:#172131; --swatch-accent:#c126ff; }
.app-theme-swatch.midnight { --swatch-bg:#080b14; --swatch-surface:#202a43; --swatch-accent:#24e8ff; }
.app-theme-swatch.sunset { --swatch-bg:#170a10; --swatch-surface:#4a202a; --swatch-accent:#ff8a5b; }
.app-theme-swatch.black { --swatch-bg:#000; --swatch-surface:#14171b; --swatch-accent:#e7edf3; }
.app-theme-swatch.cinema { --swatch-bg:#151515; --swatch-surface:#2b2b2b; --swatch-accent:#e5a00d; }

/* Photos follows the selected app theme while media pixels remain untouched. */
html[data-app-theme] .photos-view {
  --photos-accent:var(--accent);
  --photos-accent-soft:color-mix(in srgb, var(--accent) 14%, transparent);
  --photos-panel:color-mix(in srgb, var(--surface) 88%, transparent);
}
html[data-app-theme] .photos-toolbar,
html[data-app-theme] .photos-selection,
html[data-app-theme] .photos-summary,
html[data-app-theme] .photos-empty,
html[data-app-theme] .photos-backup-activity:not(.active):not(.error) { border-color:var(--line-soft); color:var(--text); background:var(--photos-panel); }
html[data-app-theme] .photos-album-card { color:var(--text); background:transparent; }
html[data-app-theme] .photos-album-cover,
html[data-app-theme] .photos-item-tile { background:var(--app-poster); }
html[data-app-theme] .photos-gate { border-color:var(--line-soft); background:radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 38%),linear-gradient(135deg,var(--surface),var(--bg-soft)); }
html[data-app-theme] .photos-viewer-topbar,
html[data-app-theme] .photos-viewer-details { border-color:var(--line-soft); background:var(--app-header); }
html[data-app-theme] .photos-viewer-dialog { border-color:var(--line); background:#020305; }

/* Music follows the main app palette; the player's local palette remains independent. */
html[data-app-theme][data-music-theme="app"] {
  --music-ink:var(--bg);
  --music-player-bg:var(--app-header);
  --music-surface:var(--surface);
  --music-line:var(--line);
  --music-copy:var(--text);
  --music-accent:var(--accent);
  --music-warm:var(--muted-strong);
}
html[data-app-theme][data-music-theme] .content.music-workspace { background:var(--music-ink); }
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) :is(.secondary-button,.select-control,.segmented-control) {
  border-color:var(--music-line);
  color:var(--music-copy);
  background:var(--music-surface);
}
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) .secondary-button:hover,
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) .secondary-button:focus-visible {
  border-color:var(--music-accent);
  background:color-mix(in srgb, var(--music-accent) 18%, var(--music-surface));
}
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) .primary-button {
  border-color:var(--music-accent);
  color:var(--music-ink);
  background:var(--music-accent);
}
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) .primary-button:hover,
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) .primary-button:focus-visible {
  background:color-mix(in srgb, var(--music-accent) 76%, white);
}
html[data-app-theme][data-music-theme] :where(.music-view,.music-playlist-dialog,.music-genre-dialog,.music-picks-reset-dialog,.theme-dialog) :is(.eyebrow,.text-button,.metadata-credit a) { color:var(--music-accent); }

/* The player-only picker has one fixed heading and one scrollable options grid. */
.theme-dialog[open] { grid-template-rows:auto minmax(0,1fr); }
html[data-app-theme][data-music-theme="app"] .music-playlist-dialog {
  border-color:var(--line);
  color:var(--text);
  background:linear-gradient(145deg,var(--surface),var(--bg-soft));
}
html[data-app-theme][data-music-theme="app"] .music-playlist-dialog-accent { background:var(--accent); }
html[data-app-theme][data-music-theme="app"] .music-playlist-dialog :is(header p:last-child,form > label,.music-playlist-choice small) { color:var(--muted-strong); }
html[data-app-theme][data-music-theme="app"] :is(.music-playlist-name-wrap,.music-playlist-choice) { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme][data-music-theme="app"] .music-playlist-name-wrap:focus-within { border-color:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 13%,transparent); }
html[data-app-theme][data-music-theme="app"] :is(.music-playlist-name-wrap,.music-playlist-choice) svg { color:var(--accent); }
html[data-app-theme][data-music-theme="app"] .music-playlist-name-wrap input { color:var(--text); }
html[data-app-theme][data-music-theme="app"] .music-playlist-choice:where(:hover,:focus-visible) { border-color:var(--accent); background:var(--surface-strong); }

/* Music color presets style the controls, not a separate blue player backdrop. */
html[data-app-theme] #musicPlayerShell:not(.is-radio) {
  --music-player-bg:var(--surface);
  --music-surface:var(--surface-strong);
  --music-copy:var(--text);
}
html[data-app-theme] #musicPlayerShell:not(.is-radio):not(.is-mini):not(.is-profile-mini) { border-color:var(--line); }

html[data-app-theme][data-music-theme="app"] :is(.music-genre-dialog,.music-picks-reset-dialog) {
  --border:var(--line);
  --text-muted:var(--muted);
  border-color:var(--line);
  color:var(--text);
  background:var(--app-popover);
}
html[data-app-theme][data-music-theme="app"] :is(.music-genre-dialog,.music-picks-reset-dialog) :is(.dialog-heading,.dialog-footer) { border-color:var(--line-soft); background:var(--app-header); }
html[data-app-theme][data-music-theme="app"] :is(.music-genre-dialog,.music-picks-reset-dialog) .dialog-heading small { color:var(--muted); }

@media (max-width:760px) {
  .profile-popover {
    top:var(--topbar-height);
    right:8px;
    max-height:calc(100vh - var(--topbar-height) - 8px);
    max-height:calc(100dvh - var(--topbar-height) - 8px);
  }
}

/* Media management and search use the selected app palette, not TideView blue. */
html[data-app-theme] .library-dialog { border-color:color-mix(in srgb,var(--accent) 34%,var(--line)); color:var(--text); background:var(--bg-soft); box-shadow:0 30px 90px var(--app-shadow); }
html[data-app-theme] .library-dialog-heading { border-bottom:1px solid var(--line-soft); background:linear-gradient(115deg,var(--app-header),color-mix(in srgb,var(--surface) 75%,var(--app-header))); }
html[data-app-theme] .library-dialog-mark { border-color:var(--line); color:var(--accent); background:color-mix(in srgb,var(--accent) 8%,var(--surface)); }
html[data-app-theme] .library-dialog .library-manager-icon { border-color:var(--line); color:color-mix(in srgb,var(--accent) 40%,var(--muted-strong)); background:var(--surface); }
html[data-app-theme] .library-dialog-heading > .icon-button { border-color:var(--line); color:var(--muted-strong); background:var(--surface); }
html[data-app-theme] .library-manager-toolbar { border-bottom-color:var(--line-soft); background:var(--app-popover); }
html[data-app-theme] .library-manager-summary > span { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .library-manager-summary svg { color:var(--muted-strong); }
html[data-app-theme] .library-manager-summary small,
html[data-app-theme] .library-manager-panel .dialog-section-heading small,
html[data-app-theme] .library-dialog .library-manager-copy > em { color:var(--muted); }
html[data-app-theme] .library-manager-tabs,
html[data-app-theme] .continue-watching-mode-switch { border-color:var(--line); background:var(--bg-soft); }
html[data-app-theme] .library-manager-tabs button,
html[data-app-theme] .continue-watching-mode-switch button { color:var(--muted-strong); }
html[data-app-theme] .library-manager-tabs button:where(:hover,:focus-visible),
html[data-app-theme] .continue-watching-mode-switch button:where(:hover,:focus-visible) { color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .library-manager-tabs button.active,
html[data-app-theme] .continue-watching-mode-switch button.active { color:var(--text); background:var(--surface-strong); box-shadow:inset 0 0 0 1px var(--line); }
html[data-app-theme] .library-manager-tabs button.active svg,
html[data-app-theme] .continue-watching-mode-switch button.active svg { color:var(--accent); }
html[data-app-theme] .library-manager-scroll { background:radial-gradient(circle at 85% 0,color-mix(in srgb,var(--accent) 8%,transparent),transparent 35%),var(--bg-soft); }
html[data-app-theme] .library-dialog .library-manager-row,
html[data-app-theme] .continue-watching-mode-card { border-color:var(--line); color:var(--text); background:linear-gradient(125deg,color-mix(in srgb,var(--surface) 88%,transparent),color-mix(in srgb,var(--app-popover) 90%,transparent)); box-shadow:0 7px 20px var(--app-shadow); }
html[data-app-theme] .library-dialog .library-manager-row:hover { border-color:color-mix(in srgb,var(--accent) 38%,var(--line)); background:var(--surface-strong); }
html[data-app-theme] .library-dialog .library-path-row { border-color:var(--line-soft); color:var(--muted-strong); background:color-mix(in srgb,var(--app-header) 70%,transparent); }
html[data-app-theme] .library-dialog .library-path-row > svg,
html[data-app-theme] .library-dialog .drag-handle { color:var(--accent); border-color:var(--accent); }
html[data-app-theme] .library-action-button { border-color:var(--line); color:var(--muted-strong); background:var(--app-popover); }
html[data-app-theme] .library-action-button svg { color:color-mix(in srgb,var(--accent) 45%,var(--muted-strong)); }
html[data-app-theme] .library-action-button:where(:hover,:focus-visible) { border-color:var(--accent); color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .library-action-button.pin-action.active { border-color:color-mix(in srgb,var(--accent) 48%,var(--line)); color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .library-action-button.pin-action.active svg { color:var(--accent); }
html[data-app-theme] .library-dialog .dialog-footer { border-top:1px solid var(--line-soft); background:var(--app-header); }
html[data-app-theme] .library-dialog .library-manager-title > strong { font-size:14px; }
html[data-app-theme] .library-dialog .library-path-row > span,
html[data-app-theme] .library-dialog .library-manager-copy > em { font-size:11px; }

html[data-app-theme] .people-search-results,
html[data-app-theme] .search-source-heading { border:1px solid var(--line); border-left:3px solid var(--accent); color:var(--text); background:color-mix(in srgb,var(--surface) 70%,transparent); }
html[data-app-theme] .person-result-card { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .person-result-card:where(:hover,:focus-visible) { border-color:var(--accent); background:var(--surface-strong); }
html[data-app-theme] .person-result-card small { color:var(--muted); }
html[data-app-theme] .person-result-card em { color:var(--accent); }
html[data-app-theme] .person-result-avatar { color:var(--app-header); background:var(--accent); }

/* Live TV program details and DVR chrome use the page theme, not player/music. */
html[data-app-theme] :is(.dvr-program-dialog,.dvr-destination-dialog,.dvr-series-dialog) {
  color:var(--text); border-color:var(--line); background:var(--app-popover);
}
html[data-app-theme] :is(.dvr-program-dialog,.dvr-destination-dialog,.dvr-series-dialog) .dialog-heading {
  border-bottom-color:var(--line-soft); color:var(--text); background:var(--app-header);
}
html[data-app-theme] :is(.dvr-program-dialog,.dvr-destination-dialog,.dvr-series-dialog) .dialog-heading small { color:var(--muted); }
html[data-app-theme] :is(.dvr-program-dialog,.dvr-destination-dialog,.dvr-series-dialog) .dialog-heading .icon-button { color:var(--muted-strong); }
html[data-app-theme] :is(.dvr-program-dialog,.dvr-destination-dialog,.dvr-series-dialog) .dialog-heading .icon-button:where(:hover,:focus-visible) { color:var(--text); background:var(--surface-strong); }
html[data-app-theme] .dvr-program-episode-meta {
  border-color:color-mix(in srgb,var(--accent) 35%,var(--line)); color:var(--accent);
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
}
html[data-app-theme] .dvr-program-overview { color:var(--muted-strong); }
html[data-app-theme] .live-dvr-metric { border-color:var(--line); background:linear-gradient(145deg,var(--surface),var(--bg-soft)); }
html[data-app-theme] .live-dvr-metric span { color:var(--muted); }
html[data-app-theme] .live-dvr-metric strong { color:var(--text); }
html[data-app-theme] .live-dvr-card { border-color:var(--line); color:var(--text); background:var(--app-popover); }
html[data-app-theme] .live-dvr-art { background-image:linear-gradient(160deg,var(--surface-strong),var(--app-poster)); }
html[data-app-theme] .live-dvr-art span { color:var(--accent); background:color-mix(in srgb,var(--app-header) 88%,transparent); }
html[data-app-theme] .live-dvr-copy strong { color:var(--text); }
html[data-app-theme] .live-dvr-copy :is(small,p) { color:var(--muted); }
html[data-app-theme] .live-dvr-card-actions button:not(.danger),
html[data-app-theme] .dvr-series-channel-tools button { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .live-dvr-card-actions button:not(.danger):where(:hover,:focus-visible),
html[data-app-theme] .dvr-series-channel-tools button:where(:hover,:focus-visible) { border-color:var(--accent); background:var(--surface-strong); }
html[data-app-theme] .live-dvr-card-actions button.danger {
  border-color:color-mix(in srgb,var(--danger) 55%,var(--line)); color:var(--text);
  background:color-mix(in srgb,var(--danger) 24%,var(--app-popover));
}
html[data-app-theme] :is(.dvr-admin-save-options,.dvr-series-field,.dvr-series-channel) { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] :is(.dvr-admin-save-options label,.dvr-series-field > span,.dvr-series-channel > span) { color:var(--muted-strong); }
html[data-app-theme] :is(.dvr-admin-save-options,.dvr-series-field,.dvr-series-channel) small,
html[data-app-theme] .dvr-series-channel-empty { color:var(--muted); }
html[data-app-theme] .dvr-series-channel strong { color:var(--text); }
html[data-app-theme] :is(.dvr-admin-save-options select,.dvr-series-field input,.dvr-series-field select,.dvr-series-all-channels,.dvr-series-channel-tools input,.dvr-series-channel-choices) { border-color:var(--line); color:var(--text); background:var(--bg-soft); }
html[data-app-theme] :is(.dvr-series-field input,.dvr-series-field select,.dvr-series-channel-tools input):focus { border-color:var(--accent); box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 14%,transparent); }
html[data-app-theme] .dvr-series-all-channels strong { color:var(--text); }
html[data-app-theme] .dvr-series-channel-choice { color:var(--muted-strong); background:var(--surface); }
html[data-app-theme] .dvr-series-channel-choice:hover { background:var(--surface-strong); }
html[data-app-theme] :is(.dvr-series-all-channels input,.dvr-series-channel-choice input) { accent-color:var(--accent); }
html[data-app-theme] .dvr-existing-status { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme] .dvr-existing-status > i { color:var(--accent); }
html[data-app-theme] .dvr-existing-status strong { color:var(--text); }
html[data-app-theme] .dvr-existing-status small { color:var(--muted); }
html[data-app-theme] .dvr-existing-status.is-found { border-color:color-mix(in srgb,var(--gold) 50%,var(--line)); background:color-mix(in srgb,var(--gold) 10%,var(--surface)); }
html[data-app-theme] .dvr-existing-status.is-found > i { color:var(--gold); }
html[data-app-theme] .dvr-existing-status.is-clear { border-color:color-mix(in srgb,var(--good) 45%,var(--line)); background:color-mix(in srgb,var(--good) 10%,var(--surface)); }
html[data-app-theme] .dvr-existing-status.is-clear > i { color:var(--good); }

/* Cinema Gold Sports chrome; team crests and matchup stripes keep their colors. */
html[data-app-theme="cinema"] #sportsView .sports-hero { background:var(--bg); }
html[data-app-theme="cinema"] #sportsView .sports-hero-shade {
  background:linear-gradient(90deg,color-mix(in srgb,var(--app-header) 97%,transparent),color-mix(in srgb,var(--app-header) 84%,transparent) 29%,color-mix(in srgb,var(--app-header) 12%,transparent) 67%,color-mix(in srgb,var(--app-header) 42%,transparent)),linear-gradient(0deg,color-mix(in srgb,var(--bg) 82%,transparent),transparent 58%);
}
html[data-app-theme="cinema"] #sportsView .sports-titlebar { color:var(--text); }
html[data-app-theme="cinema"] #sportsView :is(.sports-titlebar p,.sports-hero-copy > p:not(.eyebrow),.sports-favorite-team small,.sports-game-status) { color:var(--muted-strong); }
html[data-app-theme="cinema"] #sportsView .sports-title-actions :is(.secondary-button,.icon-button) { border-color:var(--line); color:var(--text); background:color-mix(in srgb,var(--app-header) 78%,transparent); }
html[data-app-theme="cinema"] #sportsView .sports-favorites-panel { border-color:var(--line); background:color-mix(in srgb,var(--app-popover) 90%,transparent); }
html[data-app-theme="cinema"] #sportsView .sports-favorites-panel .text-button { color:var(--accent); }
html[data-app-theme="cinema"] #sportsView .sports-favorite-team:where(:hover,:focus-visible,.active) { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 16%,var(--surface)); }
html[data-app-theme="cinema"] #sportsView .sports-filter { border-color:var(--line); color:var(--muted-strong); background:var(--surface); }
html[data-app-theme="cinema"] #sportsView .sports-filter.active { border-color:var(--accent); color:var(--app-header); background:var(--accent); box-shadow:0 3px 12px color-mix(in srgb,var(--accent) 14%,transparent); }
html[data-app-theme="cinema"] #sportsView .sports-game-card { border-color:var(--line); color:var(--text); background:linear-gradient(155deg,var(--surface-strong),var(--bg-soft)); box-shadow:0 12px 30px var(--app-shadow); }
html[data-app-theme="cinema"] #sportsView .sports-game-card.favorite { border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); box-shadow:0 12px 30px var(--app-shadow),inset 0 0 0 1px color-mix(in srgb,var(--accent) 10%,transparent); }
html[data-app-theme="cinema"] #sportsView .sports-game-card.live { border-color:var(--danger); }
html[data-app-theme="cinema"] #sportsView .sports-live-pill { color:var(--danger); }
html[data-app-theme="cinema"] #sportsView .sports-team-score { color:var(--text); }
html[data-app-theme="cinema"] #sportsView .sports-vs { color:var(--muted); }
html[data-app-theme="cinema"] #sportsView .sports-availability { color:var(--muted-strong); background:var(--surface); }
html[data-app-theme="cinema"] #sportsView .sports-availability.available { color:color-mix(in srgb,var(--good) 40%,var(--text)); background:color-mix(in srgb,var(--good) 12%,var(--bg-soft)); }
html[data-app-theme="cinema"] #sportsView .sports-card-actions button { color:var(--text); background:var(--surface-strong); }
html[data-app-theme="cinema"] #sportsView .sports-card-actions button.primary { color:var(--app-header); background:var(--accent); }
html[data-app-theme="cinema"] #sportsView .sports-card-actions button.active { color:color-mix(in srgb,var(--good) 50%,var(--text)); background:color-mix(in srgb,var(--good) 16%,var(--surface)); }
html[data-app-theme="cinema"] #sportsView :is(.sports-filter:not(.active),.sports-card-actions button:not(.primary):not(.active),.sports-title-actions .secondary-button,.sports-title-actions .icon-button):enabled:where(:hover,:focus-visible) { color:var(--text); background:var(--surface-warm); }
html[data-app-theme="cinema"] #sportsView :is(.sports-filter,.sports-card-actions button,.sports-favorite-team,.sports-title-actions .secondary-button,.sports-title-actions .icon-button):focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
html[data-app-theme="cinema"] #sportsView .sports-card-actions button.primary:enabled:where(:hover,:focus-visible) { background:color-mix(in srgb,var(--accent) 76%,white); }
html[data-app-theme="cinema"] #sportsView .sports-error { border-color:color-mix(in srgb,var(--danger) 55%,var(--line)); color:color-mix(in srgb,var(--danger) 50%,var(--text)); background:color-mix(in srgb,var(--danger) 14%,var(--surface)); }
html[data-app-theme="cinema"] #sportsSetupDialog { border-color:var(--line); color:var(--text); background:var(--app-popover); }
html[data-app-theme="cinema"] #sportsSetupDialog :is(.dialog-heading,.dialog-footer) { border-color:var(--line); background:var(--surface); }
html[data-app-theme="cinema"] #sportsSetupDialog :is(.sports-choice,.sports-team-search,[data-sports-step]) { border-color:var(--line); color:var(--text); background:var(--surface); }
html[data-app-theme="cinema"] #sportsSetupDialog .sports-choice.selected { border-color:var(--accent); background:color-mix(in srgb,var(--accent) 14%,var(--surface)); }
html[data-app-theme="cinema"] #sportsSetupDialog .sports-choice.selected > :is(i,svg):last-child { color:var(--accent); }
html[data-app-theme="cinema"] #sportsSetupDialog [data-sports-step].active { border-color:var(--accent); color:var(--app-header); background:var(--accent); }
html[data-app-theme="cinema"] #sportsSetupDialog :is(.sports-choice,[data-sports-step]):enabled:where(:hover,:focus-visible):not(.selected):not(.active) { border-color:var(--accent); background:var(--surface-warm); }
html[data-app-theme="cinema"] #sportsSetupDialog :is(.sports-choice,[data-sports-step]):focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
html[data-app-theme="cinema"] #sportsSetupDialog .sports-team-search:focus-within { border-color:var(--accent); }
html[data-app-theme="cinema"] #sportsSetupDialog .sports-team-search input::placeholder { color:var(--muted); }
@media(max-width:720px) {
  html[data-app-theme="cinema"] #sportsView .sports-hero-shade { background:linear-gradient(0deg,color-mix(in srgb,var(--app-header) 98%,transparent) 3%,color-mix(in srgb,var(--app-header) 84%,transparent) 45%,color-mix(in srgb,var(--app-header) 18%,transparent)); }
}

/* Gold guide logos need no blue plate; explicit guide themes remain independent. */
html[data-app-theme="cinema"] #liveView:is(:not([data-guide-theme]),[data-guide-theme="follow"]) .guide-logo,
#liveView[data-guide-theme="cinema"] .guide-logo { border-color:transparent; background:transparent; box-shadow:none; }
html[data-app-theme="cinema"] #liveView:is(:not([data-guide-theme]),[data-guide-theme="follow"]) .guide-logo b,
#liveView[data-guide-theme="cinema"] .guide-logo b { color:var(--guide-text); }
