:root {
  --bg: #f6f4ef; --card: #fff; --ink: #23201b; --muted: #7a7266;
  --line: #e4ded3; --accent: #c25a3a; --accent2: #3a6ea5;
  --ok: #2f7d4f; --warn: #b07d16; --bad: #b03b32;
}
* { box-sizing: border-box; }
body {
  margin: 0; font: 15px/1.55 -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  background: var(--bg); color: var(--ink);
}
a { color: var(--accent2); text-decoration: none; }
a:hover { text-decoration: underline; }
header {
  background: #23201b; color: #f6f4ef; padding: 0 20px;
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
}
header .brand { font-weight: 700; font-size: 18px; padding: 14px 0; letter-spacing: .3px; }
header .brand small { font-weight: 400; color: #cdbfa8; font-size: 12px; display: block; }
header nav a { color: #e9e1d2; padding: 16px 2px; display: inline-block; }
header nav a:hover { color: #fff; text-decoration: none; }
main { max-width: 960px; margin: 22px auto; padding: 0 18px 60px; }
h1 { font-size: 24px; margin: 4px 0 14px; }
h2 { font-size: 18px; margin: 26px 0 10px; }
.card {
  background: var(--card); border: 1px solid var(--line); border-radius: 10px;
  padding: 18px 20px; margin: 14px 0; box-shadow: 0 1px 2px rgba(0,0,0,.03);
}
.muted { color: var(--muted); }
.row { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
button, .btn {
  background: var(--accent); color: #fff; border: 0; border-radius: 7px;
  padding: 9px 14px; font-size: 14px; cursor: pointer; font-weight: 600;
}
button.secondary, .btn.secondary { background: #efe9dd; color: var(--ink); border: 1px solid var(--line); }
button:hover { filter: brightness(1.05); }
input[type=text], textarea, select {
  width: 100%; padding: 9px 11px; border: 1px solid var(--line); border-radius: 7px;
  font: inherit; background: #fff; color: var(--ink);
}
textarea { min-height: 160px; resize: vertical; }
label { font-weight: 600; font-size: 13px; display: block; margin: 10px 0 4px; }
table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
th, td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--line); vertical-align: top; }
th { color: var(--muted); font-weight: 600; }
.badge {
  display: inline-block; padding: 2px 9px; border-radius: 20px; font-size: 12px; font-weight: 600;
}
.badge.queued { background: #efe6cf; color: var(--warn); }
.badge.running { background: #dbe7f3; color: var(--accent2); }
.badge.done { background: #d9ecdf; color: var(--ok); }
.badge.outlined { background: #d9ecdf; color: var(--ok); }
.badge.drafting { background: #dbe7f3; color: var(--accent2); }
.badge.planned { background: #ece8df; color: var(--muted); }
.badge.failed, .badge.cancelled { background: #f3dcd9; color: var(--bad); }
.badge.draft { background: #ece8df; color: var(--muted); }
#active-banner {
  display: none; background: var(--accent2); color: #fff; padding: 9px 18px;
  font-size: 14px; font-weight: 600; text-align: center;
}
.prose { background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 20px 24px; }
.prose p { margin: 0 0 14px; }
pre.raw {
  white-space: pre-wrap; word-break: break-word; background: #2b2822; color: #ece5d6;
  padding: 14px; border-radius: 8px; font-size: 12.5px; max-height: 460px; overflow: auto;
}
.biblebox { white-space: pre-wrap; max-height: 520px; overflow: auto; font-size: 13.5px;
  background: #fffdf8; border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; }
.pill { font-size: 12px; color: var(--muted); }
.inline { display: inline; }
.spacer { flex: 1; }
.notes { background: #fff8ef; border: 1px solid #ecd9bf; border-radius: 8px; padding: 12px 14px; font-size: 13.5px; }
.flash { background: #d9ecdf; border: 1px solid #b7dcc3; color: #1f6b40; padding: 10px 14px; border-radius: 8px; margin-bottom: 14px; font-size: 14px; }
.copyrow { display: flex; gap: 8px; align-items: flex-start; margin: 6px 0; }
.copyrow input[readonly], .copyrow textarea[readonly] { background: #fbf9f4; }
.copyrow button { flex: 0 0 auto; }
.field { margin: 10px 0; }
.field small { color: var(--muted); font-weight: 400; }
.cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 640px){ .cols { grid-template-columns: 1fr; } }
details.edit { margin: 12px 0; }
details.edit > summary { cursor: pointer; font-weight: 600; color: var(--accent2); padding: 6px 0; }
#pausebar.paused-on { outline: 3px solid var(--warn); }
.covergrid { display: flex; gap: 18px; flex-wrap: wrap; }
.covergrid img { max-height: 340px; border: 1px solid var(--line); border-radius: 6px; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.assetlist a { font-weight: 600; }
.chip { display:inline-block; background:#efe9dd; border:1px solid var(--line); border-radius: 20px; padding: 2px 10px; font-size:12px; margin-right:6px;}
.bar { background: var(--line); border-radius: 6px; height: 9px; overflow: hidden; margin: 6px 0; }
.bar > span { display: block; height: 100%; background: var(--ok); }
.board { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 12px; }
.bookcard { background: var(--card); border: 1px solid var(--line); border-radius: 10px; padding: 12px 14px; }
.bookcard h3 { font-size: 15px; margin: 0 0 2px; }
.bookcard .num { float: right; font-weight: 700; color: var(--muted); }
.statgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 10px; margin: 12px 0; }
.stat { background: var(--card); border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; }
.stat b { font-size: 22px; display: block; }
.diff { font-family: monospace; font-size: 12px; width: 100%; }
.diff td { padding: 1px 4px; border: 0; }
.diff .diff_add { background: #d9ecdf; }
.diff .diff_sub { background: #f3dcd9; }
.diff .diff_chg { background: #efe6cf; }
.reader { max-width: 680px; margin: 0 auto; }
.reader .prose { font-size: 17px; line-height: 1.7; }
.reader h2 { margin-top: 40px; }
[data-theme="dark"] {
  --bg: #1b1a17; --card: #252420; --ink: #ece5d6; --muted: #9a9182; --line: #3a3730;
  --accent: #e07a54; --accent2: #86b3e6;
}
[data-theme="dark"] input, [data-theme="dark"] textarea, [data-theme="dark"] select { background: #1f1e1a; color: var(--ink); }
[data-theme="dark"] .prose, [data-theme="dark"] .biblebox, [data-theme="dark"] button.secondary { background: #201f1b; }
[data-theme="dark"] .copyrow input[readonly], [data-theme="dark"] .copyrow textarea[readonly] { background: #1a1916; }
[data-theme="dark"] .flash { background: #1f3a2a; color: #bfe6cf; border-color: #2f5a40; }
[data-theme="dark"] .diff .diff_add { background: #24402f; }
[data-theme="dark"] .diff .diff_sub { background: #45272433; }
