/* Agency site engine. Palette and typeface come from /brand.css (the client pack's site.json). */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: var(--font); font-size: 16px; line-height: 1.55; color: var(--text); background: #fff; }
a { color: var(--link); text-underline-offset: 2px; }
a:hover { color: var(--primary); }
/* Focus: an ink ring with an accent halo on light surfaces (3:1 or better on white and surface);
   the accent ring alone on the dark header, nav, hero and footer. */
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; box-shadow: 0 0 0 5px var(--accent); }
.site-header :focus-visible, .site-nav :focus-visible, .hero :focus-visible, .site-footer :focus-visible { outline-color: var(--accent); box-shadow: none; }
.hero .next-meeting :focus-visible { outline-color: var(--ink); box-shadow: 0 0 0 5px var(--accent); }
img { max-width: 100%; height: auto; }
h1, h2, h3 { line-height: 1.2; color: var(--ink); font-weight: 500; }
h1 { font-size: 2.1rem; margin: 0 0 .5rem; }
@media screen and (max-width: 599.98px) { .page-head h1 { font-size: 1.7rem; line-height: 1.2; } }
h2 { font-size: 1.45rem; margin: 0 0 .75rem; }
h3 { font-size: 1.1rem; margin: 0 0 .4rem; }
p { margin: 0 0 .8rem; }
/* Headings, eyebrows, legends and captions balance their lines, so a narrow screen never leaves one
   word alone on the last line ("PROJECT AND / ISSUER", "(35-Day / Filing)"); running text avoids a
   one-word last line too (polish30b). */
h1, h2, h3, h4, .eyebrow, legend, caption, .summary { text-wrap: balance; }
p, li, dd, .hint { text-wrap: pretty; }
/* A file size, a unit and its number stay on one line ("(1 KB)", never "(1 / KB)"). */
.file-size, .nowrap { white-space: nowrap; }
.wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px; }
.muted { color: var(--muted); }
.small { font-size: .875rem; }
/* Read by screen readers, never drawn and never wider than 1px (polish40: without the clamp a hidden chart table
   1176px wide pushed state issuer pages sideways). A table ignores width: 1px, so a hidden table sits in a hidden div. */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; white-space: nowrap; clip: rect(0 0 0 0); clip-path: inset(50%); }
/* An email address breaks only at the <wbr> after "@" or a "." (public_text.addresses), never at
   an arbitrary letter, whatever its container sets (polish38); a mailto: link without those breaks may
   still break inside a part too long for its line, so it never pushes a narrow page sideways (polish34).
   The fallback skips formatted addresses, so it never undoes their rule (polish38 r1). As an inline block
   it moves whole to the next line, on screen and in print, and breaks at a <wbr> only when it is wider
   than a full line (polish44: "bondelections@brb / .texas.gov"). */
.address { display: inline-block; max-width: 100%; overflow-wrap: normal; word-break: normal; }
a[href^="mailto:"]:not(.address) { overflow-wrap: break-word; word-break: normal; }

@media screen and (max-width: 767.98px) {
  .receipt .receipt-number { max-width: 100%; white-space: normal; overflow-wrap: anywhere; }
}

/* Skip link and demo banner */
.skip { position: absolute; left: 12px; top: -48px; background: var(--accent); color: var(--ink); padding: 8px 14px; z-index: 50; font-weight: 500; min-height: 44px; display: inline-flex; align-items: center; }
.skip:focus { top: 8px; }
.demo-banner { background: #fff4cc; color: #5c4400; border-bottom: 1px solid #e8d48a; font-size: .875rem; padding: 7px 0; text-align: center; }
.demo-banner a { color: #5c4400; }
.demo-banner p { margin: 0; }
@media screen and (max-width: 600px) {
  .site-footer a { display: inline-block; min-height: 44px; padding: 12px 0; box-sizing: border-box; }
  .demo-banner a { display:inline-flex; align-items:center; vertical-align:middle; min-height:44px; padding:0 .2rem; }
}

/* Header and navigation */
.site-header { background: var(--header); color: #fff; }
.site-header .bar { display: flex; align-items: center; gap: 18px; min-height: 84px; }
.site-header .logo { display: flex; align-items: center; gap: 14px; color: #fff; text-decoration: none; }
.site-header .logo img { display: block; width: auto; height: auto; max-height: 62px; }
.site-header .site-name { font-size: 1.15rem; font-weight: 500; letter-spacing: .02em; text-transform: uppercase; }
.site-header .header-search { margin-left: auto; display: flex; }
.site-header .header-search input { width: 240px; padding: 8px 10px; border: 1px solid #555; border-radius: 4px 0 0 4px; font: inherit; font-size: .9rem; }
.site-header .header-search button { background: var(--primary); color: #fff; border: 0; border-radius: 0 4px 4px 0; padding: 0 14px; min-height: 44px; font: inherit; font-size: .9rem; cursor: pointer; }
.site-nav { background: var(--ink); border-bottom: 4px solid var(--accent); }
.site-nav ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.site-nav a { display: block; padding: 12px 14px; color: #fff; text-decoration: none; font-size: .95rem; border-bottom: 3px solid transparent; }
.site-nav a:hover, .site-nav a[aria-current="page"] { border-bottom-color: var(--accent); color: #fff; }
/* Two copies of the menu: the wide list, and on phones a <details> that loads closed and opens without JS.
   A closed <details> hides its content in every browser, whatever the CSS, so the wide list is its own <ul>. */
.site-nav .nav-phone { display: none; }
@media (max-width: 860px) {
  .site-header .site-name { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  .site-header .bar { flex-wrap: wrap; padding: 10px 20px; }
  .site-header .logo img { width: auto; height: auto; max-height: 62px; }
  .site-header .header-search { margin-left: 0; width: 100%; }
  .site-header .header-search input { flex: 1; width: auto; min-width: 0; }
  .site-nav .nav-wide { display: none; }
  .site-nav .nav-phone { display: block; }
  .site-nav details summary { display: block; color: #fff; padding: 12px 0; cursor: pointer; font-weight: 500; list-style: none; }
  .site-nav details summary::-webkit-details-marker { display: none; }
  .site-nav details summary::after { content: ""; display: inline-block; margin-left: 10px; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-3px) rotate(45deg); }
  .site-nav details[open] summary::after { transform: translateY(1px) rotate(-135deg); }
  .site-nav details:not([open]) ul { display: none; }
  .site-nav ul { flex-direction: column; }
  .site-nav a { padding: 10px 0; }
}

/* Breadcrumbs */
.crumbs { background: var(--surface); font-size: .875rem; }
.crumbs ol { align-items: baseline; list-style: none; margin: 0; padding: 8px 0; display: flex; flex-wrap: wrap; gap: 0 6px; }
/* The separator ends each crumb that has a next one, so a wrapped trail never starts a line with "/" (polish30b). */
.crumbs li:not(:last-child)::after { content: "/"; color: var(--muted); margin-left: 6px; }
.filing-crumbs li + li::before { content: none; }
.filing-crumbs li:not(:last-child) { display: inline-flex; align-items: center; }
.filing-crumbs li:not(:last-child)::after { content: "/"; color: var(--muted); margin-left: 6px; }
.filing-body .demo-note p { margin: 0; line-height: 1.5; }
@media (max-width: 767.98px) {
  .crumbs li { display: inline-flex; align-items: center; min-height: 34px; }
  /* Each link keeps a 44 px target; wrapped rows sit 34 px apart instead of a loose 50 px. */
  .crumbs a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; margin: -5px 0; }
}
@media screen and (max-width: 979.98px) {
  main .download, .dc-board .tablefoot a, .dc-board .bt-btn,
  .dc-board .eyebrow a, .dc-board a.sort, .skip-table, .skip-grid,
  table.data td > a, table.data th[scope="row"] > a,
  .programs h3 > a, .section-head > a, .allocation-table a,
  .dc-issue-filter label {
    display: inline-flex; align-items: center; min-height: 44px; min-width: 44px;
  }
}

main { display: block; }
.section { padding: 44px 0; }
/* An element that is both .wrap and .section (or .page-body) keeps .wrap's side padding; on phones the content would touch the screen edges. */
.wrap.section { padding-left: 20px; padding-right: 20px; }
.section.alt { background: #f7f7f7; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 18px; flex-wrap: wrap; }
.section-head > a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
.eyebrow { text-transform: uppercase; letter-spacing: .08em; font-size: .78rem; color: var(--primary); font-weight: 500; margin-bottom: 6px; }

/* Home hero */
.hero { background: var(--ink); color: #fff; padding: 48px 0 52px; border-bottom: 4px solid var(--primary); }
.hero .grid { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 36px; align-items: center; }
.hero h1 { color: #fff; font-size: 2.4rem; }
.hero .lede { color: #e2e2e2; font-size: 1.1rem; max-width: 40em; }
.hero-search { display: flex; margin: 22px 0 12px; max-width: 640px; }
.hero-search input { flex: 1; min-width: 0; padding: 14px 16px; font: inherit; font-size: 1.05rem; border: 0; border-radius: 6px 0 0 6px; }
.hero-search button { background: var(--accent); color: var(--ink); border: 0; border-radius: 0 6px 6px 0; padding: 0 24px; font: inherit; font-weight: 500; font-size: 1.05rem; cursor: pointer; }
.hero-search button:hover { background: var(--accent); filter: brightness(1.08); }
.quick { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.quick a { display: inline-block; color: #fff; border: 1px solid #6a6a6a; border-radius: 999px; padding: 5px 12px; font-size: .875rem; text-decoration: none; }
.quick a:hover { border-color: var(--accent); color: var(--accent); }
.next-meeting { background: #fff; color: var(--text); border-radius: 8px; padding: 20px 22px; border-top: 5px solid var(--accent); }
.next-meeting h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 10px; }
@media (max-width: 860px) { .hero .grid { grid-template-columns: minmax(0, 1fr); } .hero h1 { font-size: 1.8rem; } }

/* Doorways */
.doors { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.door { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 20px; border-top: 5px solid var(--link); display: flex; flex-direction: column; }
.door.primary { border-top-color: var(--primary); }
.door.accent { border-top-color: var(--accent); }
.door.header { border-top-color: var(--header); }
.door h3 a { color: var(--ink); text-decoration: none; }
.door h3 a:hover { color: var(--primary); text-decoration: underline; }
.door ul { margin: auto 0 0; padding: 10px 0 0; list-style: none; font-size: .925rem; }
.door li { padding: 3px 0; }
@media (max-width: 1000px) { .doors { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .doors { grid-template-columns: 1fr; } }

/* Fast Stats */
.stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.stat { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 18px 20px; }
.stat .label { text-transform: uppercase; letter-spacing: .06em; font-size: .78rem; color: var(--muted); }
.stat .figure { font-size: 2rem; font-weight: 500; color: var(--ink); margin: 4px 0 6px; line-height: 1.1; }
/* No complete prepared build: a status in the value slot, never a figure-sized one. */
.stat .figure.figure-unavailable { font-size: 1.15rem; color: var(--muted); }
.stat .stat-updating { margin: 0 0 6px; }
.stat .asof { font-size: .85rem; color: var(--primary); margin-bottom: 6px; }
.stat .source { font-size: .78rem; color: var(--muted); margin: 8px 0 0; border-top: 1px solid var(--line); padding-top: 8px; }
@media (max-width: 1000px) { .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .stats { grid-template-columns: 1fr; } }

/* Dated lists */
.two-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
@media (max-width: 860px) { .two-col { grid-template-columns: 1fr; } }
.dated { list-style: none; margin: 0; padding: 0; }
.dated li { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.datebox { background: var(--primary); color: #fff; border-radius: 6px; text-align: center; padding: 6px 0; line-height: 1.1; align-self: start; }
.datebox .m { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .06em; }
.datebox .d { display: block; font-size: 1.4rem; font-weight: 500; }
.dated .title { font-weight: 500; color: var(--ink); }

/* Programs */
.programs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.program h3 a { color: var(--ink); }
.program ul { padding-left: 1.1rem; margin: .5rem 0 0; font-size: .925rem; }
@media (max-width: 860px) { .programs { grid-template-columns: 1fr; } }

/* Content pages */
.page-head { background: var(--surface); padding: 26px 0 22px; border-bottom: 1px solid var(--line); }
.page-head .summary { font-size: 1.1rem; color: var(--muted); max-width: 52em; margin: 0; }
.page-body { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 40px; padding: 32px 0 48px; }
.wrap.page-body { padding-left: 20px; padding-right: 20px; }
/* minmax(0, 1fr): a wide page table scrolls in its own box instead of widening the page on a phone. */
@media (max-width: 960px) { .page-body { grid-template-columns: minmax(0, 1fr); } }
.prose { max-width: 46em; }
.page-body-wide { grid-template-columns: minmax(0, 1fr); }
.page-body-wide .prose { max-width: none; }
.prose section { margin-bottom: 28px; }
.prose ul { padding-left: 1.2rem; }
.prose li { margin-bottom: .3rem; }
.links { list-style: none; padding: 0; margin: .5rem 0 0; }
.numbered-lines { list-style: none; padding: 0; }   /* lines that carry their own numbers (an agenda) */
.links li { padding: 6px 0; border-bottom: 1px solid var(--line); }
.links .kind { display: inline-block; min-width: 4.5em; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
/* A kind label (PAGE, DOCUMENT, EXTERNAL, FORM) sits in its own column wide enough for the longest one,
   so every link in a list starts at the same edge and never butts against its label, at every width (polish30b). */
.links li:has(> .kind) { display: grid; grid-template-columns: 6.25rem minmax(0, 1fr); column-gap: 10px; align-items: baseline; }
.links li:has(> .kind) > :not(.kind) { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
.links li > .kind { min-width: 0; overflow-wrap: anywhere; }
.aside-box { background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; margin-bottom: 18px; }
.aside-box h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.aside-box ul { list-style: none; padding: 0; margin: 0; }
.aside-box li { padding: 5px 0; border-bottom: 1px solid var(--line); font-size: .925rem; }
.aside-box li:last-child { border-bottom: 0; }
.sources { font-size: .8rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 12px; margin-top: 28px; }
.sources a { word-break: break-all; }
/* Each source keeps its separator: "; " ends the link before it and never starts a wrapped line (polish38). */
.sources .source-item { display: inline-flex; align-items: baseline; max-width: 100%; }

/* Filing chooser */
.filing { border: 1px solid var(--line); border-radius: 8px; padding: 16px 18px; margin-bottom: 14px; background: #fff; }
.filing dl { display: grid; grid-template-columns: 9em minmax(0, 1fr); gap: 4px 12px; margin: .5rem 0 0; font-size: .925rem; }
.filing dt { color: var(--muted); }
.filing dd { margin: 0; }
.tag { display: inline-block; font-size: .72rem; text-transform: uppercase; letter-spacing: .05em; background: var(--surface); border-radius: 4px; padding: 2px 7px; color: var(--ink); }

/* Tables */
table.data { width: 100%; border-collapse: collapse; font-size: .925rem; }
table.data caption { text-align: left; font-weight: 500; color: var(--ink); padding-bottom: 8px; }
table.data th, table.data td { padding: 8px 10px; border-bottom: 1px solid var(--line); text-align: left; }
table.data th { background: var(--surface); font-weight: 500; }
table.data td.num, table.data th.num { text-align: right; font-variant-numeric: tabular-nums; }

/* Search results */
.results { list-style: none; padding: 0; margin: 0; }
.results li { padding: 14px 0; border-bottom: 1px solid var(--line); }

/* Footer */
.site-footer { background: var(--header); color: #d8d8d8; padding: 36px 0 24px; margin-top: 0; font-size: .9rem; border-top: 4px solid var(--accent); }
.site-footer a { color: #fff; }
.site-footer a:hover { color: var(--accent); }
.site-footer .cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.site-footer h2 { color: #fff; font-size: .95rem; text-transform: uppercase; letter-spacing: .06em; }
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { padding: 3px 0; }
.site-footer .legal a { display: inline; min-height: 0; padding: 0; line-height: inherit; }
.site-footer .legal { border-top: 1px solid #555; margin-top: 24px; padding-top: 14px; font-size: .8rem; color: #bdbdbd; line-height: 1.5; }
/* The disclaimer link in the legal line is inline text; on a phone its padding gives a 44 px tall target
   without moving the line (polish30b). */
@media screen and (max-width: 600px) { .site-footer .legal a { padding: 13px 4px; margin: 0 -4px; } }
@media (max-width: 860px) { .site-footer .cols { grid-template-columns: 1fr; } }

/* Review fixes: source lines on dated items, the filing tag after its heading, demo notes */
.source-line { font-size: .8rem; color: var(--muted); margin-top: 2px; }
.tag-line { margin: 0 0 .5rem; }
.demo-note { background: #fff4cc; border-color: #e8d48a; }

/* Data Center */
.section-tight { margin: 0 0 40px; }
.table-scroll { overflow-x: auto; margin-bottom: 8px; }
.scroll-cue { margin: 6px 0; color: var(--muted); font-size: .875rem; }
.scroll-cue[hidden] { display: none; }
.table-scroll[data-scrolls] { box-shadow: inset -8px 0 8px -8px var(--ink); }
/* Scrolled to its end, a row's last cell clears the fade edge instead of sitting under it (polish38). */
@media screen { .table-scroll[data-scrolls] > table.data tr > :last-child { padding-right: 20px; } }
@media print { .scroll-cue { display: none !important; } }
.table-scroll table.data { min-width: 640px; }
/* The contact mailbox table (question, team, email) fits the content column on a desktop and stacks on a phone. */
[data-page="about/contact"] table.data { min-width: 0; }
[data-page="about/contact"] table.data td:nth-child(3) a { white-space: nowrap; }
.download { font-size: .875rem; white-space: nowrap; }
.filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 16px; margin: 0 0 18px; }
/* Cap each control's flex wrapper so long select options and arrow padding fit a phone. */
.filters > div { display: flex; flex-direction: column; gap: 4px; font-size: .875rem; max-width: 100%; }
.filters label { font-weight: 500; color: var(--ink); }
.filters input, .filters select { font: inherit; padding: 7px 9px; border: 1px solid var(--muted); border-radius: 4px; min-width: 12em; background: #fff; }
.filters button { font: inherit; background: var(--primary); color: #fff; border: 0; border-radius: 4px; padding: 8px 16px; min-height: 44px; cursor: pointer; }
.filters button:hover { background: var(--primary-dark); }
.filters .actions { flex-direction: row; align-items: center; gap: 14px; }
.result-line { margin: 0 0 10px; }
table.data th a.sort { color: var(--ink); }
table.data th a.sort:hover { color: var(--primary); }
table.data th[aria-sort] a.sort { font-weight: 700; }
.pager { display: flex; gap: 16px; align-items: center; margin: 14px 0; font-size: .925rem; }
/* Under 768 px Previous, the page and Next are 44 px tall targets. */
@media (max-width: 767.98px) {
  .pager a, .pager .off, .pager > span { display: inline-flex; align-items: center; min-height: 44px; }
  .quick a { display: inline-flex; align-items: center; min-height: 44px; }
  .quick-links a { display: inline-flex; align-items: center; min-height: 44px; }
  input:not([type="checkbox"]):not([type="radio"]), select { min-height: 44px; }
}
.kpis { margin-bottom: 36px; }
.kpis .figure { font-size: 1.6rem; }
svg.bars { display: block; width: 100%; max-width: 720px; height: auto; margin: 0 0 14px; }
svg.bars rect { fill: var(--primary); }
svg.bars text { fill: var(--muted); font-size: 12px; font-family: var(--font); }
dl.terms { display: grid; grid-template-columns: 12em minmax(0, 1fr); gap: 6px 16px; margin: 0; max-width: 46em; }
dl.terms dt { color: var(--muted); }
dl.terms dd { margin: 0; }
dl.terms.linked { margin: 0 0 24px; }
.due-rule { color: var(--muted); font-size: .925rem; }
@media (max-width: 560px) { dl.terms { grid-template-columns: 1fr; } dl.terms dd { margin-bottom: 8px; } }
.on-emma h3 { margin-top: 28px; }
.on-emma dl.terms { margin-bottom: 16px; }
.notice { background: var(--surface); border-left: 4px solid var(--accent); padding: 12px 16px; margin: 16px 0; }
.notice p:last-child { margin-bottom: 0; }
.site-notices > section { min-width: 0; }
/* A long notice at 320 px shows its first lines and expands in place; wider screens show the full body with no control (P35R1-01). */
.site-notices .notice-disclosure { display: none; }
@media screen and (max-width: 390.98px) {
  .site-notices > section > .notice-copy-full { display: none; }
  .site-notices .notice-disclosure { display: block; margin: .35rem 0; }
  .site-notices .notice-disclosure > summary { display: block; min-height: 44px; cursor: pointer; list-style: none; font-size: .86rem; line-height: 1.35; padding: 2px 0; }
  .site-notices .notice-disclosure > summary::-webkit-details-marker { display: none; }
  .site-notices .notice-disclosure > summary .notice-lead { display: block; color: var(--text); }
  .site-notices .notice-disclosure > summary .notice-show, .site-notices .notice-disclosure > summary .notice-hide { display: inline-block; margin-top: 4px; color: var(--primary); font-weight: 500; text-decoration: underline; }
  .site-notices .notice-disclosure > summary .notice-hide, .site-notices .notice-disclosure[open] > summary .notice-show, .site-notices .notice-disclosure[open] > summary .notice-lead { display: none; }
  .site-notices .notice-disclosure[open] > summary .notice-hide { display: inline-block; }
  .site-notices .notice-disclosure > summary:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
}
@media (max-width: 400px) {
  .site-notices > section { padding: 8px 10px; margin: 6px 0; border-radius: 4px; }
  .site-notices > section h2 { font-size: .95rem; margin: .2rem 0 .4rem; }
  .site-notices > section > p { margin: .35rem 0; font-size: .86rem; line-height: 1.35; }
  .site-notices > section .notice-disclosure > .notice-copy { margin: .35rem 0; font-size: .86rem; line-height: 1.35; }
  .site-notices > section > .small { font-size: .72rem; }
}
.source-block { border-top: 1px solid var(--line); margin-top: 28px; padding-top: 12px; }
.source-block p { margin-bottom: .4rem; }
.quick-links { display: flex; flex-wrap: wrap; gap: 8px 18px; list-style: none; margin: 4px 0 0; padding: 0; font-size: .95rem; }
.page-head .hero-search input, .section-tight .hero-search input, .not-found .hero-search input { border: 1px solid var(--muted); }
.not-found .hero-search { margin-top: 0; }

/* Filing */
:root { --error: #b42318; } /* 6.6:1 on white */
.filing-body { max-width: 46em; }
.filing-body > dl.terms + .section-tight { margin-top: 32px; }
.filing-link { margin: .25rem 0 .5rem; }
.filing-body a[href*="/fee-slip/"] { display: inline-flex; align-items: center; min-height: 44px; }
.button { display: inline-block; font: inherit; font-weight: 500; line-height: 1.3; background: var(--primary); color: #fff; border: 2px solid var(--primary); border-radius: 4px; padding: 9px 18px; cursor: pointer; text-decoration: none; }
.button:hover { background: var(--primary-dark); border-color: var(--primary-dark); color: #fff; }
.button.secondary { background: #fff; color: var(--primary); }
.button.secondary:hover { background: var(--surface); color: var(--primary-dark); }
.filing-body .button { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }
.form-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 8px 0 0; }
.start-actions { align-items: center; gap: 12px 20px; }
.filing-form { margin-top: 24px; }
.filing-form fieldset { border: 0; padding: 0; margin: 0 0 28px; min-width: 0; }
.filing-form legend { padding: 0; margin: 0 0 14px; }
.filing-form legend h2 { margin: 0; }
.filing-form fieldset.row { border: 1px solid var(--line); border-radius: 8px; padding: 6px 18px 18px; margin: 0 0 16px; background: #fff; }
.filing-form fieldset.row legend { padding: 0 6px; margin: 0 0 8px; font-size: 1.1rem; font-weight: 500; color: var(--ink); }
.field { margin: 0 0 20px; }
.field label { display: block; font-weight: 500; color: var(--ink); margin: 0 0 4px; }
.field .hint { color: var(--muted); font-size: .925rem; margin: 0 0 4px; }
.field .cite { color: var(--muted); font-size: .8rem; margin: 0 0 6px; }
.field input, .field select, .field textarea { font: inherit; padding: 7px 9px; border: 1px solid var(--muted); border-radius: 4px; background: #fff; color: var(--text); width: 100%; max-width: 32em; }
.field input.short { max-width: 14em; }
.field textarea { max-width: none; min-height: 6.5em; resize: vertical; }
/* A long choice shows its start and an ellipsis, clear of the arrow, instead of running under it (polish30b). */
.field select, .filters select { max-width: 100%; padding-right: 2rem; text-overflow: ellipsis; }
@media screen and (max-width: 599.98px) {
  .field select { font-size: .925rem; }
  /* A long authored step or group heading reads in a few lines on a phone, not eight. */
  .filing-form legend h2, .filing-form h3.field-group, .answers .answers-group, .answers h3 { font-size: 1.15rem; overflow-wrap: break-word; hyphens: auto; }
}
.field .check { display: flex; gap: 12px; align-items: flex-start; }
.field .check input { width: 24px; height: 24px; margin: 1px 0 0; flex: none; accent-color: var(--primary); }
.field .check label { font-weight: 400; margin: 0; }
.filing-form .field > .check { min-height: 44px; align-items: center; }
.filing-form .field > .check label { display: flex; align-items: center; min-height: 44px; flex: 1; cursor: pointer; }
.field.has-error { border-left: 4px solid var(--error); padding-left: 14px; }
.field.has-error input, .field.has-error select, .field.has-error textarea { border: 2px solid var(--error); }
.field-error { color: var(--error); font-weight: 500; margin: 0 0 6px; }
/* Schema 2 forms: checkbox lists, conditional questions, the certification text */
.filing-form fieldset.choices { margin: 0; }
.filing-form fieldset.choices legend { font-weight: 500; color: var(--ink); margin: 0 0 4px; }
.field .choices .check { margin: 0 0 8px; }
.field.conditional:not(.has-error) { border-left: 3px solid var(--line); padding-left: 14px; }
.only-if { color: var(--ink); font-size: .925rem; font-style: italic; margin: 0 0 4px; }
/* Forms in steps: the step list with each step's state; computed figures (no input) */
.form-steps { border: 1px solid var(--line); border-radius: 8px; padding: 12px 18px; margin: 0 0 24px; background: #fff; }
.form-steps h2 { font-size: 1.1rem; margin: 0 0 8px; }
.form-steps ol { margin: 0 0 8px; padding-left: 1.4rem; }
.form-steps li { margin: 0 0 6px; }
.form-steps .form-step-name { font-weight: 500; margin-right: 10px; }
.form-steps a.form-step-name { display: inline-flex; align-items: center; min-height: 44px; }
.form-steps li.current .form-step-name { font-weight: 700; color: var(--ink); }
.form-steps .form-step-state { display: inline-block; font-size: .875rem; color: var(--muted); }
/* On a phone every status sits on its own line under its step name, so the list is even (polish30b). */
@media screen and (max-width: 599.98px) {
  .form-steps .form-step-state { display: block; margin: -4px 0 0; }
  .form-steps li { margin: 0 0 8px; }
}
.form-steps li.complete .form-step-state::before { content: "\2713"; color: #237847; margin-right: .3em; }
.form-steps li.errors .form-step-state { color: var(--error); font-weight: 500; }
.form-steps p { font-size: .925rem; margin: 0; }
.citation-part { white-space: nowrap; }
.field.computed .computed-label { font-weight: 500; color: var(--ink); margin: 0 0 4px; }
.field.computed .computed-value { font-size: 1.1rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink); margin: 0 0 4px; }
.attestation { background: var(--surface); border-left: 4px solid var(--primary); padding: 12px 16px; margin: 0 0 20px; }
.attestation h3 { margin: 0 0 6px; }
.attestation p:last-child { margin-bottom: 0; }
/* Upload slots: the file kept and its virus check, the file chooser; the files on review and receipt */
.file-current { background: var(--surface); border: 1px solid var(--line); border-radius: 6px; padding: 10px 14px; margin: 0 0 14px; overflow-wrap: anywhere; }
.file-current p { margin: 0 0 6px; }
.file-current .file-status { color: var(--ink); font-size: .925rem; }
.file-current .file-actions { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin: 0; }
.file-applicable { margin: 0 0 14px; }
.file-applicable .check { min-height: 44px; margin: 0; align-items: center; }
.file-applicable .check label { display: flex; flex: 1; align-items: center; min-height: 44px; cursor: pointer; }
.file-choose .button { margin-top: 10px; }
.file-record { border-top: 1px solid var(--line); padding: 12px 0 4px; }
.file-record h3 { margin: 0 0 8px; }
code.sha256 { font-size: .85rem; overflow-wrap: anywhere; word-break: break-all; }
/* A 64-character hash wraps in equal lines (two of 32, or four of 16), never leaving one character
   alone: its box is a whole number of 16-character steps, at most 32 (polish30b). */
code.sha256 { display: inline-block; max-width: 100%; width: auto; width: calc(min(32ch, max(round(down, 100%, 16ch), min(100%, 16ch))) + 1px); }
.error-summary { border: 4px solid var(--error); background: #fff; padding: 16px 20px; margin: 0 0 24px; }
.error-summary h2 { margin: 0 0 10px; }
.error-summary h2:focus-visible { outline:2px solid var(--error); outline-offset:4px; box-shadow:none; }
.error-summary ul { margin: 0; padding-left: 1.2rem; }
.error-summary a { color: var(--error); font-weight: 500; }
.private-link { background: var(--surface); border-left: 4px solid var(--primary); padding: 14px 16px; margin: 0 0 24px; }
.private-link label { display: block; font-weight: 500; color: var(--ink); margin: 0 0 6px; }
.private-link input { font: inherit; font-size: .9rem; width: 100%; padding: 7px 9px; border: 1px solid var(--muted); border-radius: 4px; background: #fff; color: var(--text); }
.private-link p { font-size: .925rem; margin: 8px 0 0; }
.private-link form { margin: 10px 0 0; }
.privacy-notice { border-top: 1px solid var(--line); margin: 32px 0 0; padding-top: 12px; font-size: .925rem; }
.privacy-notice h2 { font-size: 1.1rem; }
.answers h3, .answers h4 { margin-top: 18px; }
.filing-form h3.field-group, .answers .answers-group { font-size: 1.05rem; color: var(--ink); border-bottom: 1px solid var(--line); padding-bottom: 4px; margin: 22px 0 12px; }
.answers-grid { max-width: 46em; margin-bottom: 12px; }
.answers-grid table.data { min-width: 0; }
.answers-grid th[scope="row"] { font-weight: 400; }
/* A schedule table's cue is in the page and shows at every width without the script; the script marks a
   table that fits (data-fits) and hides its cue, dropping aria-describedby with it (C7 P2-4, P29R1-01). */
.scroll-cue:has(+ .table-scroll[data-fits]) { display: none; }
@media (max-width: 560px) {
  .answers-grid table.data { font-size: .82rem; }
  .answers-grid table.data th, .answers-grid table.data td { padding: 6px 4px; }
  .answers-grid td.num { white-space: nowrap; }
  /* "Fiscal year 2027" reads on one or two lines, not three (polish30b). */
  .answers-grid th[scope="row"] { min-width: 6.5em; }
}
ol.timeline { list-style: none; margin: 0; padding: 0; counter-reset: step; }
ol.timeline li { position: relative; counter-increment: step; padding: 0 0 20px 44px; min-height: 30px; }
ol.timeline li::before { content: counter(step); position: absolute; left: 0; top: 0; width: 30px; height: 30px; border: 2px solid var(--muted); border-radius: 50%; background: #fff; color: var(--muted); font-size: .875rem; line-height: 26px; text-align: center; }
ol.timeline li::after { content: ""; position: absolute; left: 14px; top: 32px; bottom: 2px; width: 2px; background: var(--line); }
ol.timeline li:last-child::after { display: none; }
ol.timeline li.done::before { content: "\2713"; background: var(--primary); border-color: var(--primary); color: #fff; }
ol.timeline li.now::before { border-color: var(--primary); color: var(--primary); }
ol.timeline .step-label { display: block; font-weight: 500; color: var(--ink); }
ol.timeline li[aria-current="step"] .step-label { font-weight: 700; }
ol.timeline .step-state { display: block; font-size: .875rem; color: var(--muted); }
ol.timeline .step-when { display: flex; flex-wrap: wrap; gap: 0 16px; font-size: .875rem; color: var(--muted); }  /* the date in its own column, then the time and who */
ol.timeline .step-date { flex: 0 0 7.5em; }
/* Content pages: tables, the meeting archive, tentative dates, the board's staff line */
.table-source { margin: 4px 0 18px; }
.table-scroll table.meetings-table { min-width: 0; margin-bottom: 18px; }
.meetings-table caption .small { font-weight: 400; }
.meetings-table th[scope="row"] { white-space: nowrap; }
.datebox.tentative { background: #fff; color: var(--primary); border: 2px dashed var(--primary); }
.board-staff { list-style: none; margin: 22px 0 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px 32px; }
.board-staff .eyebrow { display: block; margin-bottom: 2px; }
.stat .stat-page { margin: 6px 0 0; font-weight: 500; }
@media print {
  body:has([data-page="pab/program-year-2026"]) { page: program-year; }
  [data-page="pab/program-year-2026"] .prose { max-width: none; }
  [data-page="pab/program-year-2026"] .table-scroll { overflow: visible; }
  [data-page="pab/program-year-2026"] table.data { min-width: 0; table-layout: fixed; font-size: 9pt; }
  [data-page="pab/program-year-2026"] table.data th,
  [data-page="pab/program-year-2026"] table.data td { padding: 4px; overflow-wrap: normal; }
  [data-page="pab/program-year-2026"] table.data .num { white-space: nowrap; }
  body:has([data-page="state-debt/recent-transactions"]) { page: state-transactions; }
  [data-page="state-debt/recent-transactions"] .prose { max-width: none; }
  [data-page="state-debt/recent-transactions"] .table-scroll { overflow: visible; }
  [data-page="state-debt/recent-transactions"] table.data { min-width: 0; table-layout: fixed; font-size: 8pt; }
  [data-page="state-debt/recent-transactions"] table.data th,
  [data-page="state-debt/recent-transactions"] table.data td { padding: 4px; overflow-wrap: anywhere; }
  .skip, .site-header, .site-nav, .crumbs, .private-link, .no-print, .filing-form { display: none !important; }
  main form, .pager, .ex-levels, .ex-press, .hero-search, .hero .chips,
  .page-body aside, .allocation-jumps { display: none !important; }
  body:has(.filing-body, .file-page, .allocation-board) .site-footer,
  .file-jump, .allocation-breadcrumb { display: none !important; }
  /* The footer's link columns stay off paper, but its notice and disclaimer link print: a printed
     Data Center page keeps "not independently verified" and where the disclaimer is. */
  .site-footer { background: none; color: #000; border-top: 1px solid #000; padding: 10px 0 0; margin-top: 18px; }
  .site-footer .cols { display: none !important; }
  .site-footer .legal a { display: inline; min-height: 0; padding: 0; line-height: inherit; }
.site-footer .legal { border: 0; margin: 0; padding: 0; color: #000; font-size: 9pt; }
  .site-footer .legal a { color: #000; }
  .site-footer .legal a[href]::after { content: " (" attr(href) ")"; }
  body { font-size: 11pt; color: #000; }
  a { color: #000; }
  .page-head { background: none; border: 0; padding: 0 0 12px; }
  .wrap { max-width: none; padding: 0; }
  .section, .wrap.section { padding: 0; }
  .wrap.page-body { padding-left: 0; padding-right: 0; }
  .filing-body { max-width: none; }
  ol.timeline li::before { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  /* The demonstration notice prints in one boxed form on every page, the report pages included (polish38). */
  .demo-banner { color: #000; background: #fff; border: 1pt solid #000; padding: 5pt; font-size: 9pt; break-inside: avoid; }
  dl.terms dd { break-inside: avoid; }
  h2, h3, h4, dl.terms dt { break-after: avoid; }
}
/* Every table prints whole inside the page (POL29B-11): no scroll wrapper or screen minimum width,
   a long email address wraps anywhere, and amounts stay on one line. */
@media print {
  .table-scroll { overflow: visible !important; max-width: none; box-shadow: none !important; }
  .table-scroll table.data, [data-page="about/contact"] table.data { min-width: 0; }
  table.data th, table.data td { overflow-wrap: break-word; }
  table.data td.num { white-space: nowrap; }
  [data-page="about/contact"] table.data { table-layout: auto; font-size: 9pt; }
  [data-page="about/contact"] table.data th, [data-page="about/contact"] table.data td { padding: 4px 6px; }
  [data-page="about/contact"] table.data td:nth-child(3) a { white-space: normal; overflow-wrap: break-word; }
}
@page program-year { size: letter landscape; margin: .4in; }
@page state-transactions { size: letter landscape; margin: .4in; }
/* Staff workspace (staff/) and the bond database's tabs */
.staff-bar { background: var(--surface); border-bottom: 1px solid var(--line); font-size: .925rem; }
.staff-bar .wrap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 20px; padding-top: 8px; padding-bottom: 8px; }
.staff-bar-name { margin: 0; font-weight: 500; color: var(--ink); }
.staff-bar ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 18px; }
.staff-bar a[aria-current="page"] { font-weight: 700; color: var(--ink); }
.staff-bar form { margin: 0; }
.link-button { font: inherit; background: none; border: 0; padding: 0; color: var(--link); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.link-button:hover { color: var(--primary); }
.staff-warning { border-left-color: var(--ink); }
.secret-box { background: var(--surface); border-left: 4px solid var(--primary); padding: 12px 16px; margin: 10px 0 6px; }
.secret-box .secret-label { font-weight: 500; color: var(--ink); margin: 0 0 4px; }
.secret-box .secret code { font-size: 1.2rem; letter-spacing: .06em; word-spacing: .3em; overflow-wrap: anywhere; color: var(--ink); }
.secret-box label { display: block; margin: 4px 0; }
.secret-box input { font: inherit; font-size: .85rem; width: 100%; padding: 6px 8px; border: 1px solid var(--muted); border-radius: 4px; background: #fff; color: var(--text); }
.enroll-steps li { margin-bottom: 12px; }
.recovery-codes { columns: 2; column-gap: 32px; max-width: 30em; padding-left: 1.6rem; }
.recovery-codes code { font-size: 1.05rem; letter-spacing: .04em; }
blockquote.staff-note { margin: 0 0 12px; padding: 8px 14px; border-left: 4px solid var(--line); background: #fff; }
.staff-checklist li { margin-bottom: 6px; }
.staff-filing > dl.terms { margin-bottom: 28px; }
.staff-action { margin: 0 0 22px; padding: 14px 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.staff-action .field { margin-bottom: 12px; }
.staff-versions ul { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: .925rem; }
.staff-versions [aria-current="page"] { font-weight: 700; }
table.staff-queue th[scope="row"], table.staff-audit td:first-child { white-space: nowrap; }
.dc-tabs { border-bottom: 1px solid var(--line); background: #fff; }
.dc-tabs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 4px; }
.dc-tabs a { display: block; padding: 10px 14px; text-decoration: none; border-bottom: 3px solid transparent; }
.dc-tabs a[aria-current="page"] { border-bottom-color: var(--primary); color: var(--ink); font-weight: 500; }
@media (max-width: 560px) { .recovery-codes { columns: 1; } }
/* Review cycles, agendas and Board packets (staff/cycles.py) */
ul.plain { list-style: none; margin: 0; padding: 0; }
ul.plain li { margin: 0 0 4px; }
table.staff-cycles td, table.staff-cycles th { vertical-align: top; }
tr.child-row th[scope="row"] { padding-left: 1.6rem; }
.child-mark { color: var(--muted); }
.session-links li { margin-bottom: 8px; }
.inline-action { display: inline-block; margin: 0 12px 12px 0; }
.staff-cycle details, .staff-agenda details { margin: 8px 0; }
.staff-cycle summary, .staff-agenda summary { cursor: pointer; color: var(--link); text-decoration: underline; text-underline-offset: 2px; }
table.staff-builder textarea { font: inherit; width: 100%; min-width: 16em; padding: 6px 8px; border: 1px solid var(--muted); border-radius: 4px; }
table.staff-builder input.order-input { font: inherit; width: 4em; padding: 6px 8px; border: 1px solid var(--muted); border-radius: 4px; }
table.staff-builder input[type="checkbox"] { width: 22px; height: 22px; }
.inline-label { display: inline !important; font-weight: 400 !important; }
ol.agenda-list li { margin-bottom: 6px; }
ol.agenda-sub { margin-top: 4px; }
.agenda-notice { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 8px; }
fieldset.decision, .filing-form fieldset.decision { border: 1px solid var(--line); padding: 12px 20px 4px; margin: 0 0 20px; }
fieldset.decision legend { font-weight: 500; color: var(--ink); padding: 0 6px; }
code.sha256 { overflow-wrap: anywhere; font-size: .85em; }
dd:has(> code.sha256) { text-wrap: balance; }
.fee-result { white-space: nowrap; }
.sample-receipt-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
@media screen and (max-width: 979.98px) {
  .filing-forms a, .stop-title a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
}
@media screen and (max-width: 599.98px) {
  body:has(.filing-body) .page-head h1 { font-size: 1.65rem; line-height: 1.2; }
}
.filing-form .choices .check { min-height: 44px; display: flex; align-items: center; }
.filing-form .choices .check label { min-height: 44px; display: flex; align-items: center; }
.packet-item h3 { margin-top: 1.5rem; }
@media print {
  .packet-item { break-before: page; }
  .staff-bar { display: none !important; }
}
@media (max-width: 979.98px) {
  .page-body .sources a, .page-body .aside-box > a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
  .page-body .links a, .page-body aside[aria-label="In this section"] li a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
}
/* Page tables on a phone (polish30b): a two-column table (a date beside long text) and a table of six
   (polish44: the program-year subceiling table's "$0" sliver; seven before) or more columns read as stacked cards, each cell under its column name, instead of scrolling sideways.
   The table then fits, so scroll-regions.js hides its cue. A caption inside a scroller stays in view at the left edge. */
.table-scroll > table.data > caption { position: sticky; left: 0; max-width: calc(100vw - 40px); }
@media screen and (max-width: 599.98px) {
  .table-scroll > table.page-table:not(:has(tr > :nth-child(3))),
  .table-scroll > table.page-table:has(thead th:nth-child(6)) { min-width: 0; }
  table.page-table:not(:has(tr > :nth-child(3))) :is(tbody, tfoot, tr, th, td),
  table.page-table:has(thead th:nth-child(6)) :is(tbody, tfoot, tr, th, td) { display: block; width: 100%; text-align: left; }
  table.page-table:not(:has(tr > :nth-child(3))) caption,
  table.page-table:has(thead th:nth-child(6)) caption { display: block; position: static; }
  table.page-table:not(:has(tr > :nth-child(3))) thead,
  table.page-table:has(thead th:nth-child(6)) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.page-table:not(:has(tr > :nth-child(3))) tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  table.page-table:not(:has(tr > :nth-child(3))) :is(th, td) { padding: 2px 0; border: 0; background: none; }
  table.page-table:not(:has(tr > :nth-child(3))) :is(th, td)::before { content: attr(data-label); display: block; color: var(--muted); font-weight: 400; font-size: .85rem; }
  table.page-table:has(thead th:nth-child(6)) tr { margin: 0 0 12px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
  table.page-table:has(thead th:nth-child(6)) :is(th, td) { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); background: none; overflow-wrap: anywhere; }
  table.page-table:has(thead th:nth-child(6)) tr > :last-child { border-bottom: 0; }
  table.page-table:has(thead th:nth-child(6)) :is(th, td)::before { content: attr(data-label); color: var(--muted); font-weight: 400; font-size: .85rem; }
}
/* A table marked stack-phone (a page table with "stack": true, the past-meetings tables) reads as
   label-and-value cards on a phone, so no column hides behind the scroller (polish34). */
@media screen and (max-width: 599.98px) {
  .table-scroll > table.data.stack-phone { min-width: 0; }
  table.stack-phone :is(tbody, tfoot, tr, th, td) { display: block; width: 100%; text-align: left; white-space: normal; }
  table.stack-phone caption { display: block; position: static; }
  table.stack-phone thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.stack-phone tr { padding: 10px 0; border-bottom: 1px solid var(--line); }
  table.stack-phone :is(th, td) { padding: 2px 0; border: 0; background: none; }
  table.stack-phone :is(th, td)[data-label]::before { content: attr(data-label); display: block; color: var(--muted); font-weight: 400; font-size: .85rem; }
  table.stack-phone :is(th, td) a { white-space: normal; }
}
/* A wide page table on a desktop gives its first text column room, so names do not wrap to five lines. */
@media screen and (min-width: 1000px) {
  table.page-table:has(thead th:nth-child(7)) td:not(.num) { min-width: 9em; }
  /* A page with a table of six or more columns lets its tables use the whole content column, while its
     running text keeps the 46em measure (polish34: the program-year subceiling table no longer scrolls at 1440). */
  .prose:has(table.page-table thead th:nth-child(6)) { max-width: none; }
  .prose:has(table.page-table thead th:nth-child(6)) > section > :is(p, ul, ol, h2, h3, details) { max-width: 46em; }
  table.page-table:has(thead th:nth-child(6)) :is(th, td):first-child { min-width: 9em; }
}
@media print {
  /* Screen controls stay off paper: downloads, the jump to a chart's table, scroll hints and the fade edge (polish30b). */
  main .download, .figlink, .scroll-cue, .table-scroll-cue, .dc-grid-cue { display: none !important; }
  .table-scroll[data-scrolls] { box-shadow: none !important; }
  /* Home: the task cards never split across pages, and the hero prints as text, not a dark band. */
  .door, .stat, .program, .next-meeting { break-inside: avoid; }
  .hero { background: none !important; color: #000; border-bottom: 1px solid #000; padding: 0 0 12px; }
  .hero h1, .hero .lede { color: #000; }
  .hero .quick a { color: #000; border-color: #000; }
  /* The filing start page's privacy section follows the form on the same page when it fits. */
  .privacy-notice { break-before: auto; break-inside: auto; }
  .sample-receipt-link { display: none !important; }
  /* A notice box (the start page's private-link callout) never splits across pages, and a table's
     caption and header row stay with its first rows instead of sitting alone at a page foot (polish34). */
  .notice, .aside-box { break-inside: avoid; }
  table.data caption, table.data thead { break-after: avoid; }
  table.data tr { break-inside: avoid; }
}

/* polish44 (hub p72 P3s) */
/* A table of eight or more columns (recent state transactions) also reads as cards on a tablet, where it cut at
   the 768 edge, and on a desktop takes the page's full width, the side column moving below it as on a tablet. */
@media screen and (max-width: 959.98px) {
  .table-scroll > table.page-table:has(thead th:nth-child(8)) { min-width: 0; }
  table.page-table:has(thead th:nth-child(8)) :is(tbody, tfoot, tr, th, td) { display: block; width: 100%; text-align: left; }
  table.page-table:has(thead th:nth-child(8)) caption { display: block; position: static; }
  table.page-table:has(thead th:nth-child(8)) thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  table.page-table:has(thead th:nth-child(8)) tr { margin: 0 0 12px; padding: 6px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
  table.page-table:has(thead th:nth-child(8)) :is(th, td) { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); gap: 10px; padding: 7px 0; border-bottom: 1px solid var(--line); background: none; overflow-wrap: anywhere; }
  table.page-table:has(thead th:nth-child(8)) tr > :last-child { border-bottom: 0; }
  table.page-table:has(thead th:nth-child(8)) :is(th, td)::before { content: attr(data-label); color: var(--muted); font-weight: 400; font-size: .85rem; }
}
/* A six- or seven-column table on a tablet fits its column (the subceiling table was 9 px too wide at 768 and cut
   "Availabl" mid-word): a smaller type and tighter cells, headings wrapping between words. */
@media screen and (min-width: 600px) and (max-width: 959.98px) {
  .table-scroll > table.page-table:has(thead th:nth-child(6)):not(:has(thead th:nth-child(8))) { min-width: 0; font-size: .85rem; }
  table.page-table:has(thead th:nth-child(6)):not(:has(thead th:nth-child(8))) :is(th, td) { padding: 6px 5px; }
  table.page-table:has(thead th:nth-child(6)):not(:has(thead th:nth-child(8))) thead th { overflow-wrap: normal; word-break: normal; hyphens: manual; }
}
@media screen and (min-width: 960.02px) {
  .page-body:has(table.page-table thead th:nth-child(8)) { grid-template-columns: minmax(0, 1fr); }
  table.page-table:has(thead th:nth-child(8)) td.num { white-space: nowrap; }
  /* Sources follow the prose in the main column; the side column spans both rows so it never pushes them down. */
  .page-body:has(> .page-sources):not(:has(table.page-table thead th:nth-child(8))) > aside { grid-row: span 2; }
  .page-body:not(.page-body-wide):not(:has(table.page-table thead th:nth-child(8))) > .page-sources { margin-top: -40px; }
}
.page-body > .page-sources { min-width: 0; }
/* A year jump above a long dated table or the past meetings, and the "On this page" index of a long page: the
   explorer's "Jump to" bar and the side column's box. */
.page-jump { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: baseline; margin: 0 0 18px; padding: 8px 10px; border: 1px solid var(--line); background: var(--surface); font-size: .875rem; }
.page-jump span { color: var(--muted); font-weight: 500; }
.page-jump a { white-space: nowrap; }
@media screen and (max-width: 979.98px) {
  .page-jump { gap: 0 14px; padding: 0 10px; }
  .page-jump a, .page-index li a { display: inline-flex; align-items: center; min-width: 44px; min-height: 44px; }
  .page-jump span { align-self: center; }
  .table-source a.csv-link { display: inline-flex; align-items: center; min-height: 44px; }
  /* Inline source links in the Data Center's source lines: a 24 px tall target on lines that keep them apart. */
  .source-block p { line-height: 1.75; }
  .source-block a { padding: 4px 0; }
}
@media screen and (min-width: 960.02px) { .page-jump-phone { display: none; } }
@media screen and (min-width: 600px) { .page-index ul { columns: 2; column-gap: 28px; } .page-index li { break-inside: avoid; } }
.prose .page-index { max-width: none; margin-bottom: 28px; }
:target { scroll-margin-top: 12px; }
/* An FAQ question reads apart from its answer, in the weight of a heading. */
.prose h3.faq-q { font-size: 1.05rem; margin: 1.4rem 0 .3rem; color: var(--ink); }
.prose p.faq-a { margin-top: 0; }
@media print {
  .page-jump, .page-index { display: none !important; }
  /* "In this section" prints, after the page and before its sources; the side column's other boxes stay off paper. */
  .page-body aside:has(> .section-children) { display: block !important; }
  .page-body aside > .aside-box:not(.section-children) { display: none !important; }
  .page-body .section-children li { padding: 2pt 0; }
  /* The bond list's county line prints as on screen: a little smaller than the issuer and a quiet grey. */
  .dc-bonds table.data th .small { font-size: .95em; color: #444; }
}
/* Every page prints with the same .4in page margin as the Data Center's named pages, so no index page runs flush
   to the paper's edge. Report pages keep their own (reports/print.css). */
@page { margin: .4in; }
