.urph {
  --urph-bg: var(--surface, #fffaf1);
  --urph-bg-2: var(--surface-2, #f3eee3);
  --urph-border: var(--border, rgba(33,29,23,.12));
  --urph-border-strong: var(--border-strong, rgba(33,29,23,.24));
  --urph-text: var(--text, #15120d);
  --urph-muted: var(--text-muted, #6b6353);
  --urph-accent: var(--accent-strong, #a41c24);
  color: var(--urph-text);
  margin: var(--s-7, 56px) 0;
}

.urph * { box-sizing: border-box; }

.urph-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  margin-bottom: 24px;
}

.urph-kicker,
.urph-filters span,
.urph-time small,
.urph-meta {
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--urph-muted);
}

.urph-head h2 {
  margin: 6px 0 0;
  font-family: var(--font-display, Georgia, serif);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 400;
}

.urph-now {
  margin: 0;
  color: var(--urph-muted);
  font-size: .95rem;
}

.urph-filters {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) minmax(150px, .4fr) minmax(150px, .35fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 20px;
  padding: 14px;
  border: 1px solid var(--urph-border);
  background: color-mix(in oklab, var(--urph-bg) 86%, transparent);
}

.urph-filters label {
  display: grid;
  gap: 6px;
}

.urph-filters input,
.urph-filters select {
  width: 100%;
  min-height: 42px;
  border: 1px solid var(--urph-border);
  border-radius: 8px;
  background: var(--urph-bg);
  color: var(--urph-text);
  padding: 9px 11px;
  font: inherit;
}

.urph-filters button,
.urph-pages a {
  min-height: 42px;
  border-radius: 999px;
  border: 1px solid var(--urph-border-strong);
  background: var(--urph-text);
  color: var(--urph-bg);
  padding: 10px 18px;
  font-weight: 700;
  text-decoration: none;
}

.urph-list {
  border: 1px solid var(--urph-border);
  background: var(--urph-bg);
}

.urph-row {
  display: grid;
  grid-template-columns: 120px minmax(0, 1.3fr) minmax(120px, .8fr) minmax(120px, .5fr);
  gap: 18px;
  align-items: center;
  padding: 16px 18px;
  border-bottom: 1px solid var(--urph-border);
}

.urph-row:last-child { border-bottom: 0; }

.urph-time {
  display: grid;
  gap: 2px;
  font-weight: 800;
}

.urph-song h3 {
  margin: 0;
  font-family: var(--font-display, Georgia, serif);
  font-size: 1.15rem;
}

.urph-song p,
.urph-album,
.urph-empty,
.urph-notice p {
  margin: 0;
  color: var(--urph-muted);
}

.urph-meta {
  display: flex;
  justify-content: end;
  gap: 8px;
  flex-wrap: wrap;
}

.urph-meta span {
  border: 1px solid var(--urph-border);
  border-radius: 999px;
  padding: 4px 8px;
}

.urph-pages {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 18px;
}

.urph-empty,
.urph-notice {
  padding: 24px;
  border: 1px solid var(--urph-border);
  background: var(--urph-bg);
}

html[data-style="thrive"] .urph {
  --urph-bg: oklch(0.13 0.03 260);
  --urph-bg-2: oklch(0.18 0.04 260);
  --urph-border: color-mix(in oklch, var(--ember, #f97316) 24%, transparent);
  --urph-border-strong: color-mix(in oklch, var(--vesper, #22c55e) 42%, transparent);
  --urph-text: var(--text, #f8fafc);
  --urph-muted: var(--text-muted, #aab2c5);
  --urph-accent: var(--ember, #f97316);
}

html[data-style="thrive"] .urph-list {
  border-radius: 0;
  background: transparent;
}

html[data-style="thrive"] .urph-row {
  border: 0;
  border-left: 3px solid transparent;
}

html[data-style="thrive"] .urph-row:nth-child(odd) {
  background: color-mix(in oklch, var(--ember, #f97316) 12%, transparent);
  border-left-color: var(--ember, #f97316);
}

html[data-style="thrive"] .urph-row:nth-child(even) {
  background: color-mix(in oklch, var(--vesper, #22c55e) 12%, transparent);
  border-left-color: var(--vesper, #22c55e);
}

html[data-style="thrive"] .urph-song h3 {
  font-style: italic;
}

html[data-style="thrive"] .urph-filters,
html[data-style="thrive"] .urph-list,
html[data-style="thrive"] .urph-empty,
html[data-style="thrive"] .urph-notice {
  box-shadow: 0 24px 80px -56px var(--urph-accent);
}

html[data-style="missionary"] .urph {
  --urph-bg: var(--surface, #f6f1e7);
  --urph-bg-2: var(--surface-2, #ebe3d5);
  --urph-accent: var(--accent, #3f6f6e);
}

html[data-style="missionary"] .urph-head {
  border-bottom: 2px solid var(--urph-text);
  padding-bottom: 18px;
}

html[data-style="missionary"] .urph-head h2 {
  text-transform: uppercase;
  font-weight: 800;
  letter-spacing: 0;
}

html[data-style="missionary"] .urph-list {
  border: 2px solid var(--urph-text);
  box-shadow: 8px 8px 0 color-mix(in oklch, var(--urph-accent) 38%, transparent);
}

html[data-style="missionary"] .urph-row {
  grid-template-columns: 112px minmax(0, 1.2fr) minmax(120px, .8fr) minmax(110px, .45fr);
  border-bottom-color: var(--urph-text);
}

html[data-style="missionary"] .urph-row:hover {
  background: color-mix(in oklch, var(--urph-accent) 10%, transparent);
}

html[data-style="missionary"] .urph-song h3 {
  font-family: var(--font-display, Georgia, serif);
  text-transform: uppercase;
  font-weight: 800;
}

html:not([data-style="thrive"]):not([data-style="missionary"]) .urph-list {
  border-radius: 4px;
  background:
    linear-gradient(90deg, color-mix(in oklab, var(--urph-accent) 6%, transparent) 0 5px, transparent 5px),
    repeating-linear-gradient(0deg, var(--urph-bg) 0 47px, color-mix(in oklab, var(--urph-accent) 10%, var(--urph-bg)) 48px);
}

html:not([data-style="thrive"]):not([data-style="missionary"]) .urph-row {
  border-bottom-style: dotted;
}

html:not([data-style="thrive"]):not([data-style="missionary"]) .urph-time span {
  color: var(--urph-accent);
}

@media (max-width: 820px) {
  .urph-head,
  .urph-row {
    display: grid;
  }

  .urph-filters {
    grid-template-columns: 1fr;
  }

  .urph-row,
  html[data-style="missionary"] .urph-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .urph-meta {
    justify-content: start;
  }
}
