/* Page styles: Aid & Money, Companies & Finance (/aid, /companies). "The Public Ledger".
   Tokens only (see site/DESIGN.md). No shadows, blur or rounded corners; hatching uses the house SVG pattern.
   Prefixes: .aid-* (both pages of this group), .co-* (companies). */

/* ---------- page head ---------- */
.aid-head h1 { font-size: var(--fs-2xl); line-height: var(--lh-tight); max-width: 940px; margin: 0 0 var(--s-3); }
.aid-kicker { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--red-ink); margin-bottom: var(--s-3); }

/* ---------- lead: big figure + lede | ledger ---------- */
.aid-lead { margin-bottom: var(--s-8); align-items: start; }
.aid-fig { border-top: var(--heavy); padding-top: var(--s-3); margin-bottom: var(--s-5); }
.aid-fig-l { font: 700 var(--fs-2xs)/1.3 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); }
.aid-fig-v { font-family: var(--font-display); font-weight: 700; font-size: clamp(56px, 8vw, 104px); line-height: 1; letter-spacing: -.02em; margin: var(--s-2) 0 var(--s-3); color: var(--ink); font-variant-numeric: lining-nums; }
.aid-fig-v sup { font-size: 18px; vertical-align: super; }
.aid-fig-d { font-family: var(--font-display); font-style: italic; font-size: var(--fs-md); color: var(--ink-2); max-width: 640px; margin: 0; }
.aid-lede { columns: 2; column-gap: var(--s-6); column-rule: var(--hair); }
.aid-lede p { margin: 0 0 var(--s-3); font-size: var(--fs-base); line-height: var(--lh-body); }

/* ---------- latest development ---------- */
.aid-dev-body { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(260px, 1fr); gap: var(--s-7); }
.aid-dev-body > aside { border-left: var(--hair); padding-left: var(--s-6); }
.aid-dateline { font: 700 var(--fs-2xs)/1.4 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); margin: 0 0 var(--s-2); }
.aid-dev-text { font-size: var(--fs-base); line-height: var(--lh-body); margin: 0; max-width: 720px; }
.aid-dev-st-h { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink); padding-bottom: 8px; border-bottom: var(--hair); margin-bottom: var(--s-3); }
.aid-dev-more { list-style: none; padding: 0; margin: var(--s-4) 0 0; border-top: var(--hair); }
.aid-dev-more li { padding: 6px 0; border-bottom: var(--hair); font-size: var(--fs-sm); }

/* ---------- chart ---------- */
.aid-chart { min-height: 300px; }
.aid-fine { font-size: var(--fs-xs); color: var(--ink-3); margin: var(--s-2) 0 0; line-height: 1.5; max-width: 980px; }
.aid-key { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); margin: 0 0 var(--s-2); }
.aid-key i { display: inline-block; width: 12px; height: 10px; }

/* ---------- FY2024 package breakdown ---------- */
.aid-pk-brackets { display: flex; gap: 6px; margin-bottom: 6px; }
.aid-pk-brackets span { border-bottom: 1px solid var(--ink); padding-bottom: 4px; font-family: var(--font-display); font-style: italic; font-size: var(--fs-sm); color: var(--ink-2); min-width: 0; }
.aid-pk-brackets span b { font-style: normal; font-family: var(--mono); color: var(--ink); }
.aid-pk-bar { display: flex; gap: 2px; height: 34px; }
.aid-pk-seg { background: var(--c); min-width: 3px; }
.aid-pk-seg:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
.aid-pk-seg.hatch { outline: 1px solid var(--c); }
.aid-pk-gap { width: 4px; flex: 0 0 4px; }
.aid-pk-cols { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6); margin-top: var(--s-4); }

/* ---------- agreements ---------- */
.aid-mou { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: var(--heavy); }
.aid-mou li { padding: var(--s-3) var(--s-5) var(--s-4); }
.aid-mou li + li { border-left: var(--hair); }
.aid-mou li:first-child { padding-left: 0; }
.aid-mou-p { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3); }
.aid-mou h3 { font-size: var(--fs-lg); margin: 4px 0; }
.aid-mou-v { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-xl); line-height: 1.1; }
.aid-mou-v em { display: block; font-weight: 400; font-size: var(--fs-sm); color: var(--ink-3); }
.aid-mou p { font-size: var(--fs-sm); color: var(--ink-2); margin: var(--s-2) 0 0; }
.aid-mini { display: flex; align-items: flex-end; gap: 2px; height: 36px; margin-top: var(--s-3); border-bottom: 1px solid var(--ink); }
.aid-mini i { flex: 1; background: var(--c); min-height: 1px; }
.aid-mini-na { font-style: italic; font-size: var(--fs-xs); color: var(--ink-3); margin-top: var(--s-3); }

/* ---------- docket ---------- */
.aid-dk { border-top: var(--heavy); }
.aid-dk-row { display: grid; grid-template-columns: 130px minmax(0, 1fr) minmax(240px, 34%); gap: var(--s-5); padding: var(--s-4) 0; border-bottom: var(--hair); }
.aid-dk-meta { display: flex; flex-direction: column; gap: 4px; }
.aid-dk-kind { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink); }
.aid-dk-date { font-family: var(--mono); font-size: var(--fs-xs); color: var(--ink-3); }
.aid-dk-main h3 { font-size: var(--fs-md); margin: 0 0 4px; line-height: var(--lh-snug); }
.aid-dk-main p { margin: 0 0 4px; font-style: italic; font-size: var(--fs-sm); color: var(--ink-2); }
.aid-dk-src { font-size: var(--fs-xs); }
.aid-dk-v { font-family: var(--mono); font-weight: 700; font-size: 20px; text-align: right; }
.aid-dk-v small { display: block; font: italic 400 var(--fs-xs) var(--font-display); color: var(--ink-3); }
.aid-dk-track { position: relative; display: flex; gap: 1px; height: 12px; margin-top: 8px; background: var(--paper-2); }
.aid-dk-track i { display: block; height: 100%; }
.aid-dk-track b { position: absolute; top: -4px; bottom: -4px; width: 0; border-left: 2px solid var(--ink); }
.aid-dk-none { font-style: italic; color: var(--ink-3); text-align: right; font-size: var(--fs-sm); }

/* ---------- how it works ---------- */
.aid-how { list-style: none; counter-reset: how; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-7); border-top: var(--hair-2); }
.aid-how li { counter-increment: how; display: grid; grid-template-columns: 34px 1fr; padding: var(--s-3) 0; border-bottom: var(--hair); }
.aid-how li::before { content: "¶" counter(how); font: 700 var(--fs-sm)/1.5 var(--font-display); color: var(--red-ink); }
.aid-how p { margin: 0; font-size: var(--fs-sm); line-height: var(--lh-body); }

/* ---------- USAspending ---------- */
.aid-usa-figs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-5); margin-bottom: var(--s-6); }
.aid-usa-grid { margin-bottom: var(--s-6); }
.aid-h3 { font-size: var(--fs-md); margin: 0 0 var(--s-2); }
.aid-h3row { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s-3); flex-wrap: wrap; margin-bottom: var(--s-2); }
.aid-h3row .aid-h3 { margin: 0; }
.aid-desc { font-size: var(--fs-xs); color: var(--ink-3); margin-top: 2px; line-height: 1.4; max-width: 560px; }
.aid-amt { display: inline-flex; align-items: center; gap: 8px; justify-content: flex-end; width: 100%; font-family: var(--mono); }
.aid-amt-bar { flex: 1; max-width: 80px; height: 6px; background: var(--paper-2); }
.aid-amt-bar i { display: block; height: 100%; }
.aid-sources .sources { columns: 2; column-gap: var(--s-7); column-rule: var(--hair); }

/* ---------- companies: register ---------- */
.co-lead { align-items: start; margin-bottom: var(--s-8); }
.co-reg-h { font-size: var(--fs-xl); margin: 0 0 var(--s-3); padding-top: var(--s-2); border-top: var(--heavy); }
.co-register { width: 100%; }
.co-register th:first-child, .co-no { width: 34px; }
.co-row td { padding-top: var(--s-3); vertical-align: top; border-bottom: 0; }
.co-no { font-family: var(--mono); color: var(--red-ink); font-weight: 700; }
.co-name b { display: block; font-family: var(--font-display); font-size: var(--fs-md); line-height: var(--lh-snug); }
.co-name i { font-family: var(--font-display); color: var(--ink-3); font-size: var(--fs-xs); }
.co-own { font-size: var(--fs-sm); white-space: nowrap; }
.co-rel .badge { margin: 0 2px 4px 0; }
.co-amt { white-space: nowrap; }
.co-amt-v { display: block; font-family: var(--mono); font-weight: 700; font-size: 16px; }
.co-amt-bar { display: block; width: 120px; height: 6px; margin: 6px 0 0 auto; background: var(--paper-2); }
.co-amt-bar i { display: block; height: 100%; }
.co-detail td { padding-top: 0; padding-bottom: var(--s-4); border-bottom: var(--hair-2); }
.co-what { margin: 0 0 var(--s-2); font-size: var(--fs-sm); line-height: var(--lh-body); max-width: 720px; }
.co-recips { font-size: var(--fs-xs); color: var(--ink-2); margin-bottom: var(--s-2); }
.co-sub, .co-src-why { font: 700 10.5px/1.3 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); margin-right: 4px; }
.co-awards { margin: var(--s-2) 0; }
.co-awards summary { font: 700 var(--fs-2xs)/1 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; cursor: pointer; }
.co-awards table { font-size: var(--fs-xs); }
.co-srcs { display: flex; flex-direction: column; gap: 3px; font-size: var(--fs-xs); }
.co-entry[hidden] { display: none; }
.co-share { display: flex; gap: 2px; height: 14px; margin: var(--s-2) 0 var(--s-4); }
.co-share span { min-width: 3px; }
.co-share span + span { opacity: .78; }
.co-share span + span + span { opacity: .6; }
.co-share span + span + span + span { opacity: .45; }
.co-us { max-width: 820px; }
.co-us p { font-size: var(--fs-base); line-height: var(--lh-body); }
.co-fin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--s-7); align-items: start; }
.co-fin-e { padding: var(--s-3) 0 var(--s-5); border-top: var(--hair-2); }
.co-fin-e h3 { font-size: var(--fs-lg); margin: 0 0 var(--s-2); }
.co-fin-e p { font-size: var(--fs-sm); line-height: var(--lh-body); margin: 0 0 var(--s-3); }
.co-fin-e .ledger { margin-bottom: var(--s-2); }
.chip:disabled { opacity: .4; cursor: not-allowed; }

/* ---------- responsive ---------- */
@media (max-width: 1000px) {
  .aid-dev-body { grid-template-columns: 1fr; }
  .aid-dev-body > aside { border-left: 0; padding-left: 0; border-top: var(--hair); padding-top: var(--s-4); }
  .aid-dk-row { grid-template-columns: 110px minmax(0, 1fr); }
  .aid-dk-fig { grid-column: 1 / -1; }
  .aid-dk-v, .aid-dk-none { text-align: left; }
}
@media (max-width: 800px) {
  .aid-mou { grid-template-columns: 1fr; }
  .aid-mou li { padding-left: 0; padding-right: 0; }
  .aid-mou li + li { border-left: 0; border-top: var(--hair); }
  .aid-pk-cols, .aid-how, .co-fin { grid-template-columns: 1fr; }
  .aid-usa-figs { grid-template-columns: 1fr; }
  .aid-usa-figs.col-rules > * + * { border-left: 0; padding-left: 0; }
  .aid-lede { columns: 1; }
}
@media (max-width: 640px) {
  .aid-fig-v { font-size: clamp(48px, 15vw, 68px); }
  .aid-dk-row { grid-template-columns: 1fr; gap: var(--s-2); }
  .aid-dk-meta { flex-direction: row; gap: var(--s-3); }
  .aid-sources .sources { columns: 1; }
  .aid-amt-bar { display: none; }
  .aid-pk-brackets span { font-size: var(--fs-xs); }
  .co-filters .fbar-group { flex-wrap: wrap; overflow: visible; }
  .co-filters .fbar-group .chip { flex-shrink: 1; }
  .co-register thead { display: none; }
  .co-register, .co-register tbody, .co-register tr, .co-register td { display: block; width: auto; }
  .co-row { display: grid !important; grid-template-columns: 30px minmax(0, 1fr); column-gap: 6px; }
  .co-row td { padding: 2px 0; border: 0; }
  .co-row .co-no { grid-row: span 4; }
  .co-amt { text-align: left !important; }
  .co-amt-bar { margin-left: 0; }
  .co-detail td:first-child { display: none; }
  .co-detail td { padding-left: 36px; }
}

/* ---------- round 3 ---------- */
.aid-chart-svg .aid-ko { paint-order: stroke; stroke: var(--paper); stroke-width: 4px; stroke-linejoin: round; }
.aid-chart-svg .annot text.aid-ko { stroke: var(--paper); }
.aid-chart-svg .aid-note-t { fill: var(--ink-2); font: italic 12.5px var(--font-display); letter-spacing: 0; }
.aid-chart-svg .hit { outline: none; }
.aid-chart-svg .hit:focus-visible { stroke: var(--red); stroke-width: 2; }
.aid-key span { display: inline-flex; align-items: center; gap: 6px; margin-right: 10px; }
.aid-key i { flex-shrink: 0; }
.aid-pk-cols { grid-template-columns: repeat(3, minmax(0, 1fr)); }
sup.fn-sep { font-size: .7em; color: var(--ink-3); }
.aid-last { margin-bottom: 0; }
.co-what + .co-what { margin-top: 0; }
@media (max-width: 1000px) { .aid-pk-cols { grid-template-columns: 1fr; } }
@media (max-width: 640px) { .co-lead > .co-aside { order: -1; border-top: 0; padding-top: 0; border-bottom: var(--hair); padding-bottom: var(--s-5); } }
.aid-usa-grid > div + div { margin-top: var(--s-6); padding-top: var(--s-4); border-top: var(--hair); } .aid-key i.hatch-rest { outline: 1px solid var(--rule-2); outline-offset: -1px; }

/* ---------- round 4: theme-aware hatching via the shared SVG pattern ---------- */
.aid-hf { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
.aid-key .sw-solid, .aid-key .sw-hatch { position: relative; display: inline-block; width: 13px; height: 10px; flex-shrink: 0; background-color: var(--paper); }
.aid-key .sw-hatch.outlined { outline: 1px solid var(--c); outline-offset: -1px; }
.aid-key .sw-hatch.thick { outline-width: 1.5px; outline-offset: -1.5px; }
.aid-key .sw-hatch.bare { outline: 0; }
.aid-key i.aid-na-key { background-color: var(--paper); background-image: none; }
.aid-pk-seg { position: relative; overflow: hidden; }
.aid-pk-seg.g-indirect, .aid-pk-seg.g-other { background-image: none; background-color: transparent; }
.aid-pk-seg.g-unit { background: transparent; outline: 1.5px dashed var(--ink-3); outline-offset: -1.5px; display: flex; align-items: center; justify-content: center; }
.aid-pk-seg.g-unit em { font: italic 11.5px var(--font-display); color: var(--ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 3px; }
.aid-pk-brackets span.g-unit { font-style: italic; border-bottom-style: dashed; }
.aid-dk-track i.aid-dk-rest { position: relative; display: block; height: 100%; background: transparent; }
.aid-mini i.pl { position: relative; background: transparent; background-image: none; }
.co-share { gap: 2px; height: 18px; }
.co-share span, .co-share span + span, .co-share span + span + span, .co-share span + span + span + span { opacity: 1; position: relative; }
.co-share b { position: absolute; left: 6px; top: 50%; transform: translateY(-50%); font: 700 11px/1 var(--font-label); letter-spacing: .04em; color: var(--paper); white-space: nowrap; }
.aid-pk-brackets span { overflow: hidden; overflow-wrap: anywhere; }
@media (max-width: 1000px) { .aid-pk-brackets span.g-unit { font-size: 0; } .aid-pk-seg.g-unit em { display: none; } }

/* ---------- round 5 ---------- */
.aid-cov { font: 700 var(--fs-2xs)/1.5 var(--font-label); letter-spacing: var(--track-label); text-transform: uppercase; color: var(--ink-3); margin: 0 0 var(--s-3); padding: 4px 0; border-top: var(--hair); border-bottom: var(--hair); }
.aid-lead .ledger-h > span + span, .aid-pk .ledger-h > span + span, .co-lead .ledger-h > span + span, .co-fin .ledger-h > span + span { white-space: nowrap; }
.aid-pk-unit-note { display: none; align-items: center; gap: 6px; font: italic var(--fs-xs) var(--font-display); color: var(--ink-3); margin: 6px 0 0; }
.aid-pk-unit-note i { display: inline-block; width: 16px; height: 10px; outline: 1.5px dashed var(--ink-3); outline-offset: -1.5px; }
.co-tot-h { display: none; }
@media (max-width: 640px) { .aid-pk-unit-note { display: flex; } .co-tot-h { display: block; } }

/* ---------- round 6 ---------- */
.aid-chart-svg .aid-era { fill: var(--paper-2); }
.aid-chart-svg .aid-era.b1 { fill: var(--paper-3); opacity: .55; }
.aid-dk-src .srcnote + .srcnote { margin-left: 12px; }
section[id^="aid-"]:focus, section[id^="companies-"]:focus { outline: 0; } section[id^="aid-"]:focus-visible > .shead, section[id^="companies-"]:focus-visible > .shead { outline: 0; }
@media (max-width: 640px) {
  .aid-chart-sec .shead-slug { flex-wrap: wrap; }
  .aid-chart-sec .shead-slug .sp { display: none; }
  .aid-chart-sec .shead-slug .acts { flex-wrap: wrap; width: 100%; gap: 6px; }
  .aid-chart-sec .shead-slug .acts > span { display: flex; width: 100%; }
  .aid-chart-sec .shead-slug .acts > span[hidden] { display: none; }
}

/* ---------- round 7: final palette (moss / leaf / orchid via roles; colors passed in as --c) ---------- */
.aid-chart-svg .aid-na { fill: none; stroke: var(--rule-3); stroke-width: 1; stroke-dasharray: 2 2; }
.aid-chart-svg .aid-na-t { fill: var(--ink-3); font: italic 11px var(--font-display); }
.aid-chart-svg .aid-era-l { fill: var(--ink-2); font: italic 12px var(--font-display); }
html[data-theme="night"] .aid-chart-svg .seg-solid { stroke: var(--paper); stroke-width: 1px; }
.aid-key i.aid-na-key { background: transparent; outline: 1px dashed var(--rule-3); outline-offset: -1px; }
.aid-key .sw-hatch.dashed { outline: 1.5px dashed var(--c); outline-offset: -1.5px; background: transparent; }
.aid-key .sw-hatch.dashed .aid-hf { display: none; }
.aid-key .sw-hatch.outlined { outline: 1px solid var(--c); outline-offset: -1px; }
.aid-pk-seg.g-direct { background: var(--cat-c); }
.aid-pk-seg.g-indirect { background: transparent; outline: 1.5px solid var(--cat-c); outline-offset: -1.5px; }
.aid-pk-seg.g-other { background: transparent; outline: 1.5px dashed var(--cat-c); outline-offset: -1.5px; }
.aid-pk-seg.g-unit { background: transparent; outline: 1.5px dashed var(--rule-2); outline-offset: -1.5px; }
.aid-pk-brackets span.g-direct { border-bottom: 2px solid var(--cat-c); }
.aid-pk-unit-note i { outline-color: var(--rule-2); }
.aid-mini i { background: var(--c); }
.aid-mini i.pl { position: relative; background: transparent; outline: 1px solid var(--c); outline-offset: -1px; }
.aid-dk-track i.aid-dk-rest { position: relative; display: block; height: 100%; background: transparent; outline: 1.5px dashed var(--c); outline-offset: -1.5px; }
.aid-dk-track i.aid-dk-notified { background: transparent; outline: 1.5px solid var(--c); outline-offset: -1.5px; }

.aid-chart-svg .aid-era-l.sm { font-size: 11px; }
html[data-theme="night"] .aid-pk-seg.g-other { outline-width: 2px; outline-offset: -2px; }
html[data-theme="night"] .aid-dk-track i.aid-dk-rest { outline-width: 2px; outline-offset: -2px; }

/* keyboard focus on the package segments (last, so no outline rule above can override it) */
.aid-pk-seg.aid-pk-seg:focus-visible { outline: 2px solid var(--red); outline-offset: 2px; }
