@font-face { font-family: 'DM Serif Display'; src: url(fonts/dm-serif-display.woff2) format('woff2'); font-display: swap; }

:root {
  --bg: #f3f2f5; --surface: #fff; --ink: #1d1720; --muted: #5d5462; --line: #d9d4dd; --line2: #ebe7ee;
  --plum: #2a1830; --plum2: #4a2a52; --brass: #9a6a12; --brass-soft: #f6ecd6; --ok: #1f6b3a; --ok-soft: #e3f2e7;
  --warn: #8a4b00; --warn-soft: #fff1d6; --bad: #a0251b; --bad-soft: #fde8e6; --focus: #b8862b;
  --btn: #2a1830; --btn-ink: #fff; --r: 6px;
  --serif: 'DM Serif Display', Georgia, 'Times New Roman', serif;
  --sans: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  color-scheme: light dark;
}
@media (prefers-color-scheme: dark) {
  :root { --bg: #141016; --surface: #1e1822; --ink: #efe9f1; --muted: #b3a8b8; --line: #3d3342; --line2: #2c2430;
    --plum: #150c18; --plum2: #3a2442; --brass: #e0b45e; --brass-soft: #3a2e17; --ok: #7fd49a; --ok-soft: #173322;
    --warn: #f3c06b; --warn-soft: #3a2b10; --bad: #ff9b90; --bad-soft: #3d1a17; --btn: #e0b45e; --btn-ink: #1a1018; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); font: 16px/1.5 var(--sans); }
a { color: var(--plum2); }
@media (prefers-color-scheme: dark) { a { color: var(--brass); } }
.wrap { max-width: 1120px; margin: 0 auto; padding: 0 16px; }
.vh { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 0 !important; padding: 0 !important; border: 0 !important; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--surface); padding: 8px 12px; z-index: 50; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; }
[hidden] { display: none !important; }
button, input, select, textarea { font: inherit; color: inherit; }

/* header */
.band { background: var(--plum); color: #f4ead8; border-bottom: 3px solid #b8862b; }
.band-in { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; flex-wrap: wrap; }
.brand { display: flex; align-items: center; gap: 10px; color: #f4ead8; text-decoration: none; font: 22px/1 var(--serif); }
.brand svg { color: #d8aa52; }
.band nav { display: flex; gap: 16px; }
.band nav a { color: #f4ead8; text-decoration: none; font-size: 15px; padding: 12px 0; }
.band nav a:hover { text-decoration: underline; }

.hero { padding: 22px 0 6px; max-width: 760px; }
h1 { font: 34px/1.12 var(--serif); margin: 0 0 8px; letter-spacing: -0.01em; }
.lede { margin: 0; color: var(--muted); font-size: 17px; }
h2 { font: 24px/1.2 var(--serif); margin: 0; }
h3 { font-size: 17px; margin: 18px 0 8px; }

/* tool shell */
.tool { margin: 16px 0 28px; }
.savebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 16px; font-size: 15px; color: var(--muted); padding: 2px 0 8px; }
.save-state { margin: 0; }
.save-state::before { content: ''; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ok); margin-right: 8px; vertical-align: 1px; }
.savebar-btns { display: flex; gap: 16px; }
.link { background: none; border: 0; padding: 6px 0; color: var(--plum2); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; min-height: 32px; }
@media (prefers-color-scheme: dark) { .link { color: var(--brass); } }
.file-btn { cursor: pointer; display: inline-block; }
.store-note, .import, .example-bar { background: var(--warn-soft); border-left: 4px solid var(--warn); padding: 10px 14px; margin: 0 0 12px; border-radius: 0 var(--r) var(--r) 0; }
.import { background: var(--brass-soft); border-color: var(--brass); }
.import p, .example-bar p { margin: 4px 0; }
.import ul { margin: 6px 0; padding-left: 20px; font-size: 15px; }
.looks { background: var(--bad-soft); border-left: 4px solid var(--bad); padding: 8px 14px; margin: 0 0 12px; border-radius: 0 var(--r) var(--r) 0; }
.looks summary { cursor: pointer; font-weight: 600; min-height: 32px; display: list-item; padding-top: 4px; }
.looks ul { margin: 6px 0 4px; padding-left: 20px; }
.looks li { margin: 4px 0; }

/* tabs: ticket stubs */
.tabs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.tabs [role=tab] { text-align: left; border: 1px solid var(--line); border-bottom: 0; background: var(--line2); padding: 10px 12px 9px; border-radius: var(--r) var(--r) 0 0; cursor: pointer; min-height: 56px; display: flex; flex-direction: column; justify-content: center; }
.tabs [role=tab][aria-selected=true] { background: var(--surface); box-shadow: inset 0 3px 0 #b8862b; }
.t-name { font-weight: 650; font-size: 16px; line-height: 1.2; }
.t-sub { font-size: 14px; color: var(--muted); line-height: 1.3; min-height: 1.3em; font-variant-numeric: tabular-nums; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: 0 0 var(--r) var(--r); padding: 18px 18px 20px; }

/* forms */
.field { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.field label, .seg legend, fieldset.levels legend { font-size: 15px; font-weight: 600; color: var(--ink); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  font-size: 16px; padding: 9px 10px; border: 1px solid #a99fae; border-radius: var(--r); background: var(--surface); min-height: 44px; width: 100%; }
@media (prefers-color-scheme: dark) { input:not([type=checkbox]):not([type=radio]), select, textarea { border-color: #5b4f61; } }
textarea { min-height: 70px; resize: vertical; }
input[aria-invalid=true] { border-color: var(--bad); background: var(--bad-soft); }
.check { display: flex; align-items: center; gap: 8px; min-height: 44px; font-size: 15px; }
.check input { width: 20px; height: 20px; accent-color: var(--plum2); }
.hint { color: var(--muted); font-size: 15px; margin: 6px 0; }
.event { display: grid; grid-template-columns: 1.3fr 1.3fr 180px; gap: 12px; align-items: end; }
.event .seg { grid-column: 1 / -1; }
.seg { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.seg legend { float: left; margin-right: 10px; padding: 0; }
.seg label { position: relative; }
.seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.seg span { display: inline-flex; align-items: center; min-height: 44px; padding: 6px 14px; border: 1px solid var(--line); border-radius: var(--r); cursor: pointer; background: var(--surface); font-size: 15px; white-space: nowrap; }
.seg input:checked + span { background: var(--plum); color: #fff; border-color: var(--plum); }
@media (prefers-color-scheme: dark) { .seg input:checked + span { background: var(--brass); color: #1a1018; border-color: var(--brass); } }
.seg input:focus-visible + span { outline: 3px solid var(--focus); outline-offset: 2px; }
.seg.sub { margin-bottom: 14px; }
.seg.small span { min-height: 40px; padding: 4px 12px; }
.more { margin: 8px 0 14px; border-top: 1px solid var(--line2); border-bottom: 1px solid var(--line2); }
.more > summary { cursor: pointer; padding: 10px 0; font-weight: 600; min-height: 44px; }
.more-in { padding: 4px 0 14px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.grid2 .wide { grid-column: 1 / -1; }
body:not([data-country=ca]) .ca-only, body:not([data-country=ca]) .ca-col { display: none; }

.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 16px; border-radius: var(--r); border: 1px solid var(--plum2); background: var(--surface); color: var(--plum2); font-weight: 600; cursor: pointer; text-decoration: none; }
@media (prefers-color-scheme: dark) { .btn { color: var(--brass); border-color: var(--brass); } }
.btn.primary { background: var(--btn); color: var(--btn-ink); border-color: var(--btn); }
.btn.quiet { border-color: var(--line); color: var(--ink); font-weight: 500; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.row-btns { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: flex-start; margin: 10px 0; }
.row-btns.tight { margin: 4px 0 0; }
.mini { min-width: 44px; min-height: 44px; border: 1px solid var(--line); background: var(--surface); border-radius: var(--r); cursor: pointer; font-size: 14px; padding: 0 8px; }
.mini.x { font-size: 20px; line-height: 1; color: var(--muted); }

/* set up lists */
.list-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin: 22px 0 8px; }
.count { margin: 0; color: var(--muted); font-size: 15px; }
.table-wrap { container-type: inline-size; }
table.edit { width: 100%; border-collapse: collapse; }
table.edit th { text-align: left; font-size: 14px; color: var(--muted); font-weight: 600; padding: 4px 4px; border-bottom: 1px solid var(--line); }
table.edit td { padding: 3px 3px; vertical-align: top; }
table.edit input { min-height: 40px; padding: 7px 8px; }
table.edit .c-no { width: 78px; }
table.edit .c-m { width: 104px; }
table.edit .c-x { width: 104px; white-space: nowrap; }
table.edit td.c-x { display: flex; gap: 4px; }
table.edit tr.none td { color: var(--muted); padding: 10px 4px; }
.more-row td { padding: 4px 4px 12px !important; }
.more-grid { display: grid; grid-template-columns: 2fr 1fr 1.4fr 1fr; gap: 10px; align-items: end; background: var(--line2); padding: 10px; border-radius: var(--r); }
.more-grid .wide { grid-column: span 2; }
@container (max-width: 700px) {
  table.edit thead { display: none; }
  table.edit tr[data-id] { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 6px; padding: 10px 0; border-bottom: 1px solid var(--line); }
  table.edit tr[data-id] td { padding: 0; display: block; }
  table.edit tr[data-id] td::before { content: attr(data-l); display: block; font-size: 13px; color: var(--muted); }
  table.items tr[data-id] td:nth-child(2) { grid-column: 2 / 4; }
  table.items tr[data-id] td:nth-child(3) { grid-column: 1 / 3; }
  table.bidders tr[data-id] td:nth-child(2) { grid-column: 2 / 4; }
  table.edit td.c-x { display: flex; justify-content: flex-end; align-self: end; }
  table.edit td.c-x::before { content: none; }
  table.bidders td.c-x { grid-column: 3; }
  table.edit .c-no, table.edit .c-m, table.edit .c-x { width: auto; }
  .more-grid { grid-template-columns: 1fr 1fr; }
  .more-row { display: block; }
  .more-row td { display: block; }
}
.paste { flex: 1 1 260px; }
.paste summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--plum2); text-decoration: underline; }
@media (prefers-color-scheme: dark) { .paste summary { color: var(--brass); } }
.paste-in { margin-top: 6px; }
.paste-in label { font-size: 15px; display: block; margin-bottom: 4px; }
.paste-msg { font-size: 15px; margin: 4px 0; }
.next-step { margin: 20px 0 0; padding-top: 12px; border-top: 1px solid var(--line2); }

/* winners: the tape */
.tape-entry { background: var(--brass-soft); border-radius: var(--r); padding: 14px; }
.trio { display: grid; grid-template-columns: 1fr 1fr 1.3fr auto; gap: 10px; align-items: end; }
.trio.two { grid-template-columns: 1fr 1fr auto; }
.trio.three { grid-template-columns: 1fr 1.6fr 1fr; margin-bottom: 10px; }
#w-item, #w-paddle, #w-amount, #r-amount, #r-paddle { font: 30px/1.1 var(--serif); min-height: 58px; padding: 8px 12px; font-variant-numeric: tabular-nums; }
.trio .btn { min-height: 58px; padding: 0 22px; }
.w-info { margin: 10px 0 0; min-height: 1.5em; font-size: 16px; }
.w-warn { margin: 10px 0 0; background: var(--warn-soft); border-left: 4px solid var(--warn); padding: 8px 12px; border-radius: 0 var(--r) var(--r) 0; }
.w-warn.err { background: var(--bad-soft); border-color: var(--bad); }
.w-warn p { margin: 4px 0; }
.editing { margin: 0 0 8px; font-weight: 600; color: var(--warn); }
.progress { margin: 14px 0 6px; font-size: 16px; }
.open-items summary { cursor: pointer; min-height: 40px; display: list-item; color: var(--plum2); }
@media (prefers-color-scheme: dark) { .open-items summary { color: var(--brass); } }
.chips { display: flex; flex-wrap: wrap; gap: 6px; }
.chip { min-width: 52px; min-height: 40px; border: 1px dashed var(--muted); background: var(--surface); border-radius: var(--r); cursor: pointer; font: 18px var(--serif); }
.find { min-width: 220px; flex: 0 1 300px; }
.tape { list-style: none; margin: 4px 0 0; padding: 0; border-top: 2px solid var(--ink); }
.tape li { display: grid; grid-template-columns: 64px minmax(0, 1.4fr) minmax(0, 1.4fr) 100px auto; gap: 4px 12px; align-items: center; padding: 6px 0; border-bottom: 1px dotted var(--line); }
.tape li.none { display: block; color: var(--muted); padding: 12px 0; }
.tape li.flag { background: var(--bad-soft); }
.tape li.editing-row { background: var(--warn-soft); }
.t-item { font: 22px var(--serif); font-variant-numeric: tabular-nums; }
.t-title, .t-who { min-width: 0; overflow-wrap: anywhere; }
.t-who { color: var(--muted); font-size: 15px; }
.t-amt { text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.t-btns { display: flex; gap: 4px; }
fieldset.levels { border: 0; padding: 0; margin: 0 0 10px; }
#levels { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.lvl { min-height: 48px; min-width: 88px; padding: 0 14px; border: 1px solid var(--plum2); border-radius: var(--r); background: var(--surface); font: 20px var(--serif); cursor: pointer; }
.lvl[aria-pressed=true] { background: var(--plum); color: #fff; }
@media (prefers-color-scheme: dark) { .lvl { border-color: var(--brass); } .lvl[aria-pressed=true] { background: var(--brass); color: #1a1018; } }

/* checkout */
.money-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 0 0 16px; border: 1px solid var(--line); border-radius: var(--r); }
.money-strip div { padding: 10px 14px; border-left: 1px solid var(--line); }
.money-strip div:first-child { border-left: 0; }
.money-strip dt { font-size: 14px; color: var(--muted); }
.money-strip dd { margin: 0; font: 28px/1.15 var(--serif); font-variant-numeric: tabular-nums; }
.money-strip dd.sub { font: 14px var(--sans); color: var(--muted); }
.money-strip .owed dd:not(.sub) { color: var(--bad); }
.co-cols { display: grid; grid-template-columns: minmax(260px, 340px) 1fr; gap: 20px; align-items: start; }
.co-queue .seg { margin: 10px 0; }
.queue { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.queue li.none { padding: 12px 0; color: var(--muted); }
.q-row { width: 100%; display: grid; grid-template-columns: 56px 1fr auto; gap: 8px; align-items: center; text-align: left; min-height: 48px; padding: 6px 8px; background: none; border: 0; border-bottom: 1px solid var(--line2); cursor: pointer; }
.q-row.sel { background: var(--brass-soft); box-shadow: inset 4px 0 0 #b8862b; }
.q-p { font: 22px var(--serif); font-variant-numeric: tabular-nums; }
.q-n { min-width: 0; overflow-wrap: anywhere; }
.q-s { font-size: 14px; font-variant-numeric: tabular-nums; }
.q-row.unpaid .q-s, .q-row.part .q-s { color: var(--bad); font-weight: 600; }
.q-row.paid .q-s { color: var(--ok); font-weight: 600; }
.q-row.none .q-s { color: var(--muted); }
.co-detail { border-left: 1px solid var(--line2); padding-left: 20px; min-height: 200px; }
.co-detail .d-h { font-size: 26px; outline-offset: 4px; }
.muted { color: var(--muted); }
.inv-screen { width: 100%; border-collapse: collapse; margin: 12px 0; }
.inv-screen td, .inv-screen th { padding: 6px 4px; border-bottom: 1px solid var(--line2); text-align: left; vertical-align: middle; }
.inv-screen th { font-size: 14px; color: var(--muted); }
.inv-screen .amt { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.inv-screen .tot td { font-weight: 600; }
.inv-screen tr.pay td { font-weight: 400; color: var(--muted); }
.inv-screen tr.due td { font: 22px var(--serif); border-bottom: 0; }
.inv-screen tr.due.owe td { color: var(--bad); }
.inv-screen .tick { width: 1%; white-space: nowrap; }
.pick { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; cursor: pointer; font-size: 14px; }
.pick input { width: 20px; height: 20px; accent-color: var(--ok); }
.payform h3 { margin-top: 8px; }
.pay-row { display: grid; grid-template-columns: 140px auto 1fr; gap: 10px; align-items: end; }
.pay-row .seg legend { float: none; display: block; margin-bottom: 3px; }
.pay-msg { min-height: 1.4em; margin: 6px 0 0; color: var(--warn); }

/* print panel */
.print-pick { display: flex; flex-wrap: wrap; gap: 10px 14px; align-items: flex-end; }
.print-pick > .field { min-width: 220px; }
.sheet-opts { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.preview { margin-top: 12px; background: var(--line2); padding: 16px; border-radius: var(--r); max-height: none; }
.preview .sheet { background: #fff; color: #111; margin: 0 auto 16px; max-width: 760px; padding: 28px 32px; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.more-pages { text-align: center; color: var(--muted); margin: 0; }
.files-h { margin-top: 28px; }
.files p { margin: 8px 0; }
.kept { padding-left: 20px; margin: 6px 0; }
.kept li { margin: 4px 0; }
.danger-row { display: flex; gap: 20px; flex-wrap: wrap; }
.danger-msg { color: var(--warn); min-height: 1.4em; }

.toast { position: fixed; left: 50%; bottom: 16px; transform: translateX(-50%); background: var(--plum); color: #fff; padding: 10px 16px; border-radius: var(--r); box-shadow: 0 4px 16px rgba(0,0,0,.3); z-index: 40; max-width: min(640px, calc(100vw - 32px)); display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: center; }
.toast .link { color: #f1cf86; }
/* phones: the entry boxes sit low on the screen while typing, so the toast goes to the top edge instead of over them */
@media (max-width: 760px) { .toast { top: 8px; bottom: auto; left: 8px; right: 8px; transform: none; max-width: none; } }
.empty-hint { margin: 10px 0 0; font-size: 15px; color: var(--muted); }
.nojs { background: var(--warn-soft); padding: 12px; }

/* content */
.content { max-width: 760px; padding-bottom: 32px; }
.content h2 { margin: 28px 0 10px; }
.content p { margin: 10px 0; }
.example { border-left: 3px solid #b8862b; padding-left: 14px; }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { cursor: pointer; padding: 12px 0; font-weight: 600; min-height: 44px; }
.faq details p { margin: 0 0 14px; }
.sources { font-size: 15px; color: var(--muted); margin-top: 22px; }
footer { border-top: 1px solid var(--line); padding: 18px 0 30px; font-size: 15px; color: var(--muted); }
footer a { color: inherit; }
.sb-more { line-height: 1.8; }

@media (max-width: 860px) {
  .event { grid-template-columns: 1fr 1fr; }
  .event .field:nth-child(3) { grid-column: 1 / -1; max-width: 220px; }
  .co-cols { grid-template-columns: 1fr; }
  .co-detail { border-left: 0; padding-left: 0; border-top: 2px solid var(--ink); padding-top: 12px; }
  .queue { max-height: none; }
}
@media (max-width: 640px) {
  h1 { font-size: 28px; }
  .band nav { gap: 12px; }
  .band nav a { font-size: 14px; }
  .tabs { gap: 3px; }
  .tabs [role=tab] { min-height: 52px; padding: 6px 6px 5px; }
  .t-name { font-size: 15px; }
  .t-sub { font-size: 14px; letter-spacing: -0.01em; }
  .wide-only { display: none; }
  .panel { padding: 14px 12px 16px; }
  .lede { font-size: 16px; }
  .hero { padding-top: 16px; }
  .seg.sub { margin-bottom: 10px; }
  .tape-entry { padding: 10px; }
  .event { grid-template-columns: 1fr; }
  .grid2 { grid-template-columns: 1fr; }
  .trio { grid-template-columns: 1fr 1fr 1.25fr; gap: 8px; }
  .trio .btn { grid-column: 1 / -1; min-height: 48px; }
  .band nav a:first-child { display: none; }
  .band-in { flex-wrap: nowrap; }
  .savebar { flex-wrap: nowrap; font-size: 14px; }
  .savebar-btns { gap: 12px; flex-shrink: 0; }
  .seg.sub span { padding: 6px 10px; }
  .trio.two { grid-template-columns: 1fr 1fr; }
  .trio.three { grid-template-columns: 1fr 1fr; }
  .trio.three .field:nth-child(2) { grid-column: 1 / -1; order: 3; }
  #w-item, #w-paddle, #w-amount, #r-amount, #r-paddle { font-size: 24px; min-height: 52px; padding: 6px 8px; }
  .tape li { grid-template-columns: 52px 1fr auto; }
  .tape .t-title { grid-column: 2 / 4; grid-row: 1; }
  .tape .t-who { grid-column: 2 / 3; grid-row: 2; }
  .tape .t-amt { grid-column: 3; grid-row: 2; }
  .tape .t-btns { grid-column: 2 / 4; grid-row: 3; justify-content: flex-end; }
  .tape .t-item { grid-row: 1 / 3; }
  .money-strip dd { font-size: 22px; }
  .money-strip div { padding: 8px 10px; }
  .pay-row { grid-template-columns: 1fr; }
  .preview { padding: 8px; }
  .preview .sheet { padding: 16px; }
  .find { min-width: 0; flex: 1 1 100%; }
}
@media (max-width: 360px) { .seg span { padding: 6px 10px; } .money-strip dd { font-size: 19px; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; scroll-behavior: auto !important; } }

/* ---------- paper (print root and on-screen preview share these) ---------- */
.print-root { display: none; }
.sheet { font: 11pt/1.4 Georgia, 'Times New Roman', serif; color: #111; }
.sheet .ph { border-bottom: 2px solid #111; margin-bottom: 10pt; padding-bottom: 4pt; }
.sheet .ph-org { margin: 0; font: 10pt/1.3 var(--sans); color: #444; }
.sheet .ph-title { font: 22pt/1.15 var(--serif); margin: 2pt 0 0; color: #111; }
.sheet .ph-sub { margin: 3pt 0 0; font: 10pt/1.3 var(--sans); color: #333; }
.sheet h3 { font: 13pt var(--serif); margin: 12pt 0 4pt; color: #111; }
.sheet table.grid { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 10.5pt; }
.sheet table.grid th { text-align: left; font: 600 9pt/1.2 var(--sans); color: #222; border-bottom: 1.5pt solid #111; padding: 3pt 4pt; }
.sheet table.grid td { border-bottom: 0.75pt solid #999; padding: 4pt 4pt; vertical-align: top; overflow-wrap: break-word; }
.sheet table.grid tr { break-inside: avoid; }
.sheet table.grid .num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.sheet table.grid .amt { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sheet table.grid th.amt { white-space: normal; }
.sheet table.grid .tick { text-align: center; font-size: 13pt; }
.sheet table.grid tr.blank td { height: 22pt; }
.sheet table.grid tbody.tot td { font-weight: 700; border-bottom: 0.75pt solid #999; }
.sheet table.grid tbody.tot tr:first-child td { border-top: 1.5pt solid #111; }
.sheet table.grid tr.pay td { font-weight: 400; }
.sheet table.grid tr.due td { font: 14pt var(--serif); border-bottom: 1.5pt solid #111; }
.sheet .w-num { width: 13%; } .sheet .w-name { width: 28%; } .sheet .w-phone { width: 20%; } .sheet .w-tick { width: 11%; }
.sheet .w-amt { width: 17%; } .sheet .w-amt2 { width: 19%; } .sheet .w-adv { width: 30%; } .sheet .w-win { width: 30%; } .sheet .w-st { width: 13%; }
.sheet table.big { font-size: 13pt; }
.sheet table.big td { padding: 5pt 4pt; }
.sheet table.big .win b { font: 15pt var(--serif); }
.sheet .muted { color: #555; }
.fill { display: inline-block; min-width: 60%; border-bottom: 0.75pt solid #111; }
.fill.short { min-width: 90pt; }
/* bid sheet */
.bidsheet .bs-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12pt; border-bottom: 2pt solid #111; padding-bottom: 4pt; }
.bidsheet .bs-no { margin: 0; font: 34pt/1 var(--serif); white-space: nowrap; }
.bidsheet .bs-no span { font: 600 10pt var(--sans); vertical-align: middle; text-transform: uppercase; letter-spacing: .06em; }
.bidsheet .bs-title { font: 24pt/1.15 var(--serif); margin: 8pt 0 4pt; color: #111; }
.bidsheet .bs-desc { margin: 0 0 4pt; }
.bidsheet .bs-donor { margin: 0 0 6pt; font-style: italic; }
.bidsheet .bs-rule { margin: 4pt 0; padding: 5pt 8pt; border: 1pt solid #111; font: 10pt/1.35 var(--sans); }
.bidsheet .bs-terms { margin: 6pt 0; font: 11pt var(--sans); }
.bidsheet .bs-table { width: 100%; border-collapse: collapse; margin-top: 4pt; }
.bidsheet .bs-table th { text-align: left; font: 600 10pt var(--sans); border-bottom: 1.5pt solid #111; padding: 3pt 6pt; }
.bidsheet .bs-table th:first-child { width: 50%; }
.bidsheet .bs-table td { height: 25pt; border-bottom: 0.75pt solid #777; padding: 2pt 6pt; font: 13pt var(--serif); vertical-align: bottom; }
.bidsheet .bs-table td:first-child { border-right: 0.75pt solid #777; }
.bidsheet .bs-foot { font: 9pt var(--sans); color: #333; margin: 6pt 0 0; }
/* invoices and letters */
.invoice .inv-who { display: flex; align-items: baseline; gap: 14pt; margin: 4pt 0 8pt; flex-wrap: wrap; }
.invoice .inv-paddle { margin: 0; font: 13pt var(--sans); }
.invoice .inv-paddle b { font: 28pt var(--serif); }
.invoice .inv-name { margin: 0; font-size: 14pt; }
.inv-note { margin: 6pt 0; font: 10pt var(--sans); }
.sheet table.grid tr.inv-run th { border-bottom: 0; font: 8.5pt var(--sans); color: #555; padding-bottom: 0; }
.sheet.invoice:not(.pg) { border-bottom: 1pt dashed #777; padding-bottom: 12pt; margin-bottom: 12pt; break-inside: avoid; }
.letter .lt-from { border-bottom: 1.5pt solid #111; padding-bottom: 4pt; margin-bottom: 14pt; }
.letter .lt-from p { margin: 0; font: 10pt/1.35 var(--sans); }
.letter .lt-org { font: 17pt/1.2 var(--serif) !important; }
.letter .lt-date { margin: 0 0 10pt; }
.letter .lt-to { margin: 0 0 14pt; }
.letter p { margin: 0 0 8pt; }
.letter .lt-table { margin: 8pt 0 10pt; }
.letter .lt-rule { font-weight: 700; }
.letter .lt-items { margin: 4pt 0 10pt; }
.lt-sign { margin-top: 16pt !important; }
.lt-signline { border-bottom: 0.75pt solid #111; width: 200pt; height: 26pt; margin: 0 !important; }
.receipt { border: 1.5pt solid #111; padding: 10pt 12pt; }
.receipt.inkind { margin-top: 18pt; break-inside: avoid; }
.receipt .rc-head { display: flex; justify-content: space-between; gap: 12pt; align-items: baseline; border-bottom: 1pt solid #111; margin-bottom: 8pt; padding-bottom: 4pt; }
.receipt .rc-head h2 { font: 13pt/1.25 var(--serif); margin: 0; color: #111; }
.receipt .rc-no { margin: 0; white-space: nowrap; font: 10pt var(--sans); }
.receipt .rc-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14pt; }
.receipt .rc-l { font: 600 9pt var(--sans); margin: 0 !important; color: #333; }
.receipt p { margin: 0 0 6pt; }
.receipt .rc-dates { font: 10pt var(--sans); }
.receipt .rc-elig { font-size: 12pt; }
.receipt .rc-skip { font: 9.5pt var(--sans); color: #333; }
.receipt .rc-replaces { font: 600 10pt var(--sans); margin: 0 0 6pt; }
.receipt .rc-sign { margin-top: 14pt; }
.receipt .rc-sign p { margin: 0; font: 10pt var(--sans); }
.receipt .rc-cra { font: 10pt var(--sans); margin-top: 8pt !important; }
.summary .sum-check { font: 10.5pt var(--sans); }
.summary .sum-list { font: 10pt var(--sans); }
.summary table.sum { max-width: 100%; }
.summary .rc-sign { margin-top: 18pt; }
.summary .rc-sign p { margin: 0; font: 10pt var(--sans); }

@media print {
  @page { margin: 0.55in 0.6in; }
  body { background: #fff; }
  body > *:not(.print-root) { display: none !important; }
  .print-root { display: block; }
  .sheet { break-after: auto; }
  .sheet.pg { break-after: page; }
  .sheet.pg:last-child { break-after: auto; }
  .sheet h3, .sheet .ph { break-after: avoid; }
  .sheet table.grid thead { display: table-header-group; }
  .receipt.inkind { break-inside: avoid; }
  .lt-table tbody.tot, .rc-sign { break-inside: avoid; }
  .summary table.sum tbody { break-inside: avoid; }
}

/* receipt calculator page */
.crumbs { font-size: 15px; padding-top: 14px; color: var(--muted); }
.calc { display: grid; grid-template-columns: minmax(0, 420px) 1fr; gap: 18px; align-items: start; }
.calc-form { border-radius: var(--r); display: grid; gap: 12px; }
.calc-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
#bid, #fmv { font: 28px/1.1 var(--serif); min-height: 56px; }
body:not([data-country=ca]) .ca-q { display: none; }
.result { background: var(--ok-soft); border-left: 5px solid var(--ok); border-radius: 0 var(--r) var(--r) 0; padding: 14px 18px; min-height: 120px; }
.result.no { background: var(--bad-soft); border-color: var(--bad); }
.result.info { background: var(--line2); border-color: var(--muted); }
.result .r-head { font: 26px/1.2 var(--serif); margin: 0 0 8px; }
.result ul { margin: 0; padding-left: 20px; }
.result li { margin: 6px 0; }
@media (max-width: 760px) { .calc { grid-template-columns: 1fr; } }
.brand, .band nav a { white-space: nowrap; }
@media (max-width: 640px) {
  .seg.sub { flex-wrap: nowrap; }
  .seg.sub label { flex: 1 1 0; min-width: 0; }
  .seg.sub span { width: 100%; justify-content: center; padding: 6px 4px; }
  .w-info:empty { display: none; }
}
@media (max-width: 400px) {
  .brand { font-size: 19px; gap: 8px; }
  .band nav a:last-child { display: none; }
  .seg.sub span { font-size: 14px; padding: 6px 2px; }
  .t-name { font-size: 14px; }
  .tabs [role=tab] { padding: 6px 4px 5px; }
}
.warn-msg { color: var(--warn); }
