/* KeepYourGroup stylesheet: ledger paper, ledger ink, one highlighter.
   Layers: tokens, base reset, layout (container, section rhythm, flow), components, report, print.
   Every color, font, size and space is a token on :root (documented in site/DESIGN.md).
   @font-face rules are inlined in each page's <head> (base.html) so fonts are found before this file loads.
   Color roles: green = actions; highlighter = an open filing window and focus; ochre (--due-ink) = a deadline
   within 14 days; brick (--past) = closed/revoked, private reports only, never on public pages. */

/* ================= tokens ================= */
:root {
  color-scheme: light;
  /* palette */
  --paper: #F4F7F2;        /* ledger paper */
  --surface: #FFFFFF;
  --wash: #E8EFE9;         /* table heads, footer, quiet fills */
  --zebra: #FAFBF8;
  --ink: #142E25;          /* 13.4:1 on paper */
  --ink-2: #4A5D55;        /* 6.5:1 on paper */
  --rule: #C7D8CB;         /* decorative hairlines only */
  --rule-strong: #5F7F6C;  /* inputs, meter border: 4.1:1 */
  --edge: #9AB0A2;         /* box borders: 2.1:1 on paper, visible on bright screens */
  --green: #1F6247;        /* links, primary buttons: 6.7:1; white on it 7.25:1 */
  --green-deep: #174A35;
  --green-wash: #E1EEE5;
  --mark: #FFD84D;         /* highlighter: open window, focus halo; ink on it 10.5:1 */
  --mark-soft: #FFF1B8;
  --due-ink: #8A5300;      /* a deadline within 14 days: 5.9:1 on paper */
  --due-bar: #B26A00;      /* meter fill 25-50% (private reports) */
  --past: #A33A26;         /* closed, revoked: private reports only */
  --past-bg: #F7E3DE;
  --ok-ink: #1E5A3F; --ok-bg: #E1EEE5;
  --slate-ink: #34505C; --slate-bg: #E5ECEE;

  /* type: AHN for body, UI and tables; Newsreader 600 for h1-h2 and display numerals (tabular by default) */
  --font-body: "Atkinson Hyperlegible Next", "AHN Fallback", system-ui, sans-serif;
  --font-head: "Newsreader", "Newsreader Fallback", Georgia, serif;
  --step--1: 1rem;                                              /* 16 floor: cells, captions */
  --step-0: clamp(1.125rem, 1.076rem + 0.217vw, 1.25rem);       /* 18-20 body */
  --step-1: clamp(1.344rem, 1.258rem + 0.380vw, 1.5625rem);     /* 21.5-25 lead, h3 */
  --step-2: clamp(1.625rem, 1.503rem + 0.543vw, 1.9375rem);     /* 26-31 */
  --step-3: clamp(1.9375rem, 1.742rem + 0.870vw, 2.4375rem);    /* 31-39 h2 */
  --step-4: clamp(2.344rem, 2.062rem + 1.25vw, 3.0625rem);      /* 37.5-49 page h1 */
  --step-5: clamp(2.8125rem, 2.421rem + 1.739vw, 3.8125rem);    /* 45-61 hero h1, countdown numeral */
  --leading: 1.55; --leading-tight: 1.12; --leading-table: 1.35;
  --measure: 32em;          /* about 70 characters at body size (em, not ch) */
  --measure-wide: 44em;

  /* one spacing scale, 4/8px base */
  --space-1: 0.25rem;  /*  4 */
  --space-2: 0.5rem;   /*  8 */
  --space-3: 0.75rem;  /* 12 */
  --space-4: 1rem;     /* 16 */
  --space-5: 1.5rem;   /* 24 */
  --space-6: 2rem;     /* 32 */
  --space-7: 3rem;     /* 48 */
  --space-8: 4rem;     /* 64 */
  --space-9: 6rem;     /* 96 */
  --section-space: var(--space-7);   /* one section rhythm; steps up on wide screens */
  --flow-space: 1em;

  /* layout */
  --container: 72rem;
  --container-pad: clamp(16px, 4vw, 40px);
  --target: 3rem; --radius: 8px; --radius-sm: 4px;
  --radius-box: 6px;        /* every box: cards, callouts, panels, notes */
  --box-max: 60rem;         /* boxes and narrow page columns share one width, centred */
}
@media (min-width: 48rem) { :root { --section-space: var(--space-8); } }

/* ================= base reset ================= */
*, *::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(--font-body); font-size: var(--step-0); line-height: var(--leading); font-kerning: normal; text-rendering: optimizeLegibility; overflow-x: clip; }
h1, h2, h3, h4, h5, h6, p, ul, ol, dl, dd, figure, blockquote, table, fieldset, pre { margin: 0; }
ul[class], ol[class] { padding: 0; list-style: none; }
img, svg { max-width: 100%; height: auto; }
h1, h2, h3, h4 { color: var(--ink); text-wrap: balance; }
h1, h2, .display { font-family: var(--font-head); font-weight: 600; font-synthesis: none; letter-spacing: -0.012em; line-height: var(--leading-tight); }
h1 { font-size: var(--step-4); letter-spacing: -0.018em; }
h2 { font-size: var(--step-3); }
h3, h4 { font-family: var(--font-body); font-weight: 700; line-height: 1.25; }
h3 { font-size: var(--step-1); }
h4 { font-size: var(--step-0); }
p { text-wrap: pretty; }
body { overflow-wrap: break-word; }
a { color: var(--green); text-decoration-thickness: 1px; text-underline-offset: 0.2em; }
a:hover { color: var(--green-deep); text-decoration-thickness: 2px; }
strong, b { font-weight: 700; }
em, i { font-style: normal; font-weight: 650; }  /* no italic files shipped */
small, .small { font-size: var(--step--1); }
.num, .n, table { font-variant-numeric: tabular-nums lining-nums; }
[hidden] { display: none !important; }
.nowrap { white-space: nowrap; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 7px var(--mark); border-radius: 3px; }
:target { scroll-margin-top: var(--space-5); }

/* ================= layout ================= */
.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--container-pad); }
.container--narrow, .page-narrow .site-header .container, .page-narrow .site-footer .container { max-width: calc(var(--box-max) + 2 * var(--container-pad)); }
:where(.hero-grid, .pricing, .cards, .sheet-grid, .changes, .guide, .windows, .search, .cta-row, .rp-actions, .toolbar) > * { min-width: 0; }
/* Box rule: a box on paper or white is centred in its column and has a 1px border and the shared radius. */
.box { width: 100%; max-width: var(--box-max); margin-inline: auto; border: 1px solid var(--edge); border-radius: var(--radius-box); background: var(--surface); }
.section { padding-block: var(--section-space); }
.section + .section { border-top: 1px solid var(--rule); }
.flow > * + * { margin-block-start: var(--flow-space); }
.stack { display: grid; gap: var(--space-6); }
.measure { max-width: var(--measure); }
.muted { color: var(--ink-2); }
.vh { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: var(--space-4); top: -5rem; z-index: 10; background: var(--ink); color: #fff; padding: var(--space-3) var(--space-4); border-radius: var(--radius); font-weight: 700; }
.skip:focus { top: var(--space-4); color: #fff; }
.print-only, .print-asof { display: none; }

/* section and page heads */
.section-head { max-width: var(--measure); margin-bottom: var(--space-6); }
.section-head > * + * { margin-block-start: var(--space-3); }
.section-head p { color: var(--ink-2); font-size: var(--step-1); line-height: 1.45; }
.source { color: var(--ink-2); font-size: var(--step--1); max-width: 38em; }
.page-head { padding-block: var(--space-7) var(--space-6); }
.page-head > * + * { margin-block-start: var(--space-4); }
.page-head h1 { max-width: 22em; }
.page-head .lead { font-size: var(--step-1); line-height: 1.45; max-width: var(--measure); color: var(--ink-2); text-wrap: balance; }
.page-body { padding-bottom: var(--section-space); }
.crumbs { font-size: var(--step--1); color: var(--ink-2); }
.crumbs a { color: var(--ink-2); }

/* "Data as of" stamp */
.stamp { display: inline-flex; max-width: 100%; align-items: baseline; gap: 0.35em; flex-wrap: wrap; font-size: var(--step--1); color: var(--ink-2); line-height: 1.4; border: 1px solid var(--rule); border-radius: var(--radius-sm); padding: var(--space-1) var(--space-3); background: var(--surface); }
.stamp b { color: var(--ink); }

/* ================= header and footer ================= */
.site-header { border-bottom: 1px solid var(--rule); }
.site-header .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 var(--space-6); padding-block: var(--space-2); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); min-height: 2.75rem; min-width: 0; color: var(--ink); text-decoration: none; font-family: var(--font-head); font-weight: 600; font-size: clamp(1.15rem, 1rem + 1.2vw, 1.45rem); letter-spacing: -0.01em; }
.brand span { overflow-wrap: anywhere; }
.brand-mark { width: 2.4rem; height: 2.4rem; flex: none; }
.brand--footer { font-size: 1.15rem; }
.brand--footer .brand-mark { width: 1.6rem; height: 1.6rem; }
.brand:hover { color: var(--ink); }

.nav { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); }
.nav a { display: inline-flex; align-items: center; justify-content: center; min-height: 2.75rem; min-width: 2.75rem; color: var(--ink); text-decoration: none; font-size: 1.0625rem; border-bottom: 3px solid transparent; }
.nav a:hover { border-bottom-color: var(--rule); color: var(--ink); }
.nav a[aria-current="page"] { border-bottom-color: var(--mark); }
.nav-s { display: none; }
@media (max-width: 40em) {
  .site-header .container { padding-block: var(--space-1) 0; }
  .site-header nav { width: 100%; overflow-x: auto; scrollbar-width: none; }
  .site-header nav::-webkit-scrollbar { display: none; }
  .nav { flex-wrap: nowrap; gap: 0 var(--space-4); white-space: nowrap; }
  .nav-l { display: none; }
  .nav-s { display: inline; }
  .nav a { font-size: 1rem; }
}
.site-footer { border-top: 1px solid var(--ink); background: var(--wash); padding-block: var(--space-7); font-size: 1.0625rem; }
.site-footer .container > * + * { margin-block-start: var(--space-4); }
.footer-line { font-weight: 700; }
.footer-links { display: flex; flex-wrap: wrap; gap: 0 var(--space-5); }
.footer-links a { display: inline-flex; align-items: center; min-height: 2.75rem; color: var(--ink); }
.asof { color: var(--ink-2); font-size: var(--step--1); max-width: 38em; }
.footer-id { max-width: 44em; }

/* ================= controls ================= */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-height: var(--target); padding: var(--space-3) var(--space-5); border-radius: var(--radius); font: inherit; font-weight: 700; font-size: 1.0625rem; line-height: 1.2; text-align: center; text-decoration: none; cursor: pointer; border: 2px solid var(--green); background: var(--green); color: #fff; }
.btn:hover { background: var(--green-deep); border-color: var(--green-deep); color: #fff; text-decoration: none; }
.btn-quiet { background: var(--surface); color: var(--green); }
.btn-quiet:hover { background: var(--green-wash); color: var(--green-deep); }
.btn-small { min-height: 2.75rem; padding: var(--space-2) var(--space-4); font-size: 1rem; }
.cta-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-4); }
.cta-row > a:not(.btn) { display: inline-flex; align-items: center; min-height: 2.75rem; }
.cta-price { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); line-height: 1; }
.cta-note { color: var(--ink-2); font-size: var(--step--1); }
/* Soft-launch honesty line: plain text, no box (filing is free; the guide shows how) */
.honesty { color: var(--ink); max-width: 40rem; }
.honesty a { font-weight: 600; }
.field { display: grid; gap: var(--space-2); }
.label { font-weight: 700; }
.hint { display: block; color: var(--ink-2); font-size: var(--step--1); text-wrap: pretty; }
.input, .select { font: inherit; color: var(--ink); background: var(--surface); border: 2px solid var(--rule-strong); border-radius: var(--radius); min-height: 3.25rem; padding: var(--space-2) var(--space-4); width: 100%; }
.input::placeholder { color: #5E6F67; }
.input[type="search"] { -webkit-appearance: none; appearance: none; }
.input::-webkit-search-cancel-button { filter: grayscale(1) brightness(.45); cursor: pointer; }
input[type="file"]::file-selector-button { font: inherit; font-weight: 700; color: var(--green); background: var(--surface); border: 2px solid var(--green); border-radius: var(--radius); min-height: 2.75rem; padding: 0 var(--space-4); margin-right: var(--space-4); cursor: pointer; }
.search { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.search .input { flex: 1 1 14rem; min-width: 0; font-size: 1.25rem; }
.search .btn { flex: 0 0 auto; min-height: 3.25rem; }
.search-form { max-width: 40rem; }
@media (max-width: 30em) { .search .input, .search .btn { flex: 1 1 100%; } }

/* ================= landing ================= */
.hero { padding-block: var(--space-7) var(--section-space); }
.hero h1 { font-size: min(var(--step-5), 12vw); line-height: 1.06; letter-spacing: -0.02em; max-width: 19em; overflow-wrap: break-word; hyphens: manual; }
.hero-grid { display: grid; gap: var(--space-7); margin-top: var(--space-6); }
@media (min-width: 64rem) { .hero-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--space-8); align-items: start; } }
.hero-main > * + * { margin-block-start: var(--space-6); }
.hero .lead { font-size: var(--step-1); line-height: 1.45; max-width: var(--measure); }

/* countdown blocks: dates first, days in words; no hours or seconds */
.windows { display: grid; gap: var(--space-4); }
.window { width: 100%; margin-inline: auto; border: 1px solid var(--edge); border-left: 6px solid var(--mark); border-radius: var(--radius-box); background: var(--surface); padding: var(--space-4) var(--space-5); }
.window--deadline { border-left-color: var(--rule-strong); }
.window__label { color: var(--ink-2); font-size: var(--step--1); line-height: 1.35; }
.window__dates { font-weight: 700; margin-top: var(--space-1); }
.window__days { margin-top: var(--space-2); line-height: 1.1; }
.window__days .num { font: 600 var(--step-5)/1 var(--font-head); font-variant-numeric: tabular-nums lining-nums; letter-spacing: -0.02em; }
.window__days .unit { font-size: var(--step-1); margin-left: var(--space-1); }
.window[data-state="due-soon"] .window__days { color: var(--due-ink); }
.window[data-state="upcoming"] { border-left-color: var(--green); }
.window[data-state="closed"], .window[data-state="passed"] { border-left-color: var(--rule-strong); }
.window[data-state="closed"] .window__days, .window[data-state="passed"] .window__days { color: var(--ink-2); }
.windows-note { color: var(--ink-2); font-size: var(--step--1); }

/* the window strip: the season as a calendar band, the filing window highlighted (decorative; dates are in text) */
.strip { margin-top: var(--space-8); }
.m-short { display: none; }
.strip-track { --row: 2.9rem; position: relative; height: 4rem; margin-top: 3.4rem; margin-bottom: calc(var(--rows, 1) * var(--row) + var(--space-3)); background: repeating-linear-gradient(90deg, transparent 0 calc(var(--week) - 1px), var(--rule) calc(var(--week) - 1px) var(--week)), var(--surface); border: 1px solid var(--ink); }
@media (max-width: 30em) { .strip { display: none; } }
.strip-month { position: absolute; top: 0; bottom: 0; border-left: 1px solid var(--rule-strong); padding: var(--space-1) 0 0 var(--space-2); font-size: 0.9375rem; color: var(--ink-2); white-space: nowrap; }
.strip-month span { background: var(--surface); padding-right: var(--space-1); }
.strip-window { position: absolute; top: 1.65rem; bottom: 0.4rem; background: var(--mark); border-radius: 2px 8px 3px 9px / 5px 3px 6px 3px; }
.strip-pin { position: absolute; top: -0.55rem; bottom: -0.55rem; width: 0; }
.strip-pin::before { content: ""; position: absolute; top: 0; bottom: 0; left: -1px; border-left: 2px solid var(--ink); }
.strip-pin--dash::before { border-left-style: dashed; }
.strip-pin--today::after { content: ""; position: absolute; top: -0.4rem; left: -0.4rem; width: 0.8rem; height: 0.8rem; border-radius: 50%; background: var(--ink); }
.strip-label { position: absolute; white-space: nowrap; font-size: 0.9375rem; line-height: 1.2; transform: translateX(-50%); color: var(--ink-2); }
.strip-label b { display: block; font-size: 1rem; color: var(--ink); }
.strip-label--above { bottom: calc(100% + 1.15rem); }
.strip-label--row0 { top: calc(100% + var(--space-2)); }
.strip-label--row1 { top: calc(100% + var(--space-2) + var(--row)); }
.strip-label--row2 { top: calc(100% + var(--space-2) + 2 * var(--row)); }
.strip-label--start { transform: none; }
.strip-label--end { transform: translateX(-100%); text-align: right; }
.strip-caption { color: var(--ink-2); font-size: var(--step--1); max-width: 38em; margin-top: var(--space-3); }
@media (max-width: 40em) {
  .strip-track { --row: 2.6rem; height: 3.4rem; }
  .strip-window { top: 1.5rem; }
  .strip-month { font-size: 0.8125rem; }
  .strip-month--minor span, .strip-label--minor { display: none; }
  .strip-month .m-long { display: none; }
  .strip-month .m-short { display: inline; }
  .strip-label { font-size: 0.875rem; }
  .strip-label b { font-size: 0.9375rem; }
}

/* what changed */
.changes { display: grid; gap: var(--space-6) var(--space-7); grid-template-columns: minmax(0, 1fr); }
@media (min-width: 48rem) { .changes { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.changes li { border-top: 2px solid var(--ink); padding-top: var(--space-4); }
.changes li > * + * { margin-block-start: var(--space-2); }

/* the "what you get" ledger */
.ledger { width: 100%; border-collapse: collapse; background: var(--surface); border: 1px solid var(--edge); border-top: 2px solid var(--ink); }
.ledger th, .ledger td { text-align: left; vertical-align: top; padding: var(--space-4); border-bottom: 1px solid var(--rule); }
.ledger thead th { font-size: var(--step--1); color: var(--ink-2); background: var(--wash); }
.ledger tbody th { width: 46%; }
.ledger tbody td { color: var(--ink-2); }
.ledger tr:last-child > * { border-bottom: 0; }
@media (max-width: 40em) {
  .ledger--stack thead { display: none; }
  .ledger--stack tr { display: block; border-bottom: 1px solid var(--rule); padding-block: var(--space-2); }
  .ledger--stack tr:last-child { border-bottom: 0; }
  .ledger--stack tbody th, .ledger--stack tbody td { display: block; width: auto; border: 0; padding: var(--space-1) var(--space-4); }
}

/* sample preview */
.sheet-stage { position: relative; padding: var(--space-4) var(--space-2) 0; max-width: var(--box-max); margin-inline: auto; }
.sheet-stage::before { content: ""; position: absolute; inset: 0 var(--space-2) var(--space-4); background: var(--wash); border: 1px solid var(--edge); border-radius: var(--radius-box); transform: rotate(-1deg); }
.sheet { position: relative; background: var(--surface); border: 1px solid var(--edge); border-radius: var(--radius-box); padding: clamp(var(--space-5), 4vw, var(--space-7)); box-shadow: 0 18px 36px -28px rgba(20, 46, 37, 0.5); }
.sheet > * + * { margin-block-start: var(--space-5); }
.sheet-top { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: var(--space-2) var(--space-5); border-bottom: 1px solid var(--ink); padding-bottom: var(--space-4); }
.sheet-top h3 { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); }
.sheet-note { font-size: var(--step--1); color: var(--ink-2); }
.sheet-grid { display: grid; gap: var(--space-5) var(--space-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); }
.sheet-k { font-size: var(--step--1); color: var(--ink-2); }
.sheet-v { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); line-height: 1.15; }

/* pricing */
.pricing { display: grid; gap: var(--space-6); grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); align-items: stretch; }
.plan { background: var(--surface); border: 1px solid var(--edge); border-top: 3px solid var(--ink); border-radius: var(--radius-box); padding: clamp(var(--space-5), 3vw, var(--space-6)); }
.plan > * + * { margin-block-start: var(--space-4); }
.plan h3 { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); }
.plan .price { font-family: var(--font-head); font-weight: 600; font-size: var(--step-5); line-height: 1; letter-spacing: -0.02em; }
.plan .price small { font-family: var(--font-body); font-size: 1.0625rem; font-weight: 400; color: var(--ink-2); letter-spacing: 0; }
.plan ul { padding-left: 1.2rem; }
.plan li + li { margin-top: var(--space-2); }
.plan { display: flex; flex-direction: column; }
.plan .cta-row { margin-block-start: auto; padding-top: var(--space-5); }
.tiers { width: 100%; border-collapse: collapse; }
.tiers th, .tiers td { padding: var(--space-3) 0; border-bottom: 1px solid var(--rule); text-align: left; font-weight: 400; }
.tiers tr:first-child > * { border-top: 1px solid var(--rule); }
.tiers td { text-align: right; font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); white-space: nowrap; line-height: 1.1; }
.tiers td small { font-family: var(--font-body); font-weight: 400; font-size: 1rem; color: var(--ink-2); }

/* FAQ */
.faq { max-width: var(--measure-wide); border-top: 2px solid var(--ink); }
.faq details { border-bottom: 1px solid var(--rule); }
.faq summary { cursor: pointer; list-style: none; padding: var(--space-4) var(--space-7) var(--space-4) 0; position: relative; font-weight: 700; font-size: var(--step-1); line-height: 1.3; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; position: absolute; right: var(--space-1); top: 50%; transform: translateY(-50%); font-size: 1.8rem; line-height: 1; font-weight: 400; color: var(--green); }
.faq details[open] summary::after { content: "\2212"; }
.faq .answer { padding-bottom: var(--space-5); max-width: var(--measure); }
.faq .answer > * + * { margin-block-start: var(--space-3); }
.faq .answer a { overflow-wrap: anywhere; }
.faq-note { margin-top: var(--space-4); color: var(--ink-2); font-size: var(--step--1); }

/* ================= lookup ================= */
.results { margin-top: var(--space-5); border-top: 2px solid var(--ink); max-width: var(--box-max); margin-inline: auto; }
.result { border-bottom: 1px solid var(--rule); }
.result a { display: block; padding: var(--space-4) var(--space-2); text-decoration: none; color: var(--ink); }
.result a:hover { background: var(--surface); }
.result .r-name { font-weight: 700; font-size: var(--step-1); line-height: 1.3; color: var(--green); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.2em; overflow-wrap: anywhere; }
.result .r-meta { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-5); margin-top: var(--space-1); color: var(--ink-2); font-size: 1.0625rem; }
.status-line { margin-top: var(--space-4); font-size: 1.0625rem; color: var(--ink-2); min-height: 1.6em; }
.empty { margin-top: var(--space-5); padding: var(--space-4) var(--space-5); background: var(--surface); border: 1px solid var(--edge); border-left: 4px solid var(--green); border-radius: var(--radius-box); width: 100%; max-width: var(--box-max); margin-inline: auto; }
.empty > * + * { margin-block-start: var(--space-2); }

/* window chip (public: open, upcoming or closed; never brick) */
.chip { display: inline-block; padding: 0 var(--space-2); border-radius: 999px; font-size: 1rem; font-weight: 700; line-height: 1.6; white-space: nowrap; }
.chip { border: 1px solid transparent; }
.chip--open { background: var(--mark); color: var(--ink); border-color: #D9B22F; }
.chip--upcoming { background: var(--green-wash); color: var(--green-deep); border-color: #B7D3C1; }
.chip--closed { background: var(--slate-bg); color: var(--slate-ink); border-color: #C3D1D6; }

/* ================= group page ================= */
.facts { display: grid; grid-template-columns: minmax(10rem, 16rem) minmax(0, 1fr); width: 100%; max-width: var(--box-max); margin-inline: auto; border: 1px solid var(--edge); border-top: 2px solid var(--ink); background: var(--surface); }
.facts dt, .facts dd { padding: var(--space-4); border-bottom: 1px solid var(--rule); }
.facts dt { color: var(--ink-2); font-size: 1.0625rem; background: var(--wash); }
.facts dd { font-weight: 700; overflow-wrap: anywhere; }
.facts dd .sub { display: block; font-weight: 400; color: var(--ink-2); font-size: 1.0625rem; margin-top: var(--space-1); }
@media (max-width: 36em) {
  .facts { grid-template-columns: minmax(0, 1fr); }
  .facts dt { border-bottom: 0; padding-bottom: 0; }
  .facts dd { padding-top: var(--space-1); }
}
.callout { background: var(--surface); border: 1px solid var(--edge); border-top: 3px solid var(--green); border-radius: var(--radius-box); padding: clamp(var(--space-5), 3vw, var(--space-6)); width: 100%; max-width: var(--box-max); margin-inline: auto; }
.callout > * + * { margin-block-start: var(--space-3); }
.callout h2 { font-size: var(--step-2); }
.callout .cta-row { margin-block-start: var(--space-5); }
.note { padding: var(--space-4) var(--space-5); background: var(--slate-bg); color: var(--ink); border: 1px solid #C3D1D6; border-radius: var(--radius-box); width: 100%; max-width: var(--box-max); margin-inline: auto; }
.group-window { width: 100%; max-width: var(--box-max); margin-inline: auto; }
.group-window + .strip { margin-top: var(--space-6); }

/* ================= guide ================= */
.guide { display: grid; gap: var(--space-6); grid-template-columns: minmax(0, 1fr); padding-bottom: var(--section-space); }
@media (min-width: 64rem) { .guide { grid-template-columns: 15rem minmax(0, var(--measure)); gap: var(--space-8); } }
.toc { font-size: 1.0625rem; }
.toc details { background: var(--surface); border: 1px solid var(--edge); padding: var(--space-3) var(--space-4); }
.toc summary { display: flex; align-items: center; font-weight: 700; cursor: pointer; min-height: 2.75rem; }
.toc ol { padding-left: 1.25rem; margin-top: var(--space-3); }
.toc li + li { margin-top: var(--space-2); }
.toc ol ol { margin-top: var(--space-2); font-size: 1rem; }
.toc a { color: var(--ink); }
@media (min-width: 64rem) {
  .toc { position: sticky; top: var(--space-5); align-self: start; max-height: calc(100vh - 3rem); overflow: auto; }
  .toc details { background: none; border: 0; border-left: 1px solid var(--rule-strong); padding: 0 0 0 var(--space-4); }
}

/* long-form prose (guide, legal) */
.prose { max-width: var(--measure); --flow-space: 1.1em; }
.prose > * + * { margin-block-start: var(--flow-space); }
.prose > h2 { font-size: var(--step-3); margin-block-start: var(--space-8); padding-top: var(--space-5); border-top: 1px solid var(--rule); }
.prose > h3 { margin-block-start: var(--space-6); }
.prose > h4 { margin-block-start: var(--space-5); }
.prose h2 + *, .prose h3 + *, .prose h4 + * { margin-block-start: var(--space-3); }
.prose ul, .prose ol { padding-left: 1.4rem; }
.prose li + li { margin-top: var(--space-2); }
.prose table { border-collapse: collapse; width: 100%; font-size: var(--step--1); line-height: var(--leading-table); background: var(--surface); display: block; overflow-x: auto; }
.prose th, .prose td { border-bottom: 1px solid var(--rule); padding: var(--space-2) var(--space-3); text-align: left; vertical-align: top; }
.prose thead th { box-shadow: inset 0 -2px 0 var(--ink); }
.prose tbody tr:nth-child(even) { background: var(--zebra); }
.prose caption { padding-bottom: var(--space-2); }
.prose blockquote { border-left: 3px solid var(--rule-strong); padding-left: var(--space-4); color: var(--ink-2); }
.prose code { font-size: 0.95em; background: var(--wash); padding: 0.05em 0.3em; border-radius: 3px; }
.prose .lede { font-size: var(--step-1); line-height: 1.45; }
.prose a { overflow-wrap: anywhere; }
.kyg-box { background: var(--surface); border: 1px solid var(--edge); border-top: 3px solid var(--green); border-radius: var(--radius-box); padding: clamp(var(--space-4), 3vw, var(--space-6)); }
.kyg-box > * + * { margin-block-start: var(--space-3); }
.prose .kyg-box h2 { margin-top: 0; padding-top: 0; border-top: 0; font-size: var(--step-2); }
.legal > h2 { font-size: var(--step-1); font-family: var(--font-body); font-weight: 700; margin-block-start: var(--space-7); padding-top: 0; border-top: 0; }
.draft-banner { background: var(--mark-soft); color: var(--due-ink); border: 1px solid var(--due-bar); border-radius: var(--radius-box); padding: var(--space-3) var(--space-4); width: 100%; margin-inline: auto; }
.disclaimer-box > * + * { margin-block-start: var(--space-3); }
.disclaimer-box ul { padding-left: 1.3rem; }
.disclaimer-box li + li { margin-top: var(--space-3); }
.disclaimer-short { color: var(--ink-2); }
.placeholder-note { background: var(--wash); border: 1px solid var(--edge); border-left: 4px solid var(--rule-strong); border-radius: var(--radius-box); padding: var(--space-3) var(--space-4); }

/* disclaimer box: inline content stays inline */
.disclaimer { background: var(--surface); border: 1px solid var(--ink); border-left-width: 4px; border-radius: var(--radius-box); padding: var(--space-4) var(--space-5); font-size: 1.0625rem; width: 100%; margin-inline: auto; }
.disclaimer-title { display: block; font-weight: 700; margin-bottom: var(--space-1); }

/* ================= report renderer ================= */
.report > * + * { margin-block-start: var(--space-5); }
.rp-head > * + * { margin-block-start: var(--space-3); }
.rp-head h2 { font-size: var(--step-3); }
.rp-sub { color: var(--ink-2); }
.rp-stamps { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.rp-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.report > .tabs { margin-block-start: var(--space-6); }
.tabs { display: flex; flex-wrap: wrap; gap: var(--space-1); border-bottom: 2px solid var(--ink); }
.report > .tabs + .panel { margin-block-start: 0; }
.tab { font: inherit; font-size: 1.0625rem; font-weight: 700; cursor: pointer; color: var(--ink); background: transparent; border: 1px solid transparent; border-bottom: 0; border-radius: 6px 6px 0 0; padding: var(--space-3) var(--space-4); margin-bottom: -2px; min-height: 2.9rem; }
.tab:hover { background: var(--wash); }
.tab[aria-selected="true"] { background: var(--surface); border-color: var(--ink); border-bottom: 3px solid var(--surface); }
.tab .count { font-weight: 400; color: var(--ink-2); font-variant-numeric: tabular-nums; }
@media (max-width: 40em) {
  .tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; border-bottom: 0; box-shadow: inset 0 -2px 0 var(--ink); }
  .tab { flex: none; margin-bottom: 0; border: 0; scroll-snap-align: start; }
  .tabs { scroll-snap-type: x proximity; -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent); mask-image: linear-gradient(90deg, #000 88%, transparent); }
  .tab[aria-selected="true"] { background: var(--ink); color: #fff; border: 0; }
  .tab[aria-selected="true"] .count { color: #fff; }
  .report > .tabs + .panel, .panel { border-top: 0; }
}
.panel { background: var(--surface); border: 1px solid var(--ink); border-top: 0; padding: clamp(var(--space-4), 3vw, var(--space-7)); }
.report > .panel { margin-block-start: 0; }
.panel > * + * { margin-block-start: var(--space-5); }
.panel-title { font-family: var(--font-head); font-weight: 600; font-size: var(--step-3); }
.cards { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.stat { border: 1px solid var(--edge); border-top: 3px solid var(--ink); border-radius: var(--radius-box); padding: var(--space-4); background: var(--surface); }
.stat > * + * { margin-block-start: var(--space-2); }
.stat .v { font: 600 var(--step-4)/1.05 var(--font-head); font-variant-numeric: tabular-nums lining-nums; }
.stat .v-text { font: 600 var(--step-2)/1.15 var(--font-head); }
.stat .k { font-weight: 700; }
.stat .s { font-size: var(--step--1); color: var(--ink-2); }
.stat--due { border-top-color: var(--due-bar); }
.stat--past { border-top-color: var(--past); }
.stat--slate { border-top-color: var(--slate-ink); }
.stat--window { border-top-color: var(--mark); }
.badge { display: inline-block; padding: 0 var(--space-2); border-radius: 999px; font-size: 1rem; font-weight: 700; white-space: nowrap; line-height: 1.6; }
.badge { border: 1px solid transparent; }
.b-ok { background: var(--ok-bg); color: var(--ok-ink); border-color: #B7D3C1; }
.b-due { background: var(--mark-soft); color: var(--due-ink); border-color: #E9CF73; }
.b-past { background: var(--past-bg); color: var(--past); border-color: #E6B8AD; }
.b-slate { background: var(--slate-bg); color: var(--slate-ink); border-color: #C3D1D6; }
.b-plain { background: var(--wash); color: var(--ink-2); border-color: var(--rule); }
.b-review { background: var(--mark-soft); color: var(--ink); border: 1px solid #D9B640; }
.b-behind { background: #FFF8DB; color: var(--ink); border-color: #E9CF73; }
/* 50% meter: private reports and the fictional sample only; text first, bar second */
.meter-text { font-weight: 700; }
.meter-bar { position: relative; height: 12px; background: var(--wash); border: 1px solid var(--rule-strong); border-radius: 2px; }
.meter-fill { position: absolute; left: 0; top: 0; bottom: 0; min-width: 2px; background: var(--green); }
.meter-fill[data-level="mid"] { background: var(--due-bar); }
.meter-fill[data-level="high"] { background: var(--past); }
.meter-tick { position: absolute; top: -5px; bottom: -5px; border-left: 2px solid var(--ink); }
.meter-scale { display: flex; justify-content: space-between; gap: var(--space-4); font-size: 0.9375rem; color: var(--ink-2); margin-top: var(--space-1); }
.meter-scale span:nth-child(2) { text-align: center; }
/* tables */
.table-wrap { overflow: auto; max-height: 75vh; border: 1px solid var(--edge); border-radius: var(--radius-box); background: var(--surface); }
.table-title { font: 700 var(--step-1)/1.2 var(--font-body); }
.table-title small { display: block; font-weight: 400; font-size: var(--step--1); color: var(--ink-2); margin-top: var(--space-1); }
.table-title + .table-wrap { margin-top: var(--space-3); }
caption { text-align: left; font: 700 var(--step-1)/1.2 var(--font-body); padding-bottom: var(--space-3); caption-side: top; }
caption small { display: block; font-weight: 400; font-size: var(--step--1); color: var(--ink-2); margin-top: var(--space-1); }
.dt { width: 100%; border-collapse: collapse; font-size: var(--step--1); line-height: var(--leading-table); }
.dt th, .dt td { padding: 0.65em 0.75em; border-bottom: 1px solid var(--rule); text-align: left; vertical-align: top; }
.dt thead th { position: sticky; top: 0; z-index: 2; background: var(--surface); box-shadow: inset 0 -2px 0 var(--ink); white-space: nowrap; }
.dt tbody tr:nth-child(even) { background: var(--zebra); }
.dt tbody tr:hover { background: var(--mark-soft); }
.dt th[scope="row"] { position: sticky; left: 0; z-index: 1; font-weight: 700; min-width: 11rem; background-color: var(--surface); }
.dt tbody tr:nth-child(even) > th[scope="row"] { background-color: var(--zebra); }
.dt tbody tr:hover > th[scope="row"] { background-color: var(--mark-soft); }
.dt .n { text-align: right; white-space: nowrap; }
.dt .nowrap { white-space: nowrap; }
.dt .sub { display: block; font-weight: 400; color: var(--ink-2); }
.filters { display: flex; flex-wrap: wrap; gap: var(--space-2); border: 0; padding: 0; min-width: 0; }
.filters legend { font-weight: 700; margin-bottom: var(--space-2); padding: 0; }
.filter { position: relative; }
.filter input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.filter span { display: inline-flex; align-items: center; min-height: 2.75rem; border: 1px solid var(--rule-strong); border-radius: 999px; padding: var(--space-1) var(--space-4); cursor: pointer; font-size: 1rem; background: var(--surface); font-variant-numeric: tabular-nums; }
.filter input:checked + span { background: var(--ink); border-color: var(--ink); color: #fff; }
.filter input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 7px var(--mark); }
.toolbar { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-4); align-items: end; }
.toolbar .field { flex: 1 1 16rem; }
.form-part { border-top: 1px solid var(--ink); padding-top: var(--space-5); }
.form-part > * + * { margin-block-start: var(--space-4); }
.worksheet-flag { display: inline-block; background: var(--wash); border: 1px dashed var(--rule-strong); padding: var(--space-1) var(--space-3); border-radius: var(--radius-sm); font-weight: 700; }
.kv { display: grid; grid-template-columns: minmax(8rem, 18rem) minmax(0, 1fr); border: 1px solid var(--edge); }
.kv dt, .kv dd { padding: var(--space-2) var(--space-3); border-bottom: 1px solid var(--rule); }
.kv dt { background: var(--wash); color: var(--ink-2); }
.kv dd { font-weight: 700; display: flex; justify-content: space-between; gap: var(--space-3); align-items: center; overflow-wrap: anywhere; font-variant-numeric: tabular-nums lining-nums; }
.kv dd .todo { font-weight: 400; color: var(--ink-2); }
@media (max-width: 36em) { .kv { grid-template-columns: minmax(0, 1fr); } .kv dt { border-bottom: 0; padding-bottom: 0; } }
.q { border: 1px solid var(--edge); border-radius: var(--radius-box); padding: var(--space-4); }
.q > * + * { margin-block-start: var(--space-2); }
.q + .q { margin-top: var(--space-3); }
.q-top { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); justify-content: space-between; align-items: baseline; }
.q-ans { font-weight: 700; font-size: var(--step-1); }
.q-basis { color: var(--ink-2); font-size: 1.0625rem; }
.row-card { border: 1px solid var(--edge); border-left: 3px solid var(--ink); border-radius: var(--radius-box); overflow: hidden; }
.row-card + .row-card { margin-top: var(--space-4); }
.row-card h4 { padding: var(--space-2) var(--space-3); background: var(--wash); font-size: 1.0625rem; border-bottom: 1px solid var(--rule); }
.row-card .kv { border: 0; }
.row-card .reference { padding: var(--space-3); border-top: 1px solid var(--rule); background: var(--zebra); font-size: 1rem; }
.row-card .reference > * + * { margin-top: var(--space-1); }
.ein-list { font-size: 0.9375rem; color: var(--ink-2); overflow-wrap: anywhere; }
.copy { font: inherit; font-size: 0.9375rem; font-weight: 700; color: var(--green); background: var(--surface); border: 1px solid var(--rule-strong); border-radius: 6px; padding: var(--space-1) var(--space-3); cursor: pointer; white-space: nowrap; flex: none; min-height: 2.75rem; min-width: 4.5rem; }
.copy:hover { border-color: var(--green); background: var(--green-wash); }
.copy[data-done] { background: var(--ok-bg); border-color: var(--ok-ink); color: var(--ok-ink); }
.drop { border: 2px dashed var(--rule-strong); border-radius: var(--radius); padding: var(--space-5); background: var(--paper); }
.drop.is-over { background: var(--green-wash); border-color: var(--green); }
.privacy-pill { display: inline-block; background: var(--ok-bg); color: var(--ok-ink); border: 1px solid #B7D3C1; padding: 0 var(--space-2); border-radius: var(--radius-sm); font-weight: 700; font-size: 1rem; }
.error { background: var(--slate-bg); color: var(--ink); border: 1px solid #C3D1D6; border-left: 4px solid var(--slate-ink); padding: var(--space-4) var(--space-5); border-radius: var(--radius-box); width: 100%; max-width: var(--box-max); margin-inline: auto; }
.error > * + * { margin-block-start: var(--space-2); }
.loading { color: var(--ink-2); padding-block: var(--space-7); }
.loading::after { content: ""; display: block; height: 3px; width: 12rem; max-width: 60%; margin-top: var(--space-4); background: linear-gradient(90deg, var(--rule) 0 30%, var(--green) 30% 55%, var(--rule) 55%) 0 0 / 200% 100%; animation: slide 1.4s linear infinite; }
@keyframes slide { to { background-position: -200% 0; } }
.notfound { padding-block: var(--section-space); }
.notfound > * + * { margin-block-start: var(--space-5); }


/* ================= batch 2 components ================= */
/* landing: three outcomes before the proof table */
.outcomes { display: grid; gap: var(--space-5); grid-template-columns: minmax(0, 1fr); counter-reset: out; }
@media (min-width: 56rem) { .outcomes { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.outcome { background: var(--surface); border: 1px solid var(--edge); border-top: 3px solid var(--green); border-radius: var(--radius-box); padding: var(--space-5); }
.outcome > * + * { margin-block-start: var(--space-2); }
.outcome h3 { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); line-height: 1.15; }
.proof-title { font-weight: 700; margin-top: var(--space-7); margin-bottom: var(--space-3); }
.self-check { background: var(--surface); border: 1px solid var(--edge); border-radius: var(--radius-box); padding: var(--space-3) var(--space-4); max-width: 40rem; }
.windows-title { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); line-height: 1.15; }
.window__note { margin-top: var(--space-2); font-size: var(--step--1); color: var(--ink-2); }
.plan-lead { font-family: var(--font-head); font-weight: 600; font-size: var(--step-1); line-height: 1.25; }
.plan .why { border-top: 1px solid var(--rule); padding-top: var(--space-4); color: var(--ink-2); font-size: var(--step--1); }
.plan .why b { color: var(--ink); }
.plan .next { border-top: 1px solid var(--rule); padding-top: var(--space-4); }
.plan .next ol { padding-left: 1.3rem; margin-top: var(--space-2); }
.plan .next li + li { margin-top: var(--space-1); }

/* group page: who are you? */
.fork { display: grid; gap: var(--space-4); grid-template-columns: minmax(0, 1fr); width: 100%; max-width: var(--box-max); margin-inline: auto; }
@media (min-width: 44rem) { .fork { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.fork-card { background: var(--surface); border: 1px solid var(--edge); border-radius: var(--radius-box); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-3); }
.fork-card h2 { font-size: var(--step-2); }
.fork-card .cta-row { margin-top: auto; }
.fork-card--central { border-top: 3px solid var(--green); }
.fork-card--chapter { border-top: 3px solid var(--slate-ink); }
.price-line { max-width: var(--measure); }
.deadlines { display: grid; gap: var(--space-4); width: 100%; max-width: var(--box-max); margin-inline: auto; }
.window--action { border-left-color: var(--due-bar); }
.window--action .window__days .num { color: var(--ink); }

/* report: compact header, sources, downloads, handover summary */
.disclaimer--line { padding: var(--space-3) var(--space-4); }
.rp-meta { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); align-items: center; }
.sources summary, .downloads summary { cursor: pointer; font-weight: 700; color: var(--green); min-height: 2.75rem; display: inline-flex; align-items: center; }
.sources[open] .rp-stamps { margin-top: var(--space-2); }
.downloads { width: 100%; }
.downloads .rp-actions { margin-top: var(--space-2); }
.handover { background: var(--surface); border: 1px solid var(--edge); border-top: 3px solid var(--ink); border-radius: var(--radius-box); padding: clamp(var(--space-4), 3vw, var(--space-6)); }
.handover > * + * { margin-block-start: var(--space-4); }
.handover h3 { font-family: var(--font-head); font-weight: 600; font-size: var(--step-2); }
.handover .kv dd { display: block; }
.handover .kv dd .sub { display: block; font-weight: 400; color: var(--ink-2); font-size: var(--step--1); margin-top: var(--space-1); }
.handover .kv dd input { font: inherit; font-weight: 400; width: 100%; min-height: 2.75rem; border: 2px solid var(--rule-strong); border-radius: var(--radius); padding: var(--space-1) var(--space-3); background: var(--surface); color: var(--ink); }
.handover ol { padding-left: 1.3rem; }
.handover li + li { margin-top: var(--space-2); }
.saved-note { font-size: var(--step--1); color: var(--ink-2); }

/* report: chapter rows lead with the chapter's own name; the note sits under the status */
.table-wrap--page { max-height: none; }
.dt .ein, .dt td.ein { white-space: nowrap; }
.dt .status-note { display: block; margin-top: var(--space-1); color: var(--ink-2); font-size: 0.9375rem; max-width: 28rem; }
.dt td.note { min-width: 16rem; }
@media (max-width: 40em) {
  .dt--cards thead { display: none; }
  .dt--cards, .dt--cards tbody { display: block; }
  .dt--cards tr { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--space-1) var(--space-3); padding: var(--space-3); border-bottom: 1px solid var(--rule); }
  .dt--cards th[scope="row"], .dt--cards td { display: block; padding: 0; border: 0; position: static; min-width: 0; background: transparent !important; }
  .dt--cards th[scope="row"] { grid-column: 1 / -1; }
  .dt--cards td[data-label]::before { content: attr(data-label) ": "; color: var(--ink-2); font-weight: 400; }
  .dt--cards td.wide { grid-column: 1 / -1; }
}

/* report: worksheet item letters, worked sum, probable matches */
.item { display: inline-block; min-width: 2.2em; font-weight: 700; color: var(--ink); }
.worked { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-1) var(--space-3); align-items: center; max-width: 34rem; }
.worked .op { font-variant-numeric: tabular-nums; font-weight: 700; text-align: right; }
.worked > :nth-child(-n+2) { align-self: baseline; } /* the IRS count sits on the first line of its wrapping caption */
.worked input { font: inherit; width: 5.5rem; min-height: 2.75rem; border: 2px solid var(--rule-strong); border-radius: var(--radius); padding: 0 var(--space-2); text-align: right; }
.worked .total { border-top: 2px solid var(--ink); padding-top: var(--space-1); font-weight: 700; }
.worked > span:not(.op):not(.total), .worked label { font-weight: 400; }
.from-data { font-size: var(--step--1); color: var(--ink-2); }
.from-data b { color: var(--ink); }
.probable { background: #FFF8DB; }
.compare-mode { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); }
.compare-mode label { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 2.75rem; cursor: pointer; }

/* lookup: closest matches */
.closest-title { margin-top: var(--space-5); font-weight: 700; }
.alias-hint { margin-top: var(--space-2); }

/* guide: the two-deadlines callout and the windows table */
.two-deadlines { background: var(--surface); border: 1px solid var(--edge); border-left: 6px solid var(--mark); border-radius: var(--radius-box); padding: var(--space-4) var(--space-5); }
.two-deadlines > * + * { margin-block-start: var(--space-2); }
.two-deadlines ol { padding-left: 1.3rem; }
.prose table.windows td { white-space: nowrap; }
.prose table.windows tr.is-now { background: var(--mark-soft); }
.prose > h2, .prose > h3 { max-width: 24ch; text-wrap: balance; }

/* browse hubs, related links, breadcrumbs */
.link-list { padding-left: 1.2rem; }
.link-list li + li { margin-top: var(--space-2); }
.link-list--inline { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-5); padding-left: 0; list-style: none; }
.link-list--inline li + li { margin-top: 0; }
.link-list a { display: inline-flex; align-items: center; min-height: 2.75rem; }
.related, .browse { width: 100%; max-width: var(--box-max); margin-inline: auto; border-top: 2px solid var(--ink); padding-top: var(--space-5); }
.related > * + *, .browse > * + * { margin-block-start: var(--space-3); }
.related h2, .browse h2 { font-size: var(--step-2); }
.browse { margin-top: var(--space-8); }
.hub-h2 { font-size: var(--step-2); margin-top: var(--space-6); }
.pager { margin-top: var(--space-5); }
.pager a[aria-current="page"] { font-weight: 700; color: var(--ink); text-decoration: none; }
nav.crumbs { margin-bottom: var(--space-1); }
.byline { color: var(--ink-2); font-size: var(--step--1); }
.placeholder-inline { background: var(--mark-soft); border: 1px dashed var(--due-bar); border-radius: var(--radius-sm); padding: 0 var(--space-1); font-family: monospace; }

/* glossary */
.glossary { max-width: var(--measure-wide); border-top: 2px solid var(--ink); }
.glossary dt { font-weight: 700; font-size: var(--step-1); padding-top: var(--space-5); scroll-margin-top: var(--space-5); }
.glossary dd { padding-bottom: var(--space-5); border-bottom: 1px solid var(--rule); }
.glossary dd .aka { display: block; color: var(--ink-2); font-size: var(--step--1); margin-top: var(--space-1); }
abbr[title] { text-decoration: underline dotted; text-underline-offset: 0.2em; cursor: help; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ================= print: reports as clean Letter documents =================
   Margin boxes work in Chrome 131+; .print-asof is the in-body fallback elsewhere. */
@media print {
  @page { size: letter; margin: 0.7in 0.65in 0.9in; }
  @page { @bottom-right { content: "Page " counter(page) " of " counter(pages); font: 8pt "Atkinson Hyperlegible Next", sans-serif; color: #4A5D55; } }
  body { background: #fff; color: #000; font-size: 11pt; line-height: 1.4; }
  h1 { font-size: 20pt; } h2, .panel-title { font-size: 14pt; }
  h2, h3, h4, caption { break-after: avoid; }
  .site-header nav, .skip, .rp-actions, .tabs, .no-print, .more, .copy, .filters, .toolbar, .footer-links, .sheet-cta, .cta-row, .search-form, [data-screen-only] { display: none !important; }
  .print-asof, .print-only { display: block; }
  .container { padding-inline: 0; max-width: none; }
  .page-head { padding-block: 0 var(--space-3); }
  .panel, .panel[hidden] { display: block !important; border: 0; padding: 0; }
  .panel + .panel { break-before: page; }
  .table-wrap { overflow: visible; max-height: none; border: 0; }
  .dt { font-size: 10pt; }
  thead { display: table-header-group; }
  .dt thead th, .dt th[scope="row"] { position: static; box-shadow: none; border-bottom: 1px solid #000; }
  tr, .meter, figure, .q, .row-card, .stat, .kv dt, .kv dd { break-inside: avoid; }
  p { orphans: 3; widows: 3; }
  .stat .v { font-size: 20pt; }
  .src a::after { content: " (" attr(href) ")"; font-size: 8pt; overflow-wrap: anywhere; }
  .meter, .chip, .badge, .meter-fill { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .dt { table-layout: fixed; }
  .dt th[scope="row"] { min-width: 0; width: 34%; }
  .drop, .compare-mode, .sources summary, .downloads, .toc, .fork-card--chapter { display: none !important; }
  .panel[data-key="compare"]:not(.has-result) { display: none !important; }
  .sources .rp-stamps { display: flex !important; }
  .handover input { border: 0; border-bottom: 1px solid #000; border-radius: 0; }
  .strip { display: none; }
  .site-footer { background: none; border-top: 1px solid #000; padding-block: var(--space-2) 0; }
  a { color: inherit; text-decoration: none; }
}
