/* ============================================================================
   Tax Sale Roll — site-specific sheet. LOADS AFTER spine.css, never before.
   Rules here exist only because the spine has no equivalent. Tokens only —
   no literals, no shadows, no webfonts, no icon set, no transitions beyond
   the spine's .15s on button.primary. Sizes in px, per the spine.
   ========================================================================== */

/* Pre-deployment band. Removed at launch — it is not part of the design system. */
.draft-band{background:var(--gray-900);color:var(--gray-200);font-size:11.5px;
  line-height:1.5;padding:8px 32px;}
.draft-band .wrap2{max-width:var(--shell);margin:0 auto;}
.draft-band b{color:var(--white);}

/* Address field: the spine sizes inputs but does not lay out the search row.
   min-width keeps the row from collapsing before the 640px query. */
input#addr{flex:1;min-width:280px;}

/* Prose cap. The spine caps containers at 980px; long prose needs its own
   narrower measure (style spec §4: 760px). */
.prose{max-width:760px;}
.prose p{font-size:13.5px;line-height:1.55;color:var(--gray-600);margin:0 0 10px;}
.prose p:last-child{margin-bottom:0;}
.prose b{color:var(--gray-900);}

/* Two-up cell grid. The 640px collapse already lives in the spine
   (@media max-width:640px .uw-grid{grid-template-columns:1fr}) — this only
   supplies the base state the spine expects to find. */
.uw-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px;margin-top:4px;}
.uw-cell{border:1px solid var(--gray-200);border-radius:8px;padding:14px 16px;
  font-size:13px;line-height:1.55;color:var(--gray-600);}
.uw-cell .uw-out{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;
  color:var(--gray-400);font-weight:600;margin-bottom:6px;}

/* Chip row (states). Chips are spine-styled; this is layout only. */
.chiprow{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px;}
a.chip{text-decoration:none;}
a.chip:hover{border-color:var(--blue);color:var(--blue);}

/* Links in body copy. The spine styles .kv a; ordinary prose links need it too. */
.wrap a{color:var(--blue);}
.hint a{color:var(--gray-400);}

/* Batch 35 (DF-010, operator finding on the live site): anchors inside the
   dark footer band fell through to BROWSER DEFAULT colors — dark blue, and
   visited purple — against gray-900, i.e. effectively invisible. .wrap a
   above never reaches them (the footer is outside .wrap), and the spine
   styles only its own classed elements (.dx-more, .dx-close). Parent parity:
   very pale gray, underlined, visited included. Token only, never a hex. */
footer.disclaimer a{color:var(--gray-200);text-decoration:underline;}

/* Coverage chips (batch 31, PP-2): covered states read as live, the rest as
   plainly not covered — a coverage statement, never a schedule. Tokens only;
   the dot is CSS, not icon markup (spec §4). */
.chip-covered{background:var(--green-tint);border-color:var(--green);color:var(--green);}
.chip-covered::before{content:"";display:inline-block;width:7px;height:7px;
  border-radius:50%;background:var(--green);margin-right:6px;}
.chip-uncovered{background:var(--gray-100);border-color:var(--gray-200);color:var(--gray-400);}

/* Beta chip (D-13 landing, 2026-08-02): inline with the wordmark, soft-launch
   posture surface. Tokens only; removed at the indexable flip with its check. */
.betachip{display:inline-block;vertical-align:middle;margin-left:6px;font-size:10px;
  font-weight:700;letter-spacing:1.5px;color:var(--red);border:1px solid var(--red);
  border-radius:4px;padding:2px 6px;position:relative;top:-3px;}
