:root {
  --bg: #ffffff;
  --fg: #1a1a1a;
  --muted: #4a4f57;
  --panel: #f4f6f8;
  --accent: #1f5fbf;
  --accent-fg: #ffffff;
  --error: #b00020;
  --border: #8a8f98;
}
* { box-sizing: border-box; }
body { margin: 0; font: 16px/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color: var(--fg); background: var(--bg); }
main { max-width: 860px; margin: 0 auto; padding: 1.5rem 1rem 4rem; }
h1 { font-size: 1.75rem; margin: .5rem 0; }
.lede, .hint { color: var(--muted); }
.items-heading { font-size: 1rem; }
.banner { background: var(--panel); border-left: 4px solid var(--accent); padding: .75rem 1rem; margin: 1rem 0; }
fieldset { border: 1px solid var(--border); border-radius: 6px; margin: 1rem 0; padding: 1rem; }
legend { font-weight: 600; padding: 0 .25rem; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .75rem 1rem; }
label { display: block; font-weight: 600; margin-bottom: .25rem; }
input, select, textarea { width: 100%; font: inherit; color: var(--fg); background: var(--bg); border: 1px solid var(--border); border-radius: 4px; padding: .45rem .5rem; }
input:focus, select:focus, textarea:focus, button:focus { outline: 3px solid var(--accent); outline-offset: 1px; }
.item { display: grid; grid-template-columns: 1fr 90px 130px auto; gap: .5rem; align-items: end; margin-bottom: .5rem; }
button { font: inherit; border-radius: 4px; padding: .5rem 1rem; border: 1px solid var(--accent); background: var(--bg); color: var(--accent); cursor: pointer; }
button.primary { background: var(--accent); color: var(--accent-fg); font-weight: 600; }
.error { color: var(--error); font-weight: 600; }
.actions { display: flex; gap: .75rem; flex-wrap: wrap; margin: 1rem 0; }
.doc { border: 1px solid var(--border); border-radius: 6px; padding: 1.25rem; margin: 1rem 0; background: var(--bg); }
.parties { display: flex; gap: 2rem; flex-wrap: wrap; }
table.lines { width: 100%; border-collapse: collapse; margin: 1rem 0; }
table.lines th, table.lines td { border-bottom: 1px solid var(--border); padding: .35rem .25rem; text-align: left; }
.num { text-align: right !important; }
tr.due td { font-weight: 700; }
.disclaimer { font-size: .85rem; color: var(--muted); border-top: 1px solid var(--border); padding-top: .5rem; }
.check input { width: auto; }
.review-note { font-weight: 600; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media print {
  body { font-size: 12pt; }
  .no-print, form, .banner, header.site, footer.site { display: none !important; }
  main { max-width: none; padding: 0; }
  .doc { border: 0; padding: 0; margin: 0 0 1rem; }
  #doc-letter { break-before: page; }
}
::placeholder { color: var(--muted); opacity: 1; }

#draft { width: 100%; font: inherit; }
#removed li { margin: .4rem 0; }
.print-only { display: none; white-space: pre-wrap; font: inherit; }
@media print { #draft { display: none; } .print-only { display: block; } }
.draft-banner{margin:0;padding:.5rem 1rem;background:#fff3cd;border-bottom:2px solid #c99a00;font-weight:600;text-align:center}
.draft-note{font-style:italic;color:#7a5b00}
.site-nav{display:flex;flex-wrap:wrap;gap:1rem;padding:.75rem 1rem;border-bottom:1px solid #ddd}
.site-footer{margin-top:2rem;padding:1rem;border-top:1px solid #ddd}
.site-footer nav{display:flex;flex-wrap:wrap;gap:.75rem}
.eyebrow{text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr))}
.card{border:1px solid #ddd;padding:1rem;border-radius:.5rem}
.placeholder{background:#fff3cd}
.grid > .wide { grid-column: 1 / -1; }
