/* Source experiences: explicit components, shared visual grammar.
   Scope is opt-in. Unrelated workspaces and the other site brand are unaffected. */
html[data-site="ai"] .source-page {
  --source-reading-width: 74ch;
  --source-section-gap: clamp(26px, 3vw, 40px);
  --source-body-size: var(--type-read);
  padding-bottom: 40px;
  min-width: 0;
}
html[data-site="ai"] .source-page :is(section, article, form, nav, aside, .source-reader__main, .source-reader__aside) { min-width: 0; }
html[data-site="ai"] .source-page [id] { scroll-margin-top: 72px; }
html[data-site="ai"] body:has(.source-page) .subnav { height: auto; min-height: 32px; }
html[data-site="ai"] body:has(.source-page) .subnav .wrap { min-height: 32px; padding-top: 6px; padding-bottom: 6px; }
html[data-site="ai"] body:has(.source-page) .subnav-breadcrumb { flex-wrap: wrap; line-height: 1.6; }
html[data-site="ai"] body:has(.source-page) .subnav-breadcrumb > * { flex-shrink: 0; }
html[data-site="ai"] body:has(.source-page) .subnav-breadcrumb .current { flex-shrink: 1; min-width: 0; overflow-wrap: anywhere; }
html[data-site="ai"] .source-header { padding: 28px 0 16px; border-bottom: 1px solid var(--rule); margin-bottom: 18px; }
html[data-site="ai"] .source-header h1 { font-size: var(--type-title); line-height: 1.16; letter-spacing: -.025em; max-width: 34ch; margin: 8px 0 14px; overflow-wrap: anywhere; }
html[data-site="ai"] .source-header .lede { max-width: 78ch; font-size: var(--type-read); line-height: 1.6; }
html[data-site="ai"] .source-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 14px 0; font-size: var(--type-small); line-height: 1.5; }
html[data-site="ai"] .source-facts > * { min-width: 0; }
html[data-site="ai"] .source-meta { font-size: var(--type-small); color: var(--ink-3); line-height: 1.6; overflow-wrap: anywhere; }
html[data-site="ai"] .source-page .source-sections { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 0 0 14px; margin: 0 0 24px; border-bottom: 1px solid var(--rule); font-size: var(--type-small); }
html[data-site="ai"] .source-sections a { text-decoration: underline; text-underline-offset: 4px; padding: 5px 0; }
html[data-site="ai"] .source-search { margin: 0 0 24px; }
html[data-site="ai"] .source-search:has(> .source-field) { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; }
html[data-site="ai"] .source-search > .source-field { max-width: 420px; }
html[data-site="ai"] .source-search > .source-field:has(input[type="search"]) { flex: 2 1 280px; max-width: none; }
html[data-site="ai"] .source-search > :is(.source-filter-disclosure, .source-active-filters, .source-meta) { flex-basis: 100%; }
html[data-site="ai"] .source-results > h2:first-child { margin-bottom: 16px; }
html[data-site="ai"] .source-filter-grid { display: flex; align-items: end; flex-wrap: wrap; gap: 14px; }
html[data-site="ai"] .source-field { display: flex; flex: 1 1 160px; flex-direction: column; gap: 6px; min-width: 0; font-size: var(--type-small); font-weight: 600; color: var(--ink-2); }
html[data-site="ai"] .source-field--search { flex: 2 1 280px; }
html[data-site="ai"] .source-filter-grid > .source-field { max-width: 420px; }
html[data-site="ai"] .source-filter-grid > .source-field--search { max-width: none; }
html[data-site="ai"] .source-results-header + .source-search { margin-top: 20px; }
html[data-site="ai"] .source-search :is(input[type="search"], input[type="text"], input[type="number"], input[type="date"], select) {
  width: 100%; min-width: 0; min-height: 42px; border: 1px solid var(--ink-3); padding: 9px 11px; border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; font-size: var(--type-read); font-weight: 400;
}
html[data-site="ai"] .source-search label { font-size: var(--type-small); }
html[data-site="ai"] .source-filter-actions { display: flex; gap: 10px 16px; flex-wrap: wrap; align-items: center; }
html[data-site="ai"] .source-search :is(.btn, button[type="submit"], button:not([type])) { min-height: 42px; display: inline-flex; align-items: center; justify-content: center; padding: 9px 16px; font-size: var(--type-small); }
html[data-site="ai"] .source-search .btn-primary { background: var(--accent); border-color: var(--accent); color: var(--paper); }
html[data-site="ai"] .source-search .btn-primary:hover { background: var(--accent-hover); }
html[data-site="ai"] .source-search button:is([type="submit"], :not([type])) { background: var(--accent); border-color: var(--accent); color: var(--paper); }
html[data-site="ai"] .source-search button:is([type="submit"], :not([type])):hover { background: var(--accent-hover); }
html[data-site="ai"] .source-active-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 18px; margin-top: 12px; font-size: var(--type-small); color: var(--ink-3); }
html[data-site="ai"] .source-filter-disclosure { margin: 14px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); padding: 12px 0; }
html[data-site="ai"] .source-filter-disclosure > summary { cursor: pointer; font-weight: 600; font-size: var(--type-read); }
html[data-site="ai"] .source-filter-disclosure[open] > summary { margin-bottom: 14px; }
html[data-site="ai"] .source-results { margin: 24px 0 var(--source-section-gap); }
html[data-site="ai"] .source-result-list { margin-bottom: 24px; }
html[data-site="ai"] .source-results-header { display: flex; justify-content: space-between; align-items: baseline; gap: 10px 20px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 2px solid var(--ink); margin-bottom: 0; }
html[data-site="ai"] .source-results-header h2 { font-size: var(--type-read); }
html[data-site="ai"] .source-results-header .meta { font-size: var(--type-small); }
html[data-site="ai"] .source-result { display: block; padding: 20px 0; border-bottom: 1px solid var(--rule); min-width: 0; color: var(--ink); }
html[data-site="ai"] .source-result-title { display: block; font-size: var(--type-read); font-weight: 600; line-height: 1.4; margin: 0 0 8px; overflow-wrap: anywhere; }
html[data-site="ai"] .source-result-title a { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
html[data-site="ai"] .source-result-meta { display: flex; flex-wrap: wrap; gap: 5px 18px; color: var(--ink-3); font-size: var(--type-small); line-height: 1.6; margin: 7px 0; overflow-wrap: anywhere; }
html[data-site="ai"] .source-page code { overflow-wrap: anywhere; word-break: break-word; }
html[data-site="ai"] .source-result-summary { max-width: 82ch; font-size: var(--type-read); line-height: 1.65; margin: 8px 0; }
html[data-site="ai"] .source-result-facts { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 8px 0 12px; font-size: var(--type-small); }
html[data-site="ai"] .source-result-facts dt { color: var(--ink-3); }
html[data-site="ai"] .source-result-facts dd { margin: 2px 0 0; }
html[data-site="ai"] .source-result-notes { max-width: 82ch; font-size: var(--type-small); line-height: 1.65; margin: 12px 0; }
html[data-site="ai"] .source-page .block.source-taxonomy { padding: 12px 0; }
html[data-site="ai"] .source-page .block.source-taxonomy--leading { padding-top: 0; border-bottom: 0; }
html[data-site="ai"] .source-taxonomy summary {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 12px;
  color: var(--ink-2);
  cursor: pointer;
  font-size: var(--type-read);
  list-style: none;
}
html[data-site="ai"] .source-taxonomy summary::-webkit-details-marker { display: none; }
html[data-site="ai"] .source-taxonomy summary::before { content: "▸"; color: var(--ink-3); flex: 0 0 auto; transition: transform .15s ease; }
html[data-site="ai"] .source-taxonomy details[open] > summary::before { transform: rotate(90deg); }
html[data-site="ai"] .source-taxonomy summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
html[data-site="ai"] .source-taxonomy__title { margin: 0; color: var(--ink); font-size: var(--type-read); font-weight: 600; line-height: inherit; }
html[data-site="ai"] .source-taxonomy__count,
html[data-site="ai"] .source-taxonomy__note { color: var(--ink-3); font-size: var(--type-small); }
html[data-site="ai"] .source-taxonomy__note { margin: 10px 0 6px; }
html[data-site="ai"] .source-taxonomy__group { margin-top: 12px; }
html[data-site="ai"] .source-taxonomy__group h3 { margin: 0 0 4px; color: var(--ink-3); font-size: var(--type-small); font-weight: 600; text-transform: none; }
html[data-site="ai"] .source-taxonomy__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}
html[data-site="ai"] .source-taxonomy__item {
  min-width: 0;
  padding: 5px 0;
  border-bottom: 1px solid var(--rule);
  color: var(--ink-3);
  font-size: var(--type-small);
  font-weight: 400;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
html[data-site="ai"] .source-taxonomy__item a { text-decoration: underline; text-underline-offset: 2px; }
html[data-site="ai"] .source-excerpt { margin: 12px 0; max-width: 82ch; }
html[data-site="ai"] .source-excerpt summary { cursor: pointer; line-height: 1.65; }
html[data-site="ai"] .source-facet-list { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 10px 0 18px; padding: 0; list-style: none; font-size: var(--type-small); }
html[data-site="ai"] .source-page :is(.source-table-scroll, .table-scroll) { max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
html[data-site="ai"] .source-table { width: 100%; border-collapse: collapse; font-size: var(--type-small); line-height: 1.55; background: var(--paper); }
html[data-site="ai"] .source-table th { text-align: left; font-size: var(--type-small); line-height: 1.5; font-weight: 600; color: var(--ink-3); padding: 12px; border-bottom: 1px solid var(--rule); }
html[data-site="ai"] .source-table thead th { border-top: 2px solid var(--ink); }
html[data-site="ai"] .source-table tbody th { font-size: var(--type-small); color: var(--ink); vertical-align: top; padding: 13px 12px; }
html[data-site="ai"] .source-table td { padding: 13px 12px; vertical-align: top; border-bottom: 1px solid var(--rule); }
html[data-site="ai"] .source-table :is(th, td).num { text-align: right; font-variant-numeric: tabular-nums; }
html[data-site="ai"] .source-table td a { text-decoration: underline; text-underline-offset: 3px; }
html[data-site="ai"] .source-table caption { text-align: left; color: var(--ink-3); font-size: var(--type-small); padding: 0 0 10px; }
html[data-site="ai"] .source-table-note { color: var(--ink-3); font-size: var(--type-small); margin: 8px 0 14px; }
html[data-site="ai"] .source-hmip-register { table-layout: fixed; }
html[data-site="ai"] .source-hmip-register .hmip-col-report { width: 30%; }
html[data-site="ai"] .source-hmip-register .hmip-col-date { width: 12%; }
html[data-site="ai"] .source-hmip-register .hmip-col-kind { width: 18%; }
html[data-site="ai"] .source-hmip-register .hmip-col-assessment { width: 40%; }
html[data-site="ai"] .source-hmip-register tbody th { overflow-wrap: anywhere; }
html[data-site="ai"] .source-hmip-register tbody th > .source-meta,
html[data-site="ai"] .hmip-report-date > * { display: block; }
html[data-site="ai"] .hmip-report-date time { margin-top: 2px; white-space: nowrap; }
html[data-site="ai"] .hmip-report-kind { display: inline-block; font-size: var(--type-small); line-height: 1.35; }
html[data-site="ai"] .hmip-assessment-note { color: var(--ink-3); font-size: var(--type-small); line-height: 1.5; }
html[data-site="ai"] .hmip-score-guide { margin: 10px 0 14px; }
html[data-site="ai"] .hmip-score-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 0;
}
html[data-site="ai"] .hmip-score-grid > div { min-width: 0; }
html[data-site="ai"] .hmip-score-grid dt {
  min-height: 2.7em;
  color: var(--ink-3);
  font-size: var(--type-small);
  font-weight: 600;
  line-height: 1.35;
}
html[data-site="ai"] .hmip-score-grid dd {
  display: flex;
  align-items: center;
  gap: 5px;
  margin: 4px 0 0;
  font-size: var(--type-small);
  line-height: 1.3;
}
html[data-site="ai"] .hmip-score-grid .grade-dot { flex: 0 0 auto; }
html[data-site="ai"] .source-committee-remit { display: grid; gap: 5px; min-width: 0; }
html[data-site="ai"] .source-committee-remit-kicker { color: var(--ink-3); font-size: var(--type-small); font-weight: 700; line-height: 1.4; text-transform: none; }
html[data-site="ai"] .source-committee-remit-topics { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
html[data-site="ai"] .source-committee-remit-topics li { min-width: 0; line-height: 1.4; }
html[data-site="ai"] .source-committee-remit-topics a { font-weight: 500; overflow-wrap: anywhere; }
html[data-site="ai"] .source-committee-remit-state { display: inline-block; margin-left: 6px; padding: 1px 5px; background: var(--pos-bg); color: var(--pos); font-size: var(--type-small); font-weight: 700; line-height: 1.4; text-transform: none; vertical-align: 1px; }
html[data-site="ai"] .source-reader { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 270px); gap: clamp(28px, 4vw, 56px); align-items: start; margin: 26px 0; }
html[data-site="ai"] .source-reader:not(:has(> .source-reader__aside)) { grid-template-columns: minmax(0, 1fr); }
html[data-site="ai"] .source-reader__main { max-width: var(--source-reading-width); width: 100%; }
html[data-site="ai"] .source-reader__main > section + section { margin-top: var(--source-section-gap); }
html[data-site="ai"] .source-reader__aside { border-top: 2px solid var(--ink); padding-top: 15px; font-size: var(--type-small); line-height: 1.6; overflow-wrap: anywhere; }
html[data-site="ai"] .source-reader__aside h2 { font-size: var(--type-read); margin-bottom: 12px; }
html[data-site="ai"] .source-reader__aside :is(table, td, th) { font-size: var(--type-small); }
html[data-site="ai"] .source-reader__aside .source-sections { display: flex; flex-direction: column; gap: 3px; }
html[data-site="ai"] .source-prose { max-width: var(--source-reading-width); font-size: var(--source-body-size); line-height: 1.75; overflow-wrap: anywhere; }
html[data-site="ai"] .source-prose :is(p, li) { font-size: inherit; line-height: inherit; }
html[data-site="ai"] .source-prose p { margin-bottom: 16px; }
html[data-site="ai"] .source-prose :is(ul, ol) { padding-left: 24px; }
html[data-site="ai"] .source-recommendation { padding: 22px 0; border-bottom: 1px solid var(--rule); max-width: var(--source-reading-width); overflow-wrap: anywhere; }
html[data-site="ai"] .source-recommendation:first-child { padding-top: 0; }
html[data-site="ai"] .source-recommendation h3 { font-size: var(--type-read); line-height: 1.5; margin-bottom: 10px; }
html[data-site="ai"] .source-recommendation__reference { color: var(--ink-3); font-size: var(--type-small); font-style: italic; line-height: 1.45; margin: -6px 0 8px; }
html[data-site="ai"] .source-recommendation > .source-meta { display: block; margin-bottom: 10px; }
html[data-site="ai"] .source-evidence { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--rule); }
html[data-site="ai"] .source-evidence-label { display: block; color: var(--ink-3); font-size: var(--type-small); font-weight: 600; text-transform: none; margin-bottom: 8px; }
/* Response metadata must not determine the column occupied by reading text. */
html[data-site="ai"] .source-page .pfd-response > header { display: flex; flex-wrap: wrap; gap: 12px 16px; padding: 16px; }
html[data-site="ai"] .source-page .pfd-response > header > :first-child { flex: 1 1 240px; min-width: 0; overflow-wrap: anywhere; }
html[data-site="ai"] .source-page .pfd-response-meta { flex-wrap: wrap; flex-shrink: 1; min-width: 0; }
html[data-site="ai"] .source-page h3.pfd-response-org { font-size: var(--type-read); line-height: 1.5; margin: 0; }
html[data-site="ai"] .source-page .pfd-response-body { display: block; padding: 16px; }
html[data-site="ai"] .source-page .pfd-response-stance { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 12px; margin-bottom: 16px; }
html[data-site="ai"] .source-page .pfd-response-summary p { margin: 0; font-size: var(--source-body-size); line-height: 1.65; }
html[data-site="ai"] .source-page blockquote.source-prose { margin: 12px 0; padding: 0 0 0 20px; border-left: 2px solid var(--rule); }
html[data-site="ai"] .source-page .badge { white-space: normal; max-width: 100%; overflow-wrap: anywhere; }
html[data-site="ai"] .source-page .source-table .badge { overflow-wrap: normal; }
html[data-site="ai"] .source-correspondence-table { min-width: 680px; table-layout: fixed; }
html[data-site="ai"] .source-correspondence-table col.source-correspondence-published { width: 118px; }
html[data-site="ai"] .source-correspondence-table col.source-correspondence-direction { width: 142px; }
html[data-site="ai"] .source-correspondence-table .source-correspondence-date { white-space: nowrap; font-variant-numeric: tabular-nums; }
html[data-site="ai"] .source-correspondence-table .badge { white-space: nowrap; }
html[data-site="ai"] .source-correspondence-link { font-weight: 500; line-height: 1.5; }
html[data-site="ai"] .source-inquiry-register .badge { white-space: nowrap; }
html[data-site="ai"] .source-empty { padding: 24px 0; max-width: 76ch; }
html[data-site="ai"] .source-empty h2, html[data-site="ai"] .source-empty h3 { font-size: var(--type-read); margin: 0 0 10px; }
html[data-site="ai"] .source-empty p { color: var(--ink-3); font-size: var(--type-read); line-height: 1.65; }
html[data-site="ai"] .source-pagination { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: var(--type-small); padding: 20px 0; border-bottom: 1px solid var(--rule); }
html[data-site="ai"] .source-pagination a { text-decoration: underline; text-underline-offset: 4px; padding: 7px 0; }
html[data-site="ai"] .source-coverage { margin: 14px 0 22px; padding: 12px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); font-size: var(--type-small); line-height: 1.6; color: var(--ink-3); }
html[data-site="ai"] .source-coverage p { max-width: 92ch; }
html[data-site="ai"] .source-coverage > details > summary { cursor: pointer; color: var(--accent); padding: 4px 0; }
html[data-site="ai"] .source-coverage details[open] > summary { margin-bottom: 10px; }
html[data-site="ai"] .source-coverage dl { display: grid; grid-template-columns: minmax(120px, 190px) minmax(0, 1fr); gap: 8px 20px; margin: 0 0 12px; }
html[data-site="ai"] .source-coverage dt { font-weight: 600; }
html[data-site="ai"] .source-coverage dd { margin: 0; }
html[data-site="ai"] .source-overview { margin: var(--source-section-gap) 0; }
html[data-site="ai"] .source-overview .chart-wrap { min-width: 0; }
html[data-site="ai"] .source-chart-data { font-size: var(--type-small); margin: 16px 0; }
html[data-site="ai"] .source-chart-data > summary { cursor: pointer; color: var(--accent); padding: 5px 0; }
html[data-site="ai"] .source-chart-data[open] > summary { margin-bottom: 12px; }
html[data-site="ai"] .source-table--compact th[scope="row"] { overflow-wrap: anywhere; }
html[data-site="ai"] .source-table td:has(> .source-chart-data) { min-width: 240px; }
html[data-site="ai"] .source-chart-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
html[data-site="ai"] .source-matrix th, html[data-site="ai"] .source-matrix td { min-width: 108px; }
html[data-site="ai"] .source-matrix :is(th, td):first-child { position: sticky; left: 0; min-width: 180px; max-width: 230px; background: var(--paper); z-index: 1; border-right: 1px solid var(--rule); }
html[data-site="ai"] .source-directory-page .source-sections { padding-top: 18px; }
html[data-site="ai"] .source-directory { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: var(--type-small); line-height: 1.5; }
html[data-site="ai"] .source-directory :is(th, td) { text-align: left; padding: 13px 12px; border-bottom: 1px solid var(--rule); vertical-align: top; overflow-wrap: anywhere; }
html[data-site="ai"] .source-directory th { font-size: var(--type-small); font-weight: 600; color: var(--ink-3); border-top: 2px solid var(--ink); }
html[data-site="ai"] .source-directory .src-name a { display: block; text-decoration: underline; text-underline-offset: 3px; font-size: var(--type-read); }
html[data-site="ai"] .source-directory .src-row:hover { background: var(--row-hover); }
html[data-site="ai"] .source-directory :is(.src-detail-meta, .src-content) { display: block; margin-top: 5px; color: var(--ink-3); font-size: var(--type-small); }
html[data-site="ai"] .source-directory .src-detail-meta > summary { cursor: pointer; color: var(--accent); padding: 5px 0; }
html[data-site="ai"] .source-directory .src-detail-meta ul { padding-left: 18px; margin: 6px 0; }
html[data-site="ai"] .source-directory .src-detail-meta li + li { margin-top: 7px; }
html[data-site="ai"] .source-directory .src-cadence { color: var(--ink-3); }
html[data-site="ai"] .source-directory .src-volume { text-align: right; font-variant-numeric: tabular-nums; }
html[data-site="ai"] .source-directory .src-arrow { padding-inline: 0; color: var(--accent); }
html[data-site="ai"] .src-mobile-label { display: none; }

/* Source pages are working interfaces. Keep desktop headers and result lists
   compact enough that users can reach the records within the first viewport. */
@media (min-width: 1001px) {
  html[data-site="ai"] .source-page {
    --source-section-gap: clamp(22px, 2vw, 30px);
    padding-bottom: 32px;
  }
  html[data-site="ai"] .source-header { padding: 18px 0 14px; margin-bottom: 16px; }
  html[data-site="ai"] .source-header .tag { margin-bottom: 4px; }
  html[data-site="ai"] .source-header h1 { font-size: var(--type-title); line-height: 1.14; margin: 3px 0 7px; }
  html[data-site="ai"] .source-header > .source-meta { margin: 0 0 7px; line-height: 1.45; }
  html[data-site="ai"] .source-header .lede { font-size: var(--type-read); line-height: 1.5; }
  html[data-site="ai"] .source-facts { gap: 4px 20px; margin: 8px 0 0; line-height: 1.4; }
  html[data-site="ai"] .source-page .block { padding: 18px 0; }
  html[data-site="ai"] .source-page .block-head { gap: 10px; margin-bottom: 10px; }
  html[data-site="ai"] .source-page .tabs { gap: 6px; padding: 8px 0; }
  html[data-site="ai"] .source-page .source-sections { gap: 5px 20px; padding-bottom: 10px; margin-bottom: 16px; }
  html[data-site="ai"] .source-search,
  html[data-site="ai"] .source-result-list { margin-bottom: 16px; }
  html[data-site="ai"] .source-search:has(> .source-field),
  html[data-site="ai"] .source-filter-grid { gap: 10px; }
  html[data-site="ai"] .source-search :is(input[type="search"], input[type="text"], input[type="number"], input[type="date"], select) {
    min-height: 38px;
    padding: 7px 10px;
    font-size: var(--type-small);
  }
  html[data-site="ai"] .source-search :is(.btn, button[type="submit"], button:not([type])) { min-height: 38px; padding: 7px 14px; }
  html[data-site="ai"] .source-filter-disclosure { margin: 10px 0; padding: 9px 0; }
  html[data-site="ai"] .source-facet-list { margin: 8px 0 12px; }
  html[data-site="ai"] .source-results { margin: 12px 0 var(--source-section-gap); }
  html[data-site="ai"] .block.source-results { padding: 12px 0 20px; }
  html[data-site="ai"] .source-results-header { padding-bottom: 8px; }
  html[data-site="ai"] .source-results-header h2 { font-size: var(--type-read); }
  html[data-site="ai"] .source-result { padding: 14px 0; }
  html[data-site="ai"] .source-result-title { font-size: var(--type-read); line-height: 1.35; margin-bottom: 4px; }
  html[data-site="ai"] .source-result-meta { gap: 3px 16px; margin: 3px 0; line-height: 1.5; }
  html[data-site="ai"] .source-result-meta:empty { display: none; }
  html[data-site="ai"] .source-result-summary { line-height: 1.5; margin: 4px 0; }
  html[data-site="ai"] .source-result-facts { gap: 6px 20px; margin: 5px 0 8px; }
}

@media (max-width: 1000px) {
  html[data-site="ai"] body:has(.source-page) .nav-burger { display: flex; }
  html[data-site="ai"] body:has(.source-page) .navbar ul,
  html[data-site="ai"] body:has(.source-page) .navbar-search-form { display: none; }
  html[data-site="ai"] body:has(.source-page) .navbar ul.nav-open { display: flex; flex-direction: column; position: absolute; top: 42px; left: 0; right: 0; height: auto; background: #0d1018; border-bottom: 1px solid #000; z-index: 300; padding: 6px 0; }
  html[data-site="ai"] body:has(.source-page) .navbar ul.nav-open li { display: block; width: 100%; }
  html[data-site="ai"] body:has(.source-page) .navbar ul.nav-open a { height: auto; padding: 11px 20px; border-bottom: none; font-size: 14px; display: block; }
  html[data-site="ai"] body:has(.source-page) .navbar ul.nav-open a:hover { background: #181d26; }
  html[data-site="ai"] body:has(.source-page) :is(.navbar-right, .ai-user-menu-wrap) { min-width: 0; }
  html[data-site="ai"] body:has(.source-page) .ai-user-menu-wrap > button { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}

@media (max-width: 800px) {
  html[data-site="ai"] body:has(.source-page) .navbar .wrap,
  html[data-site="ai"] body:has(.source-page) .brand { min-height: 44px; height: 44px; }
  html[data-site="ai"] body:has(.source-page) .nav-burger { width: 44px; height: 44px; }
  html[data-site="ai"] body:has(.source-page) .navbar-right > a { min-height: 44px; display: inline-flex; align-items: center; }
  html[data-site="ai"] .source-header { padding-top: 22px; }
  html[data-site="ai"] .source-header h1 { max-width: 100%; }
  html[data-site="ai"] .source-reader { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  html[data-site="ai"] .source-reader__main { max-width: 100%; }
  html[data-site="ai"] .source-filter-grid { align-items: stretch; }
  html[data-site="ai"] .source-field { flex-basis: 220px; }
  html[data-site="ai"] .source-search :is(input[type="search"], input[type="text"], input[type="number"], input[type="date"], select) { min-height: 44px; font-size: var(--type-read); }
  html[data-site="ai"] .source-search :is(.btn, button[type="submit"], button:not([type])) { min-height: 44px; }
  html[data-site="ai"] .source-page .tabs .chip,
  html[data-site="ai"] .source-page .source-sections a { min-height: 44px; display: inline-flex; align-items: center; }
  html[data-site="ai"] .source-page summary { min-height: 44px; box-sizing: border-box; padding-block: 10px; }
  html[data-site="ai"] .source-taxonomy__list { grid-template-columns: minmax(0, 1fr); }
  html[data-site="ai"] .source-chart-data > summary { min-height: 44px; box-sizing: border-box; padding: 11px 0; }
  html[data-site="ai"] .source-recommendation { padding: 20px 0; }
  html[data-site="ai"] .source-result { padding: 18px 0; }
  html[data-site="ai"] .source-result-meta { gap: 4px 14px; }
  html[data-site="ai"] .source-page .source-table { min-width: 560px; }
  /* A two-column table (a label and one figure) fits a phone without scrolling. */
  html[data-site="ai"] .source-page .source-table--narrow { min-width: 0; }
  html[data-site="ai"] .source-page .source-hmip-register,
  html[data-site="ai"] .source-hmip-register tbody,
  html[data-site="ai"] .source-hmip-register tr,
  html[data-site="ai"] .source-hmip-register :is(th, td) { display: block; width: 100%; min-width: 0; }
  html[data-site="ai"] .source-hmip-register colgroup { display: none; }
  html[data-site="ai"] .source-hmip-register thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  html[data-site="ai"] .source-hmip-register tr { box-sizing: border-box; padding: 18px 0; border-bottom: 1px solid var(--rule); }
  html[data-site="ai"] .source-hmip-register :is(th, td) { box-sizing: border-box; padding: 0; border: 0; text-align: left; }
  html[data-site="ai"] .source-hmip-register :is(th, td) + td { margin-top: 12px; }
  html[data-site="ai"] .source-hmip-register :is(th, td)::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 4px;
    color: var(--ink-3);
    font-size: var(--type-small);
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
  }
  html[data-site="ai"] .source-hmip-register th[scope="row"] { font-size: var(--type-read); }
  html[data-site="ai"] .hmip-score-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; max-width: 520px; }
  html[data-site="ai"] .hmip-score-grid dt { min-height: 0; }
  html[data-site="ai"] .hmip-score-grid dd { font-size: var(--type-small); }
  /* These committee tables already become labelled cards at this breakpoint. */
  html[data-site="ai"] .source-page :is(.committee-list-table, .committee-search-table, .committee-work-table) { min-width: 0; }
  html[data-site="ai"] .source-page .source-table--compact { min-width: 0; }
  html[data-site="ai"] .source-page .source-table--compact :is(th, td) { padding: 10px 8px; }
  html[data-site="ai"] .source-page .source-survey-series :is(th, td) { padding-inline: 5px; }
  html[data-site="ai"] .source-page .source-survey-series tbody th { white-space: nowrap; }
  html[data-site="ai"] .source-page .source-inquiry-register,
  html[data-site="ai"] .source-page .source-inquiry-register tbody { display: block; min-width: 0; width: 100%; }
  html[data-site="ai"] .source-inquiry-register thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
  html[data-site="ai"] .source-inquiry-register tr { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 10px; padding: 18px 0; border-bottom: 1px solid var(--rule); }
  html[data-site="ai"] .source-inquiry-register td { display: block; min-width: 0; padding: 0; border: 0; text-align: left; overflow-wrap: anywhere; }
  html[data-site="ai"] .source-inquiry-register td::before { content: attr(data-label); display: block; margin-bottom: 4px; color: var(--ink-3); font-size: var(--type-small); font-weight: 600; line-height: 1.25; text-transform: none; }
  html[data-site="ai"] .source-inquiry-register td:nth-child(1),
  html[data-site="ai"] .source-inquiry-register td:nth-child(2),
  html[data-site="ai"] .source-inquiry-register td:nth-child(6) { grid-column: 1 / -1; }
  html[data-site="ai"] .source-inquiry-register td:nth-child(3),
  html[data-site="ai"] .source-inquiry-register td:nth-child(4),
  html[data-site="ai"] .source-inquiry-register td:nth-child(5) { grid-column: span 2; }
  html[data-site="ai"] .source-inquiry-register td:nth-child(7) { grid-column: 1 / -1; }
  html[data-site="ai"] .source-inquiry-register .minibar-wrap { max-width: 260px; }
  html[data-site="ai"] .committee-list-table td.source-committee-remit-cell { display: block; text-align: left; }
  html[data-site="ai"] .committee-list-table td.source-committee-remit-cell::before { display: block; margin-bottom: 6px; }
  html[data-site="ai"] .committee-list-table .source-committee-remit { width: 100%; text-align: left; }
  html[data-site="ai"] .committee-list-table .source-committee-remit-topics { justify-items: start; }
  html[data-site="ai"] .source-page .source-sections { gap: 6px 18px; }
  html[data-site="ai"] .source-coverage dl { grid-template-columns: minmax(0, 1fr); gap: 2px; }
  html[data-site="ai"] .source-coverage dd { margin-bottom: 8px; }
  html[data-site="ai"] .source-chart-grid { grid-template-columns: minmax(0, 1fr); }
  html[data-site="ai"] .source-table .minibar { display: none; }
  html[data-site="ai"] .source-directory, html[data-site="ai"] .source-directory :is(tbody, tr, td) { display: block; width: 100%; }
  html[data-site="ai"] .source-directory colgroup { display: none; }
  html[data-site="ai"] .source-directory thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  html[data-site="ai"] .source-directory tr { padding: 17px 0; border-bottom: 1px solid var(--rule); }
  html[data-site="ai"] .source-directory td { border: 0; padding: 0; }
  html[data-site="ai"] .source-directory .src-name { margin-bottom: 8px; }
  html[data-site="ai"] .source-directory .src-name a { font-size: var(--type-read); padding: 4px 0; }
  html[data-site="ai"] .source-directory .src-desc { font-size: var(--type-small); line-height: 1.6; }
  html[data-site="ai"] .source-directory :is(.src-volume, .src-cadence) { margin-top: 10px; text-align: left; font-size: var(--type-small); }
  html[data-site="ai"] .source-directory .src-mobile-label { display: inline; font-weight: 600; margin-right: 9px; }
  html[data-site="ai"] .source-directory .src-arrow { display: none; }
}

html[data-site="ai"] .source-page--reports .badge.amber { color: #76560e; }

@media print {
  html[data-site="ai"] .source-page :is(.source-search, .source-pagination, .source-sections) { display: none; }
  html[data-site="ai"] .source-reader { display: block; }
  html[data-site="ai"] .source-prose { max-width: none; font-size: 11pt; }
  html[data-site="ai"] .source-page a { color: inherit; }
  html[data-site="ai"] .source-recommendation { break-inside: avoid; }
  html[data-site="ai"] .source-taxonomy details:not([open]) > :not(summary) { display: block; }
  html[data-site="ai"] .source-taxonomy summary::before { display: none; }
}

/* --- Shared page components (Oct 2026) -------------------------------
   One pattern for every source page; see
   docs/design/ai-page-consistency-review-2026-10.md. Same look as the agreed
   inquiry page list (templates_ai/tracker/inquiry_detail.html). */

/* Links to the original documents, under the header. External links only,
   marked with an arrow in the markup. */
html[data-site="ai"] .source-links { display: flex; flex-wrap: wrap; gap: 6px 20px; margin: 12px 0 0; font-size: var(--type-small); line-height: 1.5; }
html[data-site="ai"] .source-links a { text-decoration: underline; text-underline-offset: 3px; }

/* A plain note about the record (no box). */
html[data-site="ai"] .source-note { font-size: var(--type-small); color: var(--ink-3); line-height: 1.55; margin: 0 0 16px; max-width: 75ch; }

/* One item in a list of the source's own items (a recommendation, a finding).
   Not boxed: items are divided by a rule. Label, then the text it labels. */
html[data-site="ai"] .source-item { padding: 20px 0; border-bottom: 1px solid var(--rule); }
html[data-site="ai"] .source-item:first-child { padding-top: 8px; }
html[data-site="ai"] .source-item__title { font-size: var(--type-read); font-weight: 600; line-height: 1.4; margin: 0 0 4px; }
html[data-site="ai"] .source-item__title a { color: var(--ink); text-decoration: none; }
html[data-site="ai"] .source-item__title a:hover { text-decoration: underline; }
html[data-site="ai"] .source-page .source-item__status,
html[data-site="ai"] .source-page .source-item__meta { font-size: var(--type-small); color: var(--ink-3); line-height: 1.5; margin: 0; }
html[data-site="ai"] .source-page .source-item__label { display: block; font-size: var(--type-small); color: var(--ink-3); line-height: 1.4; margin: 16px 0 4px; }
html[data-site="ai"] .source-page .source-item__text { font-size: var(--type-read); line-height: 1.6; color: var(--ink); max-width: 75ch; margin: 0; }
html[data-site="ai"] .source-page .source-item__text :is(p, ul, ol) { margin: 0 0 10px; }
html[data-site="ai"] .source-page .source-item__text :is(p, ul, ol):last-child { margin-bottom: 0; }
html[data-site="ai"] .source-page .source-item__foot { font-size: var(--type-small); color: var(--ink-3); line-height: 1.5; margin: 16px 0 0; }

/* Response status as coloured text, not a badge. */
html[data-site="ai"] .source-status--accepted { color: var(--pos); font-weight: 600; }
html[data-site="ai"] .source-status--partial { color: var(--warn); font-weight: 600; }
html[data-site="ai"] .source-status--rejected { color: var(--neg); font-weight: 600; }
html[data-site="ai"] .source-status--pending { color: var(--ink-3); font-weight: 600; }

/* Long text clamped to four lines; source-tabs.js adds "Show more" only
   when the text really overflows. Without JavaScript the full text shows. */
html[data-site="ai"].source-js .source-clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
html[data-site="ai"].source-js .source-clamp.open { display: block; }
html[data-site="ai"] .source-more-btn { background: none; border: 0; padding: 4px 0 0; color: var(--accent); font: inherit; font-size: var(--type-small); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }

/* Section heading pattern: heading, count on the right, rule underneath. */
html[data-site="ai"] .source-page .source-section { margin: 32px 0 0; }
html[data-site="ai"] .source-page .source-section > h2 { font-size: var(--type-read); font-weight: 600; margin: 0; padding: 0 0 8px; border-bottom: 1px solid var(--ink); display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
html[data-site="ai"] .source-page .source-section > h2 .count { font-size: var(--type-small); font-weight: 400; color: var(--ink-3); }
html[data-site="ai"] .source-page .source-section > .source-note:first-of-type { margin-top: 12px; }
html[data-site="ai"] .source-header .source-note { margin: 12px 0 0; }
html[data-site="ai"] .source-note--list { margin: 12px 0 0; }
html[data-site="ai"] .source-page .source-reader__main > .source-section:first-child { margin-top: 0; }
@media print {
  html[data-site="ai"].source-js .source-clamp { display: block; overflow: visible; -webkit-line-clamp: none; }
  html[data-site="ai"] .source-more-btn { display: none; }
}

/* Touch targets on phones: every link or button a reader taps is at least
   24px tall (WCAG 2.2 target size), and controls are 44px. */
@media (max-width: 760px) {
  html[data-site="ai"] .source-page :is(.source-item__title a, .source-result-title a) { display: inline-block; padding: 4px 0; }
  html[data-site="ai"] .source-page .source-links a { display: inline-block; padding: 8px 0; }
  html[data-site="ai"] .source-page .source-links { gap: 0 20px; }
  html[data-site="ai"] .source-page :is(.source-more-btn, .review-filter button) { min-height: 44px; display: inline-flex; align-items: center; }
  html[data-site="ai"] .source-page :is(.source-item__meta a, .source-item__status a, .source-facts a, .source-item__foot a, .source-note a, .pfd-response-meta a, .keyfacts a) { display: inline-block; padding: 4px 0; }
}

/* Page tabs (static/ai/source-tabs.js). Underlined text, no boxes, same as
   the inquiry page. Without JavaScript every panel shows in order. */
html[data-site="ai"] nav.source-tabs { display: flex; flex-wrap: wrap; gap: 0 24px; border-bottom: 1px solid var(--rule); margin: 0 0 20px; font-size: var(--type-small); }
html[data-site="ai"] nav.source-tabs a { padding: 10px 0; margin-bottom: -1px; color: var(--ink-2); text-decoration: none; border-bottom: 3px solid transparent; }
html[data-site="ai"] nav.source-tabs a:hover { color: var(--ink); }
html[data-site="ai"] nav.source-tabs a.active { color: var(--ink); font-weight: 600; border-bottom-color: var(--ink); }
html[data-site="ai"].source-tabs-on .source-panel { min-height: 70vh; }
html[data-site="ai"] .source-panel > .source-section:first-child { margin-top: 0; }
/* Overview: short previews of each tab. */
html[data-site="ai"] .source-preview { margin: 0 0 28px; }
html[data-site="ai"] .source-preview > h2 { font-size: var(--type-read); font-weight: 600; margin: 0 0 8px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); }
html[data-site="ai"] .source-preview ul { list-style: none; margin: 0; padding: 0; }
html[data-site="ai"] .source-preview li { padding: 8px 0; border-bottom: 1px solid var(--rule-2); font-size: var(--type-read); line-height: 1.5; }
html[data-site="ai"] .source-preview li .source-item__meta { display: block; }
html[data-site="ai"] .source-preview .source-preview__more { font-size: var(--type-small); margin: 8px 0 0; }
html[data-site="ai"] .source-stands p { font-size: var(--type-read); line-height: 1.6; margin: 0 0 8px; max-width: 75ch; }
@media (max-width: 760px) {
  html[data-site="ai"] nav.source-tabs { gap: 0 18px; }
  html[data-site="ai"] nav.source-tabs a { padding: 12px 0; }
}
html[data-site="ai"] .source-stands p.source-note { font-size: var(--type-small); line-height: 1.55; }

/* One item of a source's own words on its detail page, boxed: the same box
   as the agreed recommendation page (.rec-quote). Every item of that kind
   on a detail page is boxed; lists are not. */
html[data-site="ai"] .source-quote { background: var(--paper); border: 1px solid var(--rule); padding: 14px 16px; margin: 0 0 16px; max-width: 80ch; }
html[data-site="ai"] .source-quote > .source-item__label { margin-top: 0; }
html[data-site="ai"] .source-quote__cite { font-size: var(--type-small); color: var(--ink-3); line-height: 1.5; margin: 12px 0 0; padding-top: 10px; border-top: 1px solid var(--rule-2); }
html[data-site="ai"] .source-pager { display: flex; justify-content: space-between; gap: 12px; margin: 32px 0 0; padding-top: 12px; border-top: 1px solid var(--rule); font-size: var(--type-small); }
html[data-site="ai"] .source-pager a { display: inline-block; padding: 8px 0; }

/* Overview pattern of the agreed inquiry page (templates_ai/tracker/
   inquiry_detail.html, owner 16 Oct 2026), shared so other pages with an
   Overview tab look the same: "Where it stands" lines, the record at a
   glance in two columns, then a grid of short previews. Values copied from
   that page unchanged. */
html[data-site="ai"] .inq-stands__lines p { font-size: var(--type-read); line-height: 1.6; margin: 0 0 6px; max-width: 75ch; }
html[data-site="ai"] .inq-glance { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--rule); }
html[data-site="ai"] .inq-glance h3 { font-size: var(--type-small); font-weight: 600; color: var(--ink-2); margin: 0 0 8px; }
html[data-site="ai"] .inq-glance h3 span { font-weight: 400; color: var(--ink-3); }
html[data-site="ai"] .inq-glance .response-bar { margin-bottom: 10px; }
html[data-site="ai"] .inq-glance__list { list-style: none; padding: 0; margin: 0; font-size: var(--type-small); }
html[data-site="ai"] .inq-glance__list li { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
html[data-site="ai"] .inq-glance__list strong { margin-left: auto; }
html[data-site="ai"] .inq-note { font-size: var(--type-small); color: var(--ink-3); margin: 12px 0 0; }
html[data-site="ai"] .inq-previews { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; margin-top: 8px; }
html[data-site="ai"] .inq-preview { border-top: 1px solid var(--rule); padding-top: 12px; display: flex; flex-direction: column; }
html[data-site="ai"] .inq-preview h2 { font-size: var(--type-read); font-weight: 600; margin: 0 0 8px; }
html[data-site="ai"] .inq-preview ul { list-style: none; padding: 0; margin: 0 0 10px; }
html[data-site="ai"] .inq-preview li { font-size: var(--type-read); line-height: 1.4; padding: 5px 0; border-bottom: 1px solid var(--rule); margin: 0; }
html[data-site="ai"] .inq-preview li:last-child { border-bottom: none; }
html[data-site="ai"] :is(.inq-preview li span, .inq-preview > span) { display: block; font-size: var(--type-small); color: var(--ink-3); }
html[data-site="ai"] .inq-preview__figure { font-size: var(--type-title); font-weight: 600; margin: 0; line-height: 1.2; }
html[data-site="ai"] .inq-preview__more { font-size: var(--type-small); margin-top: auto; padding-top: 8px; }
@media (max-width: 760px) { html[data-site="ai"] .inq-glance { grid-template-columns: 1fr; } }
/* Item titles are links in the accent colour, as on the inquiry page. */
html[data-site="ai"] .source-item__title a { color: var(--accent); }
html[data-site="ai"] .source-reader__main:has(> .source-panel) { max-width: none; }

/* Spacing around the tab bar and the start of each panel (owner, 20 Oct
   2026): the tabs sit about 18px below the header rule and the first
   section heading about 20px below the tab bar, on every page that uses the
   tabs. The reader grid, the first block and the first section add nothing
   on top of the tab bar's own margin. */
html[data-site="ai"] nav.source-tabs + .source-reader { margin-top: 0; }
html[data-site="ai"] :is(.source-panel, .inq-panel) > :first-child { margin-top: 0; }
html[data-site="ai"] :is(.source-panel, .inq-panel) > .block:first-child { padding-top: 0; }
html[data-site="ai"] .source-panel > .block + :is(.source-section, .inq-previews, .block) { margin-top: 0; }
/* A section heading carries its own rule, so the block above it drops its faint one. */
html[data-site="ai"] .source-panel > .block:has(+ .source-section) { border-bottom: 0; padding-bottom: 8px; }
html[data-site="ai"] .source-panel > .source-section + .source-section { margin-top: var(--source-section-gap); }
/* Without tabs (one panel, or no script), panels stack: keep the section gap between them. */
html[data-site="ai"]:not(.source-tabs-on) .source-panel:has(> *) + .source-panel { margin-top: var(--source-section-gap); }

/* "Where it stands" lines: lists as well as paragraphs, never wider than a
   reading line, and long URLs or names wrap at 375px. */
html[data-site="ai"] .inq-stands__lines :is(p, ul, ol) { max-width: 75ch; overflow-wrap: anywhere; }
html[data-site="ai"] .inq-stands__lines li { font-size: var(--type-read); line-height: 1.6; }

/* Committee report pages: the government's response to a report
   (templates_ai/tracker/includes/_committee_government_response.html).
   Our summary is not boxed: it opens with a 13px label saying whose words
   it is, then reads at the normal size and weight. */
html[data-site="ai"] .report-glance { font-size: var(--type-read); line-height: 1.6; color: var(--ink-2); margin: 0 0 4px; max-width: 75ch; overflow-wrap: anywhere; }
html[data-site="ai"] .report-glance__label { display: block; font-size: var(--type-small); font-weight: 600; color: var(--ink-3); margin: 0 0 2px; }
html[data-site="ai"] .gov-response { margin: 12px 0 0; }
html[data-site="ai"] .gov-response__doc + .gov-response__doc { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--rule-2); }
html[data-site="ai"] .gov-response__doc-title { font-size: var(--type-read); font-weight: 600; line-height: 1.4; margin: 0 0 4px; overflow-wrap: anywhere; }
html[data-site="ai"] .gov-response__when { font-size: var(--type-read); line-height: 1.6; color: var(--ink); margin: 0 0 8px; max-width: 75ch; overflow-wrap: anywhere; }
html[data-site="ai"] .gov-response__label { display: block; font-size: var(--type-small); font-weight: 600; color: var(--ink-3); line-height: 1.4; margin: 12px 0 4px; max-width: 75ch; }
html[data-site="ai"] .gov-response__headline { font-size: var(--type-read); font-weight: 400; line-height: 1.6; color: var(--ink); margin: 0 0 8px; max-width: 75ch; overflow-wrap: anywhere; }
html[data-site="ai"] .gov-response__points { font-size: var(--type-read); line-height: 1.6; color: var(--ink); margin: 0 0 12px; padding-left: 1.25em; max-width: 75ch; overflow-wrap: anywhere; }
html[data-site="ai"] .gov-response__points li { font-size: var(--type-read); margin: 0 0 6px; }
html[data-site="ai"] .gov-response__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; font-size: var(--type-small); margin: 12px 0 0; }
html[data-site="ai"] .gov-response__read { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 9px 16px; border: 1px solid var(--accent); color: var(--accent); font-weight: 600; text-decoration: none; }
html[data-site="ai"] .gov-response__read:hover { background: var(--accent); color: var(--paper); }
html[data-site="ai"] .gov-response__actions a:not(.gov-response__read) { display: inline-block; padding: 8px 0; }

/* The committee's numbered recommendations and conclusions: rows divided by
   a hairline, number on the left. No per-item response status: whether the
   government responded is a fact about the report. */
html[data-site="ai"] .committee-items { list-style: none; margin: 12px 0 0; padding: 0; }
html[data-site="ai"] .committee-items > li { display: grid; grid-template-columns: 3em minmax(0, 1fr); gap: 0 12px; padding: 8px 0; border-bottom: 1px solid var(--rule-2); font-size: var(--type-read); line-height: 1.5; }
html[data-site="ai"] .committee-items__num { font-size: var(--type-small); color: var(--ink-3); font-variant-numeric: tabular-nums; padding-top: 2px; }
html[data-site="ai"] .committee-items__title { font-weight: 600; overflow-wrap: anywhere; }
html[data-site="ai"] .committee-items__title a { color: var(--accent); text-decoration: none; }
html[data-site="ai"] .committee-items__title a:hover { text-decoration: underline; }
html[data-site="ai"] .committee-items__meta { display: block; font-size: var(--type-small); color: var(--ink-3); line-height: 1.5; margin: 2px 0 0; }
html[data-site="ai"] .committee-items .source-item__label { margin: 8px 0 4px; }
html[data-site="ai"] .committee-items__more { font-size: var(--type-small); margin: 12px 0 0; }
html[data-site="ai"] .committee-sources { list-style: none; margin: 12px 0 0; padding: 0; }
html[data-site="ai"] .committee-sources li { font-size: var(--type-read); line-height: 1.5; padding: 8px 0; border-bottom: 1px solid var(--rule-2); overflow-wrap: anywhere; }
html[data-site="ai"] .committee-sources li span { display: block; font-size: var(--type-small); color: var(--ink-3); }
@media (max-width: 760px) {
  html[data-site="ai"] .committee-items > li { grid-template-columns: 2.25em minmax(0, 1fr); gap: 0 8px; }
  html[data-site="ai"] .committee-items__title a { display: inline-block; padding: 2px 0; }
}

/* Phones: the same tight start (owner, 20 Oct 2026). The header's link row
   keeps 24px+ touch targets without padding the rule away from the tabs, and
   the tab bar adds no gap of its own beyond its underline. */
@media (max-width: 760px) {
  html[data-site="ai"] .source-header { padding: 18px 0 10px; margin-bottom: 16px; }
  html[data-site="ai"] .source-header .source-links { margin-top: 8px; }
  html[data-site="ai"] .source-page .source-header .source-links a { padding: 4px 0; }
  html[data-site="ai"] nav.source-tabs { margin: 0 0 20px; }
  html[data-site="ai"] nav.source-tabs a { padding: 8px 0; }
  html[data-site="ai"] :is(.source-panel, .inq-panel) > .block:first-child { padding-top: 0; }
}

/* A meta line straight after an item's text (e.g. PPO "Theme") gets a gap. */
html[data-site="ai"] .source-item__text + .source-item__meta,
html[data-site="ai"] .source-more-btn + .source-item__meta { margin-top: 10px; }

/* Jump links straight under the page header: one rule (the header's), not two. */
html[data-site="ai"] .source-header + nav.source-sections { border-bottom: 0; padding-bottom: 0; margin-top: -4px; margin-bottom: 20px; }

/* Content straight under the page header: the header's own gap is enough,
   so the first section does not add its top margin on top of it. */
html[data-site="ai"] .source-header + .source-reader { margin-top: 0; }
html[data-site="ai"] .source-reader__main > :first-child,
html[data-site="ai"] .source-reader__main > :first-child > .source-section:first-child { margin-top: 0; }

/* Independent review disclosures use the shared source typography and spacing. */
html[data-site="ai"] .review-filter { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: var(--type-small); color: var(--ink-3); margin: 12px 0 4px; }
html[data-site="ai"] .review-filter button { background: none; border: 0; padding: 0; font: inherit; color: var(--accent); cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
html[data-site="ai"] .review-filter button[aria-pressed="true"] { color: var(--ink); font-weight: 600; text-decoration: none; }
html[data-site="ai"] .review-bar { display: flex; height: 8px; background: var(--rule); overflow: hidden; margin: 12px 0 0; max-width: 75ch; }
html[data-site="ai"] .review-bar > span { display: block; height: 100%; }
html[data-site="ai"] .review-bar .seg-accepted, html[data-site="ai"] .review-bar .seg-implemented { background: var(--pos); }
html[data-site="ai"] .review-bar .seg-accepted_in_principle, html[data-site="ai"] .review-bar .seg-partially_accepted { background: var(--warn); }
html[data-site="ai"] .review-bar .seg-rejected { background: var(--neg); }
html[data-site="ai"] .review-bar .seg-not_yet_responded, html[data-site="ai"] .review-bar .seg-pending { background: var(--ink-3); }
html[data-site="ai"] .independent-review-reader .source-item[hidden] { display: none; }

html[data-site="ai"] .independent-review-reader .source-header h1 { margin-bottom: 8px; }
html[data-site="ai"] .review-count { margin: 8px 0; }
html[data-site="ai"] .review-context { margin: 4px 0; }
html[data-site="ai"] .review-addressee { padding: 8px 0 12px; }
html[data-site="ai"] .source-page .review-recommendation { border: 1px solid var(--rule); border-radius: 6px; padding: 0; margin: 10px 0; max-width: none; overflow: hidden; }
html[data-site="ai"] .review-recommendation > summary { display: flex; align-items: baseline; gap: 10px; min-height: 44px; padding: 10px 12px; background: var(--accent-soft, #e3eef0); cursor: pointer; list-style: none; font-size: var(--type-read); line-height: 1.5; }
html[data-site="ai"] .review-recommendation > summary::-webkit-details-marker { display: none; }
html[data-site="ai"] .review-recommendation > summary::after { content: '+'; color: var(--accent); margin-left: auto; flex-shrink: 0; }
html[data-site="ai"] .review-recommendation[open] > summary::after { content: '▾'; }
html[data-site="ai"] .review-recommendation > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
html[data-site="ai"] .review-reference { font-size: var(--type-small); font-weight: 600; color: var(--accent); font-variant-numeric: tabular-nums; flex-shrink: 0; }
html[data-site="ai"] .review-heading { font-weight: 600; min-width: 0; overflow-wrap: anywhere; }
html[data-site="ai"] .review-recommendation__body { padding: 12px; }
html[data-site="ai"] .review-verbatim { white-space: normal; overflow-wrap: anywhere; }
html[data-site="ai"] .source-page .review-attribution { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--rule-2); }
html[data-site="ai"] .review-recommendation[hidden] { display: none; }

html[data-site="ai"] .review-line { display: block; white-space: pre-wrap; }
html[data-site="ai"] .review-line--number { padding-left: 1.3em; text-indent: -1.3em; margin: 4px 0; }
html[data-site="ai"] .review-line--blank { min-height: 8px; }
html[data-site="ai"] .review-line--label { color: var(--ink-3); font-size: var(--type-small); font-weight: 600; margin: 4px 0; }
html[data-site="ai"] .independent-review-reader .review-response { border: 1px solid var(--rule); border-radius: 6px; padding: 12px; }

html[data-site="ai"] .independent-review-reader .source-section { margin-top: 20px; }
html[data-site="ai"] .independent-review-reader .review-response > h2 { border: 0; padding: 0; margin: 0; }
