/* ORSIF State Rules Map: styles for /guidelines/us/states.html, the state pages in /guidelines/us/states/ and the
   feature on /guidelines/us. Loads after styles.css and uses its tokens (--color-*, --spacing-*, --radius-*).
   Colors are the brand palette; a tile's color is never the only cue: every category also has a glyph and words.
   The markup is generated by scripts/us-atlas/ (see data/us-atlas/README.md). */

:root {
    --at-ink: #0b3341;            /* text on light tints; dark teal, 10:1 on white */
    --at-teal-tint: #d3e4e9;
    --at-shield-tint: #e3eef1;
    --at-green-tint: #d6f0e1;
    --at-orange-tint: #fbe5d2;
    --at-red-tint: #fadbd8;
    --at-grey-tint: #eceff1;
    --at-grey-text: #455a64;
    --at-line: #dce1e4;
    --at-muted: #55646b;          /* secondary text; 6:1 on white (the site's --color-text-light is 3.5:1) */
}

/* ---- page frame ------------------------------------------------------------------------------------------ */
body.at-page { background: var(--color-bg); }
section.at-sec { padding: var(--spacing-xl) 0; background: var(--color-bg); scroll-margin-top: 76px; }
section.at-sec.at-sec--alt { background: var(--color-bg-alt); }
section.at-sec.at-sec--nav { padding: var(--spacing-lg) 0; }
.at-sec h2 { font-size: 1.75rem; color: var(--color-primary); margin-bottom: var(--spacing-sm); }
.at-sec h3 { font-size: 1.2rem; color: var(--at-ink); }
.at-sub { color: var(--at-muted); max-width: 820px; font-size: 1.05rem; margin-bottom: var(--spacing-lg); }
.at-small { font-size: .9rem; color: var(--at-muted); }
.at-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
html:not(.at-js) .at-js-only { display: none !important; }
.at-linkbtn { background: none; border: 0; padding: 0; color: var(--color-primary); font: inherit; text-decoration: underline; cursor: pointer; }
.at-linkbtn:hover { color: var(--color-primary-dark); }
:where(.at-page) a:focus-visible, :where(.at-page) button:focus-visible, :where(.at-page) select:focus-visible, :where(.at-page) input:focus-visible, :where(.at-page) summary:focus-visible {
    outline: 3px solid var(--color-primary); outline-offset: 2px; border-radius: 4px;
}

/* Links inside running text are underlined, never distinguished by color alone. */
.at-page main p a:not(.btn), .at-page main li a:not(.btn):not(.at-tile), .at-page main dd a, .at-page main summary a { text-decoration: underline; text-underline-offset: 2px; }

/* ---- hero and status ------------------------------------------------------------------------------------- */
.page-header.at-hero { padding: var(--spacing-xl) 0 var(--spacing-xl); }
.at-hero h1 { font-size: clamp(1.9rem, 4.2vw, 2.75rem); margin: .25rem 0 var(--spacing-md); max-width: 900px; }
.at-lede { font-size: 1.15rem; line-height: 1.55; max-width: 820px; color: rgba(255,255,255,.92); margin-bottom: var(--spacing-md); }
.at-crumbs { display: flex; flex-wrap: wrap; gap: .5rem; font-size: .9rem; color: rgba(255,255,255,.8); }
.at-crumbs a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.at-meta { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin: 0 0 var(--spacing-md); font-size: .95rem; color: rgba(255,255,255,.92); }
.at-meta li { display: flex; align-items: center; gap: .45rem; }
.at-dot { width: .7rem; height: .7rem; border-radius: 50%; display: inline-block; border: 2px solid #fff; }
.at-dot--on { background: var(--color-secondary); }
.at-dot--off { background: transparent; }
.at-hero-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.btn.at-btn-light { background: #fff; color: var(--color-primary); border-color: #fff; }
.btn.at-btn-light:hover { background: var(--at-shield-tint); color: var(--color-primary-dark); }
.btn.at-btn-ghost { background: transparent; color: #fff; border-color: rgba(255,255,255,.75); }
.btn.at-btn-ghost:hover { background: rgba(255,255,255,.14); color: #fff; }
.at-status { background: var(--at-shield-tint); border-bottom: 1px solid var(--at-line); }
.at-status p { margin: 0; padding: .85rem 0; font-size: .95rem; color: var(--at-ink); max-width: 1000px; }
.at-status a { text-decoration: underline; }

.at-hero-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); gap: var(--spacing-xl); align-items: center; }
.at-hero-art { display: block; color: #fff; text-decoration: none; }
.at-hero-art:hover { color: #fff; }
@media (max-width: 900px) { .at-hero-grid { grid-template-columns: 1fr; } .at-hero-art { display: none; } }

/* ---- national picture ------------------------------------------------------------------------------------ */
.at-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--spacing-md); margin-bottom: var(--spacing-lg); }
.at-stat { background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-lg); box-shadow: var(--shadow-sm); display: flex; flex-direction: column; }
.at-stat-n { margin: 0 0 var(--spacing-sm); display: flex; align-items: baseline; gap: .5rem; }
.at-stat-num { font-size: 3rem; line-height: 1; font-weight: 700; color: var(--color-primary); }
.at-stat-of { color: var(--at-muted); font-size: 1rem; }
.at-stat h3 { font-size: 1.05rem; margin-bottom: var(--spacing-sm); }
.at-stat p { font-size: .95rem; }
.at-showmap { margin-top: auto; align-self: flex-start; background: none; border: 0; padding: 0; color: var(--color-primary); font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }
.at-callout { background: var(--at-orange-tint); border: 1px solid #e67e22; border-radius: var(--radius-md); padding: var(--spacing-lg); max-width: 960px; color: var(--at-ink); }
.at-callout h3 { margin-bottom: var(--spacing-sm); }
.at-callout p:last-child { margin-bottom: 0; }
.at-callout a { text-decoration: underline; }

/* ---- the tile map ---------------------------------------------------------------------------------------- */
.tone-teal   { --tbg: var(--color-primary); --tfg: #fff; }
.tone-shield { --tbg: var(--color-primary-light); --tfg: #06242d; }
.tone-green  { --tbg: var(--color-secondary); --tfg: #06242d; }
.tone-orange { --tbg: #e67e22; --tfg: #1f1100; }
.tone-red    { --tbg: var(--at-red-tint); --tfg: var(--at-ink); --tbd: #e74c3c; }
.tone-grey   { --tbg: var(--at-grey-tint); --tfg: var(--at-grey-text); }
.at-views { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: var(--spacing-md); }
.at-view { border: 2px solid var(--color-primary); background: #fff; color: var(--color-primary); border-radius: 999px; padding: .45rem 1rem; font: inherit; font-weight: 600; font-size: .95rem; cursor: pointer; }
.at-view:hover { background: var(--at-shield-tint); }
.at-view.is-on { background: var(--color-primary); color: #fff; }
.at-map { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(8, minmax(0, 1fr)); gap: 6px; max-width: 960px; aspect-ratio: 12 / 8; margin: 0 auto var(--spacing-md); }
.at-tile { grid-row: var(--r); grid-column: var(--c); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-width: 0; border-radius: 8px; background: var(--tbg); color: var(--tfg); border: 3px solid var(--tbd, transparent); text-decoration: none; line-height: 1.05; text-align: center; transition: transform .12s ease, box-shadow .12s ease, opacity .15s ease; }
a.at-tile:hover { color: var(--tfg); transform: translateY(-2px); box-shadow: 0 6px 14px rgba(9,58,73,.28); }
a.at-tile:focus-visible { outline: 3px solid var(--color-primary-dark); outline-offset: 2px; z-index: 2; }
.at-tile-code { font-weight: 700; font-size: clamp(.8rem, 1.7vw, 1.15rem); }
.at-tile-g { font-size: clamp(.6rem, 1vw, .8rem); opacity: .92; }
.at-tile-s { font-size: clamp(.5rem, .85vw, .68rem); font-weight: 600; opacity: .95; padding: 0 2px; }
.at-tile.is-dim { opacity: .22; filter: grayscale(.5); }
.at-legends { max-width: 960px; margin: 0 auto; }
.at-legend { display: none; list-style: none; padding: 0; margin: 0 0 var(--spacing-sm); flex-wrap: wrap; gap: .5rem 1.5rem; }
.at-mapwrap[data-view="alara"] .at-legend[data-for="alara"],
.at-mapwrap[data-view="alt"] .at-legend[data-for="alt"],
.at-mapwrap[data-view="insp"] .at-legend[data-for="insp"],
.at-mapwrap[data-view="lens"] .at-legend[data-for="lens"],
.at-mapwrap[data-view="agreement"] .at-legend[data-for="agreement"] { display: flex; }
.at-legend li { display: flex; align-items: center; gap: .5rem; font-size: .92rem; }
.at-legend b { color: var(--at-muted); font-weight: 600; }
.at-swatch { width: 1.6rem; height: 1.6rem; border-radius: 6px; background: var(--tbg); color: var(--tfg); border: 2px solid var(--tbd, transparent); display: inline-flex; align-items: center; justify-content: center; font-size: .7rem; flex: none; }
.at-viewnote { max-width: 960px; margin: var(--spacing-sm) auto 0; font-size: .95rem; color: var(--at-muted); }
.at-clear { max-width: 960px; margin: .25rem auto 0; }

/* ---- comparison table ------------------------------------------------------------------------------------ */
.at-filters { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: center; margin-bottom: var(--spacing-sm); }
.at-filters input[type="search"], .at-filters select, .at-find select { font: inherit; padding: .55rem .75rem; border: 1px solid #b8c4ca; border-radius: var(--radius-md); background: #fff; color: var(--color-text); min-width: 0; }
.at-filters input[type="search"] { flex: 1 1 220px; max-width: 320px; }
.at-count { font-size: .9rem; color: var(--at-muted); margin: 0 0 var(--spacing-sm); }
.at-table { width: 100%; border-collapse: collapse; background: #fff; font-size: .93rem; border: 1px solid var(--at-line); border-radius: var(--radius-md); }
.at-table th, .at-table td { padding: .6rem .7rem; text-align: left; vertical-align: middle; border-bottom: 1px solid var(--at-line); }
.at-table thead th { position: sticky; top: 60px; z-index: 1; background: var(--at-shield-tint); color: var(--at-ink); font-size: .85rem; }
.at-table tr[hidden] { display: none !important; }
.at-table tbody tr:nth-child(even) { background: #f6f9fa; }
.at-table tbody tr:hover { background: var(--at-teal-tint); }
.at-table tbody th { font-weight: 600; }
.at-table tbody th a { text-decoration: underline; text-underline-offset: 2px; }
.at-sort { background: none; border: 0; padding: 0; font: inherit; font-weight: 700; color: inherit; cursor: pointer; text-align: left; }
.at-sort:hover { text-decoration: underline; }
th[aria-sort="ascending"] .at-sort::after { content: " \25B2"; font-size: .7em; }
th[aria-sort="descending"] .at-sort::after { content: " \25BC"; font-size: .7em; }
.at-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .15rem .6rem; border-radius: 999px; font-size: .82rem; font-weight: 600; line-height: 1.4; background: var(--tbg, var(--at-grey-tint)); color: var(--tfg, var(--at-grey-text)); border: 2px solid var(--tbd, transparent); white-space: nowrap; }
.at-chip-g { font-size: .75em; }
.at-chip--green { --tbg: var(--at-green-tint); --tfg: #0f4a2a; }
.at-chip--shield { --tbg: var(--at-shield-tint); --tfg: var(--at-ink); }
.at-chip--grey { --tbg: var(--at-grey-tint); --tfg: var(--at-grey-text); }
.at-chip--ghost { --tbg: #fff; --tfg: var(--at-grey-text); --tbd: #b0bec5; }
.at-chip--red { --tbg: var(--at-red-tint); --tfg: var(--at-ink); --tbd: #e74c3c; }
.at-chip--teal { --tbg: var(--color-primary); --tfg: #fff; }
.at-chip--orange { --tbg: var(--at-orange-tint); --tfg: var(--at-ink); --tbd: #e67e22; }
.at-chip.tone-teal, .at-chip.tone-shield, .at-chip.tone-green, .at-chip.tone-orange, .at-chip.tone-red, .at-chip.tone-grey { }

/* ---- developments ---------------------------------------------------------------------------------------- */
.at-devs { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: var(--spacing-md); }
.at-dev { background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-lg); box-shadow: var(--shadow-sm); }
.at-dev-top { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; margin-bottom: .5rem; }
.at-dev-status { font-size: .88rem; font-weight: 600; color: var(--at-muted); }
.at-dev h3 { font-size: 1.1rem; margin-bottom: .5rem; }
.at-dev p { font-size: .95rem; }
.at-dev-links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; font-size: .9rem; }
.at-dev-links a { text-decoration: underline; text-underline-offset: 2px; }
.at-dev-state { font-weight: 700; }
.at-kind { display: inline-block; font-size: .72rem; letter-spacing: .04em; text-transform: uppercase; font-weight: 700; padding: .15rem .55rem; border-radius: 4px; background: var(--at-teal-tint); color: var(--at-ink); }
.at-kind--federal { background: var(--color-federal); color: #fff; }
.at-kind--state { background: var(--color-primary); color: #fff; }
.at-kind--adopted_rule { background: var(--at-green-tint); color: #0f4a2a; }
.at-kind--proposed_rule { background: var(--at-orange-tint); color: var(--at-ink); }
.at-kind--bill, .at-kind--guidance, .at-kind--other { background: var(--at-grey-tint); color: var(--at-grey-text); }

/* The older resource cards use the site's light gray, which is 3.5:1 on white; darken it here. */
.at-sec .quick-link-card p { color: var(--at-muted); }

/* ---- find, method ---------------------------------------------------------------------------------------- */
.at-find label { display: block; font-weight: 600; margin-bottom: .35rem; }
.at-find-row { display: flex; flex-wrap: wrap; gap: .5rem; }
.at-find select { min-width: 260px; }
.at-az { margin-top: var(--spacing-lg); font-size: 1rem; color: var(--at-muted); }
.at-azlist { list-style: none; padding: 0; columns: 4 160px; column-gap: 1.5rem; }
.at-azlist li { break-inside: avoid; padding: .15rem 0; }
.at-azlist a { text-decoration: underline; text-underline-offset: 2px; }
.at-method { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: var(--spacing-xl); }
.at-method h3 { margin-top: var(--spacing-md); }
.at-method > div > h3:first-child { margin-top: 0; }
.at-bullets { padding-left: 1.25rem; }
.at-bullets li { margin-bottom: .45rem; }
.at-terms { margin-top: var(--spacing-md); background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: .75rem 1rem; }
.at-terms summary { cursor: pointer; font-weight: 600; color: var(--at-ink); }
.at-terms dl { margin: .75rem 0 0; display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.25rem; font-size: .93rem; }
.at-terms dt { font-weight: 700; }
.at-terms dd { margin: 0; }
.at-links { list-style: none; padding: 0; margin: .75rem 0; }
.at-links li { padding: .25rem 0; font-size: .93rem; word-break: break-word; }
.at-links a, .at-docs a { text-decoration: underline; text-underline-offset: 2px; }
.at-docs { padding-left: 1.2rem; font-size: .93rem; }

/* ---- one state ------------------------------------------------------------------------------------------- */
.at-def { font-size: 1.05rem; color: var(--at-ink); font-weight: 500; max-width: 900px; }
.at-glance { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--spacing-sm); margin-top: var(--spacing-lg); }
.at-glance-card { display: flex; flex-direction: column; gap: .4rem; align-items: flex-start; background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-md); color: var(--color-text); text-decoration: none; box-shadow: var(--shadow-sm); }
.at-glance-card:hover { border-color: var(--color-primary); color: var(--color-text); box-shadow: var(--shadow-md); }
.at-glance-l { font-size: .8rem; text-transform: uppercase; letter-spacing: .04em; font-weight: 700; color: var(--at-muted); }
.at-glance-big { font-size: 1.7rem; font-weight: 700; color: var(--color-primary); line-height: 1.1; }
.at-glance-t { font-size: .92rem; line-height: 1.35; }
.at-group { margin-bottom: var(--spacing-xl); }
.at-group > h3 { font-size: 1.3rem; margin-bottom: .15rem; padding-bottom: .4rem; border-bottom: 2px solid var(--at-teal-tint); }
.at-group > .at-small { margin: .4rem 0 var(--spacing-md); }
.at-q { background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-md) var(--spacing-lg); margin-bottom: var(--spacing-md); scroll-margin-top: 80px; }
.at-q:target { border-color: var(--color-primary); box-shadow: var(--shadow-md); }
.at-q-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .5rem 1rem; margin-bottom: .5rem; }
.at-q-head h4 { font-size: 1.05rem; margin: 0; max-width: 720px; color: var(--at-ink); }
.at-q-chips { display: flex; gap: .4rem; flex-wrap: wrap; }
.at-q-answer { margin-bottom: .5rem; }
.at-where { background: var(--at-shield-tint); border-radius: var(--radius-sm); padding: .6rem .8rem; font-size: .93rem; margin-bottom: .6rem; }
.at-flag { display: inline-block; font-size: .78rem; font-weight: 700; padding: .12rem .55rem; border-radius: 999px; border: 2px solid; cursor: help; }
.at-flag--warn { background: var(--at-orange-tint); border-color: #e67e22; color: var(--at-ink); }
.at-flag--soft { background: #fff; border-color: #b0bec5; color: var(--at-grey-text); }
.at-evidence { margin-top: .4rem; }
.at-evidence summary { cursor: pointer; font-weight: 600; font-size: .92rem; color: var(--color-primary); }
.at-evidence dl { display: grid; grid-template-columns: 8rem 1fr; gap: .5rem 1rem; margin: .75rem 0 0; font-size: .92rem; }
.at-evidence dt { font-weight: 700; color: var(--at-muted); }
.at-evidence dd { margin: 0; word-break: break-word; }
.at-evidence blockquote { position: relative; margin: 0 0 .35rem; padding: .55rem .85rem .55rem 2.4rem; background: var(--color-bg-alt); border-radius: var(--radius-sm); font-style: italic; }
.at-evidence blockquote::before { content: "\201C"; position: absolute; left: .7rem; top: .15rem; font: normal 2rem/1 Georgia, serif; color: var(--color-primary-light); }
.at-ok { font-size: .85rem; color: #0f4a2a; font-weight: 600; }
.at-more { margin: .75rem 0 0; font-size: .9rem; }
.at-more a { text-decoration: underline; }
.at-changes { list-style: none; padding: 0; display: grid; gap: var(--spacing-md); }
.at-change { background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-md) var(--spacing-lg); }
.at-change-head { display: flex; flex-wrap: wrap; gap: .5rem .75rem; align-items: center; margin-bottom: .25rem; }
.at-change-status { font-weight: 600; color: var(--at-muted); font-size: .92rem; margin-bottom: .35rem; }
.at-change p { font-size: .95rem; margin-bottom: .35rem; }
.at-change-src a { font-size: .88rem; text-decoration: underline; }
.at-check { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--spacing-md); margin: var(--spacing-md) 0; }
.at-checkbox { background: #fff; border: 1px solid var(--at-line); border-radius: var(--radius-md); padding: var(--spacing-md) var(--spacing-lg); }
.at-checkbox h3 { font-size: 1.05rem; margin-bottom: .5rem; }
.at-checkbox .at-bullets { margin: 0; }
.at-teaser-note { margin: var(--spacing-sm) 0 0; font-size: .85rem; color: rgba(255,255,255,.85); max-width: 520px; }
.at-pager { display: flex; justify-content: space-between; align-items: center; gap: 1rem; flex-wrap: wrap; }
.at-pager a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.at-pager-hub { text-align: center; }

/* ---- the feature on /guidelines/us ----------------------------------------------------------------------- */
.at-teaser { margin-top: var(--spacing-xl); padding: var(--spacing-xl); border: 1px solid rgba(255,255,255,.28); border-radius: 16px; background: rgba(255,255,255,.07); display: grid; grid-template-columns: 1.15fr .85fr; gap: var(--spacing-xl); align-items: center; text-align: left; }
.at-eyebrow { display: inline-block; margin: 0 0 .5rem; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; background: var(--color-secondary); color: #06242d; padding: .2rem .65rem; border-radius: 999px; }
.at-teaser h2 { font-size: clamp(1.5rem, 3vw, 2rem); color: #fff; margin-bottom: var(--spacing-sm); }
.at-teaser p { color: rgba(255,255,255,.92); }
.at-teaser-stats { list-style: none; padding: 0; margin: 0 0 var(--spacing-md); display: grid; gap: .6rem; }
.at-teaser-stats li { display: grid; grid-template-columns: 6.4rem 1fr; gap: .75rem; align-items: baseline; color: rgba(255,255,255,.92); font-size: .95rem; }
.at-teaser-stats b { font-size: 1.5rem; color: #fff; line-height: 1; white-space: nowrap; }
.at-teaser-cta { display: flex; flex-wrap: wrap; gap: .75rem; margin: 0; }
.at-teaser-map { display: block; color: #fff; text-decoration: none; }
.at-teaser-map:hover { color: #fff; }
.at-teaser-cap { display: block; margin-top: .6rem; text-align: center; font-size: .85rem; opacity: .9; }
.at-map--mini { gap: 3px; max-width: 460px; margin-bottom: 0; }
.at-hero .tone-teal, .at-teaser .tone-teal { --tbd: rgba(255,255,255,.85); }
.at-map--mini .at-tile { border-radius: 4px; border-width: 2px; }
.at-map--mini .at-tile-g, .at-map--mini .at-tile-s { display: none; }
.at-map--mini .at-tile-code { font-size: clamp(.5rem, 1vw, .7rem); }

/* ---- small screens --------------------------------------------------------------------------------------- */
@media (max-width: 900px) {
    .at-teaser { grid-template-columns: 1fr; padding: var(--spacing-lg); }
    .at-map--mini { margin: 0 auto; }
}
@media (max-width: 720px) {
    .at-map { gap: 3px; }
    .at-tile { border-radius: 5px; border-width: 2px; }
    .at-tile-s { display: none; }
    .at-tile-code { font-size: .72rem; }
    .at-tile-g { font-size: .55rem; }
    .at-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
    .at-table, .at-table tbody, .at-table tr, .at-table td, .at-table th { display: block; }
    .at-table { border: 0; background: transparent; }
    .at-table tbody tr { background: #fff !important; border: 1px solid var(--at-line); border-radius: var(--radius-md); margin-bottom: .75rem; padding: .35rem .25rem; box-shadow: var(--shadow-sm); }
    .at-table th, .at-table td { border: 0; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .3rem .6rem; text-align: right; }
    .at-table tbody th { font-size: 1.05rem; border-bottom: 1px solid var(--at-line); padding-bottom: .5rem; margin-bottom: .25rem; text-align: left; }
    .at-table td::before { content: attr(data-label); font-weight: 600; color: var(--at-muted); text-align: left; }
    .at-table tbody th::before { content: none; }
    .at-filters input[type="search"], .at-filters select { flex: 1 1 100%; max-width: none; }
    .at-glance { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .at-glance-card:last-child:nth-child(odd) { grid-column: 1 / -1; }
    .at-evidence dl { grid-template-columns: 1fr; gap: .15rem; }
    .at-evidence dt { margin-top: .5rem; }
    .at-terms dl { grid-template-columns: 1fr; gap: .1rem; }
    .at-terms dd { margin-bottom: .5rem; }
    .at-stat-num { font-size: 2.4rem; }
    .at-pager { justify-content: center; }
}
@media (max-width: 480px) {
    .at-view { font-size: .85rem; padding: .4rem .75rem; }
    .at-map--mini .at-tile-code { display: none; }
    .at-teaser-stats li { grid-template-columns: 5.6rem 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .at-tile, .at-glance-card { transition: none; }
    a.at-tile:hover { transform: none; }
}

/* ---- print: a state page for a binder -------------------------------------------------------------------- */
@media print {
    #orsif-v2-header, #orsif-v2-mobile-menu, #orsif-v2-mobile-backdrop, .join-cta, .main-footer, .at-js-only, .at-hero-cta, .at-pager, .at-showmap, .at-glance, .at-filters { display: none !important; }
    .page-header.at-hero { background: none !important; color: #000; padding: 0 0 .5rem; border-bottom: 2px solid #000; }
    .at-hero h1, .at-lede, .at-meta, .at-crumbs, .at-crumbs a { color: #000; }
    section.at-sec { padding: .75rem 0; background: none !important; }
    .at-q, .at-change, .at-dev, .at-stat { break-inside: avoid; box-shadow: none; }
    .at-evidence a[href^="http"]::after, .at-links a[href^="http"]::after { content: " (" attr(href) ")"; font-size: .75em; word-break: break-all; }
    .at-status { background: none; border: 1px solid #000; }
}
