:root {
  color-scheme: light;
  font-family: Georgia, serif;
  --page: #f8f3e8;
  --text: #25221d;
  --muted: #645e50;
  --eyebrow: #786642;
  --surface: #fffdf7;
  --surface-alt: #fffaf0;
  --surface-muted: #f2eadb;
  --border: #dbd0ba;
  --field-border: #8b806d;
  --button: #375c3a;
  --button-hover: #29492e;
  --button-text: #fff;
  --secondary: #e2ebdf;
  --secondary-text: #29492e;
  --error: #741d18;
  --error-surface: #fde8e5;
  --dialogue: #4f4839;
  --focus: #9b5b12;
  --notice: #fff3cb;
  --notice-border: #d5ad36;
  --draft: #685f50;
  --review: #8a5700;
  --approved: #25612b;
}

:root[data-theme='dark'] {
  color-scheme: dark;
  --page: #1d211d;
  --text: #f6f1e6;
  --muted: #c6c1b4;
  --eyebrow: #e2c889;
  --surface: #292e29;
  --surface-alt: #252b25;
  --surface-muted: #343b34;
  --border: #5f695f;
  --field-border: #aeb7ac;
  --button: #9ec9a1;
  --button-hover: #b5dbb7;
  --button-text: #142617;
  --secondary: #3c5040;
  --secondary-text: #edf7ee;
  --error: #ffd1ca;
  --error-surface: #602b28;
  --dialogue: #ded8ca;
  --focus: #ffd166;
  --notice: #483d1f;
  --notice-border: #b99c47;
  --draft: #d0c8b9;
  --review: #ffd47d;
  --approved: #aee7b2;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; color: var(--text); background: var(--page); }
main { width: min(1100px, calc(100% - 2rem)); margin: 3rem auto; }
header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
h1, h2 { font-weight: 600; }
h3 { margin: 0 0 .6rem; font: 700 .9rem/1.2 system-ui, sans-serif; }
.eyebrow { margin-bottom: .35rem; color: var(--eyebrow); font: 700 .75rem/1.2 system-ui, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.theme-toggle { flex: 0 0 auto; margin: 0; color: var(--text); background: transparent; border: 1px solid var(--border); }
.theme-toggle:hover { color: var(--button-text); background: var(--button); border-color: var(--button); }
.header-actions { display:flex; flex:0 0 auto; align-items:flex-start; gap:.5rem; }
.header-actions button { margin:0; }
.header-link { display:inline-flex; align-items:center; min-height:40px; padding:.65rem .85rem; border:1px solid var(--border); border-radius:6px; color:var(--secondary-text); background:var(--secondary); font:700 .9rem/1.2 system-ui,sans-serif; text-decoration:none; }
.header-link:hover { color:var(--button-text); background:var(--button); border-color:var(--button); }
.admin-tabs { display:flex; flex-wrap:wrap; gap:.5rem; margin:1rem 0 1.5rem; padding:.45rem; border:1px solid var(--border); border-radius:12px; background:var(--surface); }
.admin-tabs button { margin:0; padding:.65rem .85rem; color:var(--text); background:transparent; border:0; }
.admin-tabs button[aria-current='page'] { color:var(--button-text); background:var(--button); }
.author-credit-fields { margin-top:1rem; padding:1rem; border:1px solid var(--border); border-radius:10px; }
.author-credit-fields label { margin-top:.6rem; }
.authors-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr); gap:1.5rem; }
.author-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem; }
.author-list { display:grid; gap:.75rem; }
.author-card,.author-message-card { padding:1rem; border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); }
.author-card button { margin-top:.5rem; }
.author-messages { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--border); }
.author-message-card blockquote { margin:1rem 0; padding:1rem; border-left:4px solid var(--notice-border); background:var(--surface); white-space:pre-wrap; }
.editorial-library-layout { display:grid; grid-template-columns:minmax(260px,.75fr) minmax(0,1.25fr); gap:1.5rem; align-items:start; }
#editorial-revision-form { padding:1rem; border:1px solid var(--border); border-radius:10px; background:var(--surface-alt); }
#editorial-revision-acts { display:grid; gap:.75rem; }
.revision-warning { margin:1rem 0; padding:1rem; border:1px solid var(--notice-border); border-radius:10px; background:var(--notice); }
.revision-warning p { margin:.35rem 0 0; }
.local-notice { margin-top: 1.5rem; padding: .85rem 1rem; border: 1px solid var(--notice-border); border-radius: 8px; background: var(--notice); font: .9rem/1.5 system-ui, sans-serif; }
.auth-panel { max-width: 34rem; margin: 2rem auto; }
.auth-panel form { padding: 1.5rem; }
.auth-panel h2 { margin-top: 0; }
.profile-panel { max-width: 34rem; margin: 1.5rem auto; }
.profile-panel h2 { margin-top: 0; }
.queue-controls { display: flex; align-items: end; gap: .6rem; margin-top: 1.5rem; padding: 1rem; border: 1px solid var(--border); border-radius: 10px; background: var(--surface-alt); }
.queue-controls label { margin: 0; }
.queue-controls input { width: auto; }
.queue-controls button { margin: 0; }
.workflow-section { margin-top: 2rem; padding: 1.5rem; border: 1px solid var(--border); border-radius: 12px; background: var(--surface-alt); }
.section-heading, .card-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; }
.section-heading h2, .section-heading p, .card-heading h3, .card-heading p { margin-top: 0; }
.section-heading h2 { margin-bottom: .4rem; }
.section-heading p:last-child { margin-bottom: 0; color: var(--muted); }
.status-badge, .schedule-badge { flex: 0 0 auto; padding: .35rem .6rem; border: 1px solid currentColor; border-radius: 999px; font: 700 .75rem/1.2 system-ui, sans-serif; }
.status-draft { color: var(--draft); }
.status-in-review { color: var(--review); }
.status-approved { color: var(--approved); }
.schedule-badge { color: var(--muted); }
.demo-label { color: var(--muted); font: italic .85rem/1.5 system-ui, sans-serif; }
.campaign-layout { display:grid; grid-template-columns:minmax(300px,.9fr) minmax(340px,1.1fr); gap:1.5rem; margin-top:1.5rem; } .campaign-fields { display:grid; grid-template-columns:.55fr 1fr 1fr; gap:.65rem; } .day-grid { display:flex; flex-wrap:wrap; gap:.7rem; } .day-grid label,.inline-check { display:flex; align-items:center; gap:.3rem; margin:.35rem 0; } .day-grid input,.inline-check input { width:auto; } .campaign-preview-grid { display:grid; grid-template-columns:1fr minmax(160px,.55fr); gap:1rem; } .campaign-preview { min-height:170px; padding:1rem; border:1px solid var(--border); border-radius:10px; background:var(--surface-muted); } .campaign-preview.mobile { max-width:260px; } .campaign-preview small { color:var(--muted); font:700 .7rem system-ui,sans-serif; } .campaign-preview p { white-space:pre-line; line-height:1.5; } .campaign-list { display:grid; gap:.75rem; margin-top:1rem; } .campaign-card { padding:1rem; border:1px solid var(--border); border-radius:9px; background:var(--surface); } .campaign-card p { margin:.3rem 0; } .campaign-card .actions { margin-top:.6rem; }
.ratings-summary-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:.8rem; margin-top:1.25rem; } .rating-summary-card { min-width:0; padding:1rem; border:1px solid var(--border); border-radius:10px; background:var(--surface); } .rating-summary-card p { margin:.35rem 0 0; } .rating-summary-average { color:var(--approved); font:700 1.05rem/1.4 system-ui,sans-serif; }
.layout { display: grid; grid-template-columns: minmax(280px, .9fr) minmax(300px, 1.1fr); gap: 2rem; margin-top: 2rem; }
form, .preview { padding: 1.5rem; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
label { display: block; margin: 1rem 0 .35rem; font: 700 .9rem/1.2 system-ui, sans-serif; }
label:first-child { margin-top: 0; }
input, textarea { width: 100%; padding: .7rem; color: var(--text); border: 1px solid var(--field-border); border-radius: 6px; background: var(--surface); font: inherit; }
textarea { resize: vertical; }
.story-act-fields, .prompt-review-fields { margin: 1.5rem 0 0; padding: 1rem; border: 1px solid var(--border); border-radius: 8px; }
.story-act-fields legend, .prompt-review-fields legend { padding: 0 .35rem; font: 700 1rem/1.2 system-ui, sans-serif; }
.story-act-fields .hint, .prompt-review-fields .hint { margin-top: 0; }
button { margin-top: .8rem; padding: .7rem 1rem; border: 1px solid transparent; border-radius: 6px; color: var(--button-text); background: var(--button); font: 700 .9rem system-ui, sans-serif; cursor: pointer; }
button:hover { background: var(--button-hover); }
button + button { margin-left: .35rem; }
button.secondary { color: var(--secondary-text); background: var(--secondary); }
button:disabled { cursor: not-allowed; opacity: .55; }
.actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; margin-top: .8rem; }
.actions button { margin: 0; }
.hint { color: var(--muted); font: .8rem/1.4 system-ui, sans-serif; }
.save-status { margin: .85rem 0 0; color: var(--approved); font: 700 .82rem/1.4 system-ui, sans-serif; }
.save-status.is-pending { color: var(--review); }
.approval-history { margin-top:1rem; padding:.85rem 1rem; border-left:4px solid var(--approved); border-radius:6px; background:var(--surface-muted); font:.82rem/1.5 system-ui,sans-serif; }
.approval-history p { margin:0; }
.approval-history details { margin-top:.6rem; }
.approval-history summary { color:var(--approved); cursor:pointer; font-weight:700; }
.approval-history ol { margin:.65rem 0 0; padding-left:1.4rem; }
.approval-history li + li { margin-top:.35rem; }
.error { padding: .75rem; border-radius: 6px; color: var(--error); background: var(--error-surface); font-family: system-ui, sans-serif; }
.story-title, .mini-preview h4 { font: 600 1.35rem/1.25 Georgia, serif; }
.story-body p { line-height: 1.65; }
.story-body .story-dialogue { margin-left: 1.25rem; color: var(--dialogue); font-style: italic; }
.birthday-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.birthday-card { min-width: 0; padding: 1.25rem; border: 1px solid var(--border); border-radius: 10px; background: var(--surface); }
.mini-preview { max-height: 18rem; margin-top: 1rem; padding: 1rem; overflow: auto; border-radius: 8px; background: var(--surface-muted); }
.mini-preview h4 { margin-top: 0; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
@media (max-width: 720px) {
  .layout, .birthday-list, .campaign-layout, .campaign-preview-grid, .campaign-fields { grid-template-columns: 1fr; }
  header, .section-heading { display: block; }
  .header-actions { margin-top:.5rem; }
  .theme-toggle { margin-top: .5rem; }
  .status, .status-badge, .schedule-badge { display: inline-block; margin-top: .5rem; }
  main { margin: 1.5rem auto; }
  .workflow-section { padding: 1rem; }
  .queue-controls { display: block; }
  .queue-controls input { width: 100%; }
  .queue-controls button { margin-top: .6rem; }
}

.admin-tool { margin-top:1.5rem; padding-top:1.5rem; border-top:1px solid var(--border); }
.admin-tool-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.admin-tool-heading h3,.admin-tool-heading p { margin-top:0; }
.admin-tool-heading button { flex:0 0 auto; margin:0; }
.admin-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:.75rem; margin-top:1rem; }
.admin-metrics article { display:grid; gap:.25rem; padding:1rem; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.admin-metrics strong { font:700 1.65rem/1.1 system-ui,sans-serif; }
.admin-metrics span { color:var(--muted); font:.78rem/1.35 system-ui,sans-serif; }
.admin-dataset { margin-top:1.75rem; }
.admin-table-wrap { margin-top:.75rem; overflow-x:auto; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.admin-table-wrap table { width:100%; border-collapse:collapse; font:.82rem/1.4 system-ui,sans-serif; }
.admin-table-wrap th,.admin-table-wrap td { padding:.75rem; text-align:left; vertical-align:top; border-bottom:1px solid var(--border); }
.admin-table-wrap th { color:var(--muted); background:var(--surface-muted); font-size:.72rem; letter-spacing:.04em; text-transform:uppercase; }
.admin-table-wrap tbody tr:last-child td { border-bottom:0; }
.admin-table-wrap td strong,.admin-table-wrap td small { display:block; }
.admin-table-wrap td small { margin-top:.15rem; color:var(--muted); }
.admin-table-wrap .admin-number { text-align:right; font-variant-numeric:tabular-nums; }
.admin-pagination { display:flex; gap:.4rem; }
.admin-pagination button + button { margin-left:0; }
.admin-inline-form { display:grid; grid-template-columns:minmax(14rem,1fr) minmax(10rem,.45fr) auto; align-items:end; gap:1rem; }
.admin-inline-form > label { display:grid; gap:.45rem; }
.admin-results { display:grid; gap:.75rem; margin-top:1rem; }
.admin-results article { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.9rem 1rem; border:1px solid var(--border); border-radius:12px; }
.admin-results article h4,.admin-results article p { margin:0; }
.admin-dialog { width:min(100% - 2rem,34rem); padding:1.5rem; border:1px solid var(--border); border-radius:16px; background:var(--surface); color:var(--text); }
.admin-dialog::backdrop { background:rgba(0,0,0,.55); }
@media (max-width:760px) { .admin-inline-form,.authors-layout,.author-fields,.editorial-library-layout { grid-template-columns:1fr; } .admin-results article { align-items:flex-start; flex-direction:column; } .admin-tool-heading { display:block; } .admin-pagination { margin-top:.75rem; } }
