/* tokens:start (every colour lives here; tests check nothing outside this block is hard-coded) */
:root {
  --bg:#ffffff; --fg:#111111; --fg2:#4b5563; --link:#1a5fb4; --border:#e5e7eb; --border2:#d1d5db; --border3:#eeeeee;
  --zebra:#f6f7f9; --thbg:#eceff3; --codebg:#f3f4f6; --inputbg:#ffffff; --inputborder:#6b7280; --btnbg:#f3f4f6;
  --primarybg:#1f2937; --primaryfg:#ffffff; --quotebg:#eff6ff; --quoteborder:#1d4ed8;
  --grey:#4b5563; --greybg:#e5e7eb; --green:#166534; --greenbg:#dcfce7; --amber:#92400e; --amberbg:#fde68a;
  --red:#991b1b; --redbg:#fee2e2; --run:#1e3a8a; --runbg:#dbeafe; color-scheme:light;
}
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
  --bg:#0f1419; --fg:#e6e8eb; --fg2:#a9b2be; --link:#8ab4f8; --border:#2d3640; --border2:#3a4552; --border3:#222a33;
  --zebra:#161c23; --thbg:#212a34; --codebg:#1b222b; --inputbg:#151b22; --inputborder:#5b6674; --btnbg:#222b35;
  --primarybg:#8ab4f8; --primaryfg:#0b1220; --quotebg:#142238; --quoteborder:#6ea0ff;
  --grey:#aab3bf; --greybg:#2a313a; --green:#86efac; --greenbg:#12351f; --amber:#fcd34d; --amberbg:#3d2e0a;
  --red:#fca5a5; --redbg:#451a1a; --run:#93c5fd; --runbg:#172554; color-scheme:dark;
  }
}
:root[data-theme="dark"] {
  --bg:#0f1419; --fg:#e6e8eb; --fg2:#a9b2be; --link:#8ab4f8; --border:#2d3640; --border2:#3a4552; --border3:#222a33;
  --zebra:#161c23; --thbg:#212a34; --codebg:#1b222b; --inputbg:#151b22; --inputborder:#5b6674; --btnbg:#222b35;
  --primarybg:#8ab4f8; --primaryfg:#0b1220; --quotebg:#142238; --quoteborder:#6ea0ff;
  --grey:#aab3bf; --greybg:#2a313a; --green:#86efac; --greenbg:#12351f; --amber:#fcd34d; --amberbg:#3d2e0a;
  --red:#fca5a5; --redbg:#451a1a; --run:#93c5fd; --runbg:#172554; color-scheme:dark;
}
@media print {
  :root, :root[data-theme="dark"] {
  --bg:#ffffff; --fg:#111111; --fg2:#4b5563; --link:#1a5fb4; --border:#e5e7eb; --border2:#d1d5db; --border3:#eeeeee;
  --zebra:#f6f7f9; --thbg:#eceff3; --codebg:#f3f4f6; --inputbg:#ffffff; --inputborder:#6b7280; --btnbg:#f3f4f6;
  --primarybg:#1f2937; --primaryfg:#ffffff; --quotebg:#eff6ff; --quoteborder:#1d4ed8;
  --grey:#6b7280; --greybg:#e5e7eb; --green:#166534; --greenbg:#dcfce7; --amber:#92400e; --amberbg:#fde68a;
  --red:#991b1b; --redbg:#fee2e2; --run:#1e3a8a; --runbg:#dbeafe; color-scheme:light;
  }
}
/* tokens:end */
body { font: 16px/1.5 system-ui, sans-serif; margin: 0 auto; max-width: 70rem; padding: 1rem; color: var(--fg); background: var(--bg); }
header h1 { margin: 0 0 .5rem; font-size: 1.5rem; }
header a { color: inherit; text-decoration: none; }
h2 { font-size: 1.15rem; margin-top: 1.5rem; }
.badge { display: inline-block; padding: .05rem .6rem; border-radius: 1rem; font-size: .85rem; white-space: nowrap; }
.badge.idle, .badge.queued, .badge.cancelled { background: var(--greybg); color: var(--grey); }
.badge.running { background: var(--runbg); color: var(--run); font-weight: 600; }
.badge.needs-you { background: var(--amberbg); color: var(--amber); font-weight: 600; }
.badge.done { background: var(--greenbg); color: var(--green); font-weight: 600; }
.badge.failed { background: var(--redbg); color: var(--red); font-weight: 600; }
.msg { background: var(--amberbg); color: var(--amber); padding: .5rem .8rem; border-radius: .3rem; }
.error { background: var(--redbg); color: var(--red); padding: .5rem .8rem; border-radius: .3rem; white-space: pre-wrap; }
form.new label { margin-right: 1rem; }
button, .button { font: inherit; padding: .35rem .9rem; border: 1px solid var(--inputborder); border-radius: .3rem; background: var(--btnbg); cursor: pointer; color: inherit; text-decoration: none; display: inline-block; }
button.primary { background: var(--primarybg); color: var(--primaryfg); border-color: var(--primarybg); }
input, select, textarea { font: inherit; color: var(--fg); background: var(--inputbg); border: 1px solid var(--inputborder); border-radius: .25rem; padding: .2rem .4rem; }
input[type=checkbox], input[type=radio] { padding: 0; }
a { color: var(--link); }
code, pre { background: var(--codebg); }
pre { padding: .5rem .8rem; border-radius: .3rem; overflow-x: auto; }
thead th, .report th { background: var(--thbg); }
tbody tr:nth-child(even) { background: var(--zebra); }
.theme { float: right; font-size: .85rem; color: var(--fg2); }
.theme button { padding: .1rem .5rem; font-size: .85rem; }
.theme button[aria-pressed=true] { background: var(--primarybg); color: var(--primaryfg); border-color: var(--primarybg); }
table { border-collapse: collapse; width: 100%; }
th, td { text-align: left; padding: .35rem .6rem; border-bottom: 1px solid var(--border); vertical-align: top; }
.table-wrap { overflow-x: auto; max-width: 100%; }
ol.timeline { padding-left: 1.2rem; } ol.timeline time { color: var(--grey); font-size: .85rem; margin-right: .5rem; }
ul.elements { list-style: none; padding: 0; } ul.elements li { padding: .4rem 0; border-bottom: 1px solid var(--border3); }
ul.elements input[type=number] { width: 6rem; }
.muted { color: var(--fg2); }
.report { overflow-x: auto; } .report table { width: auto; min-width: 100%; font-size: .9rem; }
.report th, .report td { border: 1px solid var(--border2); }
.report blockquote { margin: .8rem 0; padding: .5rem .9rem; border: 2px solid var(--quoteborder); border-left-width: 8px; background: var(--quotebg); border-radius: 4px; break-inside: avoid; }
@media print { @page { size: landscape; margin: 1cm; } body { max-width: none; font-size: 10pt; }
  nav, .noprint, .theme { display: none; } .report { overflow: visible; } .report table { font-size: 8.5pt; } tr { break-inside: avoid; } }
header a.back { font-size: .9rem; margin-left: 1rem; color: var(--link); }

/* build 5d: what a request searches (tokens only, both themes) */
fieldset.sources { border: 1px solid var(--border2); border-radius: .4rem; margin: .5rem 0; }
fieldset.sources label.src { display: inline-block; margin-right: 1rem; }
.chips { display: inline-flex; flex-wrap: wrap; gap: .25rem; vertical-align: middle; }
.chip { display: inline-block; padding: 0 .5rem; border-radius: .8rem; font-size: .75rem; white-space: nowrap; background: var(--greybg); color: var(--grey); border: 1px solid var(--border2); }
.inl { display: inline; }
.userbar { font-size: .85rem; color: var(--fg2); margin-top: .25rem; }
.userbar button { padding: .1rem .5rem; font-size: .85rem; }
.chip.guest { background: var(--amberbg); color: var(--amber); border-color: var(--amber); }
.prio select, .prio button { font-size: .8rem; padding: .05rem .35rem; }
.needs-approval { border-left: 4px solid var(--amber); background: var(--amberbg); color: var(--amber); padding: .5rem .75rem; }
