/* Base Verified Rentals: one stylesheet, no external fonts or images.
   Paper and ink, one accent, tabular numbers, light and dark. */

:root {
  --paper: #f7f5f0;
  --paper-2: #efece4;
  --card: #fffdf8;
  --ink: #17191b;
  --ink-2: #44484d;
  --ink-3: #5f646a;
  --rule: #d9d4c8;
  --rule-2: #e7e2d7;
  --accent: #1d5a48;
  --accent-ink: #ffffff;
  --accent-soft: #e2eee8;
  --warn: #8a3b12;
  --warn-soft: #f8e7dc;
  --ok: #1d5a48;
  --ok-soft: #e2eee8;
  --hold: #a3241b;
  --chip-obs-bg: #f6ead0;
  --chip-obs-ink: #6b4a06;
  --chip-est-bg: #e3e9f3;
  --chip-est-ink: #263f66;
  --chip-held-bg: #f6e1dc;
  --chip-held-ink: #7c2516;
  --chip-ns-bg: #ebe8e1;
  --chip-ns-ink: #4a4d52;
  --chip-pub-bg: #e2eee8;
  --chip-pub-ink: #1d4d3e;
  --focus: #1d5a48;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, "Times New Roman", serif;
  --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
  --measure: 72ch;
  --radius: 10px;
  color-scheme: light dark;
}

@media (prefers-color-scheme: dark) {
  :root {
    --paper: #121413;
    --paper-2: #1a1d1c;
    --card: #161918;
    --ink: #ecebe6;
    --ink-2: #c4c6c3;
    --ink-3: #a3a7a4;
    --rule: #333836;
    --rule-2: #262a29;
    --accent: #7fd1b4;
    --accent-ink: #0d1a15;
    --accent-soft: #19302a;
    --warn: #f0a57d;
    --warn-soft: #2e1f17;
    --ok: #7fd1b4;
    --ok-soft: #19302a;
    --hold: #ff8a80;
    --chip-obs-bg: #3a2f14;
    --chip-obs-ink: #f3d189;
    --chip-est-bg: #1f2b3d;
    --chip-est-ink: #b7cdef;
    --chip-held-bg: #3d1f1a;
    --chip-held-ink: #f5b3a6;
    --chip-ns-bg: #2a2d2c;
    --chip-ns-ink: #c9cbc8;
    --chip-pub-bg: #19302a;
    --chip-pub-ink: #a6e3cd;
    --focus: #7fd1b4;
  }
}

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--sans);
  font-size: 1rem;
  line-height: 1.55;
  overflow-wrap: break-word;
}

.wrap { width: 100%; max-width: 76rem; margin: 0 auto; padding: 0 16px; }
@media (min-width: 48rem) { .wrap { padding: 0 32px; } }

a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 2px; border-radius: 3px; }
main:focus { outline: none; }

.skip { position: absolute; left: 16px; top: -100px; z-index: 10; background: var(--ink); color: var(--paper); padding: 10px 14px; border-radius: 6px; }
.skip:focus { top: 12px; }

/* ---------------------------------------------------------------- banner, header, footer */

.banner { background: var(--banner-bg, var(--ink)); color: var(--banner-ink, var(--paper)); font-size: 0.8125rem; letter-spacing: 0.01em; }
.banner .wrap { padding-top: 6px; padding-bottom: 6px; }
.banner-review { background: var(--hold); color: #fff; }

.site-header { border-bottom: 1px solid var(--rule); background: var(--paper); }
.header-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 24px; padding-top: 14px; padding-bottom: 14px; }
.brand { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; font-weight: 650; letter-spacing: -0.01em; min-height: 32px; }
.brand-mark { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 7px; background: var(--accent); color: var(--accent-ink); font-family: var(--serif); font-weight: 700; font-size: 1.05rem; }
.brand-name span { font-weight: 450; color: var(--ink-3); }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 2px 18px; }
.site-nav a { color: var(--ink-2); text-decoration: none; font-size: 0.9375rem; display: inline-block; padding: 4px 0; min-height: 24px; }
.site-nav a:hover, .site-nav a[aria-current="page"] { color: var(--ink); text-decoration: underline; }

.site-footer { margin-top: 72px; border-top: 1px solid var(--rule); background: var(--paper-2); color: var(--ink-2); font-size: 0.875rem; }
.site-footer .wrap { padding-top: 28px; padding-bottom: 40px; }
.site-footer p { max-width: var(--measure); margin: 0 0 10px; }
.site-footer .eho { font-weight: 600; color: var(--ink); }
.site-footer .footer-links { margin-top: 18px; }

/* ---------------------------------------------------------------- type */

main { padding-bottom: 8px; }
h1, h2, h3, h4 { color: var(--ink); line-height: 1.2; }
h1 { font-family: var(--serif); font-weight: 600; font-size: clamp(1.75rem, 1.2rem + 2.4vw, 2.75rem); letter-spacing: -0.015em; margin: 28px 0 8px; max-width: 34ch; text-wrap: balance; }
h2 { font-size: 1.375rem; font-weight: 650; letter-spacing: -0.01em; margin: 0 0 14px; }
h3 { font-size: 1.0625rem; font-weight: 650; margin: 24px 0 8px; }
p, ul, ol, dl { max-width: var(--measure); }
p { margin: 0 0 12px; }
ul, ol { padding-left: 1.25rem; margin: 0 0 14px; }
li { margin: 0 0 4px; }
code { font-family: var(--mono); font-size: 0.875em; background: var(--paper-2); border: 1px solid var(--rule-2); padding: 0 4px; border-radius: 4px; overflow-wrap: anywhere; }
pre.code { font-family: var(--mono); font-size: 0.875rem; background: var(--ink); color: var(--paper); padding: 14px 16px; border-radius: 8px; overflow-x: auto; max-width: 100%; }
pre.code code { background: none; border: 0; padding: 0; color: inherit; }
.muted { color: var(--ink-3); font-size: 0.9em; }
.lede { font-size: 1.0625rem; color: var(--ink-2); }
.strip { color: var(--ink-3); font-size: 0.9375rem; margin: 0 0 22px; }
.money, .num, td.num, th.num, .figure-value { font-variant-numeric: tabular-nums lining-nums; }

.crumbs ol { list-style: none; padding: 0; margin: 18px 0 0; display: flex; flex-wrap: wrap; gap: 4px; font-size: 0.875rem; color: var(--ink-3); max-width: none; }
.crumbs li + li::before { content: "/"; margin-right: 4px; color: var(--rule); }
.crumbs a { color: var(--ink-3); }

/* ---------------------------------------------------------------- sections */

main > section, main > .table-wrap, main > .callout, main > form { margin-top: 44px; }
main > section { padding-top: 28px; border-top: 1px solid var(--rule); }
main > section.answer { border-top: 1px solid var(--rule); padding-top: 20px; margin-top: 20px; }
@media (min-width: 48rem) { main > section.answer { padding-top: 28px; } }
section section { margin-top: 20px; }
.subsection { padding: 14px 16px; border: 1px solid var(--rule-2); border-radius: var(--radius); background: var(--card); max-width: var(--measure); }
.subsection h3 { margin-top: 0; }
.assistance { margin: 10px 0 0; padding-left: 12px; border-left: 3px solid var(--accent); }

/* ---------------------------------------------------------------- answer block (the hero) */

.answer {
  background: var(--card);
  border: 1px solid var(--rule);
  border-radius: 14px;
  padding: 20px 18px 16px;
  box-shadow: 0 1px 0 var(--rule-2), 0 12px 32px -24px rgba(20, 30, 25, 0.35);
}
@media (min-width: 48rem) { .answer { padding: 28px 30px 22px; } }
.answer-title { font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--ink-3); font-weight: 650; margin: 0 0 14px; }
.figures { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0; margin: 0 0 18px; max-width: none; border-top: 1px solid var(--rule-2); border-bottom: 1px solid var(--rule-2); }
.figure { padding: 14px 16px 14px 0; border-right: 1px solid var(--rule-2); margin-right: 16px; }
.figure:last-child { border-right: 0; }
.figure dt { font-size: 0.8125rem; color: var(--ink-3); font-weight: 550; margin-bottom: 4px; }
.figure dd { margin: 0; }
.figure-value { display: block; font-size: 1.375rem; font-weight: 650; letter-spacing: -0.01em; line-height: 1.2; }
.figure-value .chip { vertical-align: middle; margin-left: 6px; font-family: var(--sans); font-size: 0.75rem; letter-spacing: 0.02em; }
.figure-primary .figure-value { font-family: var(--serif); font-size: clamp(2rem, 1.6rem + 1.6vw, 2.75rem); color: var(--accent); font-weight: 600; }
.figure-phrase .figure-value, .figure-primary.figure-phrase .figure-value { font-family: var(--sans); font-size: 1.0625rem; font-weight: 600; color: var(--ink-2); letter-spacing: 0; }
.figure-note { display: block; margin-top: 4px; font-size: 0.8125rem; color: var(--ink-3); max-width: 28ch; }
@media (max-width: 40rem) {
  .figures { grid-template-columns: 1fr 1fr; }
  .figure { border-right: 0; margin-right: 0; padding-right: 8px; border-bottom: 1px solid var(--rule-2); }
  .figure-primary { grid-column: 1 / -1; }
  .figure:last-child, .figure:nth-last-child(2):not(.figure-primary) { border-bottom: 0; }
}
.answers { list-style: none; padding: 0; margin: 0; max-width: 80ch; }
.answers li { position: relative; padding: 7px 0 7px 22px; border-bottom: 1px dashed var(--rule-2); font-size: 1rem; }
.answers li:last-child { border-bottom: 0; }
.answers li::before { content: ""; position: absolute; left: 4px; top: 0.95em; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.answer-meta { margin: 12px 0 0; font-size: 0.8125rem; color: var(--ink-3); max-width: none; }

/* ---------------------------------------------------------------- chips */

.chip { display: inline-block; font-size: 0.75rem; line-height: 1.35; font-weight: 600; padding: 1px 7px; border-radius: 999px; white-space: nowrap; background: var(--chip-ns-bg); color: var(--chip-ns-ink); vertical-align: 0.08em; font-variant-numeric: normal; }
.chip-observed { background: var(--chip-obs-bg); color: var(--chip-obs-ink); }
.chip-estimated { background: var(--chip-est-bg); color: var(--chip-est-ink); }
.chip-held, .chip-mismatch, .chip-hold, .chip-does_not_meet, .chip-not_allowed, .chip-over_limit, .chip-above, .chip-expired { background: var(--chip-held-bg); color: var(--chip-held-ink); }
.chip-published, .chip-consistent, .chip-meets, .chip-allowed, .chip-accepted, .chip-within, .chip-confirmed, .chip-applied { background: var(--chip-pub-bg); color: var(--chip-pub-ink); }
.chip-if_eligible, .chip-pending_audit, .chip-pending_confirmation, .chip-insufficient_n, .chip-unconfirmed, .chip-cannot_verify, .chip-cannot_compute { background: var(--chip-obs-bg); color: var(--chip-obs-ink); }

/* ---------------------------------------------------------------- tables */

.table-wrap { width: 100%; overflow-x: auto; margin: 0 0 16px; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--card); -webkit-overflow-scrolling: touch; }
.table-wrap:focus-visible { outline-offset: 0; }
table { border-collapse: collapse; width: 100%; font-size: 0.9375rem; }
caption { text-align: left; caption-side: top; padding: 12px 14px 10px; font-weight: 650; font-size: 0.9375rem; color: var(--ink); border-bottom: 1px solid var(--rule); }
th, td { text-align: left; vertical-align: top; padding: 9px 14px; border-bottom: 1px solid var(--rule-2); }
thead th { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-3); font-weight: 650; white-space: nowrap; background: var(--paper-2); }
tbody th { font-weight: 600; }
tbody tr:last-child th, tbody tr:last-child td { border-bottom: 0; }
td.num, th.num { text-align: right; white-space: nowrap; }
td .muted { display: block; font-size: 0.8125rem; line-height: 1.4; min-width: 16ch; }
tr.group th, tr.group td { background: var(--paper-2); padding-top: 7px; padding-bottom: 7px; font-size: 0.8125rem; letter-spacing: 0.02em; }
tbody tr:hover td, tbody tr:hover th { background: color-mix(in srgb, var(--accent-soft) 45%, transparent); }
tr.group:hover th, tr.group:hover td { background: var(--paper-2); }
.units th, .units td, .results th, .results td { white-space: nowrap; }
.compare td { white-space: normal; min-width: 9ch; }
.compare td.num, .compare th { white-space: nowrap; }
.compare td:nth-last-child(-n+2) { white-space: normal; min-width: 30ch; }
/* .wide tables size to content; long phrase cells wrap instead of forcing a 96rem table. */
.quote-totals tbody th { font-weight: 650; }
.quote-totals tbody tr:first-child td.num, .quote-totals tbody tr:first-child th { font-size: 1.0625rem; }
.anchors td:last-child { min-width: 28ch; }
.charges td:last-child { min-width: 24ch; }

/* ---------------------------------------------------------------- lists of facts */

.kv { margin: 0 0 14px; max-width: 60rem; }
.kv > div { display: grid; grid-template-columns: 1fr; gap: 2px 20px; padding: 9px 0; border-bottom: 1px solid var(--rule-2); }
@media (min-width: 40rem) { .kv > div { grid-template-columns: minmax(10rem, 15rem) 1fr; } }
.kv dt { font-weight: 600; color: var(--ink); }
.kv dd { margin: 0; color: var(--ink-2); }
.legend { list-style: none; padding: 0; font-size: 0.8125rem; color: var(--ink-3); margin: 6px 0 14px; }
.legend li { margin-bottom: 3px; }
.legend .chip { margin-right: 4px; }
.contact-list { list-style: none; padding: 0; }
.contact-list li { padding: 6px 0; border-bottom: 1px solid var(--rule-2); }

/* ---------------------------------------------------------------- cards */

.cards { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(15.5rem, 1fr)); gap: 14px; max-width: none; }
.card { background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); padding: 16px 16px 14px; margin: 0; display: flex; flex-direction: column; }
.card-title { font-size: 1.125rem; margin: 0 0 2px; }
.communities .card-title { font-family: var(--serif); font-size: 1.375rem; font-weight: 600; }
.card-title a { color: var(--ink); text-decoration: none; }
.card-title a:hover { color: var(--accent); text-decoration: underline; }
.card-meta { font-size: 0.875rem; color: var(--ink-3); margin: 0 0 10px; }
.card-rows { margin: 0; }
.card-rows > div { display: flex; justify-content: space-between; gap: 12px; padding: 5px 0; border-top: 1px solid var(--rule-2); font-size: 0.9375rem; }
.card-rows dt { color: var(--ink-3); white-space: nowrap; }
.card-rows dd { margin: 0; text-align: right; font-variant-numeric: tabular-nums; font-weight: 600; }
.card-foot { margin: 10px 0 0; font-size: 0.8125rem; color: var(--ink-3); }

/* ---------------------------------------------------------------- callouts, holds */

.callout { border: 1px solid var(--rule); border-left: 4px solid var(--ink-3); background: var(--card); border-radius: 8px; padding: 12px 16px; margin: 0 0 16px; max-width: var(--measure); }
.callout p:last-child { margin-bottom: 0; }
.callout-warn { border-left-color: var(--warn); background: var(--warn-soft); }
.callout-ok { border-left-color: var(--ok); background: var(--ok-soft); }
.callout-note { border-left-color: var(--accent); }

[data-hold="true"] { outline: 2px dashed var(--hold); outline-offset: 1px; }
.hold { display: inline; color: var(--hold); font-size: 0.875em; }
.hold-badge { display: inline-block; background: var(--hold); color: #fff; font-size: 0.6875rem; font-weight: 700; letter-spacing: 0.06em; padding: 0 5px; border-radius: 3px; }

/* ---------------------------------------------------------------- forms */

.form { background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); padding: 18px 16px; margin: 14px 0; max-width: 52rem; }
@media (min-width: 48rem) { .form { padding: 22px 24px; } }
.form-title { font-size: 1.0625rem; margin: 0 0 10px; }
.form-help { font-size: 0.875rem; color: var(--ink-3); }
.field { display: flex; flex-direction: column; gap: 4px; margin: 0 0 12px; min-width: 0; }
.field-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: 0 14px; }
.field label { font-size: 0.875rem; font-weight: 600; color: var(--ink-2); }
.field-check { flex-direction: row; align-items: flex-start; gap: 10px; }
.field-check label { font-weight: 500; color: var(--ink); }
.field-check input { margin-top: 3px; width: 20px; height: 20px; flex: none; accent-color: var(--accent); }
input, select, textarea { font: inherit; color: var(--ink); background: var(--paper); border: 1px solid var(--ink-3); border-radius: 7px; padding: 9px 10px; min-height: 44px; width: 100%; max-width: 100%; }
textarea { min-height: 96px; resize: vertical; }
input[type="radio"], input[type="checkbox"] { width: 20px; height: 20px; min-height: 0; padding: 0; accent-color: var(--accent); }
.button { font: inherit; font-weight: 650; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border-radius: 8px; border: 1px solid var(--accent); background: var(--accent); color: var(--accent-ink); cursor: pointer; text-decoration: none; }
.button:hover { filter: brightness(1.08); }
.button-quiet { background: transparent; color: var(--ink); border-color: var(--ink-3); }
.button-row { display: flex; flex-wrap: wrap; gap: 10px; }
fieldset.slots { border: 0; padding: 0; margin: 0 0 14px; }
fieldset.slots legend { font-weight: 650; margin-bottom: 6px; padding: 0; }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(7.5rem, 1fr)); gap: 8px; }
.slot { position: relative; }
.slot input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.slot label { display: block; text-align: center; padding: 9px 6px; border: 1px solid var(--ink-3); border-radius: 7px; cursor: pointer; font-variant-numeric: tabular-nums; background: var(--card); }
.slot label:hover { border-color: var(--accent); }
.slot input:checked + label { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); font-weight: 650; }
.slot input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 2px; }
.precheck-result:not(:empty) { margin-top: 14px; padding: 12px 14px; border-radius: 8px; background: var(--paper-2); border: 1px solid var(--rule-2); }
.precheck-result p { margin: 0 0 6px; }

@media (prefers-reduced-motion: no-preference) {
  a, .button, .slot label { transition: color 120ms ease, background-color 120ms ease, border-color 120ms ease; }
}

@media print {
  .site-header nav, .banner, form, .skip { display: none; }
  body { background: #fff; color: #000; }
}

/* Review holds inside nowrap tables wrap onto their own line. */
td .hold, th .hold { display: block; white-space: normal; min-width: 32ch; margin-top: 4px; }

/* ---- Fixer round 1 (review findings M3, M4, M5, M9, m1, m2, m5, m6, m9) ---- */

@media (prefers-color-scheme: dark) {
  :root { --banner-bg: #2a2e2c; --banner-ink: #ecebe6; }
}

/* Compare: the compared column stays in view; names stay visible while scrolling sideways (M4). */
.compare thead th:first-child, .compare tbody th { position: sticky; left: 0; background: var(--card); z-index: 1; box-shadow: 1px 0 0 var(--rule-2); }
td.primary { font-weight: 650; color: var(--ink); }

/* Scroll cue on scrollable tables (M5): shadows show only where more columns are hidden. */
.table-wrap {
  background:
    linear-gradient(to right, var(--card) 30%, transparent) left center / 40px 100% no-repeat local,
    linear-gradient(to left, var(--card) 30%, transparent) right center / 40px 100% no-repeat local,
    radial-gradient(farthest-side at 0 50%, rgba(0, 0, 0, 0.14), transparent) left center / 14px 100% no-repeat scroll,
    radial-gradient(farthest-side at 100% 50%, rgba(0, 0, 0, 0.14), transparent) right center / 14px 100% no-repeat scroll,
    var(--card);
}

/* Primary actions under the answer block (M9). */
.answer-actions { margin: 14px 0 0; }
.contact-list a.button { margin: 2px 0; }

/* Tap targets of at least 24px (m5). */
tbody th a, .contact-list a, .footer-links a { display: inline-block; padding: 3px 0; min-height: 24px; }
.footer-links a { padding: 4px 0; }
.skip:focus-visible { outline-color: var(--paper); }
a[href^="sms:"], a[href^="tel:"], time, .nowrap { white-space: nowrap; }

/* Total monthly leads on cards (m6). */
.card-rows > div.card-row-primary dd { font-size: 1.125rem; color: var(--accent); }

/* Narrow screens: stack table rows as cards with their column names (M3), shorter chrome (m9). */
@media (max-width: 40rem) {
  .table-wrap.units, .table-wrap.results, .table-wrap.compare, .table-wrap.verify { overflow: visible; border: 0; background: none; }
  .units table, .units tbody, .units tr, .units th, .units td,
  .results table, .results tbody, .results tr, .results th, .results td,
  .compare table, .compare tbody, .compare tr, .compare th, .compare td,
  .verify table, .verify tbody, .verify tr, .verify th, .verify td { display: block; white-space: normal; min-width: 0; text-align: left; }
  .units thead, .results thead, .compare thead, .verify thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .units caption, .results caption, .compare caption, .verify caption { display: block; text-align: left; }
  .units tr, .results tr, .compare tr, .verify tr { background: var(--card); border: 1px solid var(--rule); border-radius: var(--radius); margin: 0 0 10px; padding: 10px 12px; }
  .units td, .results td, .compare td, .verify td { border: 0; padding: 3px 0; display: flex; justify-content: space-between; gap: 12px; }
  .units td::before, .results td::before, .compare td::before, .verify td::before { content: attr(data-label); color: var(--ink-3); font-size: 0.8125rem; flex: 0 0 auto; }
  .compare thead th:first-child, .compare tbody th { position: static; box-shadow: none; }
  .charges td, .quote-lines td { white-space: normal; }
  .charges td:last-child, .quote-lines td:last-child { min-width: 16ch; font-size: 0.8125rem; }
  .site-nav ul { flex-wrap: nowrap; overflow-x: auto; gap: 2px 14px; }
  .banner { font-size: 0.75rem; }
  h1 { font-size: 1.625rem; }
  .slot-grid { grid-template-columns: repeat(3, 1fr); }
}

/* ---- Fixer round 2 (V-01): quote line items, quote totals, charges and the other record-page tables
   stack on narrow screens. Every amount stays fully visible; Basis and Notes text sits under each
   amount with its column name. */
@media (max-width: 40rem) {
  .table-wrap:is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) { overflow: visible; background: var(--card); }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) :is(table, tbody, tr, th, td) { display: block; width: auto; min-width: 0; white-space: normal; text-align: left; }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) caption { display: block; }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) tr { padding: 8px 12px; border-bottom: 1px solid var(--rule-2); }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) tbody tr:last-child { border-bottom: 0; }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) :is(th, td) { border: 0; padding: 2px 0; }
  :is(.quote-lines, .charges) tr.group { background: var(--paper-2); padding-top: 6px; padding-bottom: 6px; }
  /* Amounts: column name left, amount right, wrapping when long. */
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td.num { text-align: right; display: flow-root; }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td.num::before { content: attr(data-label); float: left; margin-right: 12px; color: var(--ink-3); font-size: 0.8125rem; line-height: 1.8; }
  /* Text cells (Basis, Notes, How often): column name above the text. */
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td:not(.num)::before { content: attr(data-label); display: block; color: var(--ink-3); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; }
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td :is(.muted, .hold) { min-width: 0; }
  .quote-totals tbody tr:first-child td.num, .quote-totals tbody tr:first-child th { font-size: 1rem; }
  /* Group headings and empty cells carry no column name (after the td.num rule so it wins). */
  :is(.quote-lines, .charges) tr.group td,
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td:empty,
  :is(.quote-lines, .quote-totals, .charges, .specials, .anchors, .area, .bah, .perf) td:has(> .muted:only-child:empty) { display: none; }
  /* Stacked unit/compare/verify cells: chips and long amounts wrap instead of overflowing the card. */
  :is(.units, .results, .compare, .verify) td { flex-wrap: wrap; }
  :is(.units, .results, .compare, .verify) td::before { margin-right: auto; }
}
