:root {
  color-scheme: dark;
  --bg: #101113;
  --panel: #191b1f;
  --panel-2: #22252a;
  --text: #f4f0e6;
  --muted: #b7b1a5;
  --line: #393d43;
  --accent: #e8b84d;
  --danger: #ef8f8f;
}

* { box-sizing: border-box; }

html {
  min-height: 100%;
  background: var(--bg);
  font-family: Arial, Helvetica, sans-serif;
}

body {
  margin: 0;
  color: var(--text);
  background:
    radial-gradient(circle at top right, rgba(232,184,77,.10), transparent 30rem),
    var(--bg);
}

button, input, select, textarea { font: inherit; }

.topbar {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  gap: 2rem;
  align-items: end;
  justify-content: space-between;
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--line);
  background: rgba(16,17,19,.96);
}

.eyebrow {
  margin: 0 0 .25rem;
  color: var(--accent);
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .18em;
}

h1 {
  margin: 0;
  font-size: clamp(1.6rem, 4vw, 2.7rem);
  line-height: 1;
}

.search {
  display: flex;
  gap: .5rem;
  width: min(34rem, 58vw);
}

.search input {
  min-width: 8rem;
  flex: 1;
  padding: .75rem .9rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel);
}

button {
  padding: .75rem 1rem;
  border: 1px solid var(--accent);
  border-radius: .35rem;
  color: #18140a;
  font-weight: 700;
  background: var(--accent);
  cursor: pointer;
}

button.secondary {
  border-color: var(--line);
  color: var(--text);
  background: var(--panel-2);
}

button.danger {
  border-color: #8f3f3f;
  color: #fff;
  background: #7a3030;
}

button:disabled {
  cursor: not-allowed;
  opacity: .55;
}

main { padding: 1rem 1.5rem 2rem; }

.status-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  min-height: 2.4rem;
  color: var(--muted);
}

.now-playing-panel {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--panel);
}

.now-playing-feature {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 1rem;
}

.now-playing-poster {
  position: relative;
  width: 7.5rem;
  aspect-ratio: 2 / 3;
  margin: 0;
  overflow: hidden;
  flex: 0 0 auto;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: linear-gradient(145deg, var(--panel-2), #111827);
}

.now-playing-poster .archive-card { padding: 8%; }
.now-playing-poster .archive-monogram { width: 1.7rem; }
.now-playing-poster .archive-footer { display: none; }
.now-playing-copy { min-width: 0; max-width: 42rem; }
.now-playing-copy h2 { margin: .2rem 0; }

.now-playing-title {
  padding: 0;
  border: 0;
  color: var(--text);
  background: transparent;
  font: inherit;
  text-align: left;
}

.now-playing-title:not(:disabled) { color: var(--accent); cursor: pointer; }
.now-playing-title:not(:disabled):hover { text-decoration: underline; }
.now-playing-title:disabled { opacity: 1; }

.now-playing-overview {
  display: -webkit-box;
  max-width: 58ch;
  margin: .25rem 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.35;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.now-playing-heading {
  display: flex;
  align-items: center;
  gap: .7rem;
}

.now-playing-heading .eyebrow { margin: 0; }

.state-badge {
  padding: .2rem .45rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .7rem;
}

.state-badge.active-state { border-color: var(--accent); color: var(--accent); }
.state-badge.error-state { border-color: var(--danger); color: var(--danger); }

.playback-controls {
  display: grid;
  flex: 0 0 min(31rem, 48%);
  grid-template-columns: repeat(2, 1fr);
  gap: .5rem;
}

.control-message {
  min-height: 1.2em;
  margin: .35rem 0 0;
  color: var(--accent);
  font-size: .78rem;
}

.recently-played {
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--panel);
}

.recently-played-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
}
.recently-played-heading::-webkit-details-marker { display: none; }
.recently-played-title { display: grid; gap: .1rem; }
.recently-played-title .eyebrow { margin: 0; }
.recently-played-title strong { font-size: 1.05rem; }
.recently-played-tagline {
  flex: 1;
  min-width: 0;
  color: var(--muted);
  font-size: .78rem;
  text-align: right;
}
.recently-played-action {
  min-width: 7.5rem;
  padding: .45rem .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
  font-size: .72rem;
  font-weight: 700;
  text-align: center;
}
.recently-played-action::after {
  display: inline-block;
  margin-left: .4rem;
  content: "▾";
}
.recently-played[open] .recently-played-action::after { transform: rotate(180deg); }
.recently-played .when-open { display: none; }
.recently-played[open] .when-closed { display: none; }
.recently-played[open] .when-open { display: inline; }
.recently-played-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
  gap: .6rem;
}
.recently-played-card {
  display: grid;
  min-width: 0;
  min-height: 6.2rem;
  padding: 0;
  overflow: hidden;
  grid-template-columns: 4.2rem minmax(0, 1fr);
  border: 1px solid var(--line);
  border-radius: .4rem;
  color: var(--text);
  background: var(--panel-2);
  text-align: left;
}
button.recently-played-card:hover,
button.recently-played-card:focus-visible { border-color: var(--accent); }
.recently-played-card.unavailable { opacity: .78; }
.recently-played-artwork {
  position: relative;
  min-height: 6.2rem;
  margin: 0;
  overflow: hidden;
  background: #111827;
}
.recently-played-artwork .poster-image,
.recently-played-artwork .poster-fallback { position: absolute; inset: 0; }
.recently-played-artwork .archive-card { padding: 8%; }
.recently-played-artwork .archive-kicker,
.recently-played-artwork .archive-metadata,
.recently-played-artwork .archive-footer { display: none; }
.recently-played-artwork .archive-monogram { width: 1.4rem; }
.recently-played-artwork .archive-title { font-size: clamp(.5rem, 1.2vw, .75rem); }
.recently-played-copy {
  display: flex;
  min-width: 0;
  padding: .7rem;
  flex-direction: column;
  gap: .35rem;
}
.recently-played-copy strong {
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .95rem;
  line-height: 1.1;
}
.recently-played-copy small { color: var(--muted); line-height: 1.3; }
.recently-played-open {
  margin-top: auto;
  color: var(--accent);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}

@media (max-width: 42rem) {
  .recently-played-heading { align-items: flex-start; flex-wrap: wrap; }
  .recently-played-tagline { order: 3; width: 100%; text-align: left; }
}

.series-landing, .movie-series, .movie-series-editor, .series-imports { margin-block: 1rem; padding: 1rem; border: 1px solid var(--line); border-radius: .4rem; background: var(--panel); }
.series-landing h2, .series-heading h3, .series-heading h4 { margin: 0; }
.series-heading, .series-admin-row, .series-search-result { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.series-heading { margin-block: .7rem; flex-wrap: wrap; }
.series-admin-row, .series-search-result { padding: .75rem 0; border-bottom: 1px solid var(--line); }
.series-admin-row > div:first-child, .series-search-result > span { min-width: 0; overflow-wrap: anywhere; }
.series-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-block: .7rem; }
.series-entry-edit { display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; gap: .8rem; align-items: center; padding-block: .7rem; border-bottom: 1px solid var(--line); }
.series-entry-title { overflow-wrap: anywhere; }
.movie-series-edit-row { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr) auto; gap: .7rem; align-items: end; margin-block: .7rem; }
.movie-series-edit-row input, .series-entry-edit input { min-width: 0; width: 100%; }
.movie-series-row-feedback { grid-column: 1 / -1; min-width: 0; overflow-wrap: anywhere; }
.movie-series-row-feedback .panel-help { margin-block: 0 .4rem; }
.movie-series-row-feedback button { max-width: 100%; white-space: normal; overflow-wrap: anywhere; text-align: left; }
.movie-series-list { list-style: none; margin: 0; padding: 0; }
.movie-series-list button { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; text-align: left; margin-block: .3rem; }
.movie-series-list button[aria-current="true"] { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, var(--panel)); }
.series-current { color: var(--accent); font-size: .75rem; flex-shrink: 0; }
.movie-series-group + .movie-series-group { margin-top: 1rem; }
.maintenance-toolbar .series-no-membership { display: flex; align-items: center; gap: .5rem; }
.maintenance-toolbar .series-no-membership input { width: auto; }
@media (max-width: 40rem) {
  .series-entry-edit { grid-template-columns: 6rem minmax(0, 1fr); }
  .series-entry-edit > button { grid-column: 2; justify-self: start; }
  .movie-series-edit-row { grid-template-columns: minmax(0, 1fr); }
  .series-admin-row { align-items: start; flex-direction: column; gap: .3rem; }
}

.presentation-mode-notice {
  margin: .45rem 0;
  padding: .45rem .6rem;
  border: 1px solid var(--accent);
  border-radius: .35rem;
  color: var(--accent);
  background: rgba(232, 184, 77, .08);
  font-size: .78rem;
}

.brand {
  display: flex;
  gap: .8rem;
  align-items: center;
  flex: 0 0 auto;
}

.brand-mark {
  width: 3.35rem;
  height: 3.35rem;
  border-radius: 50%;
  object-fit: cover;
}

.catalog-more {
  display: flex;
  justify-content: center;
  padding: 1rem 0 0;
}

.catalog-filters {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  margin: 1rem 0;
  padding: .75rem 1rem;
  border: 1px solid var(--line);
  border-radius: .5rem;
  background: var(--panel);
}

.catalog-filters label { color: var(--muted); font-size: .75rem; }
.catalog-filters select {
  margin-left: .3rem;
  padding: .35rem;
  border: 1px solid var(--line);
  border-radius: .3rem;
  color: var(--text);
  background: var(--panel-2);
}

.queue-list {
  margin: .35rem 0;
  padding-left: 1.4rem;
  color: var(--muted);
  font-size: .78rem;
}

.queue-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .65rem;
  margin: .25rem 0;
}

.queue-summary {
  margin: .25rem 0;
  color: var(--accent);
  font-size: .76rem;
}

.queue-reorder-help {
  margin: .2rem 0 .35rem;
  color: var(--muted);
  font-size: .7rem;
}

.queue-drag-handle {
  flex: 0 0 auto;
  padding: .25rem .15rem;
  color: var(--accent);
  font-weight: 800;
  letter-spacing: -.12em;
  cursor: grab;
  user-select: none;
}

.queue-drag-handle:active { cursor: grabbing; }
.queue-list.is-saving { opacity: .65; pointer-events: none; }
.queue-list li.is-dragging { opacity: .4; }
.queue-list li.drop-before { box-shadow: inset 0 .18rem 0 var(--accent); }
.queue-list li.drop-after { box-shadow: inset 0 -.18rem 0 var(--accent); }

.queue-item-copy { display: grid; min-width: 0; gap: .12rem; }
.queue-item-copy strong { color: var(--text); font-weight: 600; }
.queue-item-copy small { line-height: 1.25; }
.queue-next-marker {
  width: max-content;
  padding: .1rem .3rem;
  border: 1px solid var(--accent);
  border-radius: 999px;
  color: var(--accent);
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .06em;
}

.queue-item-actions {
  display: inline-flex;
  gap: .25rem;
  margin-left: .5rem;
}

.queue-edit-button { padding: .18rem .4rem; font-size: .68rem; }

.auth-actions {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.auth-panel {
  max-width: 36rem;
  margin: 8vh auto;
  padding: 1.5rem;
  border: 1px solid var(--accent);
  border-radius: .65rem;
  background: var(--panel);
  text-align: center;
  box-shadow: 0 .8rem 2rem rgba(0, 0, 0, .3);
}

.auth-panel h2 { margin: .35rem 0; }

.owner-login {
  margin-top: 1.5rem;
  padding-top: 1rem;
  border-top: 1px solid var(--accent);
  text-align: left;
}

.owner-login summary { cursor: pointer; }
.owner-login form { display: grid; gap: .65rem; margin-top: 1rem; }
.owner-login input {
  width: 100%;
  min-width: 0;
  padding: .75rem .9rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
}
.owner-login [role="status"]:empty { display: none; }

.pairing-code {
  margin: 1rem auto;
  color: var(--accent);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: clamp(1.8rem, 7vw, 3.2rem);
  font-weight: 800;
  letter-spacing: .12em;
}

.operations-panel {
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid var(--accent);
  border-radius: .55rem;
  background: var(--panel);
}

.panel-heading,
.diagnostic-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.panel-heading h2,
.diagnostic-card h3,
.diagnostic-card h4 { margin: 0; }

.panel-help,
.diagnostic-details {
  margin: .45rem 0;
  color: var(--muted);
  font-size: .82rem;
}

.diagnostics-list { display: grid; gap: .65rem; }

.diagnostic-card {
  padding: .8rem;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: var(--panel-2);
}

.diagnostic-card.diagnostic-error { border-color: #6c3535; }

.diagnostic-section { margin: 1rem 0; }
.diagnostic-section > h3 { margin-bottom: 0; }
.playback-activity-list {
  display: grid;
  max-height: 22rem;
  gap: .4rem;
  margin: .65rem 0 0;
  padding: 0;
  overflow: auto;
  list-style: none;
}
.playback-activity-list li {
  display: grid;
  grid-template-columns: 7rem minmax(0, 1fr);
  gap: .15rem .65rem;
  padding: .55rem .65rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  background: var(--panel-2);
}
.playback-activity-list li > strong { color: var(--accent); }
.playback-activity-list li > small {
  grid-column: 2;
  color: var(--muted);
}
.playback-activity-list .playback-activity-empty { display: block; color: var(--muted); }
.playback-activity-list .diagnostic-error { color: var(--danger); }

@media (max-width: 42rem) {
  .playback-activity-list li { grid-template-columns: 1fr; }
  .playback-activity-list li > small { grid-column: 1; }
}

.background-tasks { margin: 1rem 0; }
.background-tasks > h3 { margin: 0 0 .65rem; }
.diagnostic-units {
  margin: .2rem 0 0;
  color: var(--muted);
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  font-size: .72rem;
  overflow-wrap: anywhere;
}

.operations-summary {
  display: grid;
  grid-template-columns: max-content minmax(0, 1fr);
  gap: .45rem 1rem;
  margin: 1rem 0;
}

.operations-summary dt { color: var(--muted); }
.operations-summary dd { margin: 0; overflow-wrap: anywhere; }
.metadata-admin {
  margin: 1rem 0;
  padding: .9rem;
  border: 1px solid var(--line);
  border-radius: .45rem;
  background: var(--panel-2);
}
.metadata-admin h3 { margin: 0; }
.metadata-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; }
.file-picker,
.metadata-replace { color: var(--muted); font-size: .82rem; }
.file-picker { display: flex; align-items: center; gap: .45rem; }
.metadata-replace { width: 100%; }
.temporary-screening-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
}
.temporary-screening-form label { display: grid; gap: .3rem; font-weight: 700; }
.temporary-screening-form input {
  width: 100%;
  padding: .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
}
.temporary-screening-form .metadata-replace,
.temporary-screening-form button { align-self: end; }
@media (max-width: 42rem) {
  .temporary-screening-form { grid-template-columns: 1fr; }
}
.metadata-changes { max-height: 16rem; overflow: auto; margin-bottom: 0; }
.metadata-changes li { margin: .25rem 0; }
.maintenance-summary { margin: 1.25rem 0; }
.maintenance-section-heading { display: flex; align-items: center; justify-content: space-between; gap: .75rem; flex-wrap: wrap; }
.maintenance-section-heading h4,
.maintenance-workspace > h4 { margin: 0; font-size: 1.05rem; }
.maintenance-section-heading > span { color: var(--muted); font-size: .85rem; }
.maintenance-summary h5 { display: flex; flex-wrap: wrap; align-items: baseline; gap: .65rem; margin: .9rem 0 .5rem; font-size: .85rem; }
.maintenance-summary h5 span { color: var(--muted); font-weight: 400; font-size: .75rem; }
.maintenance-totals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .6rem; }
.maintenance-metadata-totals { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.maintenance-total { display: flex; flex-direction: column; align-items: start; gap: .3rem; text-align: left; padding: .85rem; }
button.maintenance-total { background: var(--panel); }
.maintenance-total strong { font-size: 1.6rem; font-variant-numeric: tabular-nums; }
.maintenance-total span { font-size: .82rem; }
.maintenance-total small { color: var(--muted); font-size: .72rem; font-weight: 400; }
.maintenance-total:hover,
.maintenance-total[aria-pressed="true"] { border-color: var(--accent); }
.maintenance-total[aria-pressed="true"] strong { color: var(--accent); }
.maintenance-center button:focus-visible,
.maintenance-center select:focus-visible,
.maintenance-center input:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.maintenance-workspace { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.maintenance-workspace > h4 { margin-bottom: .75rem; scroll-margin-top: 7rem; }
.maintenance-result-scope { margin-top: 1rem; padding: 1rem; border-left: 3px solid var(--accent); background: var(--panel); border-radius: .2rem; }
.maintenance-result-scope p { margin: .6rem 0 0; overflow-wrap: anywhere; }
.maintenance-result-scope button { font-size: .8rem; }
#maintenance-active-view { font-size: .9rem; line-height: 1.5; }
#maintenance-show-identity { margin-top: .75rem; }
.maintenance-reports { margin-top: 1.25rem; padding: .85rem; border: 1px solid var(--line); border-radius: .45rem; }
.maintenance-reports summary { cursor: pointer; font-weight: 700; }
.maintenance-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .65rem;
}
.maintenance-toolbar label {
  display: grid;
  flex: 1 1 15rem;
  gap: .3rem;
  color: var(--muted);
  font-size: .82rem;
  min-width: 0;
}
.maintenance-toolbar select {
  width: 100%;
  padding: .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
}
.maintenance-review-card { align-items: start; }
.maintenance-review-card > div:first-child { min-width: 0; }
.maintenance-review-card .diagnostic-details { overflow-wrap: anywhere; }
.maintenance-review-actions {
  display: flex;
  flex: 0 0 auto;
  flex-wrap: wrap;
  justify-content: end;
  gap: .45rem;
}
.maintenance-pager {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin-top: .8rem;
}
.maintenance-pager .panel-help { margin: 0; }
@media (max-width: 60rem) {
  .maintenance-review-card { flex-direction: column; align-items: stretch; }
  .maintenance-review-actions { justify-content: start; }
  .maintenance-workspace > h4 { scroll-margin-top: 16rem; }
}
.duplicate-review {
  margin-top: 1.25rem;
  padding: .85rem;
  border: 1px solid var(--line);
  border-radius: .45rem;
  background: color-mix(in srgb, var(--panel) 72%, transparent);
}
.duplicate-review-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
}
.duplicate-review-heading::-webkit-details-marker { display: none; }
.duplicate-review-heading > span:first-child { display: grid; gap: .1rem; }
.duplicate-review-heading .eyebrow { margin: 0; }
.duplicate-review-count { color: var(--muted); font-size: .76rem; text-align: right; }
.duplicate-review-list { display: grid; gap: .7rem; margin-top: .75rem; }
.duplicate-group {
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: var(--panel-2);
}
.duplicate-group-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: .75rem;
}
.duplicate-group-heading h5 { margin: 0; color: var(--accent); font-size: .9rem; }
.duplicate-group-heading span { color: var(--muted); font-size: .68rem; }
.duplicate-reasons { margin: .5rem 0; padding-left: 1.25rem; color: var(--muted); font-size: .75rem; }
.duplicate-candidates { display: grid; gap: .4rem; }
.duplicate-candidate {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  padding: .55rem .65rem;
  border: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
  border-radius: .35rem;
}
.duplicate-candidate > div { display: grid; min-width: 0; gap: .2rem; }
.duplicate-candidate strong,
.duplicate-candidate small { overflow-wrap: anywhere; }
.duplicate-candidate small { color: var(--muted); }
.taxonomy-admin {
  margin-top: 1.25rem;
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}
.taxonomy-admin h4 { margin: 0; font-size: 1.1rem; }
.taxonomy-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .8rem 0;
}
.taxonomy-tabs button[aria-selected="true"] {
  border-color: var(--accent);
  color: #111827;
  background: var(--accent);
}
.taxonomy-label-list { display: grid; gap: .55rem; }
.taxonomy-label-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .45rem 1rem;
  padding: .75rem;
  border: 1px solid var(--line);
  border-radius: .4rem;
  background: color-mix(in srgb, var(--panel) 72%, transparent);
}
.taxonomy-label-card h5 { margin: 0; font-size: .95rem; }
.taxonomy-label-card p { margin: .25rem 0 0; }
.taxonomy-label-badges { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .35rem; }
.taxonomy-label-badge {
  padding: .14rem .38rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: .68rem;
}
.taxonomy-label-badge.unmanaged { border-color: var(--danger); color: var(--danger); }
.taxonomy-label-actions {
  display: flex;
  align-items: start;
  justify-content: end;
  flex-wrap: wrap;
  gap: .4rem;
}
.taxonomy-label-actions button { padding: .5rem .65rem; }
.taxonomy-editor select {
  width: 100%;
  padding: .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
}
@media (max-width: 42rem) {
  .maintenance-totals,
  .maintenance-metadata-totals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .maintenance-total { padding: .7rem; }
  .maintenance-section-heading { align-items: start; }
  .maintenance-result-scope { padding: .8rem; }
  .maintenance-pager { flex-wrap: wrap; }
  .maintenance-review-card { display: grid; }
  .maintenance-review-actions { justify-content: start; }
  .duplicate-review-heading,
  .duplicate-group-heading { align-items: start; flex-direction: column; }
  .duplicate-review-count { text-align: left; }
  .duplicate-candidate { grid-template-columns: 1fr; }
  .duplicate-candidate button { justify-self: start; }
  .taxonomy-label-card { grid-template-columns: 1fr; }
  .taxonomy-label-actions { justify-content: start; }
}
.metadata-editor {
  width: min(48rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  overflow: auto;
  border: 1px solid var(--accent);
  border-radius: .6rem;
  color: var(--text);
  background: var(--panel);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.55);
}
.metadata-editor::backdrop { background: rgba(0,0,0,.72); }
.metadata-editor h2 { margin-top: 0; }
.metadata-source { margin: 1rem 0; padding: .8rem; border: 1px solid var(--line); border-radius: .35rem; }
.metadata-source h3 { margin: 0; }
.metadata-source textarea { font-family: monospace; overflow-wrap: anywhere; }
.movie-identity { margin: .6rem 0; overflow-wrap: anywhere; }
.movie-identity p { margin: .35rem 0; }
.catalog-id-copy { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }
.catalog-id-copy input { flex: 1 1 10rem; min-width: 0; max-width: 26rem; }
.maintenance-toolbar input {
  padding: .6rem; color: var(--text); background: var(--panel-2);
  border: 1px solid var(--line); border-radius: .35rem; min-width: 0;
}
.omdb-preview { overflow-x: auto; }
.omdb-preview table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.omdb-preview th, .omdb-preview td {
  padding: .55rem; border: 1px solid var(--line); text-align: left;
  vertical-align: top; overflow-wrap: anywhere; white-space: pre-wrap;
}
.omdb-preview th:first-child { width: 16%; }
.omdb-preview th:last-child { width: 14%; }
.omdb-preview .has-decisions th:first-child { width: 13%; }
.omdb-preview .has-decisions th:last-child { width: 28%; }
.omdb-preview tr[data-outcome="would_change"] { background: var(--panel-2); }
@media (max-width: 42rem) {
  .omdb-preview table { min-width: 38rem; }
}
.metadata-editor label { display: grid; gap: .3rem; margin: .75rem 0; font-weight: 700; }
.metadata-editor label span { color: var(--muted); font-size: .72rem; font-weight: 400; }
.metadata-editor input,
.metadata-editor textarea,
.metadata-editor select {
  width: 100%;
  padding: .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
}
.metadata-editor-lists { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.metadata-list-field > p { margin: .75rem 0 .3rem; }
.metadata-list-field > p span {
  color: var(--muted);
  font-size: .72rem;
}
.taxonomy-choice-list {
  display: grid;
  max-height: 11rem;
  gap: .3rem;
  overflow: auto;
  padding: .5rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  background: var(--panel-2);
}
.taxonomy-choice-list label {
  display: flex;
  align-items: center;
  gap: .45rem;
  margin: 0;
  font-size: .8rem;
  font-weight: 400;
}
.taxonomy-choice-list input { width: auto; }
.poster-override-preview {
  display: flex;
  align-items: center;
  gap: .75rem;
  min-height: 3.5rem;
  padding: .55rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  background: var(--panel-2);
}

.featured-collections {
  margin: 0 0 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background:
    radial-gradient(circle at top right, rgba(232,184,77,.12), transparent 22rem),
    var(--panel);
}

.featured-collections-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
}
.featured-collections-heading::-webkit-details-marker { display: none; }
.featured-collections-title { display: grid; gap: .1rem; }
.featured-collections-title .eyebrow { margin: 0; }
.featured-collections-title strong { font-size: 1.25rem; }
.featured-collections-tagline {
  flex: 1;
  min-width: 0;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .78rem;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.featured-collections-action {
  min-width: 7.5rem;
  padding: .45rem .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel-2);
  font-size: .72rem;
  font-weight: 700;
  text-align: center;
}
.featured-collections-action::after {
  display: inline-block;
  margin-left: .4rem;
  content: "▾";
}
.featured-collections[open] .featured-collections-action::after {
  transform: rotate(180deg);
}
.featured-collections .when-open { display: none; }
.featured-collections[open] .when-closed { display: none; }
.featured-collections[open] .when-open { display: inline; }

@media (max-width: 42rem) {
  .featured-collections-heading { align-items: flex-start; flex-wrap: wrap; }
  .featured-collections-tagline {
    order: 3;
    width: 100%;
    text-align: left;
    white-space: normal;
  }
}
.featured-collection-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
  gap: .75rem;
  margin-top: .8rem;
}
.featured-collection-card {
  display: grid;
  min-width: 0;
  height: 9rem;
  padding: 0;
  overflow: hidden;
  grid-template-columns: minmax(5.5rem, 34%) 1fr;
  border-color: var(--line);
  color: var(--text);
  background: var(--panel-2);
  text-align: left;
}
.featured-collection-card:hover,
.featured-collection-card:focus-visible { border-color: var(--accent); }
.featured-collection-card.is-spotlight {
  grid-column: 1 / -1;
  grid-template-columns: minmax(7rem, 26%) 1fr;
  border-color: rgba(232,184,77,.62);
  background:
    radial-gradient(circle at 82% 20%, rgba(232,184,77,.15), transparent 20rem),
    var(--panel-2);
}
.featured-collection-artwork {
  position: relative;
  display: block;
  min-height: 0;
  overflow: hidden;
  background:
    repeating-linear-gradient(135deg, transparent 0 12px, rgba(232,184,77,.1) 12px 13px),
    radial-gradient(circle at 35% 30%, #445064, #171c24 72%);
}
.featured-collection-artwork::after {
  position: absolute;
  inset: 12%;
  border: 1px solid rgba(232,184,77,.45);
  content: "";
}
.featured-collection-artwork img {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.featured-collection-copy {
  display: flex;
  min-width: 0;
  padding: .85rem;
  flex-direction: column;
  gap: .45rem;
}
.featured-collection-copy strong {
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: 1.05rem;
  line-height: 1.05;
}
.featured-collection-spotlight-label {
  color: var(--accent);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .12em;
}
.featured-collection-card.is-spotlight .featured-collection-copy {
  gap: .28rem;
}
.featured-collection-card.is-spotlight .featured-collection-description {
  -webkit-line-clamp: 2;
}
.featured-collection-description {
  display: -webkit-box;
  overflow: hidden;
  color: var(--muted);
  font-size: .72rem;
  font-weight: 400;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.featured-collection-count {
  margin-top: auto;
  color: var(--accent);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.collection-landing {
  margin: 0 0 1rem;
  overflow: hidden;
  border: 1px solid rgba(232,184,77,.5);
  border-radius: .7rem;
  background:
    radial-gradient(circle at 82% 12%, rgba(232,184,77,.14), transparent 24rem),
    var(--panel);
  box-shadow: 0 .8rem 2rem rgba(0,0,0,.24);
}

.collection-landing-hero {
  display: grid;
  grid-template-columns: minmax(11rem, 24%) 1fr;
  min-height: 16rem;
}

.collection-landing-artwork {
  position: relative;
  min-height: 16rem;
  margin: 0;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background:
    repeating-linear-gradient(135deg, transparent 0 18px, rgba(232,184,77,.08) 18px 19px),
    radial-gradient(circle at 35% 28%, #465267, #151a22 72%);
}

.collection-landing-artwork::after {
  position: absolute;
  inset: 8%;
  border: 1px solid rgba(232,184,77,.45);
  content: "";
}

.collection-landing-artwork img {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.collection-landing-monogram {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  color: rgba(244,240,230,.9);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(2rem, 7vw, 5rem);
  letter-spacing: -.08em;
  text-shadow: 0 .2rem .8rem rgba(0,0,0,.6);
}

.collection-landing-copy {
  display: flex;
  min-width: 0;
  padding: 1.25rem;
  flex-direction: column;
}

.collection-landing-copy h2 {
  margin: .1rem 0 .5rem;
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(1.7rem, 4vw, 2.7rem);
  line-height: 1.05;
  text-wrap: balance;
}

.collection-landing-description {
  max-width: 68ch;
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
}

.collection-landing-stats,
.collection-landing-genres {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem;
  margin-top: .8rem;
}

.collection-landing-stats span,
.collection-landing-genres button {
  padding: .3rem .55rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: rgba(16,17,19,.42);
  font-size: .7rem;
}

.collection-landing-genres button {
  min-height: auto;
  cursor: pointer;
}

.collection-landing-genres button:hover,
.collection-landing-genres button:focus-visible {
  border-color: var(--accent);
  color: var(--text);
}

.collection-landing-rule {
  max-width: 68ch;
  margin-top: .8rem;
  color: var(--muted);
  font-size: .75rem;
}
.collection-landing-rule summary { color: var(--accent); cursor: pointer; }
.collection-landing-rule p { margin: .4rem 0 0; line-height: 1.4; }

.collection-landing-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
  margin-top: auto;
  padding-top: 1rem;
}

.collection-highlights {
  padding: 1rem 1.25rem 1.25rem;
  border-top: 1px solid var(--line);
}

.collection-highlights-heading {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: .65rem;
}
.collection-highlights-heading h3 { margin: 0; font-size: 1rem; }
.collection-highlights-heading p { margin: 0; color: var(--muted); font-size: .72rem; }

.collection-highlight-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
  gap: .65rem;
}

.collection-highlight-card {
  display: grid;
  min-width: 0;
  min-height: 7rem;
  padding: 0;
  overflow: hidden;
  grid-template-columns: 4.7rem 1fr;
  border-color: var(--line);
  color: var(--text);
  background: var(--panel-2);
  text-align: left;
}
.collection-highlight-card:hover,
.collection-highlight-card:focus-visible { border-color: var(--accent); }

.collection-highlight-poster {
  position: relative;
  display: block;
  min-height: 7rem;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: #111827;
}
.collection-highlight-poster .poster-image,
.collection-highlight-poster .poster-fallback { position: absolute; inset: 0; }
.collection-highlight-poster .archive-card { padding: 8%; }
.collection-highlight-poster .archive-kicker,
.collection-highlight-poster .archive-metadata,
.collection-highlight-poster .archive-footer { display: none; }
.collection-highlight-poster .archive-monogram { width: 1.5rem; }
.collection-highlight-poster .archive-title {
  margin: auto 0;
  font-size: clamp(.45rem, 5cqw, .78rem);
  -webkit-line-clamp: 5;
}

.collection-highlight-copy {
  display: flex;
  min-width: 0;
  padding: .65rem;
  flex-direction: column;
  justify-content: center;
  gap: .35rem;
}
.collection-highlight-copy strong {
  display: -webkit-box;
  overflow: hidden;
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .82rem;
  line-height: 1.15;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.collection-highlight-copy span { color: var(--muted); font-size: .66rem; }

@media (max-width: 42rem) {
  .collection-landing-hero { grid-template-columns: 1fr; }
  .collection-landing-artwork {
    min-height: 10rem;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .collection-highlights-heading { align-items: flex-start; flex-direction: column; gap: .25rem; }
}
.poster-override-preview img {
  width: 3rem;
  height: 4.5rem;
  border-radius: .25rem;
  object-fit: cover;
}
.poster-override-preview img[hidden] { display: none; }
.poster-override-preview .panel-help { margin: 0; }
.metadata-editor-actions { display: flex; justify-content: end; gap: .65rem; margin-top: 1rem; }
@media (max-width: 42rem) {
  .metadata-editor-lists { grid-template-columns: 1fr; }
}

.movie-details {
  width: min(58rem, calc(100vw - 2rem));
  max-height: calc(100vh - 2rem);
  padding: 0;
  overflow: auto;
  border: 1px solid var(--accent);
  border-radius: .7rem;
  color: var(--text);
  background: var(--panel);
  box-shadow: 0 1rem 3rem rgba(0,0,0,.6);
}

.movie-details::backdrop { background: rgba(0,0,0,.78); }
.movie-details-shell { position: relative; padding: 1rem; }
.movie-details-close { position: absolute; top: 1rem; right: 1rem; z-index: 1; }
.movie-details-layout { display: grid; grid-template-columns: minmax(12rem, 17rem) 1fr; gap: 1.25rem; }
.movie-details-poster { border: 1px solid var(--line); border-radius: .45rem; }
.movie-details-copy { min-width: 0; padding: .35rem 0; }
.movie-details-copy h2 { margin: .2rem 5rem .2rem 0; font-size: clamp(1.5rem, 4vw, 2.2rem); }
.movie-details-overview { margin: 1rem 0; color: var(--muted); line-height: 1.55; white-space: pre-line; }
.movie-details-credits { display: grid; gap: .45rem; margin: 1rem 0; }
.movie-details-credits div { display: grid; grid-template-columns: 4.5rem 1fr; gap: .5rem; }
.movie-details-credits dt { color: var(--muted); }
.movie-details-credits dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.movie-details-labels { margin-top: 1rem; }
.movie-details-labels h3 { margin: 0; color: var(--muted); font-size: .78rem; font-weight: 400; }
.movie-details-labels .genres { margin-top: .4rem; }
.movie-details-link { display: inline-block; margin-top: 1.1rem; color: var(--accent); }
.provider-attribution { margin: 1.5rem auto; padding: 0 1rem; color: var(--muted); font-size: .72rem; text-align: center; }
.provider-attribution a { color: inherit; }
.movie-details-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr)); gap: .5rem; margin-top: 1.25rem; }

.movie-details-related {
  margin-top: 1rem;
  padding: 1rem;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background:
    radial-gradient(circle at top right, rgba(232,184,77,.09), transparent 20rem),
    var(--panel-2);
}
.movie-details-related-heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  cursor: pointer;
  list-style: none;
}
.movie-details-related-heading::-webkit-details-marker { display: none; }
.movie-details-related-title { display: grid; gap: .1rem; }
.movie-details-related-title .eyebrow { margin: 0; }
.movie-details-related-title strong { font-size: 1rem; }
.movie-details-related-tagline {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .68rem;
  text-align: right;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.movie-details-related-action {
  min-width: 6.8rem;
  padding: .45rem .6rem;
  border: 1px solid var(--line);
  border-radius: .35rem;
  color: var(--text);
  background: var(--panel);
  font-size: .68rem;
  font-weight: 700;
  text-align: center;
}
.movie-details-related-action::after {
  display: inline-block;
  margin-left: .4rem;
  content: "▾";
}
.movie-details-related[open] .movie-details-related-action::after {
  transform: rotate(180deg);
}
.movie-details-related .when-open { display: none; }
.movie-details-related[open] .when-closed { display: none; }
.movie-details-related[open] .when-open { display: inline; }
.movie-details-related-content { padding-top: .2rem; }
.movie-details-related-content > .panel-help { margin-bottom: 0; }
.movie-details-related-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .65rem;
  margin-top: .7rem;
}
.related-movie-card {
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: .45rem;
  background: var(--panel-2);
}
.related-movie-summary {
  display: grid;
  width: 100%;
  min-width: 0;
  min-height: 8rem;
  padding: 0;
  grid-template-columns: 5.35rem minmax(0, 1fr);
  border: 0;
  border-bottom: 1px solid var(--line);
  border-radius: 0;
  color: var(--text);
  background: transparent;
  text-align: left;
}
.related-movie-summary:hover,
.related-movie-summary:focus-visible { background: rgba(232,184,77,.07); }
.related-movie-poster {
  position: relative;
  display: block;
  height: 100%;
  min-height: 8rem;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: #111827;
}
.related-movie-poster .poster-image,
.related-movie-poster .poster-fallback { position: absolute; inset: 0; }
.related-movie-poster .archive-card { padding: 8%; }
.related-movie-poster .archive-kicker,
.related-movie-poster .archive-metadata,
.related-movie-poster .archive-footer { display: none; }
.related-movie-poster .archive-monogram { width: 1.45rem; }
.related-movie-poster .archive-title {
  margin: auto 0;
  font-size: clamp(.46rem, 5cqw, .8rem);
  -webkit-line-clamp: 5;
}
.related-movie-copy {
  display: flex;
  min-width: 0;
  padding: .65rem;
  flex-direction: column;
  justify-content: center;
  gap: .35rem;
}
.related-movie-copy > strong {
  display: -webkit-box;
  overflow: hidden;
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: .88rem;
  line-height: 1.15;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}
.related-movie-metadata { color: var(--muted); font-size: .66rem; }
.related-movie-reasons { display: flex; flex-wrap: wrap; gap: .25rem; }
.related-movie-reasons > span {
  padding: .18rem .32rem;
  border: 1px solid rgba(232,184,77,.38);
  border-radius: 999px;
  color: var(--accent);
  font-size: .58rem;
  font-weight: 400;
  line-height: 1.25;
}
.related-movie-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .4rem;
  padding: .45rem;
}
.related-movie-actions button { padding: .5rem .35rem; font-size: .68rem; }
.related-movie-card .action-message { min-height: 0; margin: 0; padding: 0 .5rem .45rem; }

@media (max-width: 42rem) {
  .movie-details-layout { grid-template-columns: 1fr; }
  .movie-details-poster { width: min(15rem, 72vw); justify-self: center; }
  .movie-details-copy h2 { margin-right: 0; padding-right: 4.5rem; }
  .movie-details-related-list { grid-template-columns: 1fr; }
  .movie-details-related-heading { align-items: flex-start; flex-wrap: wrap; }
  .movie-details-related-tagline {
    order: 3;
    width: 100%;
    text-align: left;
    white-space: normal;
  }
}

.catalog {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
  gap: 1rem;
}

.movie-card {
  display: flex;
  min-width: 0;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--line);
  border-radius: .55rem;
  background: var(--panel);
  box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.22);
}

.movie-poster {
  position: relative;
  width: 100%;
  aspect-ratio: 2 / 3;
  margin: 0;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(145deg, var(--panel-2), #111827);
}

button.poster-details-button {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
}

button.poster-details-button:focus-visible {
  outline: 3px solid var(--accent);
  outline-offset: -4px;
}

.poster-image,
.poster-fallback {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.poster-image { display: block; object-fit: cover; }

.poster-fallback {
  --archive-bg: #15191f;
  --archive-bg-soft: #252d39;
  --archive-ink: #f3d884;
  --archive-accent: #ba8931;
  container-type: size;
  isolation: isolate;
  overflow: hidden;
  color: var(--archive-ink);
  background: var(--archive-bg);
}

.poster-fallback[hidden] { display: none; }
.poster-fallback::before,
.poster-fallback::after {
  position: absolute;
  z-index: 0;
  content: "";
  pointer-events: none;
}
.poster-fallback::before { inset: 0; opacity: .78; }
.poster-fallback::after {
  inset: 4.5%;
  border: 1px solid color-mix(in srgb, var(--archive-ink) 62%, transparent);
  box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--archive-bg) 75%, transparent);
}

.poster-fallback[data-archive-variant="marquee"] {
  --archive-bg: #111820;
  --archive-bg-soft: #283544;
  --archive-ink: #f2d37c;
  --archive-accent: #b87b24;
}
.poster-fallback[data-archive-variant="marquee"]::before {
  background:
    linear-gradient(115deg, transparent 0 42%, rgba(242,211,124,.11) 42% 48%, transparent 48% 100%),
    radial-gradient(circle at 24% 18%, rgba(255,255,255,.12), transparent 32%),
    linear-gradient(145deg, var(--archive-bg-soft), var(--archive-bg) 68%);
}

.poster-fallback[data-archive-variant="burgundy"] {
  --archive-bg: #2a1015;
  --archive-bg-soft: #5a2226;
  --archive-ink: #f2dfb2;
  --archive-accent: #c89148;
}
.poster-fallback[data-archive-variant="burgundy"]::before {
  background:
    radial-gradient(ellipse at center, transparent 0 31%, rgba(242,223,178,.13) 32% 33%, transparent 34% 45%, rgba(242,223,178,.08) 46% 47%, transparent 48%),
    linear-gradient(160deg, var(--archive-bg-soft), var(--archive-bg) 70%);
}
.poster-fallback[data-archive-variant="burgundy"] .archive-monogram {
  border-radius: 18% 82% 18% 82%;
}

.poster-fallback[data-archive-variant="cobalt"] {
  --archive-bg: #101b2c;
  --archive-bg-soft: #22476a;
  --archive-ink: #edc58f;
  --archive-accent: #b87438;
}
.poster-fallback[data-archive-variant="cobalt"]::before {
  background:
    repeating-conic-gradient(from 215deg at 50% 34%, rgba(237,197,143,.09) 0deg 9deg, transparent 9deg 19deg),
    radial-gradient(circle at 50% 34%, var(--archive-bg-soft), var(--archive-bg) 66%);
}

.poster-fallback[data-archive-variant="plum"] {
  --archive-bg: #211527;
  --archive-bg-soft: #49304d;
  --archive-ink: #e8dde8;
  --archive-accent: #b59aab;
}
.poster-fallback[data-archive-variant="plum"]::before {
  background:
    linear-gradient(90deg, transparent 9%, rgba(232,221,232,.08) 9% 10%, transparent 10% 90%, rgba(232,221,232,.08) 90% 91%, transparent 91%),
    linear-gradient(0deg, transparent 9%, rgba(232,221,232,.08) 9% 10%, transparent 10% 90%, rgba(232,221,232,.08) 90% 91%, transparent 91%),
    radial-gradient(circle at 75% 16%, rgba(255,255,255,.11), transparent 28%),
    linear-gradient(145deg, var(--archive-bg-soft), var(--archive-bg) 68%);
}

.archive-card {
  position: relative;
  z-index: 1;
  display: flex;
  width: 100%;
  height: 100%;
  align-items: center;
  padding: 9%;
  flex-direction: column;
  justify-content: space-between;
  gap: 2.4%;
  text-align: center;
  text-shadow: 0 .12rem .15rem rgba(0,0,0,.48);
}
.archive-kicker,
.archive-metadata,
.archive-footer {
  display: block;
  max-width: 100%;
  overflow: hidden;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 700;
  letter-spacing: .13em;
  line-height: 1.15;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.archive-kicker {
  font-size: clamp(.42rem, 3.2cqw, .7rem);
  text-transform: uppercase;
}
.archive-monogram {
  display: grid;
  width: clamp(1.7rem, 18cqw, 3.5rem);
  aspect-ratio: 1;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid var(--archive-ink);
  border-radius: 50%;
  color: var(--archive-bg);
  background: var(--archive-ink);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--archive-ink) 22%, transparent);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.58rem, 6.8cqw, 1.3rem);
  font-weight: 800;
  letter-spacing: -.08em;
  text-shadow: none;
}
.archive-title {
  display: -webkit-box;
  max-width: 100%;
  overflow: hidden;
  overflow-wrap: anywhere;
  color: #fffaf0;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(.68rem, 8cqw, 1.55rem);
  line-height: 1.02;
  text-wrap: balance;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
}
.poster-fallback[data-title-length="long"] .archive-title {
  font-size: clamp(.62rem, 6.8cqw, 1.3rem);
  -webkit-line-clamp: 6;
}
.poster-fallback[data-title-length="very-long"] .archive-title {
  font-size: clamp(.56rem, 5.8cqw, 1.1rem);
  -webkit-line-clamp: 7;
}
.archive-metadata { font-size: clamp(.4rem, 3.2cqw, .68rem); }
.archive-footer {
  width: 100%;
  padding-top: 3%;
  border-top: 1px solid color-mix(in srgb, var(--archive-ink) 55%, transparent);
  color: color-mix(in srgb, var(--archive-ink) 88%, white);
  font-size: clamp(.38rem, 2.8cqw, .62rem);
}

.catalog-state-badge {
  position: absolute;
  top: .6rem;
  left: .6rem;
  z-index: 2;
  padding: .3rem .55rem;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 999px;
  color: #111827;
  background: var(--accent);
  box-shadow: 0 .2rem .7rem rgba(0,0,0,.4);
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.catalog-state-badge.queued-badge {
  color: var(--text);
  background: rgba(17,24,39,.9);
}

.picture-quality-badge {
  position: absolute;
  bottom: .6rem;
  right: .6rem;
  z-index: 2;
  max-width: calc(100% - 1.2rem);
  padding: .3rem .5rem;
  border: 1px solid #f3d884;
  border-radius: .35rem;
  color: #211605;
  background: #f3d884;
  box-shadow: 0 .2rem .7rem rgba(0,0,0,.4);
  font-size: .67rem;
  font-weight: 800;
  line-height: 1.2;
}

.picture-quality-detail { color: #f3d884; font-weight: 700; }
.picture-quality-editor { margin-block: 1rem; padding: .8rem; border: 1px solid var(--line); border-radius: .4rem; }

.movie-copy {
  display: flex;
  min-height: 18rem;
  padding: .85rem;
  flex-direction: column;
}

.movie-card .title {
  display: -webkit-box;
  overflow: hidden;
  text-overflow: initial;
  white-space: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.movie-card .overview { -webkit-line-clamp: 4; }
.movie-card .movie-actions { margin-top: auto; }
.details-button,
.edit-metadata-button { grid-column: 1 / -1; }

.title {
  margin: 0;
  overflow: hidden;
  font-size: 1.05rem;
  line-height: 1.2;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.metadata {
  min-height: 1rem;
  margin: .35rem 0 .55rem;
  color: var(--accent);
  font-size: .8rem;
}

.overview {
  display: -webkit-box;
  min-height: 3.8em;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: .82rem;
  line-height: 1.3;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.movie-credits {
  display: grid;
  gap: .3rem;
  margin: .65rem 0 0;
  font-size: .72rem;
  line-height: 1.25;
}

.movie-credits div { display: grid; grid-template-columns: 3.4rem 1fr; gap: .35rem; }
.movie-credits dt { color: var(--muted); }
.movie-credits dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }

.genres {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .7rem;
}

.genres span,
.genres button {
  padding: .2rem .38rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: transparent;
  font-size: .65rem;
}

.genres button {
  min-height: auto;
  cursor: pointer;
}
.genres button:hover,
.genres button:focus-visible { border-color: var(--accent); color: var(--text); }

.movie-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .45rem;
  margin-top: .75rem;
}

.movie-actions button { padding: .65rem .45rem; }

.action-message {
  min-height: 1.2em;
  margin: .4rem 0 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.2;
}

.error {
  grid-column: 1 / -1;
  padding: 1rem;
  border: 1px solid #6c3535;
  color: var(--danger);
  background: #2a1717;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}

[hidden] { display: none !important; }

/* The MOAP route uses the same application and authorization contract with a
   denser status area and larger targets for an in-world 1024px panel. */
html.presentation-moap {
  scrollbar-width: none;
}
html.presentation-moap::-webkit-scrollbar { display: none; width: 0; height: 0; }
.presentation-moap { font-size: 18px; }
.presentation-moap .topbar {
  max-width: 100%;
  gap: 1rem;
  align-items: center;
  padding: .8rem 1rem;
}
.presentation-moap .brand-mark { width: 2.8rem; height: 2.8rem; }
.presentation-moap h1 { font-size: clamp(1.4rem, 3vw, 2.1rem); }
.presentation-moap .search {
  width: auto;
  min-width: 0;
  flex: 1 1 28rem;
}
.presentation-moap button,
.presentation-moap input,
.presentation-moap select { min-height: 3rem; }
.presentation-moap main { padding: .8rem 1rem 1.5rem; }
.presentation-moap .catalog-filters {
  position: sticky;
  top: var(--moap-topbar-height, 4.7rem);
  z-index: 4;
  gap: .55rem;
  margin: .7rem 0;
  padding: .65rem;
  box-shadow: 0 .45rem .8rem rgba(0,0,0,.35);
}
.presentation-moap .catalog-filters label {
  display: grid;
  min-width: 9rem;
  flex: 1 1 9rem;
  gap: .2rem;
  font-size: .78rem;
}
.presentation-moap .catalog-filters select {
  width: 100%;
  margin: 0;
  padding: .55rem;
}
.presentation-moap .status-row { min-height: 1.8rem; }
.presentation-moap .now-playing-panel {
  align-items: stretch;
  margin-bottom: .75rem;
  padding: .75rem;
}
.presentation-moap .now-playing-poster { width: 5.5rem; }
.presentation-moap .now-playing-overview { display: none; }
.presentation-moap .playback-controls {
  flex-basis: min(34rem, 54%);
  grid-template-columns: repeat(3, 1fr);
}
.presentation-moap #operations-button,
.presentation-moap .operations-panel,
.presentation-moap .edit-metadata-button { display: none !important; }
.presentation-moap .catalog {
  grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr));
  gap: .75rem;
}
.presentation-moap .movie-copy { min-height: 19rem; }
.presentation-moap .movie-actions button { min-height: 3.25rem; }
.presentation-moap .movie-details-close { min-width: 6rem; }

@media (max-width: 800px) {
  .presentation-moap .topbar { align-items: stretch; flex-direction: column; }
  .presentation-moap .search { width: 100%; }
  .presentation-moap .now-playing-panel { flex-direction: column; }
  .presentation-moap .playback-controls { flex-basis: auto; width: 100%; }
}

@media (max-width: 1000px) {
  .topbar {
    align-items: stretch;
    flex-direction: column;
    gap: .8rem;
  }

  .search { width: 100%; }
  .search { flex-wrap: wrap; }
}

@media (max-width: 700px) {
  .panel-heading, .diagnostic-card { align-items: stretch; flex-direction: column; }
  .now-playing-panel { align-items: stretch; flex-direction: column; }
  .now-playing-feature { align-items: flex-start; }
  .now-playing-poster { width: 5.5rem; }
  .playback-controls { flex-basis: auto; width: 100%; }
  .catalog { grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr)); }
}
.identity-evidence-overview {
  padding: 1rem;
  margin: 1rem 0;
  border: 1px solid var(--line);
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.025);
}
.identity-evidence-details { margin: 0.8rem 0; overflow-wrap: anywhere; }
.identity-evidence-details summary { cursor: pointer; font-weight: 600; }
.movie-identity-state { font-weight: 700; }
.smart-rule-condition {
  display: grid;
  grid-template-columns: minmax(8rem, 1fr) minmax(7rem, 1fr) minmax(9rem, 1.4fr) auto;
  gap: .65rem;
  align-items: start;
  margin: .8rem 0;
  padding: .8rem;
  border: 1px solid var(--border, #48505b);
  border-radius: .5rem;
}
.smart-rule-condition label { min-width: 0; }
.smart-rule-condition button { align-self: end; }
.smart-rule-condition select, .smart-rule-condition input { width: 100%; }
.smart-collection-choice { display: grid !important; gap: .25rem; }
.metadata-editor .checkbox-row { display: flex; align-items: flex-start; gap: .6rem; }
.metadata-editor .checkbox-row input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; flex-shrink: 0; }
#smart-rule-expression { font-family: ui-monospace, monospace; }
@media (max-width: 700px) {
  .smart-rule-condition { grid-template-columns: 1fr 1fr; }
}
