/* ============================================================
   YSR ADMIN — premium ink & gold, matching the site design system
   ============================================================ */

:root {
  --ink-0: #08090c;
  --ink-1: #0d0f13;
  --ink-2: #12151b;
  --ink-3: #1a1e26;
  --hairline: rgba(244, 239, 230, 0.10);
  --hairline-strong: rgba(244, 239, 230, 0.18);
  --parch-0: #f6f2e9;
  --gold: #c9a45c;
  --gold-bright: #e6c47c;
  --gold-deep: #9a7a3c;
  --gold-glow: rgba(201, 164, 92, 0.35);
  --text-hi: #f5f2ea;
  --text-mid: #c9c4b8;
  --text-lo: #918c80;
  --ok: #7fbf7f;
  --warn: #e0b458;
  --bad: #e07a6a;
  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Inter", -apple-system, sans-serif;
  --radius: 14px;
  --radius-lg: 20px;
  --side-w: 248px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-body);
  font-size: 0.95rem;
  line-height: 1.6;
  color: var(--text-hi);
  background: var(--ink-0);
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
::selection { background: var(--gold); color: var(--ink-0); }

h1, h2, h3 { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; line-height: 1.15; }

/* ---------- Shell ---------- */
.shell { display: flex; min-height: 100vh; }

.side {
  width: var(--side-w);
  flex-shrink: 0;
  background: linear-gradient(180deg, var(--ink-1), var(--ink-0));
  border-right: 1px solid var(--hairline);
  display: flex; flex-direction: column;
  position: sticky; top: 0; height: 100vh;
}
.side__logo {
  display: flex; align-items: center; gap: 0.7rem;
  padding: 1.4rem 1.5rem 1.2rem;
  border-bottom: 1px solid var(--hairline);
}
.side__logo img { height: 34px; }
.side__logo span {
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.3em; text-transform: uppercase;
  color: var(--gold);
}
.side__nav { flex: 1; overflow-y: auto; padding: 1.2rem 0.9rem; }
.side__group {
  font-size: 0.66rem; font-weight: 700; letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--text-lo);
  padding: 1.1rem 0.7rem 0.5rem;
}
.side__group:first-child { padding-top: 0; }
.side__link {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.6rem 0.7rem;
  border-radius: 10px;
  color: var(--text-mid);
  font-weight: 500;
  transition: background 0.25s, color 0.25s;
  position: relative;
}
.side__link:hover { background: rgba(244,239,230,0.05); color: var(--text-hi); }
.side__link.is-active {
  background: linear-gradient(90deg, rgba(201,164,92,0.16), rgba(201,164,92,0.05));
  color: var(--gold-bright);
}
.side__link.is-active::before {
  content: ""; position: absolute; left: -0.9rem; top: 20%; bottom: 20%;
  width: 3px; border-radius: 3px; background: var(--gold);
}
.side__icon { width: 1.2rem; text-align: center; color: var(--gold); opacity: 0.85; }
.side__foot { padding: 1rem 1.5rem; border-top: 1px solid var(--hairline); }
.side__site { font-size: 0.82rem; color: var(--text-lo); }
.side__site:hover { color: var(--gold); }

.main { flex: 1; min-width: 0; display: flex; flex-direction: column; }

.topbar {
  display: flex; align-items: center; gap: 1rem;
  padding: 0.9rem 2rem;
  border-bottom: 1px solid var(--hairline);
  background: rgba(13,15,19,0.8);
  backdrop-filter: blur(10px);
  position: sticky; top: 0; z-index: 40;
}
.topbar__burger { display: none; flex-direction: column; gap: 4px; padding: 6px; }
.topbar__burger span { width: 20px; height: 2px; background: var(--text-mid); border-radius: 2px; }
.topbar__title { font-family: var(--font-display); font-size: 1.25rem; flex: 1; }
.topbar__user { display: flex; align-items: center; gap: 0.8rem; cursor: pointer; position: relative; }
.topbar__meta { text-align: right; line-height: 1.25; }
.topbar__meta strong { display: block; font-size: 0.88rem; font-weight: 600; }
.topbar__meta span { font-size: 0.72rem; color: var(--gold); letter-spacing: 0.08em; }
.avatar {
  width: 40px; height: 40px; border-radius: 50%;
  object-fit: cover;
  border: 1px solid var(--hairline-strong);
  box-shadow: 0 0 0 2px rgba(201,164,92,0.25);
}
.avatar--init {
  display: grid; place-items: center;
  background: linear-gradient(135deg, var(--gold-deep), var(--gold));
  color: var(--ink-0); font-weight: 700; font-size: 0.85rem;
}
.avatar--lg { width: 96px; height: 96px; font-size: 1.6rem; }
.usermenu {
  position: absolute; right: 0; top: calc(100% + 10px);
  min-width: 170px;
  background: var(--ink-2);
  border: 1px solid var(--hairline-strong);
  border-radius: 12px;
  box-shadow: 0 24px 60px -12px rgba(0,0,0,0.7);
  padding: 0.4rem;
  display: none; z-index: 60;
}
.usermenu.open { display: block; }
.usermenu a { display: block; padding: 0.55rem 0.8rem; border-radius: 8px; font-size: 0.88rem; color: var(--text-mid); }
.usermenu a:hover { background: rgba(244,239,230,0.06); color: var(--text-hi); }

.content { padding: 2rem; max-width: 1240px; width: 100%; margin-inline: auto; flex: 1; }

/* ---------- Cards / panels ---------- */
.card {
  background: linear-gradient(180deg, var(--ink-2), var(--ink-1));
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  padding: 1.5rem 1.6rem;
}
.card + .card, .card + .tablewrap, .tablewrap + .card { margin-top: 1.4rem; }
.card__head { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.1rem; }
.card__title { font-size: 1.15rem; }
.card__hint { font-size: 0.8rem; color: var(--text-lo); }

.grid { display: grid; gap: 1.4rem; }
.grid--stats { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
.grid--2 { grid-template-columns: 2fr 1fr; align-items: start; }
@media (max-width: 1000px) { .grid--2 { grid-template-columns: 1fr; } }

.stat {
  background: linear-gradient(180deg, var(--ink-2), var(--ink-1));
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  padding: 1.3rem 1.5rem;
  position: relative; overflow: hidden;
}
.stat::after {
  content: ""; position: absolute; inset: auto -30% -60% auto; width: 70%; aspect-ratio: 1;
  background: radial-gradient(closest-side, rgba(201,164,92,0.12), transparent 70%);
}
.stat__label { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-lo); }
.stat__value { font-family: var(--font-display); font-size: 2.1rem; margin-top: 0.2rem; color: var(--text-hi); }
.stat__sub { font-size: 0.78rem; color: var(--gold); margin-top: 0.1rem; }

.eyebrow {
  font-size: 0.72rem; font-weight: 600; letter-spacing: 0.26em; text-transform: uppercase;
  color: var(--gold);
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  padding: 0.62rem 1.3rem;
  border-radius: 999px;
  font-weight: 600; font-size: 0.88rem;
  transition: transform 0.25s var(--ease), box-shadow 0.25s, background 0.25s, color 0.25s;
  white-space: nowrap;
}
.btn:active { transform: scale(0.97); }
.btn--gold {
  background: linear-gradient(135deg, var(--gold-bright), var(--gold-deep));
  color: var(--ink-0);
  box-shadow: 0 10px 26px -10px var(--gold-glow);
}
.btn--gold:hover { transform: translateY(-1px); box-shadow: 0 16px 34px -10px var(--gold-glow); }
.btn--ghost { border: 1px solid var(--hairline-strong); color: var(--text-mid); }
.btn--ghost:hover { border-color: var(--gold); color: var(--gold-bright); }
.btn--danger { border: 1px solid rgba(224,122,106,0.45); color: var(--bad); }
.btn--danger:hover { background: rgba(224,122,106,0.12); }
.btn--sm { padding: 0.4rem 0.95rem; font-size: 0.8rem; }
.btn[disabled] { opacity: 0.45; cursor: not-allowed; transform: none !important; }

/* ---------- Forms ---------- */
.field-label {
  display: block;
  font-size: 0.74rem; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--text-lo);
  margin: 1.1rem 0 0.45rem;
}
.field-label:first-child { margin-top: 0; }
.field, textarea.field, select.field {
  width: 100%;
  background: var(--ink-0);
  border: 1px solid var(--hairline-strong);
  border-radius: 10px;
  padding: 0.72rem 0.95rem;
  color: var(--text-hi);
  font: inherit;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.field:focus { outline: none; border-color: var(--gold); box-shadow: 0 0 0 3px rgba(201,164,92,0.18); }
.field::placeholder { color: var(--text-lo); }
select.field option { background: var(--ink-2); }
textarea.field { resize: vertical; min-height: 90px; }
.field-row { display: flex; gap: 1rem; }
.field-row > * { flex: 1; }
.field-help { font-size: 0.76rem; color: var(--text-lo); margin-top: 0.35rem; }
.check { display: flex; gap: 0.6rem; align-items: center; font-size: 0.9rem; color: var(--text-mid); padding: 0.3rem 0; cursor: pointer; }
.check input { accent-color: var(--gold); width: 16px; height: 16px; }

/* ---------- Tables ---------- */
.tablewrap {
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  overflow-x: auto;
  background: var(--ink-1);
}
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; }
thead th {
  text-align: left;
  font-size: 0.68rem; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase;
  color: var(--text-lo);
  padding: 0.85rem 1.1rem;
  border-bottom: 1px solid var(--hairline-strong);
  background: var(--ink-2);
  white-space: nowrap;
}
tbody td { padding: 0.85rem 1.1rem; border-bottom: 1px solid var(--hairline); vertical-align: middle; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr { transition: background 0.2s; }
tbody tr:hover { background: rgba(244,239,230,0.03); }
.rowtitle { font-weight: 600; color: var(--text-hi); }
.rowtitle a:hover { color: var(--gold-bright); }
.rowsub { font-size: 0.76rem; color: var(--text-lo); margin-top: 0.15rem; }
.thumb { width: 74px; height: 44px; object-fit: cover; border-radius: 8px; border: 1px solid var(--hairline); }

/* ---------- Pills ---------- */
.pill {
  display: inline-block;
  padding: 0.22rem 0.7rem;
  border-radius: 999px;
  font-size: 0.7rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase;
  border: 1px solid;
}
.pill--draft     { color: var(--text-lo);  border-color: var(--hairline-strong); }
.pill--scheduled { color: var(--warn);     border-color: rgba(224,180,88,0.5); }
.pill--published { color: var(--ok);       border-color: rgba(127,191,127,0.45); }
.pill--archived  { color: var(--text-lo);  border-color: var(--hairline); opacity: 0.7; }
.pill--processing{ color: var(--warn);     border-color: rgba(224,180,88,0.5); }
.pill--ready     { color: var(--ok);       border-color: rgba(127,191,127,0.45); }
.pill--failed, .pill--error { color: var(--bad); border-color: rgba(224,122,106,0.5); }
.pill--queued    { color: var(--text-mid); border-color: var(--hairline-strong); }
.pill--sent      { color: var(--ok);       border-color: rgba(127,191,127,0.45); }
.pill--skipped   { color: var(--text-lo);  border-color: var(--hairline); }
.pill--connected { color: var(--ok);       border-color: rgba(127,191,127,0.45); }
.pill--disconnected { color: var(--text-lo); border-color: var(--hairline-strong); }
.pill--gold      { color: var(--gold-bright); border-color: rgba(201,164,92,0.5); }

/* ---------- Row actions / kebab menu ---------- */
.rowactions { display: flex; gap: 0.5rem; align-items: center; justify-content: flex-end; white-space: nowrap; }
.rowform { display: inline-flex; }
.kebab {
  width: 34px; height: 34px;
  border-radius: 10px;
  border: 1px solid var(--hairline-strong);
  display: grid; place-items: center;
  color: var(--text-mid);
  font-size: 1.05rem; line-height: 1;
  transition: border-color 0.25s, color 0.25s, background 0.25s;
}
.kebab:hover { border-color: var(--gold); color: var(--gold-bright); background: rgba(201,164,92,0.07); }
.kebabmenu {
  position: fixed;
  min-width: 168px;
  background: var(--ink-3);
  border: 1px solid var(--hairline-strong);
  border-radius: 12px;
  box-shadow: 0 24px 60px -12px rgba(0,0,0,0.75);
  padding: 0.35rem;
  z-index: 300;
  animation: toastin 0.25s var(--ease);
}
.kebabmenu button {
  display: block; width: 100%; text-align: left;
  padding: 0.55rem 0.85rem;
  border-radius: 8px;
  font-size: 0.86rem; font-weight: 500;
  color: var(--text-mid);
}
.kebabmenu button:hover { background: rgba(244,239,230,0.06); color: var(--text-hi); }
.kebabmenu button.is-danger { color: var(--bad); }
.kebabmenu button.is-danger:hover { background: rgba(224,122,106,0.1); }

/* ---------- Page head ---------- */
.pagehead { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.6rem; flex-wrap: wrap; }
.pagehead h1 { font-size: 1.7rem; }
.pagehead__sub { color: var(--text-lo); font-size: 0.86rem; margin-top: 0.2rem; }
.pagehead__actions { display: flex; gap: 0.7rem; }

.filters { display: flex; gap: 0.6rem; margin-bottom: 1.2rem; flex-wrap: wrap; }
.filters a {
  padding: 0.4rem 1rem; border-radius: 999px;
  font-size: 0.8rem; font-weight: 600;
  border: 1px solid var(--hairline);
  color: var(--text-lo);
  transition: all 0.25s;
}
.filters a:hover { color: var(--text-hi); border-color: var(--hairline-strong); }
.filters a.on { color: var(--gold-bright); border-color: rgba(201,164,92,0.5); background: rgba(201,164,92,0.08); }

/* ---------- Toasts ---------- */
.toast {
  position: fixed; bottom: 1.6rem; right: 1.6rem; z-index: 200;
  padding: 0.85rem 1.3rem;
  border-radius: 12px;
  background: var(--ink-3);
  border: 1px solid var(--hairline-strong);
  box-shadow: 0 24px 60px -12px rgba(0,0,0,0.7);
  font-size: 0.9rem;
  animation: toastin 0.45s var(--ease);
  max-width: 380px;
}
.toast--ok  { border-color: rgba(127,191,127,0.5); }
.toast--err { border-color: rgba(224,122,106,0.55); }
@keyframes toastin { from { opacity: 0; transform: translateY(12px); } }

/* ---------- Editor (Quill theming) ---------- */
.editor-shell { border: 1px solid var(--hairline-strong); border-radius: 14px; overflow: hidden; background: var(--parch-0); }
.editor-shell .ql-toolbar.ql-snow {
  border: 0; border-bottom: 1px solid rgba(23,21,18,0.14);
  background: #efe9dc;
  padding: 0.6rem 0.8rem;
  position: sticky; top: 0; z-index: 5;
}
.editor-shell .ql-container.ql-snow { border: 0; font-size: 1.05rem; }
.editor-shell .ql-editor {
  min-height: 420px;
  font-family: var(--font-display);
  color: #171512;
  line-height: 1.8;
  padding: 2rem clamp(1.2rem, 5vw, 3rem);
}
.editor-shell .ql-editor p { margin-bottom: 1.25em; }
.editor-shell .ql-editor p:last-child { margin-bottom: 0; }
.editor-shell .ql-editor h2 { margin-top: 2.1em; font-size: 1.75rem; }
.editor-shell .ql-editor h3 { margin-top: 1.8em; font-size: 1.35rem; }
.editor-shell .ql-editor .article-deck { padding-bottom:1.2rem; border-bottom:1px solid rgba(23,21,18,.14); color:#80602a; font-family:var(--font-body); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.editor-shell .ql-editor .story-marker { margin:2.5rem 0 .5rem; color:#80602a; font-family:var(--font-body); font-size:.65rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.editor-shell .ql-editor .scripture-callout { margin:1.8rem 0; padding:1.5rem; color:#eee8dc; background:#1b1915; border-left:2px solid #a47d39; }
.editor-shell .ql-editor .scripture-callout p { color:#eee8dc; margin:0; font-size:1.2rem; font-style:italic; }
.editor-shell .ql-editor .scripture-callout cite { display:block; margin-top:.8rem; color:#c29b55; font-family:var(--font-body); font-size:.62rem; font-style:normal; letter-spacing:.15em; text-transform:uppercase; }
.editor-shell .ql-editor .pullquote { margin:2rem 0; padding-left:1.25rem; border-left:1px solid #a47d39; color:#3b352c; font-size:1.55rem; font-style:italic; line-height:1.4; }
.editor-shell .ql-editor .closing-doxology { margin-top:2rem; padding:1.5rem; text-align:center; background:#eee7da; border:1px solid rgba(164,125,57,.25); }
.editor-shell .ql-editor h2, .editor-shell .ql-editor h3 { font-family: var(--font-display); margin: 1.4em 0 0.5em; }
.editor-shell .ql-editor blockquote {
  border-left: 3px solid var(--gold);
  background: #fffdf8;
  padding: 0.8rem 1.2rem;
  font-style: italic;
  margin: 1.2rem 0;
}
.editor-shell .ql-editor img { border-radius: 10px; margin: 1rem 0; }
.editor-shell .ql-snow .ql-picker, .editor-shell .ql-snow .ql-stroke { color: #57524a; stroke: #57524a; }
.editor-shell .ql-snow .ql-fill { fill: #57524a; }
.editor-shell .ql-snow.ql-toolbar button:hover .ql-stroke,
.editor-shell .ql-snow.ql-toolbar button.ql-active .ql-stroke { stroke: var(--gold-deep); }
.editor-shell .ql-snow.ql-toolbar button:hover .ql-fill,
.editor-shell .ql-snow.ql-toolbar button.ql-active .ql-fill { fill: var(--gold-deep); }
.designed-editor { min-height:520px; padding:2.4rem clamp(1.25rem,5vw,3rem); color:#29251f; background:#f6f2e9; border:1px solid rgba(45,38,28,.18); border-radius:14px; font-family:var(--font-display); font-size:1.05rem; line-height:1.8; outline:none; }
.designed-editor:focus { border-color:#a47d39; box-shadow:0 0 0 3px rgba(164,125,57,.12); }
.designed-editor p { margin:0 0 1.25em; }
.designed-editor h2 { margin:2em 0 .7em; font-size:1.75rem; }
.designed-editor .article-deck { padding-bottom:1.2rem; border-bottom:1px solid rgba(23,21,18,.14); color:#80602a; font-family:var(--font-body); font-size:.7rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.designed-editor .story-marker { margin:2.5rem 0 .5rem; color:#80602a; font-family:var(--font-body); font-size:.65rem; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.designed-editor .scripture-callout { margin:1.8rem 0; padding:1.5rem; color:#eee8dc; background:#1b1915; border-left:2px solid #a47d39; }
.designed-editor .scripture-callout p { color:#eee8dc; margin:0; font-size:1.2rem; font-style:italic; }
.designed-editor .scripture-callout cite { display:block; margin-top:.8rem; color:#c29b55; font-family:var(--font-body); font-size:.62rem; font-style:normal; letter-spacing:.15em; text-transform:uppercase; }
.designed-editor .pullquote { margin:2rem 0; padding-left:1.25rem; border-left:1px solid #a47d39; color:#3b352c; font-size:1.55rem; font-style:italic; line-height:1.4; }
.designed-editor .closing-doxology { margin-top:2rem; padding:1.5rem; text-align:center; background:#eee7da; border:1px solid rgba(164,125,57,.25); }

/* ---------- Dropzone / upload ---------- */
.drop {
  border: 1.5px dashed var(--hairline-strong);
  border-radius: 14px;
  padding: 2.4rem 1.5rem;
  text-align: center;
  color: var(--text-lo);
  transition: border-color 0.3s, background 0.3s;
  cursor: pointer;
}
.drop:hover, .drop.dragover { border-color: var(--gold); background: rgba(201,164,92,0.05); color: var(--text-mid); }
.drop strong { color: var(--gold-bright); font-weight: 600; }
.progress { height: 8px; border-radius: 99px; background: var(--ink-0); border: 1px solid var(--hairline); overflow: hidden; margin-top: 1rem; }
.progress i { display: block; height: 100%; width: 0%; border-radius: 99px; background: linear-gradient(90deg, var(--gold-deep), var(--gold-bright)); transition: width 0.3s; }

.imgpick { position: relative; border-radius: 14px; overflow: hidden; border: 1px solid var(--hairline-strong); aspect-ratio: 16/9; background: var(--ink-0); cursor: pointer; }
.imgpick img { width: 100%; height: 100%; object-fit: cover; }
.imgpick__empty { position: absolute; inset: 0; display: grid; place-items: center; color: var(--text-lo); font-size: 0.85rem; }
.imgpick::after {
  content: "Change"; position: absolute; inset: 0; display: grid; place-items: center;
  background: rgba(8,9,12,0.55); color: var(--text-hi); font-weight: 600; font-size: 0.85rem;
  opacity: 0; transition: opacity 0.25s;
}
.imgpick:hover::after { opacity: 1; }
.imgpick.is-empty::after { display: none; }

/* ---------- Schedule timeline ---------- */
.sched-day { margin-bottom: 1.6rem; }
.sched-day__date {
  font-family: var(--font-display); font-size: 1.05rem; color: var(--gold-bright);
  padding-bottom: 0.5rem; margin-bottom: 0.7rem;
  border-bottom: 1px solid var(--hairline);
}
.sched-item {
  display: flex; align-items: center; gap: 1rem;
  padding: 0.8rem 1rem;
  border: 1px solid var(--hairline);
  border-radius: 12px;
  margin-bottom: 0.6rem;
  background: var(--ink-1);
}
.sched-item__time { font-size: 0.8rem; color: var(--gold); min-width: 72px; font-weight: 600; }
.sched-item__what { flex: 1; min-width: 0; }
.sched-item__what strong { display: block; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sched-item__what span { font-size: 0.76rem; color: var(--text-lo); }

/* ---------- Login ---------- */
.login-body {
  min-height: 100vh; display: grid; place-items: center;
  background:
    radial-gradient(70% 55% at 50% 0%, rgba(201,164,92,0.14), transparent 60%),
    var(--ink-0);
  padding: 1.5rem;
}
.login-card {
  width: min(420px, 100%);
  background: linear-gradient(180deg, var(--ink-2), var(--ink-1));
  border: 1px solid var(--hairline-strong);
  border-radius: 24px;
  padding: 2.6rem 2.4rem;
  box-shadow: 0 40px 100px -30px rgba(0,0,0,0.8);
  text-align: center;
}
.login-card img { height: 46px; margin: 0 auto 1.2rem; }
.login-card h1 { font-size: 1.5rem; margin-bottom: 0.3rem; }
.login-card .sub { color: var(--text-lo); font-size: 0.86rem; margin-bottom: 1.8rem; }
.login-card form { text-align: left; }
.login-err {
  background: rgba(224,122,106,0.12);
  border: 1px solid rgba(224,122,106,0.4);
  color: #f0b3a8;
  border-radius: 10px;
  padding: 0.7rem 1rem;
  font-size: 0.85rem;
  margin-bottom: 1.2rem;
}

/* ---------- Misc ---------- */
.muted { color: var(--text-lo); }
.gold { color: var(--gold-bright); }
.mt-1 { margin-top: 0.6rem; } .mt-2 { margin-top: 1.2rem; } .mt-3 { margin-top: 2rem; }
.mb-2 { margin-bottom: 1.2rem; }
.flex { display: flex; gap: 0.8rem; align-items: center; }
.spread { justify-content: space-between; }
.empty {
  text-align: center; color: var(--text-lo);
  padding: 3.2rem 1rem;
}
.empty .big { font-family: var(--font-display); font-size: 1.3rem; color: var(--text-mid); margin-bottom: 0.4rem; }
hr.sep { border: 0; border-top: 1px solid var(--hairline); margin: 1.6rem 0; }

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
  .side {
    position: fixed; z-index: 100; left: 0; top: 0;
    transform: translateX(-100%);
    transition: transform 0.35s var(--ease);
    box-shadow: 0 0 80px rgba(0,0,0,0.6);
  }
  .side.open { transform: none; }
  .topbar__burger { display: flex; }
  .topbar { padding: 0.8rem 1.1rem; }
  .content { padding: 1.2rem; }
  .topbar__meta { display: none; }
  .field-row { flex-direction: column; gap: 0; }
}

/* ============================================================
   LIGHT EDITORIAL STUDIO — calm, premium, and publishing-first
   ============================================================ */
:root {
  --ink-0:#f1ede5;
  --ink-1:#f8f5ee;
  --ink-2:#fffdf8;
  --ink-3:#ffffff;
  --hairline:rgba(45,38,28,.10);
  --hairline-strong:rgba(45,38,28,.18);
  --gold:#a47d39;
  --gold-bright:#b88c42;
  --gold-deep:#80602a;
  --gold-glow:rgba(164,125,57,.22);
  --text-hi:#201d18;
  --text-mid:#625d54;
  --text-lo:#8a8378;
  --ok:#417759;
  --warn:#9a6a1e;
  --bad:#a54f43;
  --radius:10px;
  --radius-lg:16px;
  --side-w:238px;
}
body { background:#f1ede5; color:var(--text-hi); }
.shell { background:radial-gradient(circle at 90% 0,rgba(164,125,57,.07),transparent 28%),#f1ede5; }
.side { background:#e9e3d8; border-right-color:rgba(45,38,28,.13); }
.side__logo { min-height:78px; border-bottom-color:rgba(45,38,28,.12); }
.side__logo img { filter:invert(1); opacity:.88; }
.side__logo span { color:#80602a; }
.side__group { color:#8a8173; }
.side__link { color:#565047; border-radius:8px; }
.side__link:hover { color:#201d18; background:rgba(255,253,248,.6); }
.side__link.is-active { color:#6f5223; background:#fffdf8; box-shadow:0 8px 28px -22px rgba(45,38,28,.45); }
.side__link.is-active::before { left:-.9rem; top:17%; bottom:17%; width:2px; background:#a47d39; }
.side__icon { color:#96702f; }
.side__foot { border-top-color:rgba(45,38,28,.12); }
.side__site { color:#756e63; }
.topbar { min-height:78px; padding:1rem 2.2rem; color:#201d18; background:rgba(248,245,238,.86); border-bottom-color:rgba(45,38,28,.11); box-shadow:0 10px 35px -32px rgba(31,25,17,.45); }
.topbar__title { font-size:1.12rem; }
.topbar__meta strong { color:#29251f; }
.topbar__meta span { color:#8b682d; }
.avatar { border-color:rgba(45,38,28,.16); box-shadow:0 0 0 3px rgba(164,125,57,.12); }
.avatar--init { color:#fffdf8; background:linear-gradient(145deg,#b88c42,#886529); }
.usermenu { background:#fffdf8; border-color:rgba(45,38,28,.14); box-shadow:0 25px 60px -25px rgba(31,25,17,.35); }
.usermenu a { color:#625d54; }
.usermenu a:hover { color:#201d18; background:#f1ede5; }
.content { max-width:1420px; padding:clamp(2rem,4vw,4rem); }
.pagehead { align-items:flex-end; margin-bottom:2.5rem; }
.pagehead__eyebrow { margin-bottom:.65rem; color:#96702f; font-size:.62rem; font-weight:700; letter-spacing:.27em; text-transform:uppercase; }
.pagehead h1 { font-size:clamp(2.1rem,3.2vw,3.25rem); font-weight:400; letter-spacing:-.035em; }
.pagehead__sub { margin-top:.45rem; color:#736c62; font-size:.92rem; }
.pagehead__actions { padding:.35rem; gap:.4rem; border:1px solid rgba(45,38,28,.11); border-radius:999px; background:rgba(255,253,248,.7); box-shadow:0 16px 38px -30px rgba(31,25,17,.4); }
.btn { min-height:42px; border-radius:999px; }
.btn__plus { display:grid; place-items:center; width:1.2rem; height:1.2rem; border:1px solid currentColor; border-radius:50%; font-size:.85rem; line-height:1; }
.btn--gold { color:#fffdf8; background:linear-gradient(135deg,#ac8440,#846127); box-shadow:0 12px 26px -16px rgba(93,65,22,.65); }
.btn--gold:hover { box-shadow:0 16px 34px -16px rgba(93,65,22,.6); }
.btn--ghost { color:#5d574e; border-color:transparent; }
.btn--ghost:hover { color:#765724; border-color:rgba(164,125,57,.35); background:#fffdf8; }
.btn--preview { color:#fffdf8; border:1px solid #25211b; background:#25211b; }
.btn--preview:hover { color:#fff; background:#3a3329; transform:translateY(-1px); }
.grid { gap:1rem; }
.grid--stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
.stat { min-height:150px; padding:1.5rem; background:rgba(255,253,248,.82); border-color:rgba(45,38,28,.11); border-radius:14px; box-shadow:0 18px 45px -42px rgba(31,25,17,.55); }
.stat::after { background:radial-gradient(closest-side,rgba(164,125,57,.12),transparent 70%); }
.stat__label { color:#7c7469; font-size:.65rem; }
.stat__value { color:#211e19; font-size:2.65rem; font-weight:400; }
.stat__sub { color:#906b2d; }
.card { background:rgba(255,253,248,.82); border-color:rgba(45,38,28,.11); border-radius:14px; box-shadow:0 20px 55px -48px rgba(31,25,17,.55); }
.card__title { color:#27231d; }
.card__hint { color:#8b682d; }
.tablewrap { background:#fffdf8; border-color:rgba(45,38,28,.12); border-radius:14px; box-shadow:0 22px 55px -48px rgba(31,25,17,.5); }
thead th { color:#7c7469; background:#eee8dc; border-bottom-color:rgba(45,38,28,.13); }
tbody td { border-bottom-color:rgba(45,38,28,.09); }
tbody tr:hover { background:#f8f4ec; }
.rowtitle { color:#27231d; }
.rowtitle a:hover { color:#8a6429; }
.sched-item { background:#fffdf8; border-color:rgba(45,38,28,.1); }
.sched-item__time { color:#8e682c; }
.field,textarea.field,select.field { color:#27231d; background:#fffdf8; border-color:rgba(45,38,28,.18); }
.field::placeholder { color:#a09a90; }
select.field option { background:#fffdf8; }
.field:focus { border-color:#a47d39; box-shadow:0 0 0 3px rgba(164,125,57,.13); }
.drop { color:#756e64; background:rgba(255,253,248,.45); border-color:rgba(45,38,28,.22); }
.drop:hover,.drop.dragover { color:#514b43; background:#fffaf1; }
.drop strong { color:#89652b; }
.progress { background:#e5dfd3; }
.imgpick { background:#eee8dc; border-color:rgba(45,38,28,.15); }
.filters a { color:#736c62; border-color:rgba(45,38,28,.12); background:rgba(255,253,248,.45); }
.filters a:hover { color:#211e19; border-color:rgba(45,38,28,.2); }
.filters a.on { color:#765724; border-color:rgba(164,125,57,.38); background:#fffaf1; }
.pill--published,.pill--ready,.pill--sent,.pill--connected { background:rgba(65,119,89,.07); }
.pill--scheduled,.pill--processing { background:rgba(154,106,30,.07); }
.kebab { color:#6e675d; border-color:rgba(45,38,28,.14); }
.kebab:hover { color:#765724; background:#fffaf1; }
.kebabmenu { color:#27231d; background:#fffdf8; border-color:rgba(45,38,28,.14); box-shadow:0 24px 60px -20px rgba(31,25,17,.35); }
.kebabmenu button { color:#625d54; }
.kebabmenu button:hover { color:#201d18; background:#f1ede5; }
.empty { color:#857e73; }
.empty .big { color:#474139; }
.toast { color:#27231d; background:#fffdf8; border-color:rgba(45,38,28,.16); box-shadow:0 24px 60px -22px rgba(31,25,17,.4); }
.login-body { background:radial-gradient(65% 60% at 50% 0,rgba(164,125,57,.15),transparent 65%),#f1ede5; }
.login-card { color:#f5f2ea; background:linear-gradient(180deg,#24211c,#171511); border-color:rgba(164,125,57,.28); box-shadow:0 40px 100px -35px rgba(31,25,17,.6); }
.login-card .field { color:#f5f2ea; background:#12110e; border-color:rgba(245,242,234,.18); }
.login-card .field-label,.login-card .sub { color:#aaa397; }
.login-card .btn--gold { color:#171511; background:linear-gradient(135deg,#d2ae68,#a47d39); }
@media(max-width:1100px){.grid--stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.grid--stats{grid-template-columns:1fr 1fr}.pagehead__actions{width:100%;display:grid;grid-template-columns:1fr 1fr;border-radius:14px}.pagehead__actions .btn:last-child{grid-column:1/-1}.content{padding:1.25rem}.topbar{min-height:66px}}
@media(max-width:460px){.grid--stats{grid-template-columns:1fr}.pagehead__actions{grid-template-columns:1fr}.pagehead__actions .btn:last-child{grid-column:auto}}

/* ---------- Libsyn feed dashboard ---------- */
.podcast-pagehead .pagehead__sub{max-width:68ch}.pod-feedbar{display:grid;grid-template-columns:minmax(280px,1.4fr) auto auto auto;gap:2rem;align-items:center;margin-bottom:1rem;padding:1rem 1.25rem;color:#4c463e;background:rgba(255,253,248,.72);border:1px solid rgba(45,38,28,.11);border-radius:14px}.pod-feedbar__status{display:flex;align-items:center;gap:.8rem;min-width:0}.pod-feedbar__status div{display:flex;flex-direction:column;min-width:0}.pod-feedbar__status strong{font-size:.86rem}.pod-feedbar__status span{color:#8a8378;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pod-feedbar__dot{flex:none;width:.6rem;height:.6rem;border-radius:50%;background:#4f8a63;box-shadow:0 0 0 5px rgba(79,138,99,.1)}.pod-feedbar__dot.is-error{background:#a54f43;box-shadow:0 0 0 5px rgba(165,79,67,.1)}.pod-feedbar__meta{display:flex;flex-direction:column;padding-left:1.5rem;border-left:1px solid rgba(45,38,28,.1)}.pod-feedbar__meta span{color:#8a8378;font-size:.58rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.pod-feedbar__meta strong{font-family:var(--font-display);font-size:1rem;font-weight:500;white-space:nowrap}.pod-feedbar__link{color:#80602a;font-size:.75rem;font-weight:600;white-space:nowrap}
.pod-latest{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr);gap:clamp(2rem,5vw,5rem);align-items:center;margin-bottom:3rem;padding:clamp(1.4rem,3vw,2.5rem);color:#f3eee5;background:radial-gradient(circle at 15% 5%,rgba(184,140,66,.18),transparent 30%),#1b1915;border:1px solid rgba(164,125,57,.28);border-radius:16px;box-shadow:0 28px 70px -45px rgba(31,25,17,.8)}.pod-latest__art{position:relative;aspect-ratio:1;overflow:hidden;background:#27231d}.pod-latest__art img{width:100%;height:100%;object-fit:cover}.pod-latest__art>span:first-child{position:absolute;inset:0;display:grid;place-items:center;color:#b88c42;font-size:4rem}.pod-latest__play{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:3.5rem;height:3.5rem;padding-left:.2rem;transform:translate(-50%,-50%);color:#171511;background:#c69b4d;border-radius:50%;box-shadow:0 0 0 10px rgba(198,155,77,.14)}.pod-latest__body .eyebrow{color:#c69b4d}.pod-latest__body h2{margin:.7rem 0 .8rem;max-width:19ch;color:#f5f0e7;font-size:clamp(2rem,3.5vw,3.4rem);font-weight:400;letter-spacing:-.03em}.pod-latest__details{display:flex;gap:1rem;color:#aaa397;font-size:.72rem}.pod-latest__details span+span::before{content:"·";margin-right:1rem;color:#80602a}.pod-latest__body p{margin-top:1rem;max-width:60ch;color:#aaa397;font-size:.88rem;line-height:1.7}.pod-latest__actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.5rem}.pod-latest .btn--ghost{color:#d5cec2;border-color:rgba(245,240,231,.18)}.pod-latest .btn--ghost:hover{color:#f5f0e7;background:rgba(255,255,255,.05);border-color:rgba(198,155,77,.55)}
.pod-archive-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin:0 0 1rem}.pod-archive-head h2{margin-top:.3rem;font-size:1.65rem;font-weight:400}.pod-thumb{width:46px;height:46px;border-radius:3px}.pod-thumb--empty{display:grid;place-items:center;color:#96702f}.pod-workflow-note{display:grid;grid-template-columns:180px minmax(0,1fr);gap:2rem;margin-top:1rem;padding:1.15rem 1.3rem;border:1px solid rgba(164,125,57,.18);border-radius:12px;background:rgba(164,125,57,.045)}.pod-workflow-note span{color:#80602a;font-size:.63rem;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.pod-workflow-note p{color:#6e675d;font-size:.82rem}
@media(max-width:900px){.pod-feedbar{grid-template-columns:1fr 1fr}.pod-feedbar__status{grid-column:1/-1}.pod-feedbar__meta{padding-left:0;border-left:0}.pod-feedbar__link{text-align:right}.pod-latest{grid-template-columns:180px minmax(0,1fr)}}
@media(max-width:650px){.pod-latest{grid-template-columns:1fr}.pod-latest__art{max-width:240px}.pod-feedbar{grid-template-columns:1fr}.pod-feedbar__status{grid-column:auto}.pod-feedbar__link{text-align:left}.pod-table th:nth-child(3),.pod-table td:nth-child(3),.pod-table th:nth-child(4),.pod-table td:nth-child(4),.pod-table th:nth-child(5),.pod-table td:nth-child(5){display:none}.pod-workflow-note{grid-template-columns:1fr;gap:.4rem}}
