:root{
  --ink:#191d24; --paper:#fbfaf7; --line:#d8d5cd;
  --indigo:#2b3a67; --amber:#c8862a;
  --mono: "JetBrains Mono","SF Mono",Consolas,monospace;
  --sans: "Inter","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
body{
  margin:0; background:#e9e7e1; font-family:var(--sans); color:var(--ink);
  display:flex; justify-content:center; padding:40px 16px;
}
.sheet{ width:100%; max-width:900px; background:var(--paper); padding:40px 48px; box-shadow:0 2px 24px rgba(0,0,0,.08); border-radius:4px; }
.wordmark{ font-weight:800; font-size:20px; letter-spacing:-0.02em; margin-bottom:4px; }
.wordmark small{ display:block; font-family:var(--mono); font-weight:500; font-size:10px; letter-spacing:.14em; color:var(--amber); }
h1{ font-size:22px; letter-spacing:.04em; margin:0 0 24px; }
label{ display:block; font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:#777; margin:14px 0 4px; }
input[type=text], input[type=email], input[type=number], input[type=date], input[type=password], textarea, select{
  font-family:inherit; font-size:14px; color:inherit; border:none; border-bottom:1px solid var(--line);
  background:transparent; width:100%; padding:6px 2px; outline:none;
}
input:focus, textarea:focus{ border-bottom:1px solid var(--indigo); }
.grid2{ display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }
table.items{ width:100%; border-collapse:collapse; margin-top:12px; }
table.items th{ text-align:left; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#777; border-bottom:1.5px solid var(--ink); padding:6px 6px; }
table.items td{ padding:8px 6px; border-bottom:1px solid var(--line); vertical-align:top; }
table.items td.num{ width:100px; }
table.items input.num{ text-align:right; font-family:var(--mono); }
.amount-cell{ text-align:right; font-family:var(--mono); padding-top:12px; white-space:nowrap; }
button, .btn{
  font-family:var(--mono); font-size:12px; letter-spacing:.05em; text-transform:uppercase;
  background:var(--indigo); color:#fff; border:none; padding:12px 20px; border-radius:3px; cursor:pointer;
  text-decoration:none; display:inline-block;
}
button.secondary, .btn.secondary{ background:none; border:1px solid var(--line); color:#555; }
button.secondary:hover, .btn.secondary:hover{ border-color:var(--indigo); color:var(--indigo); }
.row-actions{ margin:10px 0 20px; }
.totals{ display:flex; justify-content:flex-end; margin-top:12px; }
.totals table{ width:280px; }
.totals td{ padding:6px 8px; font-size:14px; border:none; }
.totals td.label{ color:#555; }
.totals td.numcol{ text-align:right; font-family:var(--mono); }
.totals tr.due td{ border-top:2px solid var(--ink); font-weight:800; font-size:16px; padding-top:12px; }
.error-box{ background:#fff1f0; border-left:4px solid #b42318; color:#7a271a; padding:12px 14px; margin-bottom:20px; font-size:13px; border-radius:2px; }
.success-box{ background:#eef7ef; border-left:4px solid #2f7d4f; color:#1e5636; padding:12px 14px; margin-bottom:20px; font-size:13px; border-radius:2px; }
.topbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom:28px; }
.topbar .actions a{ margin-left:8px; }
table.list{ width:100%; border-collapse:collapse; font-size:13px; }
table.list th{ text-align:left; font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:#777; border-bottom:1.5px solid var(--ink); padding:8px 6px; }
table.list td{ padding:10px 6px; border-bottom:1px solid var(--line); }
.status{ font-family:var(--mono); font-size:10.5px; text-transform:uppercase; padding:2px 8px; border-radius:10px; }
.status.sent{ background:#fff4e0; color:var(--amber); }
.status.paid{ background:#eef7ef; color:#1e5636; }
.status.cancelled, .status.expired{ background:#f1f1f1; color:#888; }
.login-box{ max-width:360px; margin:80px auto 0; }
.center{ text-align:center; }
.muted{ color:#777; font-size:13px; }
