/* 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: 16px;
  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 22px; border-bottom: 1px solid var(--rule); margin-bottom: 24px; }
html[data-site="ai"] .source-header h1 { font-size: clamp(28px, 3.2vw, 40px); 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: 16px; line-height: 1.6; }
html[data-site="ai"] .source-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 14px 0; font-size: 14px; line-height: 1.5; }
html[data-site="ai"] .source-facts > * { min-width: 0; }
html[data-site="ai"] .source-meta { font-size: 13px; 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: 14px; }
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: 13px; 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: 15px; font-weight: 400;
}
html[data-site="ai"] .source-search label { font-size: 13px; }
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: 14px; }
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: 13px; 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: 14px; }
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: 21px; }
html[data-site="ai"] .source-results-header .meta { font-size: 13px; }
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: 18px; 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: 13px; line-height: 1.6; margin: 7px 0; overflow-wrap: anywhere; }
html[data-site="ai"] .source-result-summary { max-width: 82ch; font-size: 15px; 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: 13px; }
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: 14px; line-height: 1.65; margin: 12px 0; }
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: 14px; }
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: 14px; line-height: 1.55; background: var(--paper); }
html[data-site="ai"] .source-table th { text-align: left; font-size: 12px; 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: 14px; 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: 13px; padding: 0 0 10px; }
html[data-site="ai"] .source-table-note { color: var(--ink-3); font-size: 13px; margin: 8px 0 14px; }
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: 14px; line-height: 1.6; overflow-wrap: anywhere; }
html[data-site="ai"] .source-reader__aside h2 { font-size: 16px; margin-bottom: 12px; }
html[data-site="ai"] .source-reader__aside :is(table, td, th) { font-size: 13px; }
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: 17px; line-height: 1.5; margin-bottom: 10px; }
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: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; 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: 16px; 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-empty { padding: 24px 0; max-width: 76ch; }
html[data-site="ai"] .source-empty h2, html[data-site="ai"] .source-empty h3 { font-size: 18px; margin: 0 0 10px; }
html[data-site="ai"] .source-empty p { color: var(--ink-3); font-size: 15px; 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: 14px; 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-record-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 14px 0; font-size: 13px; }
html[data-site="ai"] .source-record-tools button { background: var(--paper); border: 1px solid var(--rule); color: var(--accent); padding: 7px 12px; font: inherit; cursor: pointer; }
html[data-site="ai"] .source-record-tools [hidden] { display: none; }
html[data-site="ai"] .source-copy-feedback { color: var(--ink-3); }
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: 13px; 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: 13px; 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 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: 14px; 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: 12px; 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: 15px; }
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: 12px; }
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; }

@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: 760px) {
  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, select) { font-size: 16px; }
  html[data-site="ai"] .source-search :is(.btn, button[type="submit"], button:not([type])) { min-height: 44px; }
  html[data-site="ai"] .source-chart-data > summary { min-height: 44px; box-sizing: border-box; padding: 11px 0; }
  html[data-site="ai"] .source-record-tools button { min-height: 44px; }
  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; }
  /* 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-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-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: 16px; padding: 4px 0; }
  html[data-site="ai"] .source-directory .src-desc { font-size: 14px; line-height: 1.6; }
  html[data-site="ai"] .source-directory :is(.src-volume, .src-cadence) { margin-top: 10px; text-align: left; font-size: 13px; }
  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; }
}

@media print {
  html[data-site="ai"] .source-page :is(.source-search, .source-record-tools, .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; }
}
