/**
 * Site-wide overlay. Structure stays Castopod; chrome is one
 * monochrome, pill-input, hairline-module system.
 * Loaded last on public, admin, auth, install, and errors.
 */

:root,
html,
body,
html body[class*="theme-"] {
  --color-accent-base: 0 0% 9%;
  --color-accent-hover: 0 0% 0%;
  --color-accent-muted: 0 0% 32%;
  --color-accent-contrast: 0 0% 100%;
  --color-heading-foreground: 0 0% 9%;
  --color-heading-background: 0 0% 96%;
  --color-background-elevated: 0 0% 100%;
  --color-background-base: 0 0% 100%;
  --color-background-navigation: 0 0% 9%;
  --color-background-navigation-active: 0 0% 16%;
  --color-background-header: 0 0% 9%;
  --color-background-highlight: 0 0% 96%;
  --color-background-backdrop: 0 0% 40%;
  --color-border-subtle: 0 0% 90%;
  --color-border-contrast: 0 0% 88%;
  --color-border-navigation: 0 0% 18%;
  --color-text-base: 0 0% 9%;
  --color-text-muted: 0 0% 42%;
  --brand-fill: #f5f5f5;
  --brand-fill-hover: #ececec;
  --brand-line: #e4e4e4;
  --brand-ink: #171717;
  --brand-muted: #737373;
  --brand-radius-module: 4px;
  --brand-radius-pill: 9999px;
  --brand-radius-field: 1.25rem;
}

body {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing: -0.01em;
  color: var(--brand-ink);
  background: #fff;
}

.font-display {
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
  letter-spacing: -0.04em;
}

/* ---------------------------------------------------------------------------
 * Elevation / modules
 * ------------------------------------------------------------------------- */

.shadow,
.shadow-sm,
.shadow-md,
.shadow-lg,
.shadow-xl,
.shadow-2xl,
.shadow-inner,
.hover\:shadow-xl:hover,
.focus\:shadow-xl:focus,
.focus-within\:shadow-xl:focus-within {
  --tw-shadow: 0 0 #0000 !important;
  --tw-shadow-colored: 0 0 #0000 !important;
  box-shadow: none !important;
}

.border-3 {
  border-width: 1px;
}

article.bg-elevated,
article.shadow,
.rounded-conditional-2xl,
.sm\:rounded-conditional-2xl {
  border-radius: 0 !important;
}

article.bg-elevated,
article.shadow {
  border: 1px solid #e6e6e6;
  background: #fff;
}

.rounded-xl,
.rounded-2xl,
.rounded-lg:not(input):not(select):not(textarea):not(button):not(a),
.rounded-md:not(button):not(a):not(input):not(select) {
  border-radius: var(--brand-radius-module);
}

fieldset.bg-elevated,
fieldset.border-3 {
  border-radius: var(--brand-radius-module) !important;
  border: 1px solid var(--brand-line) !important;
  background: #fff !important;
  box-shadow: none !important;
}

aside.bg-navigation,
header.bg-navigation {
  background: var(--brand-ink);
}

body > main.bg-elevated {
  border-radius: 0;
  box-shadow: none;
  border-width: 1px;
  border-color: var(--brand-line);
}

/* ---------------------------------------------------------------------------
 * Public: header, nav, tiles
 * ------------------------------------------------------------------------- */

header img.rounded-full,
article img.rounded-lg {
  border-radius: 14px;
}

header img.rounded-full {
  --tw-ring-color: #fff;
}

nav.sticky.bg-elevated,
nav.rounded-conditional-b-xl {
  border-radius: 0 !important;
  box-shadow: none !important;
  background: #fff;
  border-bottom: 1px solid #e6e6e6;
}

nav.sticky.bg-elevated > a {
  border-bottom-width: 0 !important;
  border: 1px solid #d4d4d4;
  border-radius: var(--brand-radius-pill);
  letter-spacing: 0.12em;
  font-size: 11px;
  font-weight: 500;
  padding: 0.35rem 0.9rem;
  line-height: 1.4;
  color: var(--brand-ink);
  background: transparent;
}

nav.sticky.bg-elevated > a.border-accent-base,
nav.sticky.bg-elevated > a.text-black {
  background: var(--brand-ink);
  color: #fff !important;
  border-color: var(--brand-ink);
}

nav.sticky.bg-elevated > a:not(.border-accent-base):hover {
  border-color: var(--brand-ink);
  color: var(--brand-ink);
}

body.public-site header a.rounded-full,
body.public-site header button.rounded-full {
  box-shadow: none !important;
  border: 1px solid #d4d4d4;
  background: #fff;
  letter-spacing: 0.12em;
  font-size: 11px;
}

body > header.bg-header {
  background: var(--brand-ink);
  border-bottom-color: var(--brand-ink);
}

#podcast-sidebar .bg-orange-500 {
  background-color: var(--brand-ink) !important;
}

.grid-cols-cards > a,
.grid-cols-cards > article {
  border-radius: 14px;
  box-shadow: none !important;
  border-width: 1px;
}

.grid-cols-cards > a img,
.grid-cols-cards article img {
  transform: none !important;
}

play-episode-button {
  filter: grayscale(1);
}

/* ---------------------------------------------------------------------------
 * Inputs: one pill + light grey language
 * ------------------------------------------------------------------------- */

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]),
select,
.choices__inner,
.flatpickr-input,
permalink-edit input {
  border-radius: var(--brand-radius-pill) !important;
  border: 1px solid var(--brand-line) !important;
  background: var(--brand-fill) !important;
  box-shadow: none !important;
  --tw-ring-shadow: 0 0 #0000;
  --tw-ring-offset-shadow: 0 0 #0000;
  color: var(--brand-ink);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]),
select,
.flatpickr-input {
  padding: 0.55rem 1.05rem;
  min-height: 2.75rem;
}

textarea,
xml-editor textarea {
  border-radius: var(--brand-radius-field) !important;
  border: 1px solid var(--brand-line) !important;
  background: var(--brand-fill) !important;
  box-shadow: none !important;
  padding: 0.85rem 1.1rem;
  color: var(--brand-ink);
}

/* Markdown / XML editors: the chrome is the field */
div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden,
xml-editor {
  border-radius: var(--brand-radius-field) !important;
  border: 1px solid var(--brand-line) !important;
  background: var(--brand-fill) !important;
  box-shadow: none !important;
  overflow: hidden;
}

div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden header,
div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden header > div,
div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden footer {
  background: transparent !important;
  border-color: var(--brand-line) !important;
}

div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden textarea,
div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden .CodeMirror {
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  min-height: 8rem;
}

markdown-write-preview button,
markdown-toolbar button,
markdown-toolbar [class*="md-"] {
  border-radius: var(--brand-radius-pill);
  color: var(--brand-ink);
}

input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):focus,
select:focus,
textarea:focus,
.flatpickr-input:focus,
.choices.is-focused .choices__inner,
div.flex.flex-col.bg-elevated.border-contrast.overflow-hidden:focus-within {
  border-color: #cfcfcf !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05) !important;
}

input::placeholder,
textarea::placeholder {
  color: #a3a3a3;
}

input[type="file"] {
  padding: 0.2rem;
}

input[type="file"]::file-selector-button {
  border: 0;
  background: var(--brand-fill-hover);
  color: #525252;
  border-radius: var(--brand-radius-pill);
  padding: 0.45rem 1rem;
  margin-right: 0.75rem;
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
}

.choices {
  background: transparent;
}

.choices__inner {
  min-height: 2.75rem;
  padding: 0.35rem 0.85rem;
}

.choices__list--dropdown,
.choices__list[aria-expanded] {
  border: 1px solid var(--brand-line) !important;
  border-radius: 12px !important;
  box-shadow: none !important;
  background: #fff !important;
  margin-top: 0.35rem;
}

.choices__item--choice.is-highlighted {
  background: var(--brand-fill) !important;
}

div[data-picker="datetime"] {
  border-radius: var(--brand-radius-pill) !important;
  border: 1px solid var(--brand-line) !important;
  background: var(--brand-fill) !important;
  overflow: hidden;
}

div[data-picker="datetime"] input {
  border: 0 !important;
  background: transparent !important;
  min-height: 2.5rem;
  border-radius: 0 !important;
}

div[data-picker="datetime"] button {
  background: transparent !important;
  border-radius: 0 !important;
}

/* Flatpickr: material-green leftover + brand pills fighting month/year/time */
.flatpickr-calendar {
  box-shadow: none !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 12px !important;
  background: #fff !important;
  overflow: hidden;
  font-family: inherit;
  color: var(--brand-ink);
}

.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
  border-bottom-color: #fff !important;
}

.flatpickr-calendar.arrowBottom:before,
.flatpickr-calendar.arrowBottom:after {
  border-top-color: #fff !important;
}

.flatpickr-calendar .flatpickr-months,
.flatpickr-calendar .flatpickr-months .flatpickr-month,
.flatpickr-calendar .flatpickr-weekdays,
.flatpickr-calendar span.flatpickr-weekday {
  background: var(--brand-fill) !important;
  color: var(--brand-ink) !important;
  fill: var(--brand-ink) !important;
}

.flatpickr-calendar .flatpickr-months .flatpickr-month {
  border-radius: 0 !important;
  overflow: visible !important;
  height: 42px;
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month {
  color: var(--brand-ink) !important;
  fill: var(--brand-ink) !important;
  height: 42px;
  padding: 8px 10px;
}

.flatpickr-calendar .flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-calendar .flatpickr-months .flatpickr-next-month:hover {
  color: var(--brand-muted) !important;
  fill: var(--brand-muted) !important;
  background: transparent !important;
}

.flatpickr-calendar .flatpickr-current-month {
  color: var(--brand-ink) !important;
  height: 42px;
  padding-top: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}

.flatpickr-calendar .flatpickr-current-month span.cur-month {
  color: var(--brand-ink) !important;
  font-weight: 600;
  margin: 0;
}

.flatpickr-calendar .flatpickr-current-month span.cur-month:hover {
  background: transparent !important;
}

.flatpickr-calendar input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]),
.flatpickr-calendar input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]),
.flatpickr-calendar select,
.flatpickr-calendar .numInput,
.flatpickr-calendar .cur-year,
.flatpickr-calendar .flatpickr-hour,
.flatpickr-calendar .flatpickr-minute,
.flatpickr-calendar .flatpickr-second,
.flatpickr-calendar .flatpickr-monthDropdown-months {
  border-radius: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 0 !important;
  color: var(--brand-ink) !important;
}

.flatpickr-calendar input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):focus,
.flatpickr-calendar input:focus,
.flatpickr-calendar select:focus {
  border: 0 !important;
  box-shadow: none !important;
  outline: none;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months,
.flatpickr-calendar .flatpickr-current-month input.cur-year {
  background: transparent !important;
  color: var(--brand-ink) !important;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.2;
  height: auto !important;
  padding: 0 0.15rem !important;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: none;
  -webkit-appearance: none;
  margin: 0;
}

.flatpickr-calendar .flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background: #fff !important;
  color: var(--brand-ink) !important;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper {
  width: 5.5ch;
  background: transparent !important;
}

.flatpickr-calendar .numInputWrapper:hover {
  background: transparent !important;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowUp:after {
  border-bottom-color: var(--brand-ink) !important;
}

.flatpickr-calendar .flatpickr-current-month .numInputWrapper span.arrowDown:after {
  border-top-color: var(--brand-ink) !important;
}

.flatpickr-calendar span.flatpickr-weekday {
  color: var(--brand-muted) !important;
  font-weight: 600;
}

.flatpickr-calendar .flatpickr-days,
.flatpickr-calendar .flatpickr-innerContainer {
  border-color: var(--brand-line) !important;
  background: #fff !important;
}

.flatpickr-calendar .flatpickr-day {
  color: var(--brand-ink) !important;
  border-radius: 9999px;
}

.flatpickr-calendar .flatpickr-day:hover,
.flatpickr-calendar .flatpickr-day:focus {
  background: var(--brand-fill) !important;
  border-color: transparent !important;
}

.flatpickr-calendar .flatpickr-day.today {
  border-color: #d4d4d4 !important;
}

.flatpickr-calendar .flatpickr-day.today:hover,
.flatpickr-calendar .flatpickr-day.today:focus {
  background: var(--brand-fill) !important;
  color: var(--brand-ink) !important;
}

.flatpickr-calendar .flatpickr-day.selected,
.flatpickr-calendar .flatpickr-day.selected:hover,
.flatpickr-calendar .flatpickr-day.selected:focus,
.flatpickr-calendar .flatpickr-day.startRange,
.flatpickr-calendar .flatpickr-day.endRange {
  background: var(--brand-ink) !important;
  border-color: var(--brand-ink) !important;
  color: #fff !important;
  box-shadow: none !important;
}

.flatpickr-calendar .flatpickr-day.prevMonthDay,
.flatpickr-calendar .flatpickr-day.nextMonthDay {
  color: #a3a3a3 !important;
}

.flatpickr-calendar .flatpickr-time {
  border-color: var(--brand-line) !important;
  background: #fff !important;
  height: 44px !important;
  max-height: 44px !important;
  line-height: 44px;
}

.flatpickr-calendar.hasTime .flatpickr-time {
  border-top: 1px solid var(--brand-line) !important;
}

.flatpickr-calendar .flatpickr-time .numInputWrapper {
  height: 44px;
  background: transparent !important;
}

.flatpickr-calendar .flatpickr-time input {
  height: 44px !important;
  line-height: 44px !important;
  font-size: 0.9rem;
  text-align: center;
}

.flatpickr-calendar .flatpickr-time .flatpickr-time-separator,
.flatpickr-calendar .flatpickr-time .flatpickr-am-pm {
  color: var(--brand-ink) !important;
  background: transparent !important;
  height: 44px;
  line-height: 44px;
}

.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-calendar .flatpickr-time .flatpickr-am-pm:focus,
.flatpickr-calendar .flatpickr-time input:hover,
.flatpickr-calendar .flatpickr-time input:focus {
  background: var(--brand-fill) !important;
}

/* Radio chips (Type / Medium / advisory) — hide native radio; pill is the control */
.form-radio-btn {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  appearance: none !important;
  box-shadow: none !important;
  color: var(--brand-ink) !important;
}

.form-radio-btn + label {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center;
  gap: 0.35rem;
  box-sizing: border-box;
  min-height: 2.4rem;
  padding: 0.55rem 1.05rem !important;
  margin: 0;
  border-radius: var(--brand-radius-pill) !important;
  border: 1px solid var(--brand-line) !important;
  background: var(--brand-fill) !important;
  color: var(--brand-ink) !important;
  font-weight: 500;
  font-size: 0.875rem;
  line-height: 1.2;
  box-shadow: none !important;
}

.form-radio-btn:checked + label {
  background: var(--brand-ink) !important;
  color: #fff !important;
  border-color: var(--brand-ink) !important;
}

.form-radio-btn:focus + label,
.form-radio-btn:focus-visible + label {
  box-shadow: none !important;
  outline: 2px solid var(--brand-ink);
  outline-offset: 2px;
}

.form-radio-btn + label [data-tooltip] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin: 0 !important;
  line-height: 0;
  opacity: 0.65;
}

.form-radio-btn:checked + label [data-tooltip] {
  opacity: 0.85;
  color: inherit;
}

.form-radio-btn + label [data-tooltip] svg {
  display: block;
  width: 0.95em;
  height: 0.95em;
}

/* File / URL tabs: Castopod paints a square ::after underline on the selected label */
.form-input-tabs > label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  overflow: hidden;
  vertical-align: middle;
  box-sizing: border-box;
  min-height: 2.4rem;
  padding: 0.55rem 1.05rem !important;
  margin: 0 0.4rem 0.2rem 0;
  border-radius: var(--brand-radius-pill);
  background: var(--brand-fill);
  border: 1px solid var(--brand-line);
  color: var(--brand-ink);
  opacity: 1;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 500;
  line-height: 1.2;
  box-shadow: none !important;
}

.form-input-tabs > label::before,
.form-input-tabs > label::after,
.form-input-tabs > input:checked + label::before,
.form-input-tabs > input:checked + label::after {
  content: none !important;
  display: none !important;
  background: none !important;
  box-shadow: none !important;
  border: 0 !important;
  height: 0 !important;
  width: 0 !important;
}

.form-input-tabs > input:checked + label {
  background: var(--brand-ink);
  color: #fff;
  border-color: var(--brand-ink);
  box-shadow: none !important;
}

.form-input-tabs > input:focus + label,
.form-input-tabs > input:focus-visible + label {
  box-shadow: none !important;
  outline: 2px solid var(--brand-ink);
  outline-offset: 2px;
}

/* Checkboxes / switches stay monochrome via tokens; tighten chrome */
.form-checkbox,
.form-radio:not(.form-radio-btn) {
  border-radius: 4px;
  border-color: #d4d4d4 !important;
  color: var(--brand-ink) !important;
}

.form-switch-slider {
  background-color: #d4d4d4 !important;
}

.form-switch:checked + .form-switch-slider {
  background-color: var(--brand-ink) !important;
}

/* ---------------------------------------------------------------------------
 * Buttons, pills, alerts
 * ------------------------------------------------------------------------- */

button.rounded-full,
a.rounded-full.inline-flex,
.inline-flex.items-center.justify-center.font-semibold.rounded-full {
  box-shadow: none !important;
}

.bg-accent-base {
  background-color: var(--brand-ink) !important;
}

.hover\:bg-accent-hover:hover {
  background-color: #000 !important;
}

.border-accent-base {
  border-color: var(--brand-ink) !important;
}

.text-accent-base {
  color: var(--brand-ink) !important;
}

span.inline-flex.items-center.gap-x-1.px-1.font-semibold.text-sm.border.rounded,
[class*="bg-gray-100"][class*="border-gray-300"] {
  border-radius: var(--brand-radius-pill);
  background: var(--brand-fill) !important;
  border-color: var(--brand-line) !important;
  color: var(--brand-ink) !important;
}

[role="alert"] {
  border-radius: var(--brand-radius-field);
  background: var(--brand-fill) !important;
  border-color: var(--brand-line) !important;
  color: var(--brand-ink) !important;
}

/* Hardcoded theme utilities → greys */
.bg-pine-50,
.bg-pine-100,
.bg-blue-50,
.bg-blue-100,
.bg-yellow-100,
.bg-red-100,
.bg-red-200 {
  background-color: var(--brand-fill) !important;
}

.bg-pine-500,
.bg-blue-500,
.bg-red-600,
.bg-yellow-500 {
  background-color: var(--brand-ink) !important;
}

body.admin-app a.rounded-full.bg-yellow-500,
body.admin-app button.rounded-full.bg-yellow-500,
body.admin-app a.rounded-full.bg-red-600,
body.admin-app button.rounded-full.bg-red-600,
body.admin-app a.rounded-full.bg-blue-500,
body.admin-app button.rounded-full.bg-blue-500,
body.admin-app a.rounded-full.bg-pine-500,
body.admin-app button.rounded-full.bg-pine-500,
body.admin-app a.rounded-full.bg-accent-base,
body.admin-app button.rounded-full.bg-accent-base {
  color: #fff !important;
}

body.admin-app a.rounded-full.bg-yellow-500 svg,
body.admin-app button.rounded-full.bg-yellow-500 svg,
body.admin-app a.rounded-full.bg-red-600 svg,
body.admin-app button.rounded-full.bg-red-600 svg,
body.admin-app a.rounded-full.bg-blue-500 svg,
body.admin-app button.rounded-full.bg-blue-500 svg,
body.admin-app a.rounded-full.bg-pine-500 svg,
body.admin-app button.rounded-full.bg-pine-500 svg,
body.admin-app a.rounded-full.bg-accent-base svg,
body.admin-app button.rounded-full.bg-accent-base svg {
  color: #fff !important;
}

.text-pine-500,
.text-pine-900,
.text-blue-900,
.text-yellow-900,
.text-red-700,
.text-red-900,
.border-pine-300,
.border-blue-300,
.border-yellow-300,
.border-red-300,
.border-red-700 {
  color: var(--brand-ink);
  border-color: var(--brand-line) !important;
}

.text-red-600,
.font-semibold.text-red-600 {
  color: var(--brand-ink) !important;
}

/* Unread dots: ink on light, white on dark chrome */
.bg-red-500 {
  background-color: var(--brand-ink) !important;
}

header.bg-navigation .bg-red-500,
aside.bg-navigation .bg-red-500 {
  background-color: #fff !important;
}

/* ---------------------------------------------------------------------------
 * Admin chrome, tables, menus
 * ------------------------------------------------------------------------- */

aside nav details.bg-navigation-active {
  background: #262626;
}

aside nav a.rounded-full:not(.bg-accent-base),
aside nav a.bg-navigation-active,
aside nav a.bg-navigation {
  background: #404040 !important;
  color: #fff;
}

/* Add-CTA plus: ghost icon, not a brand/white pill */
aside nav a.shadow.bg-accent-base,
aside nav a.rounded-full.bg-accent-base,
aside nav summary > a.p-2.rounded-full {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  padding: 0 !important;
  margin-left: 0.15rem;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: rgba(255, 255, 255, 0.65) !important;
  border-radius: 0.25rem;
}

aside nav a.shadow.bg-accent-base svg,
aside nav a.rounded-full.bg-accent-base svg,
aside nav summary > a.p-2.rounded-full svg {
  color: inherit !important;
  fill: currentColor;
  width: 1rem;
  height: 1rem;
}

aside nav a.shadow.bg-accent-base:hover,
aside nav a.rounded-full.bg-accent-base:hover,
aside nav summary > a.p-2.rounded-full:hover {
  background: rgba(255, 255, 255, 0.1) !important;
  color: #fff !important;
}

table.w-full {
  border: 1px solid var(--brand-line);
  border-radius: var(--brand-radius-module);
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  background: #fff;
}

table.w-full thead {
  background: var(--brand-fill);
}

table.w-full tr:hover {
  background: #fafafa;
}

[data-dropdown="menu"] {
  box-shadow: none !important;
  border: 1px solid var(--brand-line) !important;
  border-radius: 12px !important;
  background: #fff !important;
}

.focus\:ring-accent:focus,
.focus\:ring-accent:focus-visible,
.focus-within\:ring-accent:focus-within {
  --tw-ring-color: var(--brand-ink);
}

.apexcharts-toolbar,
.apexcharts-menu {
  filter: grayscale(1);
}

permalink-edit {
  gap: 0.35rem;
}

permalink-edit button {
  border-radius: var(--brand-radius-pill);
  background: var(--brand-fill);
  border: 1px solid var(--brand-line);
  padding: 0.25rem 0.7rem;
  font-size: 11px;
  letter-spacing: 0.06em;
}

/* ---------------------------------------------------------------------------
 * Public site: dark editorial (Presence / Sound Stories)
 * Scoped to body.public-site so admin stays light.
 * ------------------------------------------------------------------------- */

body.public-site {
  --public-header-height: 3.75rem;
  --public-admin-height: 0px;
  --public-sticky-top: var(--public-header-height);
  --public-wrap: min(1120px, calc(100% - 2.5rem));
  --color-background-base: 0 0% 7%;
  --color-background-elevated: 0 0% 9%;
  --color-background-header: 0 0% 7%;
  --color-background-highlight: 0 0% 12%;
  --color-background-backdrop: 0 0% 0%;
  --color-border-subtle: 0 0% 18%;
  --color-border-contrast: 0 0% 22%;
  --color-text-base: 0 0% 96%;
  --color-text-muted: 0 0% 62%;
  --color-heading-foreground: 0 0% 100%;
  --color-heading-background: 0 0% 10%;
  --color-accent-base: 0 0% 96%;
  --color-accent-hover: 0 0% 100%;
  --color-accent-muted: 0 0% 70%;
  --color-accent-contrast: 0 0% 7%;
  --brand-fill: #1a1a1a;
  --brand-fill-hover: #222;
  --brand-line: rgba(255, 255, 255, 0.14);
  --brand-ink: #f5f5f5;
  --brand-muted: #9a9a9a;
  --public-bg: #111111;
  --public-ink: #f6f6f6;
  --public-muted: #9c9c9c;
  --public-line: rgba(255, 255, 255, 0.1);
  background: var(--public-bg);
  color: var(--public-ink);
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
}

body.public-site .font-display,
body.public-site .public-title,
body.public-site .public-episode-title,
body.public-site .public-brand {
  /* Inter Tight across all Kairos apps (site, coaching app, podcast). */
  font-family: "Inter Tight", Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
  letter-spacing: -0.01em;   /* Inter Tight is already tight */
}

body.public-site a {
  color: inherit;
}

body.public-site .public-wrap {
  box-sizing: border-box;
  width: var(--public-wrap);
  max-width: var(--public-wrap);
  margin-inline: auto;
}

body.public-site .public-nav {
  display: flex;
  align-items: center;
  gap: 1.5rem;
  box-sizing: border-box;
  width: var(--public-wrap);
  max-width: var(--public-wrap);
  margin: 0 auto;
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--public-line);
}

body.public-site .public-brand {
  font-size: 1.55rem;
  font-style: normal;
  line-height: 1;
  color: #fff;
}

body.public-site .public-nav-links {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  margin-left: auto;
}

body.public-site .public-nav-link,
body.public-site .public-subnav > a,
body.public-site .public-filter,
body.public-site .public-meta-link {
  border: 0 !important;
  background: transparent !important;
  color: var(--public-muted) !important;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.2rem 0;
  border-radius: 0 !important;
}

body.public-site .public-nav-link.is-active,
body.public-site .public-subnav > a.is-active {
  color: #fff !important;
}

body.public-site .public-nav-link span,
body.public-site .public-subnav > a span {
  margin-left: 0.4rem;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  color: inherit;
  opacity: 0.55;
}

body.public-site .public-nav-toggle {
  display: none;
  margin-left: auto;
  color: #fff;
  background: transparent;
  border: 0;
  padding: 0.25rem;
}

@media (min-width: 768px) {
  body.public-site .public-nav-toggle,
  body.public-site .public-menu-backdrop,
  body.public-site .public-aside {
    display: none !important;
  }
}

body.public-site .public-hero {
  padding: 4.5rem 0 3.5rem;
}

body.public-site .public-page-hero {
  padding: 4.5rem 0 0.35rem;
}

body.public-site .public-page-hero .public-title {
  margin: 0;
}

body.public-site .public-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
  gap: 3.5rem;
  align-items: start;
}

body.public-site .public-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
}

body.public-site .public-hero-copy > * {
  margin-left: 0;
  padding-left: 0;
}

body.public-site .public-hero-copy .public-title {
  margin-top: 0;
}

body.public-site .public-hero-copy .public-pills,
body.public-site .public-hero-copy .public-share,
body.public-site .public-hero-copy .public-pill-solid {
  margin-left: 0;
  padding-inline-start: 0;
}

body.public-site .public-cover {
  width: 100%;
  max-width: 280px;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 6px;
}

body.public-site .public-links {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 4rem 0 5rem;
  text-align: center;
}

body.public-site .public-cover-center {
  width: 168px;
  margin-bottom: 1.5rem;
}

body.public-site .public-pills-stack {
  flex-direction: column;
  align-items: stretch;
  width: min(22rem, 100%);
}

body.public-site .public-pills-stack .public-pill {
  justify-content: center;
}

body.public-site .public-kicker {
  margin: 0 0 0.85rem;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--public-muted);
}

body.public-site .public-title {
  margin: 0;
  font-size: clamp(2.8rem, 7vw, 5.4rem);
  font-weight: 500;
  font-style: normal;
  line-height: 0.92;
  color: #fff;
}

body.public-site .public-lede,
body.public-site .public-episode-lede {
  margin: 1.25rem 0 0;
  max-width: none;
  width: 100%;
  font-size: 1.02rem;
  line-height: 1.6;
  color: var(--public-muted);
}

body.public-site .public-lede,
body.public-site .public-about-copy {
  display: block;
  -webkit-line-clamp: unset;
  line-clamp: unset;
  -webkit-box-orient: unset;
  overflow: visible;
  text-overflow: unset;
  max-height: none;
  white-space: normal;
}

body.public-site .public-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  margin-top: 1.6rem;
}

body.public-site .public-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  min-height: 2.15rem;
  padding: 0.35rem 0.95rem;
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 9999px;
  background: transparent;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.public-site .public-pill:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

body.public-site .public-pill:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}

body.public-site .public-pills-icons {
  align-items: center;
}

body.public-site .public-pills-icons .public-pill {
  justify-content: center;
  gap: 0;
  min-width: 2.4rem;
  min-height: 2.4rem;
  padding: 0.45rem;
}

body.public-site .public-pills-icons .public-pill-icon,
body.public-site .public-pills-icons .public-pill svg {
  width: 1.1rem;
  height: 1.1rem;
}

body.public-site .public-pills-icons .public-pill-youtube {
  gap: 0.45rem;
  min-width: 0;
  max-width: 100%;
  padding: 0.35rem 0.95rem;
  white-space: nowrap;
}

body.public-site .public-pill-solid {
  background: #fff;
  color: #111;
  border-color: #fff;
  margin-top: 1rem;
}

body.public-site .public-pill-quiet {
  border-color: var(--public-line);
  color: var(--public-muted);
}

body.public-site .public-pills-youtube {
  margin-top: 0.35rem;
}

body.public-site .public-pill-youtube {
  background: #0a0a0a;
  border-color: rgba(255, 255, 255, 0.85);
  color: #fff;
}

body.public-site .public-pill-youtube:hover {
  background: #000;
  border-color: #fff;
}

body.public-site .public-pill-icon,
body.public-site .public-pill svg {
  width: 0.95rem;
  height: 0.95rem;
}

body.public-site .public-body {
  display: block;
  padding: 1rem 0 5rem;
}

body.public-site .public-main {
  display: block;
  min-width: 0;
}

body.public-site .public-list-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.75rem;
}

body.public-site .public-episodes {
  display: flex;
  flex-direction: column;
}

body.public-site .public-year-heading {
  margin: 1.75rem 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--public-muted);
}

body.public-site .public-episodes > .public-year-heading:first-child {
  margin-top: 0;
}

body.public-site .public-episode,
body.public-site article.public-episode,
body.public-site article.bg-elevated.public-episode {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1.6rem 0;
  border: 0;
  border-bottom: 1px solid var(--public-line);
  background: transparent;
  box-shadow: none;
  border-radius: 0;
}

body.public-site .public-episode-cover {
  position: relative;
  width: 132px;
  height: 132px;
}

body.public-site .public-episode-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
}

body.public-site .public-episode-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.22);
  pointer-events: none;
}

body.public-site .public-episode-play {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  filter: none;
}

body.public-site .public-episode-play button,
body.public-site play-episode-button.public-episode-play,
body.public-site .public-episode-cover play-episode-button {
  filter: none;
}

body.public-site .public-episode-meta {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--public-muted);
}

body.public-site .public-episode-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  font-size: clamp(1.45rem, 3vw, 2rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.15;
  color: #fff;
}

body.public-site .public-episode-title h3 {
  margin: 0;
  font: inherit;
  letter-spacing: inherit;
  color: inherit;
}

body.public-site .public-episode-copy {
  min-width: 0;
  width: 100%;
}

body.public-site .public-episode-title time {
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 0.72rem;
  letter-spacing: 0.02em;
}

body.public-site .public-episode-lede {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-top: 0.55rem;
  font-size: 0.95rem;
}

body.public-site .public-episode .public-pills {
  margin-top: 1rem;
}

body.public-site .public-about-copy,
body.public-site .prose,
body.public-site .prose-sm,
body.public-site .prose-sm.text-white {
  width: 100%;
  color: var(--public-muted);
}

body.public-site .public-about-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.75rem 2.5rem;
  align-items: start;
}

body.public-site .public-about-photo {
  margin: 0;
  width: 100%;
  max-width: 22rem;
}

body.public-site .public-about-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  object-fit: cover;
  object-position: center 18%;
  border-radius: 6px;
  border: 1px solid var(--public-line);
  background: #161616;
}

body.public-site .public-about-main {
  min-width: 0;
}

body.public-site .public-about-copy {
  max-width: none;
  width: 100%;
}

@media (min-width: 900px) {
  body.public-site .public-about-layout {
    grid-template-columns: minmax(14rem, 20rem) minmax(0, 1fr);
    gap: 2.5rem 3rem;
  }

  body.public-site .public-about-photo {
    max-width: none;
  }
}

body.public-site .public-about-copy p,
body.public-site .public-lede p {
  margin: 0 0 1.5em;
}

body.public-site .public-about-copy p:last-child,
body.public-site .public-lede p:last-child {
  margin-bottom: 0;
}

body.public-site .public-about-copy img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 1.5rem 0;
  border-radius: 6px;
}

body.public-site .public-episode-notes,
body.public-site .public-episode-notes .see-more,
body.public-site .public-episode-notes .see-more__content,
body.public-site .public-episode-notes-body {
  width: 100%;
  max-width: none;
  max-height: none;
  overflow: visible;
  overflow-wrap: break-word;
}

body.public-site .public-episode-toolbar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
}

body.public-site .public-episode-toolbar .public-share {
  margin-top: 0;
}

body.public-site .public-episode-toolbar play-episode-button {
  display: inline-flex;
  align-items: center;
  --color-accent-base: 0 0% 16%;
  --color-accent-hover: 0 0% 22%;
  --color-accent-contrast: 0 0% 100%;
  --color-background-base: 0 0% 7%;
}

body.public-site .public-episode-toolbar-meta {
  display: inline-flex;
  align-items: center;
  color: #f0f0f0;
  font-size: 0.78rem;
  line-height: 1;
}

body.public-site .public-listen-on {
  margin-top: 0.35rem;
}

body.public-site .public-listen-on .public-kicker {
  margin-top: 0;
  margin-bottom: 0.85rem;
}

body.public-site .public-listen-on .public-pills {
  margin-top: 0;
}

body.public-site .public-listen-on .public-kicker.public-listen-on-watch {
  margin-top: 1.75rem;
  margin-bottom: 0.85rem;
}

body.public-site .public-listen-on .public-pills-youtube {
  margin-top: 0;
}

body.public-site .public-youtube-watch {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.7rem;
  max-width: 16.5rem;
}

body.public-site .public-youtube-thumb {
  display: block;
  width: 100%;
  overflow: hidden;
  border: 1px solid var(--public-line);
  border-radius: 6px;
  background: #161616;
}

body.public-site .public-youtube-thumb img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

body.public-site .public-youtube-thumb:hover {
  border-color: rgba(255, 255, 255, 0.35);
}

body.public-site .rss-chapters {
  display: none;
}

body.public-site .see-more {
  width: 100%;
  align-items: stretch;
}

body.public-site .see-more__content {
  width: 100%;
  max-width: 100%;
  overflow-x: visible;
  overflow-y: hidden;
}

body.public-site .see-more__checkbox:checked ~ .see-more__content {
  height: auto !important;
  max-height: none !important;
  overflow: visible !important;
}

body.public-site .see-more_content-fade {
  top: auto;
  right: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2.25rem;
  background-image: linear-gradient(to top, #111 0%, rgba(17, 17, 17, 0) 100%) !important;
  pointer-events: none;
}

body.public-site .public-about-copy :is(h1, h2, h3, h4),
body.public-site .prose :is(h1, h2, h3, h4):not(.public-notes-heading),
body.public-site .prose-sm :is(h1, h2, h3, h4):not(.public-notes-heading) {
  color: #fff;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
}

body.public-site .public-about-copy h2 {
  margin: 2.1rem 0 0.85rem;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

body.public-site .public-about-copy h2:first-child {
  margin-top: 0;
}

body.public-site .public-about-copy h2 + p {
  margin-top: 0;
}

body.public-site .public-about-meta,
body.public-site .public-stats {
  margin-top: 2rem;
}

body.public-site .public-stats-list {
  display: flex;
  flex-direction: column;
}

body.public-site .public-stats-list > span {
  padding: 0.85rem 0;
  border-bottom: 1px solid var(--public-line);
  color: var(--public-muted);
  font-size: 0.95rem;
}

body.public-site .public-footer {
  margin-top: auto;
  border-top: 1px solid var(--public-line);
  padding: 4.5rem 0 1.75rem;
}

body.public-site .public-footer-main {
  padding-bottom: 4rem;
}

body.public-site .public-footer-heading {
  margin: 0;
  color: #fff;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: clamp(2rem, 4vw, 3.15rem);
  font-style: normal;
  font-weight: 400;
  line-height: 1.05;
  letter-spacing: -0.02em;
}

body.public-site .public-footer-email {
  display: inline-block;
  margin-top: 0.85rem;
  color: #fff;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: clamp(1.65rem, 3vw, 2.4rem);
  font-style: normal;
  line-height: 1.15;
}

body.public-site .public-footer-email:hover {
  text-decoration: underline;
}

body.public-site .public-footer-socials {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem;
  margin-top: 1.75rem;
}

body.public-site .public-footer-socials a,
body.public-site .public-footer-utility,
body.public-site .public-footer-links a,
body.public-site .public-footer-utility-links a {
  color: var(--public-muted);
  font-family: Inter, sans-serif;
  font-size: 0.78rem;
  letter-spacing: 0.01em;
  text-transform: none;
}

body.public-site .public-footer-socials a:hover,
body.public-site .public-footer-links a:hover,
body.public-site .public-footer-utility-links a:hover {
  color: #fff;
}

body.public-site .public-footer-utility {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--public-line);
}

body.public-site .public-footer-copy {
  margin: 0;
}

body.public-site .public-footer-utility-links,
body.public-site .public-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  justify-content: flex-end;
}

body.public-site .public-footer-links {
  text-transform: none;
  letter-spacing: 0;
}

body.public-site .public-footer-links a {
  padding: 0;
  text-decoration: none;
}

body.public-site .public-share {
  display: inline-flex;
  align-items: center;
  margin-top: 1.35rem;
}

body.public-site .public-share-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.22);
  border-radius: 9999px;
  background: #2a2a2a;
  color: #fff;
  cursor: pointer;
  box-shadow: none;
}

body.public-site .public-share-btn:hover,
body.public-site .public-share-btn:focus-visible {
  background: #3a3a3a;
  border-color: rgba(255, 255, 255, 0.45);
  outline: none;
}

body.public-site .public-share-btn svg {
  width: 1.05rem;
  height: 1.05rem;
}

body.public-site .public-share-status {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 0.4rem);
  transform: translateX(-50%);
  padding: 0.15rem 0.45rem;
  border-radius: 9999px;
  background: #2a2a2a;
  color: #fff;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.public-site .public-pager {
  margin-top: 2.5rem;
}

body.public-site .public-pager nav ul {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.public-site .public-pager li {
  display: flex;
  align-items: center;
}

body.public-site .public-pager li > a,
body.public-site .public-pager li > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.15rem;
  min-height: 2.15rem;
  padding: 0 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 9999px;
  background: #2a2a2a !important;
  color: #fff !important;
  font-size: 0.75rem;
  font-weight: 500;
  line-height: 1;
  box-shadow: none !important;
  outline: none;
}

body.public-site .public-pager li > a:hover,
body.public-site .public-pager li > a:focus-visible {
  background: #3a3a3a !important;
  border-color: rgba(255, 255, 255, 0.32);
}

body.public-site .public-pager li > span,
body.public-site .public-pager li > span.bg-accent-base {
  background: #3f3f3f !important;
  border-color: #fff !important;
  color: #fff !important;
}

body.public-site .public-pager li > a span,
body.public-site .public-pager li > span span {
  display: inline;
  min-width: 0;
  min-height: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: inherit !important;
  box-shadow: none !important;
}

body.public-site .public-empty-quiet {
  font-size: 1.35rem;
  color: var(--public-muted);
}

body.public-site .public-appearance-list {
  display: flex;
  flex-direction: column;
}

body.public-site .public-appearance {
  padding: 1.35rem 0;
  border-bottom: 1px solid var(--public-line);
}

body.public-site .public-appearance.has-image {
  display: grid;
  grid-template-columns: 7.5rem minmax(0, 1fr);
  gap: 1.25rem;
  align-items: start;
  padding: 1.5rem 0;
}

body.public-site .public-appearance-media {
  display: block;
  width: 7.5rem;
  height: 7.5rem;
  overflow: hidden;
  border-radius: 4px;
  background: #1a1a1a;
}

body.public-site .public-appearance-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.public-site .public-appearance-copy {
  min-width: 0;
}

body.public-site .public-appearance-meta {
  display: flex;
  gap: 0.85rem;
  margin: 0 0 0.35rem;
  color: var(--public-muted);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.public-site .public-appearance-title {
  margin: 0;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.65rem;
  font-style: normal;
  font-weight: 400;
}

body.public-site .public-appearance-title a:hover {
  text-decoration: underline;
}

body.public-site .public-appearance-note {
  margin: 0.45rem 0 0;
  color: var(--public-muted);
}

body.public-site #castopod-audio-player,
body.public-site [id="castopod-audio-player"] {
  --player-progress: 0;
  background: #111 !important;
  color: #fff !important;
  border-top: 1px solid var(--public-line) !important;
  cursor: default;
}

body.public-site #castopod-audio-player img {
  border-radius: 0;
  cursor: pointer;
}

body.public-site #castopod-player-title {
  overflow: hidden;
  max-width: 12rem;
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: pointer;
}

body.public-site #castopod-player-title .public-player-title-inner {
  display: inline-flex;
  gap: 2rem;
  white-space: nowrap;
}

body.public-site #castopod-player-title.is-marquee {
  text-overflow: clip;
}

body.public-site #castopod-player-title.is-marquee .public-player-title-inner {
  animation: public-player-marquee var(--marquee-duration, 10s) linear infinite;
}

body.public-site #castopod-player-title.is-marquee:hover .public-player-title-inner {
  animation-play-state: paused;
}

@keyframes public-player-marquee {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(calc(-50% - 1rem));
  }
}

body.public-site vm-player,
body.public-site #castopod-vm-player {
  --vm-player-theme: #fff;
  --vm-player-bg: transparent;
  --vm-player-background: transparent;
  --vm-controls-bg: transparent;
  --vm-controls-background: transparent;
  --vm-control-color: #fff;
  --vm-time-color: #f6f6f6;
  --vm-time-font-weight: 600;
  --vm-slider-track-color: #333;
  --vm-slider-track-fill-color: #fff;
  --vm-slider-value-color: #fff;
  --vm-control-focus-color: #fff;
  --vm-control-focus-bg: transparent;
  --vm-menu-bg: #171717;
  --vm-menu-color: #f6f6f6;
  --vm-menu-item-focus-bg: #2a2a2a !important;
  --vm-menu-item-focus-color: #fff;
  --vm-menu-item-tap-highlight: #2a2a2a;
  --vm-menu-item-hint-color: #a3a3a3;
  --vm-menu-item-arrow-color: #a3a3a3;
  --vm-menu-item-badge-color: #a3a3a3;
  --vm-menu-item-divider-color: rgba(255, 255, 255, 0.1);
  --vm-settings-scroll-thumb-color: rgba(255, 255, 255, 0.27);
  --vm-settings-scroll-track-color: #171717;
  --vm-settings-shadow: 0 0 0 1px #2a2a2a;
  --vm-tooltip-bg: #171717;
  --vm-tooltip-color: #f6f6f6;
  background: transparent !important;
  box-shadow: none !important;
}

body.public-site play-episode-button.is-playing .public-episode-play,
body.public-site .public-episode-cover:has(play-episode-button[playing]) img {
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35);
}

body.public-site .public-menu-backdrop,
body.public-site .public-aside {
  display: none;
}

body.public-site .public-aside {
  position: fixed;
  inset: 0 0 0 auto;
  z-index: 82;
  width: min(22rem, 100%);
  max-width: 100vw;
  padding: 1.25rem 1.25rem calc(7.75rem + env(safe-area-inset-bottom, 0px));
  overflow: auto;
  background: #111;
  border-left: 1px solid var(--public-line);
  -webkit-overflow-scrolling: touch;
}

body.public-site .public-menu-backdrop {
  position: fixed;
  inset: 0;
  z-index: 81;
  background: rgba(0, 0, 0, 0.72);
}

body.public-site .public-aside-inner {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  min-width: 0;
}

body.public-site .public-aside-head {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0.5rem;
}

body.public-site .public-aside-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: #fff;
}

body.public-site .public-aside-nav {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  margin: 0 0 1.5rem;
}

body.public-site .public-aside-link {
  display: flex;
  align-items: center;
  min-height: 2.85rem;
  padding: 0.55rem 0.15rem;
  color: #fff;
  font-size: 1.05rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.public-site .public-aside-link.is-active {
  color: #fff;
}

body.public-site .public-aside .public-kicker {
  margin-top: 0.75rem;
}

body.public-site .public-aside-foot {
  margin-top: 1.25rem;
}

body.public-site .public-empty {
  padding: 3rem 0;
  color: var(--public-muted);
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 2rem;
  font-style: normal;
}

body.public-site header.aspect-\[3\/1\],
body.public-site header.bg-header,
body.public-site header.bg-accent-base\/75,
body.public-site > header,
body.public-site .public-page > header,
body.public-site .public-episode-hero {
  background: transparent;
}

body.public-site > .px-8.py-4.text-white.bg-header,
body.public-site > .public-subnav,
body.public-site > .relative.grid,
body.public-site > .col-start-2:not(.public-wrap):not(.public-episode-nav):not(.public-episode-hero),
body.public-site > [role="alert"],
body.public-site .public-page > .px-8.py-4.text-white.bg-header,
body.public-site .public-page > .public-subnav,
body.public-site .public-page > .relative.grid,
body.public-site .public-page > .col-start-2:not(.public-wrap):not(.public-episode-nav):not(.public-episode-hero),
body.public-site .public-page > [role="alert"] {
  box-sizing: border-box;
  width: var(--public-wrap);
  max-width: var(--public-wrap);
  margin-inline: auto;
  padding-left: 0;
  padding-right: 0;
}

body.public-site > nav.bg-header,
body.public-site .public-page > nav.bg-header,
body.public-site .public-episode-nav {
  position: sticky;
  top: var(--public-admin-height, 0px);
  z-index: 55;
  box-sizing: border-box;
  background: var(--public-bg, #111);
  border-bottom: 1px solid var(--public-line);
  height: var(--public-header-height, 3.75rem);
  min-height: var(--public-header-height, 3.75rem);
  padding: 0;
}

body.public-site > header .blur-lg,
body.public-site > header .bg-gradient-to-t,
body.public-site > header .backdrop-gradient,
body.public-site > header .mix-blend-multiply,
body.public-site > header .mix-blend-overlay,
body.public-site .public-page > header .blur-lg,
body.public-site .public-page > header .bg-gradient-to-t,
body.public-site .public-page > header .backdrop-gradient,
body.public-site .public-page > header .mix-blend-multiply,
body.public-site .public-page > header .mix-blend-overlay,
body.public-site .public-episode-hero .blur-lg,
body.public-site .public-episode-hero .bg-gradient-to-t,
body.public-site .public-episode-hero .backdrop-gradient,
body.public-site .public-episode-hero .mix-blend-multiply,
body.public-site .public-episode-hero .mix-blend-overlay {
  display: none;
}

body.public-site > header img.h-36,
body.public-site > header img.rounded-md,
body.public-site .public-page > header img.h-36,
body.public-site .public-page > header img.rounded-md {
  border-radius: 8px;
  box-shadow: none;
}

body.public-site > .bg-header,
body.public-site .public-page > .bg-header,
body.public-site .px-8.py-4.text-white.bg-header {
  background: transparent;
  color: var(--public-muted);
}

body.public-site nav.sticky.bg-elevated,
body.public-site nav.rounded-conditional-b-xl,
body.public-site .public-subnav {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--public-line);
  box-shadow: none;
  border-radius: 0;
  padding: 1rem 1.5rem 0.85rem;
}

body.public-site article.bg-elevated,
body.public-site article.shadow {
  background: transparent;
  border-color: var(--public-line);
  color: var(--public-ink);
}

body.public-site .text-gray-600,
body.public-site .text-skin-muted,
body.public-site .text-skin-base {
  color: var(--public-muted);
}

/* Timestamps: dark grey chip + white text. Theme vars lose to html body[class*="theme-"]. */
body.public-site .public-time,
body.public-site button.public-time,
body.public-site article .bg-subtle,
body.public-site .public-episode-title time,
body.public-site time[datetime^="PT"] {
  display: inline-block;
  padding: 0.12em 0.45em;
  border: 0;
  border-radius: 9999px;
  background: #2a2a2a !important;
  color: #fff !important;
  font-size: 0.72rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.02em;
  line-height: 1.35;
  white-space: nowrap;
  font-family: inherit;
  cursor: inherit;
}

body.public-site button.public-time {
  cursor: pointer;
}

body.public-site relative-time,
body.public-site relative-time time,
body.public-site .public-episode-date,
body.public-site .public-episode-date time,
body.public-site .public-episode-meta,
body.public-site .public-episode-meta relative-time,
body.public-site .public-episode-meta time {
  color: #f0f0f0 !important;
}

body.public-site .public-chapters {
  display: flex;
  flex-direction: column;
}

body.public-site .public-chapter {
  padding: 0.55rem 0;
  border-bottom: 1px solid var(--public-line);
}

body.public-site .public-chapter:last-child {
  border-bottom: 0;
}

body.public-site .public-chapter-row,
body.public-site .public-cue-row {
  display: flex;
  align-items: baseline;
  gap: 0.7rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

body.public-site .public-chapter-row:hover .public-chapter-title,
body.public-site .public-cue-row:hover {
  color: #fff;
}

body.public-site .public-chapter-row:focus-visible,
body.public-site .public-cue-row:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 3px;
}

body.public-site .public-cue {
  padding: 0.4rem 0;
  background: transparent;
  box-shadow: none;
}

body.public-site .public-transcript-chapter {
  margin: 0.85rem 0 0.35rem;
  padding: 0.55rem 0 0.2rem;
  border-top: 1px solid var(--public-line);
}

body.public-site .public-transcript-chapter:first-child {
  margin-top: 0;
  padding-top: 0.15rem;
  border-top: 0;
}

body.public-site .public-transcript-chapter-row {
  display: flex;
  align-items: baseline;
  gap: 0.7rem;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
}

body.public-site .public-transcript-chapter-row:hover .public-transcript-chapter-title {
  color: #fff;
}

body.public-site .public-transcript-chapter-row:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 3px;
}

body.public-site .public-transcript-chapter-title {
  color: #a8a8a8;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  line-height: 1.35;
  text-transform: uppercase;
}

body.public-site .public-transcript-chapter .public-time {
  flex-shrink: 0;
  min-width: 2.75rem;
  text-align: center;
  opacity: 0.85;
}

body.public-site .public-transcript:has(.public-cue.is-current) .public-transcript-chapter {
  opacity: 1;
}

body.public-site .public-cue-row,
body.public-site .public-cue-row.is-current {
  background: transparent;
  box-shadow: none;
}

body.public-site .public-cue-row p {
  margin: 0;
  color: #c8c8c8;
  font-weight: 400;
}

body.public-site .public-transcript:has(.public-cue.is-current) .public-cue:not(.is-current) {
  opacity: 0.4;
}

body.public-site .public-transcript:has(.public-cue.is-current) .public-cue:not(.is-current):hover,
body.public-site .public-transcript:has(.public-cue.is-current) .public-cue:not(.is-current):focus-within {
  opacity: 0.72;
}

body.public-site .public-cue.is-current,
body.public-site .public-cue.is-current .public-cue-row,
body.public-site .public-cue-row.is-current {
  background: transparent;
  box-shadow: none;
}

body.public-site .public-cue.is-current .public-cue-row,
body.public-site .public-cue.is-current .public-cue-row p {
  color: #fff;
  font-weight: 700;
}

body.public-site .public-chapter-title {
  color: #fff;
  font-size: 0.95rem;
  line-height: 1.35;
}

body.public-site .public-chapter .public-time {
  flex-shrink: 0;
  min-width: 2.75rem;
  text-align: center;
}

body.public-site .public-episode-body,
body.public-site .public-content {
  display: block;
  overflow: visible;
}

body.public-site .public-episode-detail {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding-top: 0.25rem;
}

body.public-site .public-episode-primary {
  min-width: 0;
}

body.public-site .public-episode-secondary {
  min-width: 0;
}

body.public-site .public-episode-hero {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-top: 2rem;
  padding-bottom: 0.25rem;
}

body.public-site .public-episode-body {
  padding: 0 0 3.5rem;
}

body.public-site .public-episode-notes {
  padding-top: 0;
  padding-bottom: 0;
}

body.public-site .public-episode-notes-body,
body.public-site .public-episode-notes-body.prose-sm {
  max-height: none !important;
  overflow: visible !important;
}

body.public-site .public-episode-keywords {
  margin-top: 1.5rem;
}

body.public-site .public-episode-keywords .public-kicker {
  margin: 0 0 0.65rem;
}

body.public-site .public-keyword-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}

body.public-site .public-keyword-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.28rem 0.7rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.06);
  color: #e8e8e8;
  font-size: 0.78rem;
  line-height: 1.3;
}

body.public-site .public-content-sticky {
  position: sticky;
  top: var(--public-sticky-top, 0px);
  z-index: 30;
  align-self: flex-start;
  width: 100%;
  margin: 0 -0.15rem;
  padding: 0.15rem 0.15rem 0;
  background: var(--public-bg, #111);
}

body.public-site:has(.bg-navigation.sticky) {
  --public-admin-height: 2.5rem;
  --public-sticky-top: calc(var(--public-admin-height) + var(--public-header-height));
}

body.public-site .public-content-tabs {
  display: flex;
  gap: 0.15rem;
  border-bottom: 1px solid var(--public-line);
}

body.public-site .public-content-tab {
  appearance: none;
  margin: 0;
  padding: 0.85rem 0.95rem 0.7rem;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #9a9a9a;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  cursor: pointer;
}

body.public-site .public-content-tab:hover,
body.public-site .public-content-tab:focus-visible {
  color: #fff;
  outline: none;
}

body.public-site .public-content-tab.is-active {
  color: #fff;
  border-bottom-color: #fff;
}

body.public-site a.public-content-tab {
  text-decoration: none;
  display: inline-block;
}

body.public-site .public-transcript-details {
  border: 1px solid var(--public-line);
  background: #161616;
}

body.public-site .public-transcript-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  cursor: pointer;
  list-style: none;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.public-site .public-transcript-summary::-webkit-details-marker {
  display: none;
}

body.public-site .public-transcript-details .public-transcript {
  padding: 0 1rem min(10rem, 42vh);
}

body.public-site .public-content-panel {
  padding: 1.25rem 0 0;
}

body.public-site .public-content-panel[hidden] {
  display: none;
}

body.public-site .public-notes-section {
  margin-top: 1.75rem;
}

body.public-site .public-episode-notes .public-notes-heading,
body.public-site .public-episode-notes-body .public-notes-heading,
body.public-site .prose-sm .public-notes-heading,
body.public-site .public-notes-heading {
  margin: 0 0 0.65rem;
  color: #fff;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.public-site .public-notes-section-body,
body.public-site .public-notes-section-body p,
body.public-site .public-notes-section-body li,
body.public-site .public-notes-section-body a {
  color: #e4e4e4;
}

body.public-site .public-notes-section-body p,
body.public-site .public-notes-section-body ul,
body.public-site .public-notes-section-body ol,
body.public-site .public-episode-notes-body ul,
body.public-site .public-episode-notes-body ol {
  margin: 0 0 0.45rem;
}

body.public-site .public-notes-section-body ul,
body.public-site .public-episode-notes-body ul {
  list-style: disc;
  padding-left: 1.35rem;
}

body.public-site .public-notes-section-body ol,
body.public-site .public-episode-notes-body ol {
  list-style: decimal;
  padding-left: 1.35rem;
}

body.public-site .public-notes-section-body li,
body.public-site .public-episode-notes-body li {
  display: list-item;
}

body.public-site .public-notes-section-body a {
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

body.public-site .public-empty-copy {
  margin: 0;
  color: var(--public-muted);
}

body.public-site .public-transcript-panel .public-transcript,
body.public-site .public-transcript[data-transcript-panel] {
  --transcript-fade-top: 0px;
  --transcript-fade-bottom: 0px;
  max-height: min(24rem, calc(100vh - var(--public-sticky-top, 0px) - 11rem));
  overflow: auto;
  overscroll-behavior: contain;
  scroll-behavior: smooth;
  scroll-padding-top: 1.25rem;
  scroll-padding-bottom: 10rem;
  /* Extra space so late cues can scroll up into the active band. */
  padding-bottom: min(10rem, 42vh);
  -webkit-mask-image: linear-gradient(
    to bottom,
    transparent 0,
    #000 var(--transcript-fade-top),
    #000 calc(100% - var(--transcript-fade-bottom)),
    transparent 100%
  );
  mask-image: linear-gradient(
    to bottom,
    transparent 0,
    #000 var(--transcript-fade-top),
    #000 calc(100% - var(--transcript-fade-bottom)),
    transparent 100%
  );
}

body.public-site .public-transcript-panel .public-transcript.is-fade-top,
body.public-site .public-transcript[data-transcript-panel].is-fade-top {
  --transcript-fade-top: 1.5rem;
}

body.public-site .public-transcript-panel .public-transcript.is-fade-bottom,
body.public-site .public-transcript[data-transcript-panel].is-fade-bottom {
  --transcript-fade-bottom: 2.75rem;
}

body.public-site .public-episode-rail {
  display: none;
}

body.public-site .public-rail-details {
  border: 1px solid var(--public-line);
  background: #161616;
}

body.public-site .public-rail-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  cursor: pointer;
  list-style: none;
  color: #fff;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.public-site .public-rail-summary::-webkit-details-marker {
  display: none;
}

body.public-site .public-rail-summary::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1px solid #fff;
  border-bottom: 1px solid #fff;
  transform: rotate(45deg);
  opacity: 0.55;
  flex-shrink: 0;
}

body.public-site .public-rail-details[open] .public-rail-summary::after {
  transform: rotate(-135deg);
  margin-top: 0.25rem;
}

body.public-site .public-rail-count {
  margin-left: auto;
  margin-right: 0.65rem;
  opacity: 0.5;
  letter-spacing: 0.08em;
}

body.public-site .public-rail-panel {
  padding: 0 1rem 0.85rem;
}

body.public-site .public-rail-panel[data-transcript-panel] {
  max-height: min(24rem, 52vh);
  overflow: auto;
  scroll-behavior: smooth;
  scroll-padding-bottom: 10rem;
  padding-bottom: min(10rem, 42vh);
}


body.public-site .public-subnav {
  display: none;
}

@media (min-width: 960px) {
  body.public-site .public-episode-detail {
    display: grid;
    grid-template-columns: minmax(16rem, 0.85fr) minmax(0, 1.2fr);
    column-gap: 3rem;
    row-gap: 0;
    align-items: start;
  }

  body.public-site .public-episode-secondary {
    padding-top: 2rem;
    padding-left: 1.75rem;
    border-left: 1px solid var(--public-line);
  }

  body.public-site .public-episode-secondary .public-content-sticky {
    margin-left: 0;
    margin-right: 0;
  }

  body.public-site .public-episode-secondary .public-content-tabs {
    flex-wrap: wrap;
  }
}

body.public-site .prose-sm.text-white,
body.public-site .prose-sm {
  color: #e4e4e4;
}

body.public-site [data-dropdown="menu"] {
  background: #171717 !important;
  border-color: var(--public-line) !important;
  color: #fff;
}

body.public-site textarea,
body.public-site input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]) {
  background: #1a1a1a !important;
  border-color: var(--public-line) !important;
  color: #fff !important;
}

body.public-site .rounded-conditional-full.bg-accent-base,
body.public-site [role="alert"] {
  background: #1a1a1a !important;
  border: 1px solid var(--public-line) !important;
  color: #fff !important;
}

body.public-site #castopod-audio-player,
body.public-site [id="castopod-audio-player"] {
  background: #111;
  color: #fff;
  border-top: 1px solid var(--public-line);
}

body.public-site .public-adjacent {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
  margin: 2.25rem 0 0;
  padding: 1.75rem 0 0;
  border-top: 1px solid var(--public-line);
}

@media (min-width: 640px) {
  body.public-site .public-adjacent:has(.public-adjacent-card:nth-child(2)) {
    grid-template-columns: 1fr 1fr;
  }
}

body.public-site .public-adjacent-card {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--public-line);
  border-radius: 8px;
  background: #171717;
  color: inherit;
  text-decoration: none;
}

body.public-site .public-adjacent-card:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: #1b1b1b;
}

body.public-site .public-adjacent-card:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 3px;
}

body.public-site .public-adjacent-kicker {
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--public-muted);
}

body.public-site .public-adjacent-row {
  display: flex;
  align-items: center;
  gap: 0.8rem;
  min-width: 0;
}

body.public-site .public-adjacent-cover {
  width: 3.5rem;
  height: 3.5rem;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 4px;
  background: #0a0a0a;
}

body.public-site .public-adjacent-copy {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
}

body.public-site .public-adjacent-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.2rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
  color: #fff;
}

body.public-site .public-adjacent-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  color: #f0f0f0;
  font-size: 0.72rem;
}

body.public-site .public-adjacent-meta .public-episode-date,
body.public-site .public-adjacent-meta .public-episode-date time,
body.public-site .public-adjacent-meta relative-time,
body.public-site .public-adjacent-meta relative-time time {
  color: #f0f0f0 !important;
}

body.public-site .public-autoplay {
  position: fixed;
  left: 50%;
  bottom: calc(5.75rem + env(safe-area-inset-bottom, 0px));
  z-index: 60;
  display: flex;
  align-items: center;
  gap: 0.85rem;
  width: min(26.5rem, calc(100vw - 1.25rem));
  padding: 0.75rem 0.8rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 10px;
  background: #0a0a0a;
  color: #fff;
  transform: translateX(-50%);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.45);
}

body.public-site .public-autoplay[hidden] {
  display: none;
}

body.public-site .public-autoplay-cover {
  width: 4rem;
  height: 4rem;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 4px;
  background: #171717;
}

body.public-site .public-autoplay-copy {
  min-width: 0;
  flex: 1;
}

body.public-site .public-autoplay-kicker {
  margin: 0;
  font-size: 0.64rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--public-muted);
}

body.public-site .public-autoplay-title {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 0.2rem 0 0.15rem;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 1.15rem;
  font-style: normal;
  font-weight: 400;
  line-height: 1.2;
}

body.public-site .public-autoplay-count {
  margin: 0 0 0.55rem;
  color: #e4e4e4;
  font-size: 0.78rem;
}

body.public-site .public-autoplay-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

body.public-site .public-autoplay-play,
body.public-site .public-autoplay-cancel {
  appearance: none;
  min-height: 1.85rem;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font: inherit;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}

body.public-site .public-autoplay-play {
  border: 1px solid #fff;
  background: #fff;
  color: #111;
}

body.public-site .public-autoplay-cancel {
  border: 1px solid rgba(255, 255, 255, 0.28);
  background: transparent;
  color: #fff;
}

body.public-site .public-autoplay-play:hover {
  background: #f2f2f2;
}

body.public-site .public-autoplay-cancel:hover {
  border-color: #fff;
  background: rgba(255, 255, 255, 0.06);
}

@media (max-width: 639px) {
  body.public-site .public-autoplay {
    bottom: calc(7.25rem + env(safe-area-inset-bottom, 0px));
  }
}

body.public-site play-episode-button.public-player-ghost {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

body.public-site #castopod-audio-player .public-player-skips,
body.public-site [id="castopod-audio-player"] .public-player-skips {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 0.05rem;
  margin-left: 0.1rem;
}

body.public-site #castopod-audio-player vm-playback-control {
  margin: 0 0.05rem;
}

body.public-site .public-player-skip {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: #fff;
  cursor: pointer;
}

body.public-site .public-player-skip:hover:not(:disabled) {
  background: rgba(255, 255, 255, 0.08);
}

body.public-site .public-player-skip:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 2px;
}

body.public-site .public-player-skip:disabled {
  opacity: 0.28;
  cursor: default;
}

body.public-site .public-player-skip svg {
  width: 1.05rem;
  height: 1.05rem;
}

body.public-site #castopod-audio-player .public-player-fill,
body.public-site [id="castopod-audio-player"] .public-player-fill {
  position: absolute;
  z-index: 0;
  background: #1a1a1a;
  pointer-events: none;
  cursor: pointer;
}

body.public-site #castopod-audio-player .public-player-fill::before,
body.public-site [id="castopod-audio-player"] .public-player-fill::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: #262626;
  transform: scaleX(var(--player-progress, 0));
  transform-origin: left center;
  pointer-events: none;
}

body.public-site #castopod-audio-player .public-player-wave,
body.public-site [id="castopod-audio-player"] .public-player-wave {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

body.public-site #castopod-audio-player > *,
body.public-site [id="castopod-audio-player"] > * {
  position: relative;
  z-index: 1;
}

body.public-site #castopod-audio-player > .public-player-fill,
body.public-site [id="castopod-audio-player"] > .public-player-fill {
  z-index: 0;
}

body.public-site #castopod-audio-player > .public-player-hover,
body.public-site [id="castopod-audio-player"] > .public-player-hover {
  z-index: 6;
}

body.public-site #castopod-audio-player vm-current-time,
body.public-site #castopod-audio-player vm-end-time,
body.public-site [id="castopod-audio-player"] vm-current-time,
body.public-site [id="castopod-audio-player"] vm-end-time {
  position: relative;
  z-index: 3;
  flex: 0 0 auto;
  box-sizing: border-box;
  padding: 0.22rem 0.7rem;
  border-radius: 9999px;
  background: rgba(10, 10, 10, 0.86);
  color: #fff;
  line-height: 1.3;
  text-shadow: 0 1px 1px rgba(0, 0, 0, 0.55);
}

body.public-site #castopod-audio-player vm-player,
body.public-site #castopod-audio-player vm-player[audio],
body.public-site #castopod-audio-player #castopod-vm-player,
body.public-site [id="castopod-audio-player"] vm-player,
body.public-site [id="castopod-audio-player"] vm-player[audio],
body.public-site [id="castopod-audio-player"] #castopod-vm-player,
body.public-site #castopod-audio-player vm-ui,
body.public-site #castopod-audio-player vm-controls,
body.public-site [id="castopod-audio-player"] vm-ui,
body.public-site [id="castopod-audio-player"] vm-controls {
  --vm-player-bg: transparent !important;
  --vm-controls-bg: transparent !important;
  background: transparent !important;
}

body.public-site #castopod-audio-player vm-scrubber-control,
body.public-site [id="castopod-audio-player"] vm-scrubber-control {
  flex: 1 1 auto;
  min-width: 2rem;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

body.public-site #castopod-audio-player vm-volume-control,
body.public-site [id="castopod-audio-player"] vm-volume-control {
  flex: 0 0 2.25rem !important;
  width: 2.25rem !important;
  min-width: 2.25rem !important;
  max-width: 2.25rem !important;
  position: relative;
  overflow: visible;
  z-index: 4;
}

body.public-site #castopod-audio-player .public-player-hover,
body.public-site [id="castopod-audio-player"] .public-player-hover {
  position: absolute;
  z-index: 6;
  width: 0;
  pointer-events: none;
  display: none;
}

body.public-site #castopod-audio-player .public-player-hover.is-on,
body.public-site [id="castopod-audio-player"] .public-player-hover.is-on {
  display: block;
}

body.public-site #castopod-audio-player .public-player-hover-bar,
body.public-site [id="castopod-audio-player"] .public-player-hover-bar {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -1px;
  width: 2px;
  background: #fff;
}

body.public-site #castopod-audio-player .public-player-hover-time,
body.public-site [id="castopod-audio-player"] .public-player-hover-time {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  padding: 0.15rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 4px;
  background: #171717;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
}

body.public-site #castopod-audio-player button,
body.public-site #castopod-audio-player vm-playback-control,
body.public-site #castopod-audio-player vm-volume-control,
body.public-site #castopod-audio-player vm-settings-control,
body.public-site #castopod-audio-player vm-control,
body.public-site [id="castopod-audio-player"] button,
body.public-site [id="castopod-audio-player"] vm-playback-control,
body.public-site [id="castopod-audio-player"] vm-volume-control,
body.public-site [id="castopod-audio-player"] vm-settings-control,
body.public-site [id="castopod-audio-player"] vm-control {
  cursor: pointer;
}

body.public-site .public-page {
  display: block;
  overflow: visible;
  min-width: 0;
}

body.public-site .public-page.is-swapping {
  opacity: 0.72;
}

body.public-site .public-player-shell {
  display: contents;
}

/* ---------------------------------------------------------------------------
 * Admin: sleeker chrome + dropzone uploads
 * ------------------------------------------------------------------------- */

body.admin-app {
  background: #fafafa;
  --admin-bar-height: 2.5rem;
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
}

body.admin-app .font-display,
body.admin-app .font-sans,
body.admin-app h1,
body.admin-app h2,
body.admin-app h3,
body.admin-app h4,
body.admin-app h5,
body.admin-app h6,
body.admin-app button,
body.admin-app input,
body.admin-app select,
body.admin-app textarea,
body.admin-app label,
body.admin-app legend,
body.admin-app table,
body.admin-app th,
body.admin-app td,
body.admin-app nav,
body.admin-app aside,
body.admin-app a,
body.admin-app p,
body.admin-app span,
body.admin-app li,
body.admin-app .admin-form-section-title,
body.admin-app .admin-episode-title,
body.admin-app .admin-card-head,
body.admin-app .admin-rich-text,
body.admin-app .admin-rich-text-btn,
body.admin-app .admin-rich-text-surface {
  font-family: Inter, "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-style: normal;
}

body.admin-app .admin-rich-text-surface em,
body.admin-app .admin-rich-text-surface i,
body.admin-app .admin-episode-notes-body em,
body.admin-app .admin-episode-notes-body i {
  font-style: italic;
}

/* Heading component paints a grey pill behind the lower half of the
   letters via .before\:bg-heading-background:before — reads as a wash.
   Admin titles stay solid near-black. */
body.admin-app h1,
body.admin-app h2,
body.admin-app .text-heading-foreground,
body.admin-app .admin-form-section-title {
  color: #171717 !important;
  -webkit-text-fill-color: #171717 !important;
  background: none !important;
  background-image: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
}

body.admin-app .before\:bg-heading-background::before,
body.admin-app .before\:bg-heading-background:before {
  content: none !important;
  display: none !important;
  background: none !important;
  width: 0 !important;
  height: 0 !important;
}

body.admin-app main > header.sticky-header-outer,
body.admin-app main > header .sticky-header-inner {
  position: sticky;
  top: 2.5rem;
  height: auto;
}

body.admin-app main > header.sticky-header-outer {
  padding-left: 2rem;
  padding-right: 2rem;
}

body.admin-app main > header .sticky-header-inner {
  margin-top: 0;
  box-sizing: border-box;
  padding-top: 0.85rem;
  padding-bottom: 0.75rem;
  justify-content: flex-end;
}

body.admin-app main > header .sticky-header-title-row {
  align-items: center;
  gap: 1.25rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

body.admin-app aside nav details summary {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
  background: transparent;
  border-radius: 0;
}

body.admin-app aside nav details summary a.rounded-full.bg-navigation,
body.admin-app aside nav details summary a.rounded-full.bg-navigation-active {
  background: #404040 !important;
  color: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
  min-height: 0;
  padding: 0.05rem 0.45rem;
  font-size: 0.7rem;
}

body.admin-app aside nav details summary > a.rounded-full.bg-accent-base,
body.admin-app aside nav details summary > a.shadow.bg-accent-base {
  background: transparent !important;
  color: rgba(255, 255, 255, 0.65) !important;
  border: 0 !important;
  border-radius: 0.25rem;
  box-shadow: none !important;
  padding: 0 !important;
  min-height: 0;
  width: 1.25rem;
  height: 1.25rem;
}

body.admin-app aside nav details summary > a.rounded-full.bg-accent-base svg,
body.admin-app aside nav details summary > a.shadow.bg-accent-base svg {
  color: inherit !important;
}

body.admin-app main > header.sticky-header-outer a.rounded-full.bg-accent-base,
body.admin-app main > header.sticky-header-outer button.rounded-full.bg-accent-base {
  background: var(--brand-ink) !important;
  color: #fff !important;
  border-color: var(--brand-ink) !important;
}

body.admin-app aside nav li a,
body.admin-app aside nav li span {
  padding-top: 0.45rem;
  padding-bottom: 0.45rem;
}

body.admin-app main form.max-w-xl,
body.admin-app main .max-w-xl,
body.admin-app main form.max-w-sm {
  max-width: 42rem;
}

body.admin-app main form.admin-episode-form {
  max-width: 86rem;
  width: 100%;
  margin-inline: auto;
}

body.admin-app .admin-episode-info-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(16rem, 22rem);
  gap: 1.15rem 1.5rem;
  align-items: stretch;
  width: 100%;
}

body.admin-app .admin-episode-identity,
body.admin-app .admin-episode-media {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  min-width: 0;
}

body.admin-app .admin-episode-media .admin-media-field legend {
  font-size: 0.82rem;
}

body.admin-app .admin-episode-media .admin-dropzone:not(.has-file) {
  min-height: 4.5rem;
  padding: 0.75rem 0.9rem;
  border-radius: 0.9rem;
}

body.admin-app .admin-episode-media .admin-dropzone[data-kind="audio"]:not(.has-file) {
  min-height: 8.5rem;
}

@media (max-width: 767px) {
  body.admin-app .admin-episode-info-grid {
    grid-template-columns: 1fr;
  }
}

body.admin-app fieldset.p-8 {
  padding: 1rem 1.15rem;
}

body.admin-app fieldset.p-8 > .py-4 {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding-top: 0.5rem;
  padding-bottom: 0.15rem;
}

/* Episode edit/create: titles live in the padded card as solid ink. */
body.admin-app .admin-form-section-title {
  margin: 0;
  padding: 0;
  font-size: 1.25rem;
  line-height: 1.3;
  font-weight: 700;
  letter-spacing: -0.04em;
  color: #171717;
  background: none;
  background-image: none;
  -webkit-text-fill-color: #171717;
  -webkit-background-clip: unset;
  background-clip: unset;
}

body.admin-app .admin-form-section-title::before {
  content: none !important;
  display: none !important;
}

body.admin-app .admin-form-section-subtitle {
  margin: 0.2rem 0 0;
}

body.admin-app form.admin-episode-form fieldset.bg-elevated {
  padding: 1.35rem 2rem 1.5rem;
}

body.admin-app form.admin-episode-form fieldset.bg-elevated > .py-4 {
  padding-top: 0.85rem;
}

body.admin-app main form.flex.flex-col {
  gap: 1.15rem;
}

body.admin-app .form-input-tabs {
  margin-top: 0.5rem;
}

body.admin-app fieldset.flex.gap-1 {
  align-items: center;
  flex-wrap: wrap;
  gap: 0.45rem;
}

body.admin-app .admin-keyword-field,
body.admin-app .admin-chapters,
body.admin-app .admin-chapters-block,
body.admin-app .admin-keyword-generate {
  width: 100%;
}

body.admin-app .admin-chapters-block,
body.admin-app .admin-chapters {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
}

body.admin-app .admin-chapters > p {
  margin: 0;
}

body.admin-app .admin-chapters-import {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  width: 100%;
}

body.admin-app .admin-chapters-modes {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.85rem;
}

body.admin-app .admin-chapters-modes-label {
  font-size: 0.8125rem;
  color: #737373;
}

body.admin-app .admin-chapters-modes button {
  padding: 0;
  border: 0;
  background: none;
  font-size: 0.8125rem;
  font-weight: 600;
  color: #737373;
  cursor: pointer;
}

body.admin-app .admin-chapters-modes button:hover,
body.admin-app .admin-chapters-modes button:focus-visible {
  color: #171717;
  outline: none;
}

body.admin-app .admin-chapters-modes button.is-active {
  color: #171717;
  text-decoration: underline;
  text-underline-offset: 0.18em;
}

body.admin-app .admin-chapters-paste {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

body.admin-app .admin-chapters-paste textarea {
  min-height: 7.25rem;
  resize: vertical;
  line-height: 1.45;
}

body.admin-app .admin-chapters-paste-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.85rem;
}

body.admin-app .admin-chapters-paste-actions .admin-action-hint {
  margin: 0;
}

body.admin-app .admin-chapters-import .admin-dropzone:not(.has-file) {
  min-height: 4.25rem;
  padding: 0.7rem 0.9rem;
  border-radius: 0.9rem;
}

body.admin-app .admin-keyword-input {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  align-content: flex-start;
  gap: 0.5rem 0.45rem;
  width: 100%;
  min-height: 2.75rem;
  height: auto;
  overflow: visible;
  padding: 0.5rem 0.7rem;
  border: 1px solid var(--brand-line);
  border-radius: var(--brand-radius-field);
  background: var(--brand-fill);
  cursor: text;
}

body.admin-app .admin-keyword-input:focus-within {
  border-color: #cfcfcf;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.05);
}

body.admin-app .admin-keyword-input .admin-keyword-pill {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 0.28rem;
  max-width: 100%;
  margin: 0;
  padding: 0.28rem 0.4rem 0.28rem 0.7rem;
  white-space: normal;
  color: #525252;
  background: #fff;
  border: 1px solid #e5e5e5;
}

body.admin-app .admin-keyword-pill-text {
  min-width: 0;
  overflow-wrap: anywhere;
  word-break: break-word;
}

body.admin-app .admin-keyword-pill-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
  padding: 0;
  border: 0;
  border-radius: 9999px;
  background: transparent;
  color: #737373;
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
}

body.admin-app .admin-keyword-pill-remove:hover,
body.admin-app .admin-keyword-pill-remove:focus-visible {
  background: #e5e5e5;
  color: #171717;
  outline: none;
}

body.admin-app .admin-keyword-input input.admin-keyword-type:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]),
body.admin-app .admin-keyword-input input.admin-keyword-type:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]):focus {
  flex: 1 1 7rem;
  min-width: 7rem;
  width: auto !important;
  min-height: 1.7rem !important;
  height: auto !important;
  padding: 0.2rem 0.15rem !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
}

body.admin-app .admin-keyword-generate,
body.admin-app .admin-chapter-rows {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

body.admin-app .admin-keyword-generate-hint,
body.admin-app .admin-action-hint {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  color: #737373;
}

body.admin-app .admin-chapter-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.55rem;
}

body.admin-app .admin-chapter-row input[name="chapter_times[]"],
body.admin-app .admin-chapter-row input[name="chapter_titles[]"] {
  min-height: 2.85rem !important;
  height: 2.85rem;
  padding: 0.7rem 1rem !important;
  line-height: 1.2;
}

body.admin-app .admin-chapter-row input[name="chapter_times[]"] {
  flex: 0 0 7.25rem;
  width: 7.25rem;
  max-width: 7.25rem;
}

body.admin-app .admin-chapter-row input[name="chapter_titles[]"] {
  flex: 1 1 16rem;
  min-width: 12rem;
  max-width: 32rem;
}

body.admin-app .admin-chapter-row .admin-link-remove {
  display: inline-flex;
  align-items: center;
  height: 2.85rem;
  padding: 0 0.4rem;
  margin: 0;
  font-size: 0.8125rem;
  font-weight: 500;
  line-height: 1;
  color: #737373;
  text-decoration: none;
  white-space: nowrap;
}

body.admin-app .admin-chapter-row .admin-link-remove:hover,
body.admin-app .admin-chapter-row .admin-link-remove:focus-visible {
  color: #171717;
  text-decoration: underline;
  outline: none;
}

body.admin-app .admin-notes-sections {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

body.admin-app .admin-notes-sections-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

body.admin-app .admin-notes-section-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 0.75rem 1.1rem;
}

body.admin-app .admin-notes-section-picker {
  position: relative;
  flex: 1 1 16rem;
  max-width: 22rem;
}

body.admin-app .admin-notes-section-search {
  width: 100%;
  max-width: 22rem;
  min-height: 2.4rem;
  padding: 0.4rem 0.9rem;
  border: 1px solid var(--brand-line, #e5e5e5);
  border-radius: 0.7rem;
  background: #fff;
  font-size: 0.875rem;
  font-weight: 600;
}

body.admin-app .admin-notes-section-results {
  position: absolute;
  z-index: 30;
  top: calc(100% + 0.25rem);
  left: 0;
  right: 0;
  margin: 0;
  padding: 0.3rem 0;
  list-style: none;
  background: #fff;
  border: 1px solid var(--brand-line, #e5e5e5);
  border-radius: 0.75rem;
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.08);
  max-height: 16rem;
  overflow: auto;
}

body.admin-app .admin-notes-section-result,
body.admin-app .admin-notes-section-result-empty {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  padding: 0.5rem 0.85rem;
}

body.admin-app .admin-notes-section-result {
  cursor: pointer;
}

body.admin-app .admin-notes-section-result:hover,
body.admin-app .admin-notes-section-result[data-active="1"] {
  background: #f5f5f5;
}

body.admin-app .admin-notes-section-result-name {
  font-size: 0.875rem;
  font-weight: 650;
}

body.admin-app .admin-notes-section-result-snippet {
  color: #737373;
  font-size: 0.75rem;
  line-height: 1.35;
}

body.admin-app .admin-notes-section-result-empty {
  color: #737373;
  font-size: 0.8125rem;
}

body.admin-app .admin-notes-section-add-blank {
  margin-top: 0.45rem;
}

body.admin-app .admin-notes-section {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--brand-line);
  border-radius: 0.85rem;
  background: #fff;
}

body.admin-app .admin-notes-section-head {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  align-items: center;
}

body.admin-app .admin-notes-section-add-select {
  max-width: 18rem;
  min-height: 2.4rem;
  padding: 0.4rem 0.9rem;
  font-size: 0.875rem;
  font-weight: 600;
}

body.admin-app .admin-notes-section-append {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: #525252;
  font-size: 0.75rem;
  font-weight: 600;
  white-space: nowrap;
}

body.admin-app .admin-notes-section-origin {
  display: inline-flex;
  align-items: center;
  padding: 0.15rem 0.45rem;
  border: 1px solid var(--brand-line, #e5e5e5);
  border-radius: 9999px;
  color: #737373;
  font-size: 0.62rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

body.admin-app .admin-notes-section-name-wrap {
  display: block;
  flex: 1 1 8rem;
  min-width: 0;
}

body.admin-app .admin-notes-section-name {
  width: 100%;
  padding: 0.15rem 0;
  border: 0;
  border-bottom: 1px solid transparent;
  background: transparent;
  color: inherit;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.admin-app .admin-notes-section-name:focus {
  outline: none;
  border-bottom-color: var(--brand-line);
}

body.admin-app .admin-notes-section-body > .flex > label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

body.admin-app .admin-notes-section .admin-rich-text-surface {
  min-height: 8rem;
  max-height: min(16rem, 40vh);
}

body.admin-app .admin-notes-section .admin-rich-text-surface a,
body.public-site .public-notes-section-body a {
  display: inline;
}

body.admin-app .admin-appearance-toolbar {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-bottom: 0.35rem;
}

body.admin-app .admin-appearance-add {
  align-self: flex-start;
  height: 2.5rem;
  padding: 0 1.15rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: #171717;
  background: #fff;
  border: 1px solid #171717;
  border-radius: 1.25rem;
  cursor: pointer;
}

body.admin-app .admin-appearance-add:hover {
  background: #f5f5f5;
}

body.admin-app .admin-appearance-card {
  display: grid;
  grid-template-columns: auto 7.5rem minmax(0, 1fr);
  gap: 1rem 1.25rem;
  width: 100%;
  padding: 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid var(--brand-line);
  border-radius: 1rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.admin-app .admin-appearance-card.is-dragging {
  opacity: 0.55;
}

body.admin-app .admin-appearance-card.is-drag-over {
  border-color: #171717;
}

body.admin-app .admin-appearance-order {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.35rem;
  padding-top: 0.15rem;
}

body.admin-app .admin-appearance-drag,
body.admin-app .admin-appearance-move {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.85rem;
  height: 1.85rem;
  padding: 0;
  color: #525252;
  font-size: 0.85rem;
  line-height: 1;
  background: #fff;
  border: 1px solid var(--brand-line);
  border-radius: 0.55rem;
  cursor: pointer;
}

body.admin-app .admin-appearance-drag {
  cursor: grab;
  letter-spacing: -0.12em;
  user-select: none;
}

body.admin-app .admin-appearance-drag:active {
  cursor: grabbing;
}

body.admin-app .admin-appearance-drag:hover,
body.admin-app .admin-appearance-move:hover {
  color: #171717;
  border-color: #171717;
}

body.admin-app .admin-appearance-thumb {
  width: 7.5rem;
  height: 7.5rem;
  overflow: hidden;
  border-radius: 0.75rem;
  background: #f3f3f3;
}

body.admin-app .admin-appearance-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

body.admin-app .admin-appearance-thumb-empty {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  padding: 0.5rem;
  color: #a3a3a3;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: center;
}

body.admin-app .admin-appearance-fields {
  display: flex;
  flex-direction: column;
  gap: 0.7rem;
  min-width: 0;
}

body.admin-app .admin-appearance-field {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}

body.admin-app .admin-appearance-url-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  align-items: center;
}

body.admin-app .admin-appearance-fetch {
  height: 2.65rem;
  padding: 0 1.05rem;
  font-size: 0.8rem;
  font-weight: 600;
  color: #171717;
  background: #fff;
  border: 1px solid #171717;
  border-radius: 1.25rem;
  cursor: pointer;
  white-space: nowrap;
}

body.admin-app .admin-appearance-fetch:disabled {
  opacity: 0.55;
  cursor: wait;
}

body.admin-app .admin-appearance-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 10.5rem;
  gap: 0.7rem;
}

body.admin-app .admin-appearance-status {
  margin: 0;
  font-size: 0.75rem;
  color: #737373;
}

body.admin-app .admin-appearance-status.is-error {
  color: #b91c1c;
}

body.admin-app .admin-youtube-field {
  display: flex;
  flex-direction: column;
}

body.admin-app .admin-youtube-preview {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 0.6rem;
  padding: 0.55rem 0.65rem;
  background: #fff;
  border: 1px solid var(--brand-line);
  border-radius: 0.85rem;
}

body.admin-app .admin-youtube-preview[hidden],
body.admin-app .admin-youtube-preview-status[hidden] {
  display: none;
}

body.admin-app .admin-youtube-preview img {
  width: 7.5rem;
  height: 4.2rem;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 0.5rem;
  background: #f3f3f3;
}

body.admin-app .admin-youtube-preview-copy {
  min-width: 0;
}

body.admin-app .admin-youtube-preview-title {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.3;
  color: #171717;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

body.admin-app .admin-youtube-preview-channel {
  margin: 0.15rem 0 0;
  font-size: 0.75rem;
  color: #737373;
}

body.admin-app .admin-youtube-preview-status {
  margin: 0.4rem 0 0;
  font-size: 0.75rem;
  color: #737373;
}

.admin-dropzone {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  width: 100%;
  min-height: 6.5rem;
  padding: 1.15rem 1.25rem;
  border: 1.5px dashed #a3a3a3;
  border-radius: 1.25rem;
  background: #f3f3f3;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}

.admin-dropzone[data-kind="audio"]:not(.has-file) {
  min-height: 10rem;
}

.admin-dropzone.is-drag,
.admin-dropzone:hover {
  border-color: #171717;
  background: #ececec;
}

.admin-dropzone.has-file {
  min-height: 0;
  padding: 0.55rem 0.7rem;
  border: 1px solid var(--brand-line);
  border-radius: 0.85rem;
  background: #fff;
}

.admin-dropzone.has-file[data-kind="audio"] {
  min-height: 0;
}

.admin-dropzone.has-file:hover,
.admin-dropzone.has-file.is-drag {
  background: #fafafa;
}

.admin-dropzone.has-file[data-kind="image"] .admin-dropzone-preview:not([hidden]) {
  display: block;
  box-shadow: inset 0 0 0 1px rgba(23, 23, 23, 0.08);
}

.admin-dropzone-preview-wrap {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
}

.admin-dropzone[data-kind="audio"] .admin-dropzone-preview-wrap,
.admin-dropzone[data-kind="file"] .admin-dropzone-preview-wrap {
  display: none;
}

.admin-dropzone.has-file .admin-dropzone-preview {
  flex-basis: 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 0.55rem;
}

.admin-dropzone.using-fallback {
  min-height: 0;
  padding: 0.65rem 0.8rem;
  border-style: dashed;
  background: #f7f7f7;
}

.admin-dropzone.using-fallback .admin-dropzone-preview:not([hidden]) {
  display: block;
  flex-basis: 2.25rem;
  width: 2.25rem;
  height: 2.25rem;
  border-radius: 0.45rem;
  opacity: 0.92;
}

.admin-dropzone.using-fallback .admin-dropzone-title {
  font-size: 0.84rem;
  font-weight: 600;
  color: #404040;
}

.admin-dropzone.using-fallback .admin-dropzone-browse {
  color: #737373;
}

.admin-dropzone-clear {
  position: absolute;
  top: -0.4rem;
  right: -0.4rem;
  display: none;
  align-items: center;
  justify-content: center;
  width: 1.2rem;
  height: 1.2rem;
  padding: 0;
  border: 1.5px solid #fff;
  border-radius: 9999px;
  background: #171717;
  color: #fff;
  font-size: 0.85rem;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.28);
}

.admin-dropzone.has-file:hover .admin-dropzone-clear,
.admin-dropzone.has-file:focus-within .admin-dropzone-clear,
.admin-dropzone.has-file .admin-dropzone-clear:focus-visible {
  display: inline-flex;
}

.admin-dropzone.using-fallback .admin-dropzone-clear,
.admin-dropzone:not(.has-file) .admin-dropzone-clear {
  display: none !important;
}

@media (hover: none) {
  .admin-dropzone.has-file .admin-dropzone-clear:not([hidden]) {
    display: inline-flex;
  }
}

.admin-cover-field {
  display: flex;
  flex-direction: column;
}

.admin-cover-use-show {
  align-self: flex-start;
  margin-top: 0.35rem;
  padding: 0;
  border: 0;
  background: none;
  color: #525252;
  font-size: 0.75rem;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 0.12em;
  cursor: pointer;
}

.admin-cover-use-show:hover {
  color: #171717;
}

.admin-dropzone.has-file .admin-dropzone-ui {
  gap: 0.65rem;
}

.admin-dropzone.has-file .admin-dropzone-title {
  font-size: 0.84rem;
}

.admin-dropzone.has-file .admin-dropzone-browse {
  display: inline-flex;
  align-self: flex-start;
  margin-top: 0.2rem;
  padding: 0.12rem 0.5rem;
  border: 1px solid #d4d4d4;
  border-radius: 9999px;
  background: #fafafa;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: #171717;
}

.admin-dropzone.has-file .admin-dropzone-file {
  font-size: 0.72rem;
}

.admin-dropzone-input {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1;
  width: 100% !important;
  height: 100% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  opacity: 0 !important;
  color: transparent !important;
  font-size: 0 !important;
  cursor: pointer;
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.admin-dropzone-input::file-selector-button,
.admin-dropzone-input::-webkit-file-upload-button {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

.admin-dropzone-ui {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  pointer-events: none;
  width: 100%;
}

.admin-dropzone-preview {
  flex: 0 0 3.5rem;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 0.75rem;
  background: #e7e7e7 center / cover no-repeat;
}

.admin-dropzone[data-kind="audio"] .admin-dropzone-preview[hidden],
.admin-dropzone[data-kind="file"] .admin-dropzone-preview[hidden] {
  display: none;
}

.admin-dropzone-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.admin-dropzone-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #171717;
  letter-spacing: -0.01em;
}

.admin-dropzone-browse,
.admin-dropzone-file {
  font-size: 0.78rem;
  color: #737373;
}

.admin-dropzone.has-file .admin-dropzone-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-audio-field {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.admin-audio-preview {
  width: 100%;
}

.admin-audio-preview[hidden],
.admin-audio-preview-stored[hidden],
.admin-audio-preview-player[hidden] {
  display: none;
}

.admin-audio-preview-player {
  display: block;
  width: 100%;
  height: 2.25rem;
}

body.admin-app .admin-audio-preview-stored,
body.admin-app .admin-audio-field-player {
  width: 100%;
}

body.admin-app .admin-audio-preview vm-player,
body.admin-app .admin-audio-field-player {
  --vm-player-box-shadow: 0;
  border: 1px solid var(--brand-line);
  border-radius: 0.85rem;
  overflow: hidden;
  background: #fff;
}

.admin-file-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.45rem;
}

body.admin-app .admin-more {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0.15rem 0 0.5rem;
}

body.admin-app .admin-more > summary {
  list-style: none;
  cursor: pointer;
  padding: 0.85rem 1rem;
  border: 1px solid var(--brand-line);
  border-radius: 9999px;
  background: #fff;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-muted);
}

body.admin-app .admin-more > summary::-webkit-details-marker {
  display: none;
}

body.admin-app .admin-more[open] > summary {
  color: var(--brand-ink);
  border-color: #171717;
}

body.admin-app .admin-link-row {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr) auto;
  gap: 0.6rem;
  align-items: center;
}

body.admin-app .admin-link-remove {
  font-size: 0.75rem;
  font-weight: 600;
  color: #737373;
  text-decoration: underline;
  background: none;
  border: 0;
  padding: 0.4rem 0.2rem;
  cursor: pointer;
}

body.admin-app .admin-episode {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(22rem, 26rem);
  grid-template-rows: auto auto;
  grid-template-areas:
    "preview rail"
    "charts charts";
  gap: 1.5rem;
  align-items: stretch;
  align-content: start;
  justify-items: stretch;
}

body.admin-app .admin-episode-preview {
  grid-area: preview;
  grid-column: 1;
  grid-row: 1;
  position: relative;
  display: block;
  align-self: stretch;
  width: auto;
  max-width: 100%;
  min-width: 0;
  height: auto;
  min-height: auto;
  max-height: none;
  overflow: visible;
}

body.admin-app .admin-episode-preview-body {
  position: static;
  inset: auto;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  min-width: 0;
  min-height: 0;
  padding: 0.9rem 1rem;
  overflow: visible;
}

body.admin-app .admin-episode-main {
  grid-area: rail;
  grid-column: 2;
  grid-row: 1;
  align-self: start;
  justify-self: stretch;
  width: 100%;
  min-width: 22rem;
  max-width: 26rem;
  height: auto;
  max-height: none;
  overflow: visible;
}

body.admin-app .admin-episode-charts {
  grid-area: charts;
  grid-column: 1 / -1;
  grid-row: 2;
  align-self: start;
}

body.admin-app .admin-episode-preview,
body.admin-app .admin-card {
  background: #fff;
  border: 1px solid var(--brand-line);
  border-radius: 1rem;
}

body.admin-app .admin-episode-preview {
  padding: 0;
}

body.admin-app .admin-episode-preview-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  flex-shrink: 0;
  gap: 0.85rem;
}

body.admin-app .admin-episode-cover {
  width: 140px;
  height: 140px;
  flex-shrink: 0;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 0.65rem;
}

body.admin-app .admin-episode-preview-copy {
  min-width: min(100%, 14rem);
  flex: 1 1 14rem;
}

body.admin-app .admin-episode-number {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #737373;
}

body.admin-app .admin-episode-title {
  margin: 0.2rem 0 0.15rem;
  font-size: 1.15rem;
  line-height: 1.25;
  letter-spacing: -0.02em;
}

body.admin-app .admin-episode-meta,
body.admin-app .admin-episode-empty,
body.admin-app .admin-action-hint,
body.admin-app .admin-card-copy {
  margin: 0;
  font-size: 0.8rem;
  color: #737373;
}

body.admin-app .admin-episode-player {
  margin: 0.55rem 0 0;
  min-width: 0;
}

body.admin-app .admin-episode-notes {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
  min-height: auto;
  margin-top: 0.85rem;
  overflow: visible;
}

body.admin-app .admin-episode-notes h3,
body.admin-app .admin-episode-sections .public-notes-heading,
body.admin-app .admin-episode-timestamps h3,
body.admin-app .admin-episode-keywords h3,
body.admin-app .admin-card-head h3 {
  flex-shrink: 0;
  margin: 0;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #737373;
}

body.admin-app .admin-episode-notes-body,
body.admin-app .admin-episode-notes > .admin-episode-empty {
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 0;
  margin-top: 0.4rem;
  overflow: visible;
  overflow-wrap: anywhere;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #404040;
}

body.admin-app .admin-episode-notes-body > * {
  max-width: none;
}

body.admin-app .admin-episode-sections,
body.admin-app .admin-episode-timestamps,
body.admin-app .admin-episode-keywords,
body.admin-app .admin-keyword-pills {
  width: 100%;
  max-width: none;
}

body.admin-app .admin-episode-sections,
body.admin-app .admin-episode-timestamps,
body.admin-app .admin-episode-keywords {
  flex: 0 0 auto;
  flex-shrink: 0;
  margin-top: 0.85rem;
  overflow: visible;
}

body.admin-app .admin-episode-section + .admin-episode-section,
body.admin-app .admin-episode-sections .public-notes-section + .public-notes-section {
  margin-top: 0.75rem;
}

body.admin-app .admin-episode-section-body,
body.admin-app .admin-episode-sections .public-notes-section-body {
  margin-top: 0.4rem;
  overflow-wrap: anywhere;
  font-size: 0.88rem;
  line-height: 1.5;
  color: #404040;
}

body.admin-app .admin-episode-section-body p,
body.admin-app .admin-episode-section-body ul,
body.admin-app .admin-episode-section-body ol,
body.admin-app .admin-episode-sections .public-notes-section-body p,
body.admin-app .admin-episode-sections .public-notes-section-body ul,
body.admin-app .admin-episode-sections .public-notes-section-body ol {
  margin: 0 0 0.4rem;
}

body.admin-app .admin-episode-section-body ul,
body.admin-app .admin-episode-sections .public-notes-section-body ul {
  list-style: disc;
  padding-left: 1.25rem;
}

body.admin-app .admin-episode-section-body ol,
body.admin-app .admin-episode-sections .public-notes-section-body ol {
  list-style: decimal;
  padding-left: 1.25rem;
}

body.admin-app .admin-episode-section-body a,
body.admin-app .admin-episode-sections .public-notes-section-body a {
  color: inherit;
  text-decoration: underline;
}

body.admin-app .admin-episode-chapter-list {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0;
}

body.admin-app .admin-episode-chapter-list li {
  display: flex;
  align-items: baseline;
  gap: 0.6rem;
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: #404040;
}

body.admin-app .admin-episode-chapter-time {
  flex: 0 0 3.4rem;
  font-variant-numeric: tabular-nums;
  color: #737373;
}

body.admin-app .admin-episode-empty a {
  color: inherit;
  text-decoration: underline;
}

body.admin-app .admin-keyword-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.65rem;
}

body.admin-app .admin-keyword-pill {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.6rem;
  font-size: 0.75rem;
  line-height: 1.3;
  color: #525252;
  background: #f5f5f5;
  border-radius: var(--brand-radius-pill);
}

body.admin-app .admin-episode-main {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

body.admin-app .admin-card {
  padding: 1.15rem 1.25rem;
}

body.admin-app .admin-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem;
  margin-bottom: 0.85rem;
}

body.admin-app .admin-card-head > span {
  flex-shrink: 0;
  line-height: 1.2;
}

body.admin-app .admin-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 0.65rem;
  padding: 0.75rem 0;
  border-top: 1px solid #f0f0f0;
}

body.admin-app .admin-action:first-of-type {
  border-top: 0;
  padding-top: 0;
}

body.admin-app .admin-action-meta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.15rem;
  min-width: 0;
  flex: 1 1 auto;
}

body.admin-app .admin-action-share {
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0.4rem;
}

body.admin-app .admin-action-row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  min-width: 0;
}

body.admin-app .admin-action-label {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  line-height: 1.25;
  color: #171717;
}

body.admin-app .admin-copy-input,
body.admin-app input.admin-copy-input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="reset"]) {
  display: block;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  height: 2.25rem !important;
  min-height: 2.25rem !important;
  margin: 0 !important;
  padding: 0 0.75rem !important;
  border: 1px solid #e5e5e5;
  border-radius: 9999px;
  background: #fafafa;
  font-size: 0.75rem;
  line-height: 2.25rem;
  color: #525252;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.admin-app .admin-copy-btn,
body.admin-app .admin-ghost-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  box-sizing: border-box;
  height: 2.25rem;
  min-height: 2.25rem;
  padding: 0 0.85rem;
  border: 1px solid #d4d4d4;
  border-radius: 9999px;
  background: #fff;
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1;
  color: #171717;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
}

body.admin-app .admin-copy-btn.is-copied {
  border-color: #171717;
}

body.admin-app .admin-episode-charts {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
}

body.admin-app .admin-episode-charts > * {
  padding: 0.35rem 0.65rem 1.1rem;
}

body.admin-app .admin-episode-charts h2 {
  padding: 1.2rem 1.35rem 0.45rem !important;
  font-size: 1.05rem !important;
  line-height: 1.35;
  white-space: nowrap;
}

body.admin-app .admin-episode-charts [data-chart-type] {
  height: 17.5rem !important;
  max-height: 17.5rem;
}

@media (max-width: 899px) {
  body.admin-app .admin-episode {
    grid-template-columns: 1fr;
    grid-template-areas:
      "preview"
      "rail"
      "charts";
  }

  body.admin-app .admin-episode-preview,
  body.admin-app .admin-episode-preview-body,
  body.admin-app .admin-episode-main,
  body.admin-app .admin-episode-charts {
    grid-column: auto;
    grid-row: auto;
    position: static;
    inset: auto;
    min-width: 0;
    max-width: none;
    height: auto;
    min-height: 0;
    max-height: none;
    overflow: visible;
  }

  body.admin-app .admin-episode-charts h2 {
    white-space: normal;
  }
}

@media (max-width: 767px) {
  body.public-site {
    --public-wrap: min(1120px, calc(100% - 2rem));
    overflow-x: hidden;
  }

  body.public-site .public-nav {
    gap: 0.75rem;
    padding: 1rem 0;
  }

  body.public-site .public-nav-links {
    display: none;
  }

  body.public-site .public-nav-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 2.75rem;
    height: 2.75rem;
    margin-left: auto;
  }

  body.public-site .public-brand {
    min-width: 0;
    overflow: hidden;
    font-size: 1.15rem;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body.public-site.public-menu-open {
    overflow: hidden;
  }

  body.public-site.public-menu-open .public-menu-backdrop,
  body.public-site.public-menu-open .public-aside {
    display: block;
  }

  body.public-site.public-menu-open .public-aside {
    display: flex;
    flex-direction: column;
  }

  body.public-site.public-menu-open #castopod-audio-player,
  body.public-site.public-menu-open [id="castopod-audio-player"],
  body.public-site.public-menu-open .public-autoplay {
    z-index: 70;
  }

  body.public-site .public-hero,
  body.public-site .public-page-hero {
    padding: 2.25rem 0 1.75rem;
  }

  body.public-site .public-hero-grid,
  body.public-site .public-episode,
  body.public-site article.public-episode {
    grid-template-columns: 1fr;
    gap: 1.15rem;
  }

  body.public-site .public-title {
    overflow-wrap: anywhere;
    font-size: clamp(2.1rem, 11vw, 3.2rem);
  }

  body.public-site .public-lede {
    margin-top: 1rem;
    font-size: 0.98rem;
  }

  body.public-site .public-pills {
    max-width: 100%;
  }

  body.public-site .public-cover,
  body.public-site .public-episode-cover {
    width: 148px;
    height: 148px;
    max-width: 100%;
  }

  body.public-site .public-episode,
  body.public-site article.public-episode {
    min-width: 0;
  }

  body.public-site .public-episode-copy,
  body.public-site .public-episode-title {
    min-width: 0;
  }

  body.public-site .public-episode-title {
    font-size: 1.35rem;
  }

  body.public-site .public-episode-nav {
    gap: 0.5rem;
    min-width: 0;
  }

  body.public-site .public-episode-nav > a {
    min-width: 0;
    padding-left: 0;
  }

  body.public-site .public-episode-hero {
    overflow: visible;
  }

  body.public-site .public-episode-detail {
    gap: 1.25rem;
  }

  body.public-site .public-episode-secondary .public-content-tabs {
    gap: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  body.public-site .public-episode-secondary .public-content-tab {
    padding: 0.75rem 0.7rem 0.6rem;
    font-size: 0.86rem;
    white-space: nowrap;
  }

  body.public-site .public-footer {
    padding-bottom: calc(6.75rem + env(safe-area-inset-bottom, 0px));
  }

  body.public-site .public-footer-inner,
  body.public-site .public-footer-utility {
    flex-direction: column;
    align-items: flex-start;
  }

  body.admin-app .admin-appearance-card {
    grid-template-columns: auto minmax(0, 1fr);
  }

  body.admin-app .admin-appearance-thumb {
    grid-column: 2;
  }

  body.admin-app .admin-appearance-fields {
    grid-column: 1 / -1;
  }

  body.admin-app .admin-appearance-url-row,
  body.admin-app .admin-appearance-pair {
    grid-template-columns: 1fr;
  }

  body.admin-app .admin-chapter-row {
    flex-direction: column;
    align-items: stretch;
  }

  body.admin-app .admin-chapter-row input[name="chapter_times[]"],
  body.admin-app .admin-chapter-row input[name="chapter_titles[]"] {
    width: 100%;
    max-width: none;
    flex: 1 1 auto;
  }

  body.admin-app .admin-chapter-row .admin-link-remove {
    align-self: flex-start;
    height: auto;
    padding: 0.25rem 0;
  }

  body.public-site .public-appearance.has-image {
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 1rem;
  }

  body.public-site .public-appearance-media {
    width: 5.5rem;
    height: 5.5rem;
  }
}

/* ---------------------------------------------------------------------------
 * Clips (video clips + soundbites) — hidden; YouTube pills stay.
 * ------------------------------------------------------------------------- */

body.admin-app a[href*="/soundbites"],
body.admin-app a[href*="/video-clips"],
body.admin-app play-soundbite,
body.admin-app audio-clipper,
body.admin-app video-clip-previewer,
body.public-site play-soundbite,
body.public-site audio-clipper,
body.public-site video-clip-previewer {
  display: none !important;
}

/* ---------------------------------------------------------------------------
 * Pages (custom site pages) — hidden; About / Appearances / Episodes stay.
 * Avoid matching analytics “webpages”.
 * ------------------------------------------------------------------------- */

body.admin-app a[href*="/pages/"],
body.admin-app a[href$="/pages"]:not([href*="webpages"]),
body.admin-app aside nav details:has(a[href*="/pages/"]),
body.admin-app aside nav details:has(a[href$="/pages"]:not([href*="webpages"])),
body.public-site a[href*="/pages/"] {
  display: none !important;
}

/* ---------------------------------------------------------------------------
 * Credits (auto-generated persons page) — hidden; Persons / About stay.
 * ------------------------------------------------------------------------- */

body.public-site a[href$="/credits"],
body.public-site a[href*="/credits?"],
body.public-site nav.public-footer-links a[href*="/credits"] {
  display: none !important;
}

/* Episode draft / schedule / publish */
body.admin-app .admin-publication {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  padding: 1.15rem 1.35rem 1.25rem;
  background: #fff;
  border: 1px solid var(--brand-line);
  border-radius: 1rem;
}

body.admin-app .admin-publication-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.55rem 0.75rem;
}

body.admin-app .admin-publication-head h3 {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.3;
  letter-spacing: -0.03em;
}

body.admin-app .admin-publication-copy,
body.admin-app .admin-publication-meta,
body.admin-app .admin-publication-timezone,
body.admin-app .admin-publication-choice-hint {
  margin: 0;
  font-size: 0.8125rem;
  line-height: 1.45;
  color: #737373;
}

body.admin-app .admin-publication-actions {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0.15rem 0 0;
  padding: 0;
  border: 0;
}

body.admin-app .admin-publication-choice {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  padding: 0.7rem 0.85rem;
  border: 1px solid var(--brand-line);
  border-radius: 0.85rem;
  cursor: pointer;
}

body.admin-app .admin-publication-choice:has(input:checked) {
  border-color: #171717;
  background: #fafafa;
}

body.admin-app .admin-publication-choice input {
  margin-top: 0.2rem;
}

body.admin-app .admin-publication-choice-title {
  display: block;
  font-size: 0.9rem;
  font-weight: 600;
  color: #171717;
}

body.admin-app .admin-publication-schedule {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0 0.15rem 0.15rem 2.05rem;
}

body.admin-app .admin-publication-schedule[hidden] {
  display: none;
}

body.admin-app .admin-publication-footer {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 0.5rem;
  padding-top: 0.25rem;
}

body.admin-app .admin-status-pill,
body.admin-app .sticky-header-title-row .admin-status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 1.35rem;
  padding: 0 0.55rem;
  border-radius: 9999px;
  border: 1px solid #d4d4d4 !important;
  background: #f5f5f5 !important;
  color: #525252 !important;
  font-size: 0.68rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* Announcement posts — hidden */
#publish-warning,
form[data-submit="validate-message"] label[for="message"],
form[data-submit="validate-message"] textarea[name="message"],
form[data-submit="validate-message"] small.max-w-md,
body.admin-app details:has(textarea[name="message"]),
body.admin-app form[data-submit="validate-message"] .mb-8.overflow-hidden.shadow-md,
body.public-site form[action*="/posts/new"],
body.public-site a[href*="/posts/"] {
  display: none !important;
}

/* ===========================================================================
 * Admin polish — 2026-10-26
 * Light slate sidebar, rounded surfaces, soft focus, smooth state changes.
 * One block on purpose: last in the file so it wins, easy to tune or remove.
 * Tokens: change the --admin-* values to re-tint the whole admin.
 * ========================================================================= */

body.admin-app {
  --admin-slate:        #f1f5f9;   /* slate-100: sidebar + top bar */
  --admin-slate-line:   #e2e8f0;   /* slate-200: the one edge against content */
  --admin-slate-hover:  rgba(15, 23, 42, 0.05);
  --admin-slate-active: #e2e8f0;   /* slate-200: current page */
  --admin-slate-text:   #475569;   /* slate-600 */
  --admin-slate-ink:    #0f172a;   /* slate-900: hover + current */
  --admin-hairline:     #e8ebf0;
  --admin-focus:        0 0 0 3px rgba(100, 116, 139, 0.28);
  --admin-radius:       12px;
  --admin-radius-sm:    8px;
}

/* --- sidebar + top bar ---------------------------------------------------- */
body.admin-app aside.bg-navigation,
body.admin-app header.bg-navigation {
  background: var(--admin-slate) !important;
  border-color: var(--admin-slate-line) !important;
}
body.admin-app aside.bg-navigation { border-right: 1px solid var(--admin-slate-line); }
body.admin-app header.bg-navigation { border-bottom: 1px solid var(--admin-slate-line); }
/* The chrome was built for a dark bar: text and icons are hard-coded white.
   Set it on the bars too, so plain text (the footer) inherits slate. */
body.admin-app :is(aside, header).bg-navigation { color: var(--admin-slate-text) !important; }
body.admin-app :is(aside, header).bg-navigation :is(a, span, p, h1, h2, h3, button, summary, svg, div, footer) {
  color: var(--admin-slate-text) !important;
}
body.admin-app :is(aside, header).bg-navigation :is(h1, h2, h3, .font-semibold) { color: var(--admin-slate-ink) !important; }
body.admin-app aside nav details.bg-navigation-active { background: transparent; }
body.admin-app aside nav details summary,
body.admin-app aside nav li a {
  color: var(--admin-slate-text);
  border-radius: var(--admin-radius-sm);
  margin-inline: 0.5rem;
}
body.admin-app aside nav details summary:hover,
body.admin-app aside nav li a:hover {
  background: var(--admin-slate-hover);
}
body.admin-app aside nav :is(details summary, li a):hover :is(span, svg),
body.admin-app aside nav :is(details summary, li a):hover { color: var(--admin-slate-ink) !important; }
body.admin-app aside nav li a.font-semibold,
body.admin-app aside nav li a[aria-current="page"] {
  background: var(--admin-slate-active);
}
/* count badges: slate, not grey */
body.admin-app aside nav details summary a.rounded-full.bg-navigation,
body.admin-app aside nav details summary a.rounded-full.bg-navigation-active,
body.admin-app aside nav a.rounded-full:not(.bg-accent-base) {
  background: #fff !important;
  color: var(--admin-slate-text) !important;
}

/* --- surfaces: rounded, hairline instead of hard borders ------------------ */
body.admin-app main .bg-elevated,
body.admin-app main fieldset,
body.admin-app main table,
body.admin-app main .admin-card,
body.admin-app main section.border,
body.admin-app main div.border.rounded-xl,
body.admin-app main div.border.rounded-lg {
  border-radius: var(--admin-radius) !important;
  border-color: var(--admin-hairline) !important;
  box-shadow: none !important;
}
body.admin-app main table { border-collapse: separate; border-spacing: 0; overflow: hidden; }
body.admin-app main table td,
body.admin-app main table th { border-color: var(--admin-hairline) !important; }
body.admin-app main table tbody tr:hover { background: #f8fafc; }

/* --- fields + buttons: fields keep the existing pill shape ---------------- */
body.admin-app :is(input, select, textarea, .choices__inner) { border-color: var(--admin-hairline) !important; }
body.admin-app main button,
body.admin-app main a.inline-flex.rounded-full,
body.admin-app main a.inline-flex.shadow-xs {
  border-radius: var(--admin-radius-sm) !important;
}

/* --- focus: a soft slate glow, never a black outline. Still visible, so the
       admin stays usable from the keyboard. -------------------------------- */
body.admin-app :is(a, button, summary, input, select, textarea, [tabindex]):focus { outline: none; }
body.admin-app :is(a, button, summary, [tabindex]):focus-visible,
body.admin-app :is(input, select, textarea):focus,
body.admin-app .choices.is-focused .choices__inner {
  outline: none !important;
  box-shadow: var(--admin-focus) !important;
  --tw-ring-shadow: 0 0 #0000;
  --tw-ring-offset-shadow: 0 0 #0000;
}

/* --- smooth state changes ------------------------------------------------- */
body.admin-app :is(a, button, summary, input, select, textarea, tr, .choices__inner) {
  transition: background-color 160ms ease, color 160ms ease,
    border-color 160ms ease, box-shadow 160ms ease;
}
@media (prefers-reduced-motion: reduce) {
  body.admin-app * { transition: none !important; }
}

/* --- patterns that drew hard outlines everywhere -------------------------- */
/* episode number "Ep. 279": a soft chip, not a boxed label */
body.admin-app main abbr.border {
  border: 0 !important;
  border-radius: 6px;
  background: #f1f5f9;   /* slate-100 */
  padding: 0.1rem 0.4rem;
}
/* secondary (outline) buttons: hairline, no 2px black frame, no drop shadow */
body.admin-app main .border-2.border-accent-base {
  border-width: 1px !important;
  border-color: var(--admin-hairline) !important;
  color: #1e293b !important;
  box-shadow: none !important;
}
body.admin-app main .border-2.border-accent-base:hover { background: #f8fafc !important; border-color: #cbd5e1 !important; }
/* artwork + avatars: same radius family as the cards */
body.admin-app main img.rounded-lg,
body.admin-app main img.rounded-md { border-radius: var(--admin-radius-sm) !important; box-shadow: none !important; }

/* --- spacing: one rhythm everywhere --------------------------------------- */
body.admin-app {
  --admin-inset: 3rem;     /* page edge, header and body alike (was 48 vs 40) */
  --admin-gap:   1.5rem;   /* between cards (was 16px) */
  --admin-pad:   1.5rem;   /* inside small cards (was 16px) */
}
@media (max-width: 767px) { body.admin-app { --admin-inset: 1rem; --admin-gap: 1rem; } }
body.admin-app main > header.sticky-header-outer,
body.admin-app main > div.mx-auto {
  padding-inline: var(--admin-inset) !important;
}
body.admin-app main > div.mx-auto { padding-block: 2rem 3rem !important; }
body.admin-app main :is(.grid, .flex-wrap).gap-4 { gap: var(--admin-gap) !important; }
body.admin-app main :is(.grid, .flex-wrap).gap-4.mt-4 { margin-top: var(--admin-gap) !important; }
body.admin-app main .bg-elevated.p-4 { padding: var(--admin-pad) !important; }
body.admin-app main .bg-elevated > h2.px-6 { padding: var(--admin-pad) var(--admin-pad) 0 !important; font-size: 1rem; font-weight: 500; }

/* --- charts (amCharts 4, SVG): no harsh lines ---------------------------- */
/* the drag-to-zoom scrollbar and zoom button sat on top of every chart */
body.admin-app [data-chart-type] [role="scrollbar"],
body.admin-app [data-chart-type] [role="button"] { display: none !important; }
/* gridlines: black at 15% -> barely-there slate */
body.admin-app [data-chart-type] g[stroke="#000000"] { stroke: #e2e8f0 !important; stroke-opacity: 1 !important; }
body.admin-app [data-chart-type] g[stroke="#000000"][stroke-opacity="0"] { stroke-opacity: 0 !important; }
/* axis text: quiet slate */
body.admin-app [data-chart-type] text { fill: #94a3b8 !important; font-family: Inter, sans-serif; font-size: 11px; }
/* Every series colour amCharts assigns (blue, red, ...) becomes one slate ink.
   Matches any coloured stroke/fill, so dots, tooltips and the analytics pages'
   charts follow too; black, white and none are the chart's own chrome. */
body.admin-app [data-chart-type] g[stroke]:not([stroke="none"]):not([stroke="#ffffff"]):not([stroke="#000000"]) {
  stroke: #475569 !important; stroke-linejoin: round; stroke-linecap: round;
}
body.admin-app :is([data-chart-type="xy-chart"], [data-chart-type="xy-duration-chart"], [data-chart-type="bar-chart"]) g[fill]:not([fill="none"]):not([fill="#ffffff"]):not([fill="#000000"]):not([fill="#d9d9d9"]):not([fill="#f3f3f3"]) {
  fill: #475569 !important;
}
body.admin-app [data-chart-type] g[role="group"][aria-label="Series"] g[stroke] { stroke-width: 2px; }
body.admin-app [data-chart-type] circle { r: 3px; }

/* --- episode form: icons as signposts, say things once -------------------- */
body.admin-app .admin-form-section-title { display: flex; align-items: center; gap: 0.6rem; }
body.admin-app .admin-form-section-icon { width: 1.15rem; height: 1.15rem; flex: none; color: #94a3b8; }
/* only the title is required, so "(optional)" on every other field is noise */
body.admin-app form.admin-episode-form label > small.lowercase { display: none; }
/* the "Show summary" field sits under a section of the same name: hide the
   repeat visually, keep it for screen readers */
body.admin-app form.admin-episode-form label[for="description"] {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;
}

/* ===========================================================================
 * Floating panels — after Liza's references (2026-10-26): sidebar and content
 * as separate rounded cards on a soft canvas, separated by space and tone,
 * not lines. Tablet and up; the phone layout is untouched.
 * ========================================================================= */
@media (min-width: 768px) {
  body.admin-app {
    --admin-canvas:   #e9edf2;  /* between slate-100 and -200 */
    --admin-panel-r:  20px;
    --admin-card-r:   16px;
    --admin-card-bg:  #f6f8fa;
    --admin-float:    12px;
    background: var(--admin-canvas) !important;
    column-gap: var(--admin-float);
    padding: 0 var(--admin-float) var(--admin-float);
    /* was 300px calc(100% - 300px), which ignores the gap and padding */
    grid-template-columns: 300px minmax(0, 1fr) !important;
  }
  /* top bar melts into the canvas */
  body.admin-app > header.bg-navigation {
    background: var(--admin-canvas) !important;
    border: 0 !important;
    margin-inline: calc(-1 * var(--admin-float));
    padding-inline: var(--admin-float);
  }
  /* sidebar: light slate card */
  body.admin-app > aside.bg-navigation {
    top: calc(40px + var(--admin-float)) !important;
    max-height: calc(100vh - 40px - 2 * var(--admin-float)) !important;
    height: calc(100vh - 40px - 2 * var(--admin-float)) !important;
    margin-top: var(--admin-float);
    border: 0 !important;
    border-radius: var(--admin-panel-r);
    background: var(--admin-slate) !important;
    overflow: hidden auto;
  }
  /* content: white card; clip, not hidden, so the sticky page header still sticks */
  body.admin-app > main {
    margin-top: var(--admin-float);
    background: #fff !important;
    border-radius: var(--admin-panel-r);
    overflow: clip;
    min-height: calc(100vh - 40px - 2 * var(--admin-float));
  }
  body.admin-app main > header.sticky-header-outer {
    border-bottom: 0 !important;
    background: rgba(255, 255, 255, 0.92) !important;
    backdrop-filter: saturate(1.4) blur(8px);
  }
  body.admin-app main > header .sticky-header-inner { background: transparent !important; }

  /* cards inside the content: tone, not borders */
  body.admin-app main .bg-elevated:not(header):not(.sticky-header-inner),
  body.admin-app main fieldset {
    background: var(--admin-card-bg) !important;
    border: 0 !important;
    border-radius: var(--admin-card-r) !important;
  }
  body.admin-app main fieldset :is(input, select, textarea, .choices__inner),
  body.admin-app main .bg-elevated :is(input, select, textarea) { background: #fff !important; }
  body.admin-app main table { border: 0 !important; }
  body.admin-app main table :is(thead, thead tr, thead th) { background: transparent !important; }
  body.admin-app main table thead th { color: #94a3b8; font-weight: 500; }
  body.admin-app main table td,
  body.admin-app main table th { border-color: #eef1f5 !important; }

  /* nav: pills */
  body.admin-app aside nav details summary,
  body.admin-app aside nav li a { border-radius: 9999px; }
}

/* --- status pills: colour carries the meaning, no borders ----------------- */
body.admin-app .admin-status {
  gap: 0.4rem;
  padding: 0.2rem 0.65rem 0.2rem 0.55rem !important;
  border: 0 !important;
  border-radius: 9999px !important;
  font-size: 0.75rem; font-weight: 500 !important;
}
body.admin-app .admin-status::before {
  content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none;
}
body.admin-app .admin-status--published     { background: #ecfdf5 !important; color: #047857 !important; } /* emerald */
body.admin-app .admin-status--scheduled     { background: #fffbeb !important; color: #b45309 !important; } /* amber */
body.admin-app .admin-status--with_podcast  { background: #eff6ff !important; color: #1d4ed8 !important; } /* blue */
body.admin-app .admin-status--not_published { background: #f1f5f9 !important; color: #475569 !important; } /* slate: draft */

/* --- sidebar labels: a size down, medium weight --------------------------- */
body.admin-app aside nav :is(details summary, li a) { font-size: 0.875rem; }
body.admin-app aside nav details summary { font-weight: 500; }
body.admin-app aside nav svg { width: 1.1rem; height: 1.1rem; }

/* --- sidebar contrast: labels darker than icons; the current page in ink --- */
body.admin-app aside nav :is(details summary, li a) { color: #334155 !important; }           /* slate-700 */
body.admin-app aside nav :is(details summary, li a) svg { color: #64748b !important; }       /* slate-500 */
body.admin-app aside nav :is(details summary, li a):hover svg,
body.admin-app aside nav li a.font-semibold svg,
body.admin-app aside nav li a[aria-current="page"] svg { color: #0f172a !important; }
body.admin-app aside nav li a.font-semibold,
body.admin-app aside nav li a[aria-current="page"] { background: #fff !important; color: #0f172a !important; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06); }

/* --- breadcrumbs: a quiet trail, not a second title --------------------- */
body.admin-app main nav[aria-label="breadcrumb"] { font-size: 0.75rem; color: #94a3b8; margin-bottom: 0.35rem; }
body.admin-app main nav[aria-label="breadcrumb"] a { color: #64748b; text-transform: capitalize; }
body.admin-app main nav[aria-label="breadcrumb"] a:hover { color: #0f172a; }
/* the current page is the h1 right below it; "Home" is the first sidebar item */
body.admin-app main nav[aria-label="breadcrumb"] .breadcrumb-item.active,
body.admin-app main nav[aria-label="breadcrumb"] .breadcrumb-item:first-child { display: none; }
/* the separator the hidden first item would have drawn */
body.admin-app main nav[aria-label="breadcrumb"] .breadcrumb-item:nth-child(2)::before { content: none; padding: 0; }

/* --- sidebar: no dark rules. The chrome draws its dividers in
       --color-border-navigation (18% grey), built for the old dark bar. ----- */
body.admin-app aside :is(.border-y, .border-b, .border-t, .border-r, .border-navigation) {
  border-color: var(--admin-slate-line) !important;
}
body.admin-app aside .border-y { border-top-color: transparent !important; }   /* the back link above already separates */
body.admin-app aside nav details.bg-navigation-active { background: transparent !important; }
/* chevrons were white on dark; now slate */
body.admin-app aside nav details summary::after { filter: invert(0.6); opacity: 0.8; }

/* --- single-entry nav groups rendered as one link --------------------------- */
body.admin-app aside nav a.admin-nav-single { border-radius: 9999px; margin: 0 0.5rem; width: auto; color: #334155; font-size: 0.875rem; font-weight: 500; }
body.admin-app aside nav a.admin-nav-single:hover { background: var(--admin-slate-hover); color: #0f172a; }
body.admin-app aside nav a.admin-nav-single.is-active { background: #fff; color: #0f172a; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.06); }
body.admin-app aside nav a.admin-nav-single svg { opacity: 1; color: #64748b; width: 1.1rem; height: 1.1rem; }
body.admin-app aside nav a.admin-nav-single.is-active svg { color: #0f172a; }

/* --- the panel stays, its contents scroll ----------------------------------
   Scrolling the page carried the white card off the top, so its rounded
   corners clipped against the sticky header. Now the window never scrolls:
   <main> is the scroll container and the card keeps its corners. */
@media (min-width: 768px) {
  body.admin-app { height: 100vh; overflow: hidden; }
  body.admin-app > main {
    height: calc(100vh - 40px - 2 * var(--admin-float));
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
  body.admin-app main > header.sticky-header-outer { top: 0; }
  body.admin-app main > header .sticky-header-inner { top: 0; }
  /* a quiet scrollbar on the card */
  body.admin-app > main::-webkit-scrollbar { width: 10px; }
  body.admin-app > main::-webkit-scrollbar-thumb { background: #e2e8f0; border-radius: 9999px; border: 3px solid #fff; }
  body.admin-app > main::-webkit-scrollbar-track { background: transparent; }
}

/* --- podcast home: at a glance + calendar ---------------------------------- */
body.admin-app .admin-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); gap: var(--admin-gap); }
body.admin-app .admin-glance-tile { background: var(--admin-card-bg); border-radius: var(--admin-card-r); padding: 1.1rem 1.25rem; display: flex; flex-direction: column; gap: 0.35rem; }
body.admin-app .admin-glance-label { display: inline-flex; align-items: center; gap: 0.45rem; font-size: 0.75rem; color: #64748b; }
body.admin-app .admin-glance-label svg { width: 1rem; height: 1rem; color: #94a3b8; }
body.admin-app .admin-glance-value { font-size: 1.75rem; font-weight: 500; letter-spacing: -0.02em; line-height: 1.1; color: #0f172a; }
body.admin-app .admin-glance-sub { font-size: 0.75rem; color: #94a3b8; }

body.admin-app .admin-cal { background: var(--admin-card-bg); border-radius: var(--admin-card-r); padding: 1.25rem; }
body.admin-app .admin-cal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1rem; }
body.admin-app .admin-cal-title { font-size: 1rem; font-weight: 500; color: #0f172a; }
body.admin-app .admin-cal-nav { display: inline-flex; gap: 0.25rem; }
body.admin-app .admin-cal-nav a { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: 9999px; color: #475569; background: #fff; }
body.admin-app .admin-cal-nav a:hover { color: #0f172a; background: #e2e8f0; }
body.admin-app .admin-cal-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
body.admin-app .admin-cal-dow { font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: #94a3b8; text-align: center; padding-bottom: 0.4rem; }
body.admin-app .admin-cal-day { min-height: 5.25rem; background: #fff; border-radius: 10px; padding: 0.4rem 0.5rem; display: flex; flex-direction: column; gap: 0.25rem; }
body.admin-app .admin-cal-day.is-pad { background: transparent; }
body.admin-app .admin-cal-day.is-today { box-shadow: inset 0 0 0 2px #cbd5e1; }
body.admin-app .admin-cal-num { font-size: 0.75rem; color: #94a3b8; }
body.admin-app .admin-cal-day.is-today .admin-cal-num { color: #0f172a; font-weight: 500; }
body.admin-app .admin-cal-ep { display: block; font-size: 0.72rem; line-height: 1.25; padding: 0.2rem 0.45rem; border-radius: 6px; background: #ecfdf5; color: #047857; text-decoration: none; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
body.admin-app .admin-cal-ep:hover { background: #d1fae5; }
body.admin-app .admin-cal-ep.is-scheduled { background: #fffbeb; color: #b45309; }
body.admin-app .admin-cal-ep.is-draft { background: #f1f5f9; color: #475569; }
body.admin-app .admin-cal-more { font-size: 0.7rem; color: #64748b; padding-left: 0.45rem; }

/* --- top bar: no rules, two quiet clusters --------------------------------- */
@media (min-width: 768px) {
  body.admin-app > header.bg-navigation,
  body.admin-app > header.bg-navigation * { border-color: transparent !important; }
  body.admin-app > header.bg-navigation { height: 3.25rem; padding-inline: calc(var(--admin-float) + 0.5rem); }
  /* "← logo" and "Go to website" become one pill group */
  body.admin-app > header.bg-navigation > div.inline-flex:first-of-type { gap: 0.25rem; }
  body.admin-app > header.bg-navigation > div.inline-flex:first-of-type > a {
    height: 2.1rem; padding-inline: 0.75rem; border-radius: 9999px; font-size: 0.8125rem; font-weight: 500;
    color: #475569 !important;
  }
  body.admin-app > header.bg-navigation > div.inline-flex:first-of-type > a:hover { background: #fff; color: #0f172a !important; }
  body.admin-app > header.bg-navigation > div.inline-flex:first-of-type > a svg.h-6 { height: 1.25rem; }
  /* right cluster: bell + account as circles */
  body.admin-app > header.bg-navigation > div.inline-flex:last-of-type { gap: 0.25rem; }
  body.admin-app > header.bg-navigation button[data-tooltip],
  body.admin-app > header.bg-navigation > div.inline-flex:last-of-type > a,
  body.admin-app > header.bg-navigation > div.inline-flex:last-of-type > button {
    height: 2.1rem; border-radius: 9999px; padding-inline: 0.6rem; color: #475569 !important;
  }
  body.admin-app > header.bg-navigation > div.inline-flex:last-of-type > :is(a, button):hover { background: #fff; color: #0f172a !important; }
}

/* ===========================================================================
 * Calmer episode form — 2026-10-26
 * Audio first, one open section, the rest folded with a status line, and one
 * publish bar that stays at the bottom of the panel.
 * ========================================================================= */
/* the hero drop zone */
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) {
  min-height: 11rem; justify-content: center; text-align: center;
  border: 1.5px dashed #cbd5e1; background: #f8fafc; border-radius: var(--admin-card-r);
}
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) .admin-dropzone-title { font-size: 1.125rem; font-weight: 500; color: #0f172a; }
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) .admin-dropzone-copy { align-items: center; }
body.admin-app .admin-episode-hero .admin-dropzone.is-drag { border-color: #475569; background: #f1f5f9; }
body.admin-app .admin-episode-hero .admin-dropzone.has-file { padding: 0.9rem 1.1rem; border-radius: 12px; }
body.admin-app .admin-episode-hero .admin-audio-field { width: 100%; max-width: none; }
body.admin-app .admin-episode-hero > label.text-sm { display: none; }  /* "Audio file" label: the zone says it */
body.admin-app .admin-episode-hero .admin-episode-hero-helper { font-size: 0.75rem; color: #94a3b8; margin-top: 0.35rem; }
/* title: big, no box until focused */
body.admin-app .admin-episode-title input[name="title"] {
  font-size: 1.5rem; font-weight: 500; letter-spacing: -0.01em; padding: 0.6rem 0.9rem !important;
  background: #fff !important; border-radius: 12px !important;
}
body.admin-app .admin-episode-title input[name="title"]::placeholder { color: #cbd5e1; font-weight: 400; }

/* folds */
body.admin-app details.admin-fold { background: var(--admin-card-bg); border-radius: var(--admin-card-r); }
body.admin-app details.admin-fold > summary {
  list-style: none; cursor: pointer; display: grid; grid-template-columns: auto 1fr auto; align-items: center;
  gap: 0.75rem; padding: 1rem 1.5rem; border-radius: var(--admin-card-r);
}
body.admin-app details.admin-fold > summary::-webkit-details-marker { display: none; }
body.admin-app details.admin-fold > summary:hover { background: #eef2f6; }
body.admin-app details.admin-fold[open] > summary { border-radius: var(--admin-card-r) var(--admin-card-r) 0 0; }
body.admin-app details.admin-fold > summary svg.admin-fold-icon { width: 1.1rem; height: 1.1rem; color: #94a3b8; }
body.admin-app details.admin-fold > summary .admin-fold-title { font-weight: 500; color: #0f172a; }
body.admin-app details.admin-fold > summary .admin-fold-status { display: block; font-size: 0.8125rem; color: #64748b; margin-top: 0.1rem; }
body.admin-app details.admin-fold > summary .admin-fold-status:empty { display: none; }
body.admin-app details.admin-fold > summary::after {
  content: ""; width: 0.55rem; height: 0.55rem; border-right: 1.5px solid #94a3b8; border-bottom: 1.5px solid #94a3b8;
  transform: rotate(45deg); transition: transform 160ms ease; margin-right: 0.25rem;
}
body.admin-app details.admin-fold[open] > summary::after { transform: rotate(-135deg); }
body.admin-app details.admin-fold > .admin-fold-body { padding: 0 1.5rem 1.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
/* sections nested inside a fold lose their own card */
body.admin-app details.admin-fold fieldset.bg-elevated { background: transparent !important; padding: 0 !important; border-radius: 0 !important; }
body.admin-app details.admin-fold fieldset.bg-elevated > .admin-form-section-title { font-size: 0.8125rem; color: #64748b; }
body.admin-app details.admin-fold fieldset.bg-elevated > .admin-form-section-title .admin-form-section-icon { display: none; }
body.admin-app details.admin-fold fieldset.bg-elevated + fieldset.bg-elevated { border-top: 1px solid #e8ebf0 !important; padding-top: 1.25rem !important; }
body.admin-app .admin-more { display: contents; }   /* the old More-options wrapper is replaced by folds */

/* the publish bar */
body.admin-app .admin-publication {
  position: sticky; bottom: 0; z-index: 30;
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 0.75rem 1.25rem;
  margin: 1rem calc(-1 * var(--admin-inset)) 0; padding: 0.85rem var(--admin-inset);
  background: rgba(255, 255, 255, 0.92); backdrop-filter: saturate(1.4) blur(8px);
  border-top: 1px solid #e8ebf0; border-radius: 0 0 var(--admin-panel-r) var(--admin-panel-r);
}
body.admin-app .admin-publication-head,
body.admin-app .admin-publication-copy,
body.admin-app .admin-publication-meta { display: none; }
body.admin-app .admin-publication-actions { display: inline-flex; gap: 0.25rem; padding: 0.2rem; background: #f1f5f9; border-radius: 9999px; margin: 0; border: 0; }
body.admin-app .admin-publication-choice { margin: 0; padding: 0.4rem 0.85rem; border: 0 !important; border-radius: 9999px; background: transparent; cursor: pointer; }
body.admin-app .admin-publication-choice:has(input:checked) { background: #fff; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08); }
body.admin-app .admin-publication-choice-hint { display: none; }
body.admin-app .admin-publication-choice-title { font-size: 0.8125rem; font-weight: 500; color: #334155; }
body.admin-app .admin-publication-schedule { grid-column: 1 / -1; display: flex; align-items: center; gap: 1rem; margin: 0; padding: 0; }
body.admin-app .admin-publication-schedule > div { flex: 0 0 auto; }
body.admin-app .admin-publication-schedule .admin-publication-timezone { font-size: 0.75rem; color: #94a3b8; margin: 0; }
body.admin-app .admin-publication-footer { display: inline-flex; align-items: center; gap: 0.5rem; margin: 0; }
body.admin-app .admin-publication-needs { grid-column: 1 / -1; font-size: 0.8125rem; color: #b45309; margin: -0.25rem 0 0; }
body.admin-app .admin-publication-needs:empty { display: none; }
/* the page header's duplicate buttons go; the bar is the one place to act */
body.admin-app main > header .js-publication-submit,
body.admin-app main > header a.admin-ghost-btn { display: none; }
/* room so the last fold is never hidden behind the bar */
body.admin-app form.admin-episode-form { padding-bottom: 0.5rem; }
body.admin-app .admin-episode-hero label[for="audio_file"] { display: none; }
body.admin-app .admin-episode-hero .admin-audio-field-player { margin-top: 0.75rem; }

/* publish bar: the older vertical panel rules above still set these */
body.admin-app .admin-publication-actions { flex-direction: row !important; align-items: center; gap: 0.25rem !important; }
body.admin-app .admin-publication-choice { align-items: center; gap: 0 !important; padding: 0.4rem 0.85rem !important; border-radius: 9999px !important; }
body.admin-app .admin-publication-choice input { position: absolute; opacity: 0; width: 0; height: 0; margin: 0; }
body.admin-app .admin-publication-choice:has(input:focus-visible) { box-shadow: var(--admin-focus); }
body.admin-app .admin-publication-choice:has(input:checked) { border-color: transparent !important; }
body.admin-app .admin-publication-schedule { flex-direction: row !important; align-items: center; padding: 0 !important; }
body.admin-app .admin-publication-schedule > div.flex { flex-direction: row; align-items: center; gap: 0.75rem; }
body.admin-app .admin-publication-schedule label { margin: 0; white-space: nowrap; }
/* hero: size limit under the zone, not above it; the big input is its own label */
body.admin-app .admin-episode-hero #audio_fileHelp { order: 10; margin-top: 0.4rem; font-size: 0.75rem; color: #94a3b8; }
body.admin-app .admin-episode-title label[for="title"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.admin-app .admin-episode-title > div.flex { gap: 0; }

/* --- episode tab row (replaces the episode sidebar) ------------------------ */
body.admin-app .admin-episode-tabs { display: flex; flex-wrap: wrap; gap: 0.25rem; margin-top: 0.75rem; }
body.admin-app .admin-episode-tab {
  display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.4rem 0.85rem; border-radius: 9999px;
  font-size: 0.8125rem; font-weight: 500; color: #475569; text-decoration: none;
}
body.admin-app .admin-episode-tab:hover { background: #f1f5f9; color: #0f172a; }
body.admin-app .admin-episode-tab.is-active { background: #0f172a; color: #fff; }
body.admin-app .admin-episode-tab--external { margin-left: auto; color: #64748b; }
body.admin-app .admin-episode-tab-icon { width: 0.9rem; height: 0.9rem; }

/* ===========================================================================
 * Audit fixes — 2026-10-26 (evening)
 * ========================================================================= */

/* --- 9. "(optional)" everywhere → nowhere; required gets a mark ------------ */
body.admin-app label > small.lowercase,
body.admin-app legend > small.lowercase { display: none; }
body.admin-app label:has(+ div [required]):not(.sr-only)::after,
body.admin-app label:has(+ [required]):not(.sr-only)::after {
  content: " required"; font-size: 0.6875rem; font-weight: 400; color: #b45309; letter-spacing: 0.02em;
}

/* --- phones (< 640px) ------------------------------------------------------ */
@media (max-width: 639px) {
  /* 2. publish bar: one column, choices as an equal-width row, button full width */
  body.admin-app .admin-publication { grid-template-columns: 1fr; gap: 0.6rem; padding: 0.75rem 1rem; }
  body.admin-app .admin-publication-actions { display: flex !important; width: 100%; }
  body.admin-app .admin-publication-choice { flex: 1 1 0; justify-content: center; padding: 0.45rem 0.25rem !important; }
  body.admin-app .admin-publication-choice-title { font-size: 0.75rem; white-space: nowrap; }
  body.admin-app .admin-publication-footer { display: grid; grid-template-columns: auto 1fr; gap: 0.5rem; }
  body.admin-app .admin-publication-footer .js-publication-submit { width: 100%; justify-content: center; }
  body.admin-app .admin-publication-schedule { flex-direction: column !important; align-items: stretch; }
  /* 14. the big title input */
  body.admin-app .admin-episode-title input[name="title"] { font-size: 1.25rem; }
  /* 13. the calendar becomes a list of publish days */
  body.admin-app .admin-cal-grid { display: flex; flex-direction: column; gap: 0.35rem; }
  body.admin-app .admin-cal-dow, body.admin-app .admin-cal-day.is-pad { display: none; }
  body.admin-app .admin-cal-day:not(:has(.admin-cal-ep)) { display: none; }
  body.admin-app .admin-cal-day { flex-direction: row; align-items: center; gap: 0.75rem; min-height: 0; padding: 0.6rem 0.8rem; }
  body.admin-app .admin-cal-num { flex: 0 0 2rem; font-size: 0.875rem; color: #0f172a; font-weight: 500; }
  body.admin-app .admin-cal-ep { -webkit-line-clamp: 1; flex: 1; }
  body.admin-app .admin-cal:has(.admin-cal-grid:not(:has(.admin-cal-ep)))::after { content: "Nothing published this month."; display: block; font-size: 0.8125rem; color: #94a3b8; }
}

/* --- phones and small tablets (< 768px) ------------------------------------ */
@media (max-width: 767px) {
  /* 3. compact header: no breadcrumb, tabs scroll sideways, nothing sticks */
  body.admin-app main nav[aria-label="breadcrumb"] { display: none; }
  body.admin-app main > header.sticky-header-outer,
  body.admin-app main > header .sticky-header-inner { position: static !important; }
  body.admin-app .admin-episode-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: -1rem; padding-inline: 1rem; }
  body.admin-app .admin-episode-tabs::-webkit-scrollbar { display: none; }
  body.admin-app .admin-episode-tab { flex: none; }
  body.admin-app .admin-episode-tab--external { margin-left: 0.25rem; }
  body.admin-app .sticky-header-title-row h1 { font-size: 1.375rem; }
}

/* --- 5. tablets (768–1023px): the sidebar is an icon rail with flyouts ------ */
@media (min-width: 768px) and (max-width: 1023px) {
  body.admin-app { grid-template-columns: 4rem minmax(0, 1fr) !important; }
  body.admin-app > aside.bg-navigation { width: 4rem; overflow: visible; }
  /* the podcast header: cover only */
  body.admin-app > aside .flex.items-center.px-4.py-2 > :not(img), 
  body.admin-app > aside .border-y > :not(img) { display: none; }
  body.admin-app > aside .border-y { justify-content: center; padding: 0.75rem 0; }
  body.admin-app > aside footer { display: none; }
  /* nav: icon per group, label hidden, children in a flyout when open */
  body.admin-app aside nav details { position: relative; }
  body.admin-app aside nav details summary { justify-content: center; padding: 0.6rem 0 !important; margin-inline: 0.5rem; }
  body.admin-app aside nav details summary > div { font-size: 0; gap: 0; margin: 0; }
  body.admin-app aside nav details summary > div svg { font-size: 1.25rem; margin: 0 !important; }
  body.admin-app aside nav details summary > div a,         /* count badge */
  body.admin-app aside nav details summary > a,             /* add-cta */
  body.admin-app aside nav details summary::after { display: none; }
  body.admin-app aside nav a.admin-nav-single { justify-content: center; font-size: 0; padding: 0.6rem 0; }
  body.admin-app aside nav a.admin-nav-single svg { margin: 0; font-size: 1.25rem; width: 1.25rem; height: 1.25rem; }
  body.admin-app aside nav details > ul {
    position: absolute; left: 3.5rem; top: 0; z-index: 70; min-width: 12rem;
    background: #fff; border-radius: 12px; padding: 0.4rem !important; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12), 0 2px 6px rgba(15, 23, 42, 0.08);
  }
  body.admin-app aside nav details > ul li a { padding: 0.5rem 0.75rem !important; border-radius: 8px; }
}

/* --- 1. episodes list: cards under 1024px --------------------------------- */
@media (max-width: 1023px) {
  body.admin-app main table.whitespace-nowrap { white-space: normal; display: block; }
  body.admin-app main table.whitespace-nowrap thead { display: none; }
  body.admin-app main table.whitespace-nowrap tbody { display: flex; flex-direction: column; gap: 0.5rem; }
  body.admin-app main table.whitespace-nowrap tr {
    display: grid; grid-template-columns: 1fr auto; grid-template-areas: "main main" "status actions";
    align-items: center; gap: 0.5rem 0.75rem; padding: 0.75rem; border: 0 !important; border-radius: 12px; background: var(--admin-card-bg);
  }
  body.admin-app main table.whitespace-nowrap tr:hover { background: #eef2f6; }
  body.admin-app main table.whitespace-nowrap td { display: block; padding: 0 !important; border: 0 !important; }
  body.admin-app main table.whitespace-nowrap td:nth-child(1) { grid-area: main; min-width: 0; }
  body.admin-app main table.whitespace-nowrap td:nth-child(2) { grid-area: status; }
  body.admin-app main table.whitespace-nowrap td:nth-child(3),
  body.admin-app main table.whitespace-nowrap td:nth-child(4) { display: none; }   /* downloads, comments */
  body.admin-app main table.whitespace-nowrap td:nth-child(5) { grid-area: actions; justify-self: end; }
  body.admin-app main table.whitespace-nowrap td .w-80 { width: auto; max-width: 100%; }
  body.admin-app main table.whitespace-nowrap td h2 { white-space: normal; }
  body.admin-app main table.whitespace-nowrap td h2 .truncate { white-space: normal; overflow: visible; }
  body.admin-app main table.whitespace-nowrap td img.w-20 { width: 4rem; }
}
body.admin-app .admin-analytics-note { margin: 0 0 1rem; padding: 0.75rem 1rem; border-radius: 12px; background: #fffbeb; color: #92400e; font-size: 0.8125rem; }
body.admin-app .admin-empty { display: flex; flex-direction: column; align-items: flex-start; gap: 0.75rem; padding: 2rem; border-radius: var(--admin-card-r); background: var(--admin-card-bg); color: #64748b; }
/* 4. the Vime player is a custom element: inline by default, so it collapsed to 2px on phones */
body.admin-app vm-player.admin-audio-field-player { display: block; width: 100%; min-height: 3rem; }
/* 5b. tablet rail: the podcast header is its cover only */
@media (min-width: 768px) and (max-width: 1023px) {
  body.admin-app > aside > div.flex.gap-2.px-2.py-2 { justify-content: center; padding: 0.75rem 0 !important; }
  body.admin-app > aside > div.flex.gap-2.px-2.py-2 > div.flex-col { display: none; }
  body.admin-app > aside > div.flex.gap-2.px-2.py-2 img { width: 2.5rem; height: 2.5rem; border-radius: 8px; }
  body.admin-app > aside > div.flex.gap-2.px-2.py-2 .absolute { display: none; }   /* premium badge on the cover */
}
/* sidebar "+" (add episode / person / user…): were translucent white from the dark-bar days */
body.admin-app aside nav details summary > a.rounded-full.bg-accent-base,
body.admin-app aside nav details summary > a.shadow.bg-accent-base {
  color: #64748b !important; width: 1.5rem; height: 1.5rem; border-radius: 9999px;
}
body.admin-app aside nav details summary > a.rounded-full.bg-accent-base:hover,
body.admin-app aside nav details summary > a.shadow.bg-accent-base:hover { background: #fff !important; color: #0f172a !important; }
/* podcast home: tiles → calendar → latest episodes, one gap between each */
body.admin-app .admin-glance + .admin-cal { margin-top: var(--admin-gap); }
body.admin-app .admin-cal + .admin-podcast-home,
body.admin-app .admin-cal ~ .admin-podcast-home { margin-top: var(--admin-gap); }
/* group chevrons: the theme ships a white SVG; invert it to a solid mid-grey */
body.admin-app aside nav details summary::after { filter: invert(0.62); opacity: 1; }

/* ===========================================================================
 * Form system — 2026-10-26
 * Every admin form is built from the same primitives (Forms.Label, Forms.Input,
 * Forms.Field helper, hint tooltip, Forms.Section). These rules make them look
 * and space the same everywhere, episode form or two-field user form.
 * ========================================================================= */
body.admin-app {
  --form-max: 42rem;
  --form-gap: 1.25rem;
  --field-h: 2.5rem;
  --field-radius: 10px;
  --label: #334155;   /* slate-700 */
  --muted: #64748b;   /* slate-500 */
  --faint: #94a3b8;   /* slate-400 */
}
/* shell: one width, one rhythm, and a card when the form has no sections of its own */
body.admin-app main form { max-width: var(--form-max) !important; gap: var(--form-gap) !important; }
body.admin-app main form:not(.admin-episode-form):not(:has(fieldset.bg-elevated)):not(:has(details.admin-fold)):not(#appearances-form) {
  display: flex; flex-direction: column; background: var(--admin-card-bg); border-radius: var(--admin-card-r); padding: 1.5rem;
}
body.admin-app main form:not(.admin-episode-form):not(:has(fieldset.bg-elevated)):not(:has(details.admin-fold)):not(#appearances-form) :is(input, select, textarea, .choices__inner) { background: #fff !important; }
/* section cards */
body.admin-app main fieldset.bg-elevated { padding: 1.5rem !important; gap: 0; }
body.admin-app main fieldset.bg-elevated > .admin-form-section-title { font-size: 1rem; font-weight: 500; color: #0f172a; }
body.admin-app main fieldset.bg-elevated > .admin-form-section-subtitle { margin-top: 0.25rem; font-size: 0.8125rem; color: var(--muted); }
body.admin-app main fieldset.bg-elevated > div.flex.flex-col { gap: var(--form-gap) !important; padding: 1rem 0 0 !important; }
/* labels, hints, helpers */
body.admin-app main label.text-sm.font-semibold { font-size: 0.8125rem; font-weight: 500; color: var(--label); margin-bottom: 0.35rem; }
body.admin-app main legend { font-size: 0.8125rem; font-weight: 500; color: var(--label); margin-bottom: 0.35rem; }
body.admin-app main label .opacity-75 svg, body.admin-app main legend .opacity-75 svg { color: var(--faint); width: 0.9rem; height: 0.9rem; }
body.admin-app main [id$="Help"], body.admin-app main small.text-skin-muted, body.admin-app main p.text-sm.text-skin-muted { font-size: 0.75rem; color: var(--faint); margin-top: 0.35rem; }
/* fields: same height, radius and border everywhere */
body.admin-app main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]), select, .choices__inner) {
  min-height: var(--field-h) !important; padding: 0.45rem 0.85rem !important; font-size: 0.875rem; border-radius: var(--field-radius) !important; border: 1px solid var(--admin-hairline) !important;
}
body.admin-app main textarea { padding: 0.6rem 0.85rem !important; font-size: 0.875rem; border-radius: var(--field-radius) !important; border: 1px solid var(--admin-hairline) !important; min-height: 6rem; }
body.admin-app main :is(input, select, textarea)::placeholder { color: #cbd5e1; }
body.admin-app main .admin-episode-title input[name="title"] { min-height: 0 !important; padding: 0.6rem 0.9rem !important; font-size: 1.5rem; border-radius: 12px !important; }
/* checkboxes and radios: one look */
body.admin-app main input[type="checkbox"]:not(.admin-dropzone-input), body.admin-app main input[type="radio"]:not(.admin-dropzone-input) {
  width: 1rem; height: 1rem; accent-color: #0f172a; border-color: #cbd5e1;
}
/* toggles (Forms.Toggler): the track reads as a switch, label beside it */
body.admin-app main label.relative.inline-flex.items-center { gap: 0.6rem; font-size: 0.875rem; color: var(--label); }
/* buttons: one primary (dark pill), the rest ghost; both the same height */
body.admin-app main :is(button, a).bg-accent-base:not(.admin-dropzone *) { background: #0f172a !important; color: #fff !important; border: 0 !important; box-shadow: none !important; }
body.admin-app main :is(button, a).bg-accent-base:hover { background: #1e293b !important; }
body.admin-app main :is(button, a).rounded-full, body.admin-app main .admin-ghost-btn { min-height: var(--field-h); padding-inline: 1rem !important; border-radius: 9999px !important; font-size: 0.875rem; font-weight: 500; }
body.admin-app main > header :is(button, a).rounded-full { min-height: 2.25rem; }
/* the submit lives in the page header; a second copy at the bottom of the form is noise */
body.admin-app main:has(> header [type="submit"]) form > [type="submit"]:last-child,
body.admin-app main:has(> header [type="submit"]) form > .flex:last-child > [type="submit"]:only-child { display: none; }
/* the episode title: a textarea that wraps and grows, styled as the big title field */
body.admin-app main .admin-episode-title textarea[name="title"] {
  min-height: 0; height: auto; resize: none; overflow: hidden; line-height: 1.25;
  padding: 0.65rem 0.9rem !important; font-size: 1.5rem; font-weight: 500; letter-spacing: -0.01em; border-radius: 12px !important; background: #fff !important;
}
body.admin-app main .admin-episode-title textarea[name="title"]::placeholder { color: #cbd5e1; font-weight: 400; }
@media (max-width: 639px) { body.admin-app main .admin-episode-title textarea[name="title"] { font-size: 1.25rem; } }
/* episode form, reordered: Files and Details are open cards */
body.admin-app .admin-episode-files > div.flex.flex-col, body.admin-app .admin-episode-details > div.flex.flex-col { gap: 1rem !important; }
body.admin-app .admin-episode-files-grid, body.admin-app .admin-episode-details-grid { display: grid; gap: 1rem; width: 100%; }
@media (min-width: 768px) { body.admin-app .admin-episode-files-grid, body.admin-app .admin-episode-details-grid { grid-template-columns: 1fr 1fr; } }
body.admin-app .admin-episode-files-grid > *, body.admin-app .admin-episode-details-grid > * { min-width: 0; }
body.admin-app .admin-episode-title { width: 100%; }
/* sub-item chevron (white image before each item on hover/active): the pill already says it */
body.admin-app aside nav li a::before, body.admin-app aside nav li span::before { display: none !important; content: none !important; }

/* ===========================================================================
 * Lighter forms — 2026-10-26 (night). "Too chunky": boxes inside boxes.
 * Sections are headed groups separated by hairlines, not cards; file rows
 * are one line; fields are 36px with an 8px radius; nothing has a second
 * background inside the white panel.
 * ========================================================================= */
body.admin-app { --field-h: 2.25rem; --field-radius: 8px; --form-gap: 1rem; }
/* sections: flat */
body.admin-app main fieldset.bg-elevated,
body.admin-app main form:not(.admin-episode-form):not(:has(fieldset.bg-elevated)):not(:has(details.admin-fold)):not(#appearances-form) {
  background: transparent !important; padding: 0 !important; border-radius: 0 !important;
}
body.admin-app main fieldset.bg-elevated + fieldset.bg-elevated,
body.admin-app main fieldset.bg-elevated + details.admin-fold,
body.admin-app main details.admin-fold + details.admin-fold,
body.admin-app main details.admin-fold + fieldset.bg-elevated { border-top: 1px solid var(--admin-hairline) !important; padding-top: 1.25rem !important; }
body.admin-app main fieldset.bg-elevated > .admin-form-section-title { font-size: 0.8125rem; font-weight: 500; color: #0f172a; letter-spacing: 0.01em; }
body.admin-app main fieldset.bg-elevated > .admin-form-section-title .admin-form-section-icon { width: 1rem; height: 1rem; }
body.admin-app main fieldset.bg-elevated > div.flex.flex-col { padding-top: 0.75rem !important; }
body.admin-app form.admin-episode-form, body.admin-app main form { gap: 1.25rem !important; }
/* folds: flat rows */
body.admin-app details.admin-fold { background: transparent; border-radius: 0; }
body.admin-app details.admin-fold > summary { padding: 0.9rem 0; border-radius: 8px; gap: 0.65rem; }
body.admin-app details.admin-fold > summary:hover { background: transparent; }
body.admin-app details.admin-fold > summary:hover .admin-fold-title { color: #475569; }
body.admin-app details.admin-fold > summary .admin-fold-title { font-size: 0.875rem; }
body.admin-app details.admin-fold > summary .admin-fold-status { font-size: 0.75rem; }
body.admin-app details.admin-fold > .admin-fold-body { padding: 0 0 1.25rem; }
body.admin-app details.admin-fold fieldset.bg-elevated + fieldset.bg-elevated { padding-top: 1rem !important; }
/* fields */
body.admin-app main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]), select, .choices__inner) { padding: 0.35rem 0.7rem !important; }
body.admin-app main label.text-sm.font-semibold { margin-bottom: 0.25rem; }
/* file rows: one line, not a box */
body.admin-app main .admin-dropzone.has-file { display: flex; align-items: center; gap: 0.75rem; padding: 0.45rem 0.75rem; border: 1px solid var(--admin-hairline); border-radius: 8px; min-height: var(--field-h); }
body.admin-app main .admin-dropzone.has-file .admin-dropzone-ui { display: flex; align-items: center; gap: 0.75rem; width: 100%; }
body.admin-app main .admin-dropzone.has-file .admin-dropzone-copy { display: flex; flex-direction: row; align-items: center; gap: 0.6rem; flex: 1; min-width: 0; }
body.admin-app main .admin-dropzone.has-file .admin-dropzone-title { font-size: 0.8125rem; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.admin-app main .admin-dropzone.has-file .admin-dropzone-file { font-size: 0.75rem; color: var(--faint); white-space: nowrap; margin: 0; }
body.admin-app main .admin-dropzone.has-file .admin-dropzone-browse { order: 10; margin-left: auto; font-size: 0.75rem; padding: 0.2rem 0.6rem; border: 1px solid var(--admin-hairline); border-radius: 9999px; background: #fff; }
body.admin-app main .admin-dropzone:not(.has-file) { padding: 0.9rem 1rem; min-height: 0; border: 1px dashed #cbd5e1; border-radius: 8px; background: #fafbfc; }
body.admin-app main .admin-dropzone:not(.has-file) .admin-dropzone-title { font-size: 0.8125rem; font-weight: 500; }
body.admin-app main .admin-dropzone:not(.has-file) .admin-dropzone-browse { font-size: 0.75rem; }
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) { min-height: 8rem; border-radius: 10px; }
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) .admin-dropzone-title { font-size: 1rem; }
body.admin-app main .admin-file-actions { margin-top: 0.4rem; font-size: 0.75rem; }
/* the audio player under the audio row */
body.admin-app vm-player.admin-audio-field-player { min-height: 2.5rem; }
/* episode cards (Files, Details) are groups too */
body.admin-app .admin-episode-files > div.flex.flex-col, body.admin-app .admin-episode-details > div.flex.flex-col { gap: 0.75rem !important; }
body.admin-app main .admin-episode-title textarea[name="title"] { padding: 0.5rem 0.75rem !important; font-size: 1.375rem; border-radius: 8px !important; }
/* publish bar: lighter */
body.admin-app .admin-publication { padding-block: 0.65rem; }
/* fields are white on the white panel; the grey fill was another box */
body.admin-app main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]), select, textarea, .choices__inner) { background: #fff !important; }
body.admin-app main :is(input, select, textarea):focus { background: #fff !important; }
/* platform cards (admin-platforms.css): same lightness as the rest */
body.admin-app .pf-card { padding: 0.75rem 0.85rem !important; border-radius: 10px !important; gap: 0.5rem !important; }
/* the floating-panels block paints every .bg-elevated as a card with a
   higher-specificity selector; this outranks it so sections stay flat */
body.admin-app main fieldset.bg-elevated:not(#_) { background: transparent !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; }
body.admin-app main fieldset.bg-elevated:not(#_) + fieldset.bg-elevated,
body.admin-app main fieldset.bg-elevated:not(#_) + details.admin-fold { border-top: 1px solid var(--admin-hairline) !important; padding-top: 1.25rem !important; }

/* ===========================================================================
 * Files as cards in a tray; white fields with a soft lift — 2026-10-26
 * After Liza's references: a soft grey tray holds white attachment cards with
 * their metadata; inputs and editors are white boxes with a faint shadow.
 * ========================================================================= */
body.admin-app { --tray: #f4f6f9; --lift: 0 1px 2px rgba(15, 23, 42, 0.04), 0 0 0 1px #e8ebf0; --lift-hover: 0 2px 6px rgba(15, 23, 42, 0.06), 0 0 0 1px #d9dee6; }
/* the tray */
body.admin-app .admin-episode-files > div.flex.flex-col { background: var(--tray); border-radius: 16px; padding: 0.75rem !important; gap: 0.75rem !important; }
body.admin-app .admin-episode-files-grid { gap: 0.75rem; }
body.admin-app .admin-episode-files label.text-sm.font-semibold, body.admin-app .admin-episode-files legend { font-size: 0.75rem; color: var(--muted); margin: 0 0 0.3rem 0.25rem; }
body.admin-app .admin-episode-files [id$="Help"], body.admin-app .admin-episode-files small.text-skin-muted, body.admin-app .admin-episode-files p.text-skin-muted { margin: 0.35rem 0 0 0.25rem; }
/* attachment cards */
body.admin-app .admin-episode-files .admin-dropzone.has-file {
  display: flex; flex-direction: column; align-items: stretch; gap: 0.3rem; min-height: 0;
  padding: 0.85rem 0.95rem; background: #fff; border: 0; border-radius: 14px; box-shadow: var(--lift);
}
body.admin-app .admin-episode-files .admin-dropzone.has-file:hover { background: #fff; box-shadow: var(--lift-hover); }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-ui { flex-direction: column; align-items: stretch; gap: 0.3rem; }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-copy { flex-direction: column; align-items: flex-start; gap: 0.2rem; }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-title { font-size: 0.9375rem; font-weight: 500; white-space: normal; overflow-wrap: anywhere; line-height: 1.3; }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-file { font-family: ui-monospace, "SF Mono", Menlo, monospace; font-size: 0.75rem; color: var(--muted); }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-browse { align-self: flex-start; order: 10; margin: 0.5rem 0 0; padding: 0.3rem 0.7rem; background: #f1f5f9; border: 0; border-radius: 8px; font-size: 0.75rem; font-weight: 500; color: #334155; }
body.admin-app .admin-episode-files .admin-dropzone.has-file .admin-dropzone-preview-wrap { order: -1; }
body.admin-app .admin-episode-files .admin-dropzone.has-file[data-kind="image"] .admin-dropzone-preview { width: 100%; height: 6.5rem; border-radius: 10px; background-size: cover; }
/* empty slots: dashed add cards in the tray */
body.admin-app .admin-episode-files .admin-dropzone:not(.has-file) { background: #fff; border: 1px dashed #cbd5e1; border-radius: 14px; min-height: 5.5rem; box-shadow: none; }
body.admin-app .admin-episode-files .admin-dropzone:not(.has-file):hover { border-color: #94a3b8; background: #fff; }
/* the audio card holds the row and the player */
body.admin-app .admin-episode-hero .admin-audio-field { background: #fff; border-radius: 14px; padding: 0.85rem 0.95rem; box-shadow: var(--lift); }
body.admin-app .admin-episode-hero .admin-dropzone.has-file { padding: 0; box-shadow: none !important; border-radius: 0; }
body.admin-app .admin-episode-hero .admin-dropzone.has-file .admin-dropzone-ui { flex-direction: row; align-items: center; }
body.admin-app .admin-episode-hero .admin-dropzone.has-file .admin-dropzone-copy { flex-direction: row; align-items: baseline; gap: 0.6rem; }
body.admin-app .admin-episode-hero .admin-dropzone.has-file .admin-dropzone-browse { margin: 0 0 0 auto; }
body.admin-app .admin-episode-hero .admin-audio-field-player { margin-top: 0.6rem; }
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file) { background: #fff; min-height: 8rem; }
body.admin-app .admin-episode-hero #audio_fileHelp { margin-left: 0.25rem; }
body.admin-app .admin-episode-files .admin-file-actions { margin: 0.4rem 0 0 0.25rem; }
/* white fields with a soft lift */
body.admin-app main :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]), select, textarea, .choices__inner) { border-color: transparent !important; box-shadow: var(--lift); }
body.admin-app main :is(input, select, textarea):focus, body.admin-app main .choices.is-focused .choices__inner { box-shadow: var(--admin-focus), 0 0 0 1px #cbd5e1 !important; }
body.admin-app main .admin-rich-text, body.admin-app main .admin-rich-text-surface { background: #fff; }
body.admin-app main .admin-rich-text { border-radius: 14px; box-shadow: var(--lift); overflow: hidden; }
body.admin-app main .admin-rich-text-surface { border: 0 !important; }
body.admin-app main .admin-episode-title textarea[name="title"] { box-shadow: var(--lift); }
/* single-row nav groups with a count and a + (Episodes) */
body.admin-app .admin-nav-row { display: flex; align-items: center; gap: 0.25rem; margin: 0 0.5rem; }
body.admin-app .admin-nav-row a.admin-nav-single { flex: 1; margin: 0; }
body.admin-app .admin-nav-count { margin-left: auto; padding: 0.05rem 0.5rem; border-radius: 9999px; background: #fff; font-size: 0.7rem; font-weight: 400; color: #475569; }
body.admin-app a.admin-nav-single.is-active .admin-nav-count { background: #f1f5f9; }
body.admin-app .admin-nav-add { display: inline-flex; align-items: center; justify-content: center; width: 1.5rem; height: 1.5rem; border-radius: 9999px; color: #64748b; flex: none; }
body.admin-app .admin-nav-add:hover { background: #fff; color: #0f172a; }
@media (min-width: 768px) and (max-width: 1023px) {
  body.admin-app .admin-nav-row { margin: 0; justify-content: center; }
  body.admin-app .admin-nav-count, body.admin-app .admin-nav-add { display: none; }
}
/* tabs (episode + podcast pages): underline tabs on one baseline, not pills */
body.admin-app .admin-episode-tabs { gap: 1.5rem; margin-top: 0.85rem; border-bottom: 1px solid var(--admin-hairline); }
body.admin-app .admin-episode-tab {
  padding: 0.55rem 0 0.7rem; margin-bottom: -1px; border-radius: 0; border-bottom: 2px solid transparent;
  font-size: 0.875rem; font-weight: 500; color: #64748b; background: transparent !important;
}
body.admin-app .admin-episode-tab:hover { color: #0f172a; background: transparent; }
body.admin-app .admin-episode-tab.is-active { color: #0f172a; border-bottom-color: #0f172a; background: transparent !important; }
body.admin-app .admin-episode-tab--external { margin-left: auto; font-size: 0.8125rem; color: #64748b; }
body.admin-app .admin-episode-tab--external:hover { color: #0f172a; }
body.admin-app .admin-episode-tab:focus-visible { box-shadow: none; outline: 2px solid #94a3b8; outline-offset: 2px; border-radius: 4px; }
@media (max-width: 767px) { body.admin-app .admin-episode-tabs { gap: 1.1rem; } body.admin-app .admin-episode-tab--external { margin-left: 0.5rem; } }

/* ===========================================================================
 * QC round 2 fixes — 2026-10-26 (night)
 * ========================================================================= */
/* one ink for every primary (the header buttons used --brand-ink = #171717) */
body.admin-app { --brand-ink: #0f172a; --faint: #6b7280; }
/* focus rings last, so nothing above can cancel them (the primary rule had box-shadow:none !important) */
body.admin-app :is(button, a, summary, [tabindex], input, select, textarea, .admin-dropzone):focus-visible { box-shadow: var(--admin-focus) !important; outline: none !important; }
body.admin-app .admin-rich-text-btn:focus-visible { box-shadow: var(--admin-focus) !important; outline: none !important; }
body.admin-app aside nav summary { cursor: pointer; }
body.admin-app aside nav summary:focus:not(:focus-visible) { box-shadow: none !important; }
/* publish bar: the date picker sits inside the pill row's fieldset; wrap it to its own line */
body.admin-app .admin-publication-actions { flex-wrap: wrap; }
body.admin-app .admin-publication-schedule { flex-basis: 100%; order: 10; margin-top: 0.5rem !important; }
body.admin-app .admin-publication-schedule .admin-publication-timezone { white-space: nowrap; }
body.admin-app .admin-publication-choice-title { white-space: nowrap; }
/* tablet rail: the nav must not clip its own flyouts */
@media (min-width: 768px) and (max-width: 1023px) { body.admin-app aside nav { overflow: visible !important; } body.admin-app > aside.bg-navigation { overflow: visible !important; } }
/* sidebar rows were 316px in a 300px column */
body.admin-app aside nav details summary { width: auto; }
/* chapters block ran off the card at 768 */
body.admin-app .admin-chapters-block, body.admin-app .admin-chapters, body.admin-app .admin-chapter-rows { min-width: 0 !important; max-width: 100%; }
body.admin-app .admin-chapter-row { flex-wrap: wrap; }
body.admin-app .admin-chapter-row input { min-width: 0; }
/* GET forms (search) stay a row */
body.admin-app main form[method="get" i], body.admin-app main form:not([method]):has(input[name="q"]), body.admin-app main form[method="GET"] { display: flex !important; flex-direction: row !important; align-items: center; gap: 0.5rem !important; max-width: 28rem !important; }
/* destructive and secondary actions are ghosts; only Save is dark */
body.admin-app main :is(a, button).bg-red-600, body.admin-app main :is(a, button).bg-red-500 { background: #fff !important; color: #b91c1c !important; box-shadow: 0 0 0 1px #fecaca !important; }
body.admin-app main :is(a, button).bg-red-600:hover { background: #fef2f2 !important; }
body.admin-app main details.admin-fold :is(a, button).bg-accent-base,
body.admin-app main :is(a, button).bg-accent-base:not([type="submit"]):not(.js-publication-submit):not(.admin-nav-add) { background: #fff !important; color: #0f172a !important; box-shadow: 0 0 0 1px var(--admin-hairline) !important; }
body.admin-app main > header :is(a, button).bg-accent-base:not([type="submit"]) { background: #0f172a !important; color: #fff !important; box-shadow: none !important; }
body.admin-app main :is(button, a).bg-gray-200, body.admin-app main :is(button, a).bg-gray-300, body.admin-app main :is(button, a).border-accent-base { background: #fff !important; color: #334155 !important; border: 0 !important; box-shadow: 0 0 0 1px var(--admin-hairline) !important; }
body.admin-app main :is(button, a).underline:not(.admin-episode-tab) { text-decoration: none; font-size: 0.8125rem; font-weight: 500; color: #475569; padding: 0.3rem 0.7rem; border-radius: 9999px; box-shadow: 0 0 0 1px var(--admin-hairline); background: #fff; }
body.admin-app main :is(button, a).underline:not(.admin-episode-tab):hover { color: #0f172a; background: #f8fafc; }
body.admin-app main .cursor-not-allowed { opacity: 0.45; }
/* lighter dashed drop zones; header status pill like the others */
body.admin-app main .admin-dropzone:not(.has-file) { border-color: #dde3ea; }
body.admin-app .admin-status-pill { text-transform: none !important; letter-spacing: 0; border: 0 !important; }
/* radio pills (type / explicit): hairline, ink when selected */
body.admin-app main label:has(> input[type="radio"].sr-only), body.admin-app main label.border-accent-base { border: 1px solid var(--admin-hairline) !important; }
/* labels: one size everywhere, platform pages included */
body.admin-app main label:not(.admin-dropzone):not(.sr-only):not(.admin-publication-choice), body.admin-app main legend { font-size: 0.8125rem !important; font-weight: 500 !important; color: var(--label) !important; }
body.admin-app .admin-episode-files label.text-sm.font-semibold, body.admin-app .admin-episode-files legend { font-size: 0.8125rem; color: var(--label); }
/* helper text meets AA on white and on the tray */
body.admin-app main [id$="Help"], body.admin-app main small.text-skin-muted, body.admin-app main p.text-sm.text-skin-muted, body.admin-app main .text-skin-muted, body.admin-app .admin-glance-sub, body.admin-app .admin-cal-dow, body.admin-app main table thead th { color: #64748b !important; }
/* no shadows on selection states; opaque sticky header (content ghosted through) */
body.admin-app aside nav li a.font-semibold, body.admin-app aside nav li a[aria-current="page"], body.admin-app a.admin-nav-single.is-active, body.admin-app .admin-publication-choice:has(input:checked) { box-shadow: none !important; }
body.admin-app main > header.sticky-header-outer { background: #fff !important; backdrop-filter: none; }
/* H1 wraps instead of truncating with room to spare; the number chip stays on one line */
body.admin-app .sticky-header-title-row h1 { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.2; }
body.admin-app main abbr.border, body.admin-app main table abbr { white-space: nowrap; }
/* podcast edit: the form is a two-column flex container; give it room */
body.admin-app main form.xl\:flex-row-reverse { max-width: 70rem !important; }
body.admin-app main form.xl\:flex-row-reverse > div:first-child { flex: 1 1 42rem; min-width: 0; }
/* podcast home: latest episodes as light cards in a wrapping grid */
body.admin-app .admin-podcast-home .grid-cols-latestEpisodes { grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); overflow: visible; padding: 0.5rem 0 0; margin: 0; gap: 1rem; }
body.admin-app .admin-podcast-home article { background: #fff; border: 0 !important; box-shadow: var(--lift); border-radius: 14px; max-width: none; }
body.admin-app .admin-podcast-home article > a { color: #0f172a; }
body.admin-app .admin-podcast-home article .backdrop-gradient { display: none; }
body.admin-app .admin-podcast-home article .bg-header { background: #f1f5f9; aspect-ratio: 1; height: auto; }
body.admin-app .admin-podcast-home article .absolute.z-20 { position: static; padding: 0.6rem 0.75rem 0.75rem; }
body.admin-app .admin-podcast-home article .absolute.z-20 abbr { background: #f1f5f9 !important; color: #475569; }
body.admin-app .admin-podcast-home article .absolute.z-20 .font-semibold { color: #0f172a; font-weight: 500; font-size: 0.8125rem; }
body.admin-app .admin-podcast-home article > button { color: #0f172a; background: #fff !important; box-shadow: var(--lift); opacity: 1; transform: none; }
body.admin-app .admin-podcast-home h2 { font-size: 0.8125rem !important; font-weight: 500 !important; color: #0f172a; }
body.admin-app .admin-podcast-home header a.underline { font-size: 0.8125rem; }
/* sidebar rows: full width minus the side margins (the w-full + margin overflowed; width:auto collapsed them) */
body.admin-app aside nav details summary { width: calc(100% - 1rem); box-sizing: border-box; }
/* publish bar: a plain strip, not a card. Sticky inside the form, so it must look
   right both pinned at the bottom and when it scrolls away with the form's end. */
body.admin-app .admin-publication { border: 0 !important; border-top: 1px solid var(--admin-hairline) !important; border-radius: 0 !important; background: #fff !important; backdrop-filter: none; box-shadow: 0 -8px 16px -12px rgba(15, 23, 42, 0.08); }
body.admin-app .admin-publication-footer { gap: 0.5rem; }
/* the Delete row under the form: quiet, with room */
body.admin-app main form.admin-episode-form + * { margin-top: 1.5rem; padding-top: 1rem; border-top: 1px solid var(--admin-hairline); }
body.admin-app main form.admin-episode-form ~ a[title], body.admin-app main form.admin-episode-form ~ div a.cursor-not-allowed { color: #94a3b8; font-size: 0.8125rem; }
/* Choices (persons / roles pickers): hide the original select, lay the chips out */
body.admin-app .choices__inner > select { display: none !important; }
body.admin-app .choices { width: 100%; }
body.admin-app .choices__inner { display: flex !important; flex-wrap: wrap; align-items: center; gap: 0.3rem; min-height: var(--field-h) !important; padding: 0.3rem 0.6rem !important; }
body.admin-app .choices__list--multiple { display: contents; }
body.admin-app .choices__list--multiple .choices__item { margin: 0; padding: 0.15rem 0.55rem; border-radius: 9999px; background: #f1f5f9; border: 0; color: #0f172a; font-size: 0.8125rem; }
body.admin-app .choices__input--cloned { flex: 1 1 8rem; min-width: 8rem; margin: 0; padding: 0.2rem 0.2rem !important; background: transparent !important; box-shadow: none !important; min-height: 0 !important; }
body.admin-app .choices__list--dropdown, body.admin-app .choices__list[aria-expanded] { border: 0; border-radius: 10px; box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12), 0 0 0 1px var(--admin-hairline); margin-top: 0.25rem; }
body.admin-app .choices__list--dropdown .choices__item--selectable.is-highlighted { background: #f1f5f9; }

/* --- form sections: a faint, padded surface (Liza) ----------------------- */
body.admin-app { --section-bg: #f8fafc; }
body.admin-app main fieldset.bg-elevated:not(#_) { background: var(--section-bg) !important; padding: 1.25rem 1.5rem 1.5rem !important; border-radius: 16px !important; border: 0 !important; }
body.admin-app main fieldset.bg-elevated:not(#_) + fieldset.bg-elevated,
body.admin-app main fieldset.bg-elevated:not(#_) + details.admin-fold,
body.admin-app main details.admin-fold + details.admin-fold,
body.admin-app main details.admin-fold + fieldset.bg-elevated { border-top: 0 !important; padding-top: inherit !important; }
body.admin-app main fieldset.bg-elevated:not(#_) + details.admin-fold { padding-top: 0 !important; }
body.admin-app main details.admin-fold { background: var(--section-bg); border-radius: 16px; }
body.admin-app main details.admin-fold > summary { padding: 1rem 1.5rem; border-radius: 16px; }
body.admin-app main details.admin-fold[open] > summary { border-radius: 16px 16px 0 0; }
body.admin-app main details.admin-fold > .admin-fold-body { padding: 0 1.5rem 1.5rem; }
body.admin-app form.admin-episode-form, body.admin-app main form { gap: 0.75rem !important; }
/* nested surfaces inside a section: the files tray and fold sub-sections go flat */
body.admin-app .admin-episode-files > div.flex.flex-col { background: transparent; padding: 0 !important; }
body.admin-app details.admin-fold fieldset.bg-elevated:not(#_) { background: transparent !important; padding: 0 !important; }
body.admin-app details.admin-fold fieldset.bg-elevated:not(#_) + fieldset.bg-elevated:not(#_) { border-top: 1px solid #e8ebf0 !important; padding-top: 1rem !important; }
/* fields stay white on the faint surface */
body.admin-app main fieldset.bg-elevated :is(input, select, textarea, .choices__inner), body.admin-app main details.admin-fold :is(input, select, textarea, .choices__inner) { background: #fff !important; }
body.admin-app .admin-episode-hero .admin-dropzone[data-kind="audio"]:not(.has-file), body.admin-app .admin-episode-files .admin-dropzone:not(.has-file) { background: #fff; }
/* forms without sections get the same surface */
body.admin-app main form:not(.admin-episode-form):not(:has(fieldset.bg-elevated)):not(:has(details.admin-fold)):not(#appearances-form)[method="post" i] { background: var(--section-bg) !important; padding: 1.25rem 1.5rem 1.5rem !important; border-radius: 16px !important; }

/* --- tables: minimal lines, no card ---------------------------------------- */
body.admin-app main .overflow-x-auto.bg-elevated { background: transparent !important; border: 0 !important; box-shadow: none !important; border-radius: 0 !important; }
body.admin-app main table { border: 0 !important; background: transparent; }
body.admin-app main table thead th { padding: 0.5rem 0.75rem; font-size: 0.6875rem; letter-spacing: 0.06em; color: #64748b; border-bottom: 1px solid #e8ebf0 !important; }
body.admin-app main table tbody tr { border-top: 0 !important; }
body.admin-app main table tbody td { padding: 0.8rem 0.75rem !important; border-bottom: 1px solid #eef1f5 !important; vertical-align: middle; }
body.admin-app main table tbody tr:last-child td { border-bottom: 0 !important; }
body.admin-app main table tbody tr:hover { background: #f8fafc; }
/* row actions: small ghosts, destructive in red text */
body.admin-app main table :is(a, button).rounded-full { min-height: 2rem; padding: 0.2rem 0.7rem !important; font-size: 0.75rem; }
body.admin-app main table :is(a, button).bg-red-600 { color: #b91c1c !important; background: #fff !important; box-shadow: 0 0 0 1px #fecaca !important; }

/* --- inputs: white with one thin border (Liza) ---------------------------- */
body.admin-app { --field-border: #dfe3e9; }
body.admin-app main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), select, textarea, .choices__inner, .admin-dropzone.has-file, .admin-rich-text, .admin-xml-editor, permalink-edit) { background: #fff !important; border: 1px solid var(--field-border) !important; box-shadow: none !important; }
body.admin-app main .admin-rich-text { border-radius: var(--field-radius) !important; overflow: hidden; }
body.admin-app main .admin-rich-text-toolbar { background: #fff !important; border-bottom: 1px solid var(--field-border) !important; }
body.admin-app main .admin-rich-text-surface { border: 0 !important; box-shadow: none !important; }
body.admin-app main :is(input, select, textarea):focus, body.admin-app main .admin-rich-text:focus-within, body.admin-app main .choices.is-focused .choices__inner { border-color: #94a3b8 !important; box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.06) !important; }
/* "About page" fold already names the field: hide the repeated label */
body.admin-app .admin-fold[data-fold="about"] label[for="about"] { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
body.admin-app header :is(a, button) svg { color: inherit !important; opacity: 0.8; }

/* --- show-notes sections: head row + editor, no outer card (Liza) --------- */
body.admin-app .admin-notes-section:not(#_) { padding: 0; border: 0; border-radius: 0; background: transparent; gap: 0.4rem; }
body.admin-app [data-notes-section-list] { display: flex; flex-direction: column; gap: 1.25rem; }
body.admin-app .admin-notes-section-head:not(#_) { flex-wrap: nowrap; gap: 0.5rem; }
body.admin-app main .admin-notes-section-name:not(#_) { flex: 1; min-width: 0; min-height: 0 !important; padding: 0.2rem 0 !important; border: 0 !important; border-bottom: 1px solid transparent !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; font-size: 0.9375rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
body.admin-app main .admin-notes-section-name:not(#_):focus { border-bottom-color: var(--field-border) !important; }
body.admin-app .admin-notes-section-name-wrap:not(#_) { flex: 1 1 6rem; }
body.admin-app .admin-notes-section-head .admin-link-remove:not(#_), body.admin-app .admin-notes-section-append:not(#_) { font-size: 0.75rem; font-weight: 500; color: #64748b; text-decoration: none; white-space: nowrap; padding: 0.2rem 0.5rem; border-radius: 6px; }
body.admin-app .admin-notes-section-head .admin-link-remove:not(#_):hover { background: #f1f5f9; color: #0f172a; }
body.admin-app .admin-notes-section-head [data-remove-section]:not(#_):hover { color: #b91c1c; background: #fef2f2; }
body.admin-app .admin-notes-section-append input { width: 0.9rem; height: 0.9rem; margin: 0; }
body.admin-app .admin-notes-section-actions:not(#_) { margin-top: 0.25rem; }
body.admin-app .admin-notes-section-append input:not(#_) { width: 0.95rem; height: 0.95rem; border: 1px solid #94a3b8 !important; border-radius: 4px; accent-color: #0f172a; background: #fff; appearance: auto; }
body.admin-app .admin-notes-sections > [data-notes-section-list] { margin-top: 0.9rem; }
body.admin-app header :is(a, button).rounded-full.bg-accent-base svg { color: inherit !important; }

/* --- specificity fixes: every text field white + thin, everywhere --------- */
body.admin-app main :is(input:not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="range"]):not([type="color"]):not([type="hidden"]):not([type="submit"]):not([type="button"]), select, textarea):not(#_) { background: #fff !important; border: 1px solid var(--field-border) !important; border-radius: var(--field-radius) !important; box-shadow: none !important; }
body.admin-app main :is(input, select, textarea):not(#_):focus { border-color: #94a3b8 !important; box-shadow: 0 0 0 3px rgba(15, 23, 42, 0.06) !important; }
/* Choices: the typed-in search input inside the picker is not a field of its own */
body.admin-app main .choices__inner input.choices__input:not(#_):not(#_):not(#_) { background: transparent !important; border: 0 !important; box-shadow: none !important; min-height: 0 !important; padding: 0.15rem 0.1rem !important; margin: 0; font-size: 0.875rem; }
/* selected radio pills read white on ink */
body.admin-app main .form-radio-btn:checked + label:not(#_) { color: #fff !important; }
body.admin-app main .form-radio-btn:checked + label:not(#_) [data-tooltip] { color: #fff; opacity: 0.8; }
/* radio groups sit flat on the section, no band behind them */
body.admin-app main fieldset:not(.bg-elevated):not(.admin-chapters-block):not(#_) { background: transparent !important; padding: 0 !important; border: 0 !important; }

/* --- analytics overview report (Liza, 2026-10-27) ------------------------- */
body.admin-app .admin-range { display: inline-flex; gap: 0.15rem; padding: 0.2rem; border-radius: 9999px; background: #f1f5f9; }
body.admin-app .admin-range-item { padding: 0.35rem 0.8rem; border-radius: 9999px; font-size: 0.8125rem; font-weight: 500; color: #475569; text-decoration: none; }
body.admin-app .admin-range-item.is-active { background: #fff; color: #0f172a; box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08); }
body.admin-app .admin-range-caption { margin: 0 0 1rem; font-size: 0.8125rem; color: var(--faint, #6b7280); }
body.admin-app .admin-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: 0.75rem; margin-bottom: 1rem; }
body.admin-app .admin-kpi { display: flex; flex-direction: column; gap: 0.2rem; padding: 1rem 1.1rem; border-radius: 16px; background: #f8fafc; }
body.admin-app .admin-kpi-label { font-size: 0.75rem; font-weight: 500; color: #64748b; }
body.admin-app .admin-kpi-value { font-size: 1.75rem; font-weight: 600; letter-spacing: -0.02em; color: #0f172a; line-height: 1.1; }
body.admin-app .admin-kpi-delta { font-size: 0.75rem; color: #64748b; }
body.admin-app .admin-kpi-delta.is-up { color: #15803d; }
body.admin-app .admin-kpi-delta.is-down { color: #b91c1c; }
body.admin-app .admin-report { padding: 1rem 1.1rem 1.1rem; border-radius: 16px; background: #f8fafc; margin-bottom: 0.75rem; }
body.admin-app .admin-report > header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 0.75rem; }
body.admin-app .admin-report h2 { margin: 0; font-size: 0.9375rem; font-weight: 600; color: #0f172a; }
body.admin-app .admin-report-link { font-size: 0.75rem; color: #64748b; text-decoration: none; white-space: nowrap; }
body.admin-app .admin-report-link:hover { color: #0f172a; }
body.admin-app .admin-report-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); gap: 0.75rem; }
body.admin-app .admin-bars { display: block; width: 100%; height: 9rem; }
body.admin-app .admin-bars--hours { height: 5.5rem; }
body.admin-app .admin-bars rect { fill: #0f172a; }
body.admin-app .admin-bars rect.is-zero { fill: #cbd5e1; }
body.admin-app .admin-bars rect:hover { fill: #475569; }
body.admin-app .admin-bars-axis { display: flex; justify-content: space-between; margin-top: 0.35rem; font-size: 0.6875rem; color: #94a3b8; }
body.admin-app .admin-share { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
body.admin-app .admin-share li { display: grid; grid-template-columns: minmax(0, 11rem) 1fr auto; align-items: center; gap: 0.75rem; font-size: 0.8125rem; }
body.admin-app .admin-share--episodes li { grid-template-columns: minmax(0, 1fr) 6rem auto; }
body.admin-app .admin-share-label { color: #0f172a; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-decoration: none; }
body.admin-app .admin-share-label small { color: #64748b; font-weight: 500; }
body.admin-app a.admin-share-label:hover { text-decoration: underline; }
body.admin-app .admin-share-bar { display: block; height: 0.4rem; border-radius: 9999px; background: #e2e8f0; overflow: hidden; }
body.admin-app .admin-share-bar i { display: block; height: 100%; border-radius: 9999px; background: #0f172a; }
body.admin-app .admin-share-num { font-variant-numeric: tabular-nums; color: #0f172a; white-space: nowrap; }
body.admin-app .admin-share-num small { color: #94a3b8; }
body.admin-app .admin-empty { margin: 0; font-size: 0.8125rem; color: #94a3b8; }

/* --- episode overview: roomier preview column (Liza) ----------------------- */
@media (min-width: 900px) {
  body.admin-app .admin-episode { grid-template-columns: minmax(0, 1fr) minmax(17rem, 20rem); gap: 1.25rem; }
}
body.admin-app .admin-episode-preview-body { padding: 1.75rem 2rem 2rem; gap: 0; }
body.admin-app .admin-episode-preview-head { gap: 1.25rem; }
body.admin-app .admin-episode-cover { width: 120px; height: 120px; }
body.admin-app .admin-episode-notes, body.admin-app .admin-episode-sections, body.admin-app .admin-episode-timestamps, body.admin-app .admin-episode-keywords { margin-top: 1.75rem; }
body.admin-app .admin-episode-notes-body, body.admin-app .admin-episode-notes > .admin-episode-empty, body.admin-app .admin-episode-sections .public-notes-section-body { font-size: 0.9375rem; line-height: 1.65; }
body.admin-app .admin-episode-notes-body > * + *, body.admin-app .admin-episode-sections .public-notes-section-body > * + * { margin-top: 0.6rem; }
body.admin-app .admin-episode-sections .public-notes-section + .public-notes-section { margin-top: 1.25rem; }
body.admin-app .admin-episode-player { margin-top: 0.75rem; }
body.admin-app main .admin-notes-section-name:not(#_):not(#_) { padding: 0.4rem 0.75rem !important; min-height: var(--field-h) !important; }
body.admin-app header .flex-wrap.truncate { row-gap: 0.6rem; }
body.admin-app header h1 + .admin-status { margin-left: 0.6rem; }
/* header destructive buttons: red text on white, not white on white */
body.admin-app header :is(a, button).rounded-full.bg-red-600 { color: #b91c1c !important; background: #fff !important; box-shadow: 0 0 0 1px #fecaca !important; }
body.admin-app header :is(a, button).rounded-full.bg-red-600:hover { background: #fef2f2 !important; }
body.admin-app header :is(a, button).rounded-full.bg-red-600 svg { color: inherit !important; }
/* episode sub-tabs: the H1 already is the episode, so the breadcrumb stops at Episodes */
body.admin-app header:has(.admin-episode-tabs) .breadcrumb-item:nth-child(n+5) { display: none; }
/* even inset on every form section, first or not */
body.admin-app main fieldset.bg-elevated:not(#_):not(#_) { padding: 1.5rem !important; }
body.admin-app main details.admin-fold fieldset.bg-elevated:not(#_):not(#_) { padding: 0 !important; }
body.admin-app main details.admin-fold fieldset.bg-elevated:not(#_):not(#_) + fieldset.bg-elevated { padding-top: 1rem !important; }
body.admin-app main details.admin-fold > summary { padding: 1.25rem 1.5rem; }
body.admin-app main details.admin-fold > .admin-fold-body { padding: 0 1.5rem 1.5rem; }
/* stable header across tabs: title column has a fixed width, pill always under it */
@media (min-width: 900px) {
  body.admin-app main header .flex-wrap.truncate { flex: 0 0 calc(100% - 15rem); max-width: calc(100% - 15rem); }
  body.admin-app main header .flex-wrap.truncate > h1 { flex: 0 0 100%; }
  body.admin-app main header .flex-wrap.truncate > .admin-status { margin-left: 0.25rem; }
  body.admin-app main header .flex-wrap.truncate + .flex-shrink-0 { flex: 1 1 auto; justify-content: flex-end; align-self: flex-start; }
}
/* all forms sit centred like the episode form; width-capped blocks next to them follow */
body.admin-app main form[method="post" i], body.admin-app main form[method="POST"] { margin-inline: auto !important; width: 100%; }
body.admin-app main > div > :is(.max-w-xl, .max-w-2xl, .max-w-3xl, .max-w-4xl):not(form) { margin-inline: auto; }
body.admin-app main #podcast-edit-form { justify-content: center; }
body.admin-app main #podcast-edit-form .admin-podcast-form { max-width: none; width: 100%; margin-inline: auto; }
body.admin-app .admin-nav-group-link { color: inherit; text-decoration: none; }
body.admin-app .admin-nav-group-link:hover { opacity: 0.8; }
/* episode-card "more" button: a small circle, not a full-size pill */
body.admin-app main article button[id^="more-dropdown-"]:not(#_) { width: 1.75rem; height: 1.75rem; min-height: 0 !important; padding: 0 !important; display: inline-flex; align-items: center; justify-content: center; font-size: 0.95rem; margin: 0.5rem 0.5rem 0 0; }
/* episode pages have no sticky site nav: the show-notes tab bar sticks at the top (under the admin bar if any) */
body.public-site:not(:has(nav.bg-header, .public-episode-nav)) .public-content-sticky { top: var(--public-admin-height, 0px); }
body.admin-app .admin-report--history { margin-top: 1.25rem; background: #fff; border: 1px solid var(--admin-hairline); }
body.admin-app .admin-history-h3 { margin: 0 0 0.5rem; font-size: 0.8125rem; font-weight: 600; color: #0f172a; }
/* chart tooltips: dark slate bubble with white text, whatever the series colour */
body.admin-app [data-chart-type] g[role="tooltip"] path { fill: #0f172a !important; stroke: none !important; }
body.admin-app [data-chart-type] g[role="tooltip"] text, body.admin-app [data-chart-type] g[role="tooltip"] tspan { fill: #fff !important; font-size: 12px; }
