/* Data hub: /data chart pages, the /data listing and /ai-index/methodology.
   Same tokens and type scale as ai-index.css (figures and small labels in Geist
   Mono, square corners, hairlines). Mobile first; checked at 360 px. */
.ujd-page { padding: 32px 0 80px; color: var(--uj-ink); }
.ujd-wrap { max-width: 880px; margin: 0 auto; padding: 0 20px; }
.ujd-draft { max-width: 840px; margin: 0 auto 28px; padding: 9px 14px; background: #FEF3C7; color: #78350F; border: 1px solid #FCD34D;
  font-size: 13.5px; line-height: 1.45; }
.ujd-draft::before { content: "Draft"; display: inline-block; margin-right: 10px; padding: 3px 6px; background: #78350F; color: #FEF3C7;
  font: 600 10.5px/1 var(--uj-mono); letter-spacing: .08em; text-transform: uppercase; vertical-align: 1px; }
.ujd-crumbs { font-size: 13px; color: #6B7280; margin-bottom: 18px; display: flex; flex-wrap: wrap; gap: 4px 8px; }
.ujd-crumbs a { color: #4B5563; text-decoration: none; }
.ujd-crumbs a:hover { color: var(--uj-ink); text-decoration: underline; text-underline-offset: 3px; }
.ujd-crumbs span[aria-hidden] { color: #D1D5DB; }
.ujd-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 16px; font: 500 12px/1 var(--uj-mono); letter-spacing: .1em;
  text-transform: uppercase; color: #9A3412; }
.ujd-eyebrow::before { content: ""; width: 6px; height: 6px; background: #EA580C; }
.ujd-h1 { font-size: clamp(30px, 4.4vw, 46px); line-height: 1.08; font-weight: 600; letter-spacing: -0.032em; margin: 0; text-wrap: balance; }
.ujd-page .ujd-dek { font-size: 18px; line-height: 1.55; color: #374151; margin: 18px 0 0; max-width: 680px; }
.ujd-page .ujd-meta { display: flex; flex-wrap: wrap; gap: 4px 20px; font: 500 14px/1.5 var(--uj-sans); color: #4B5563; margin: 18px 0 0; }
.ujd-page .ujd-h2 { font-size: clamp(24px, 2.6vw, 30px); line-height: 1.15; font-weight: 600; letter-spacing: -0.025em; margin: 0 0 18px; }
.ujd-page .ujd-h3 { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin: 28px 0 8px; }
.ujd-section { margin-top: 64px; }
.ujd-section p, .ujd-list li, .ujd-takeaways li, .ujd-prose { font-size: 16px; line-height: 1.65; color: #374151; }
.ujd-page .ujd-section p { margin: 0 0 12px; }
.ujd-page .ujd-section .ujd-h2 + p, .ujd-page .ujd-section .ujd-h3 + p { margin-top: 0; }
.ujd-section a:not(.uj-btn), .ujd-figure a, .ujd-method a { color: #9A3412; text-decoration: underline; text-decoration-color: rgba(154, 52, 18, .35);
  text-underline-offset: 3px; transition: text-decoration-color .15s; }
.ujd-section a:not(.uj-btn):hover, .ujd-figure a:hover, .ujd-method a:hover { text-decoration-color: currentColor; }
.ujd-note { font-size: 14px !important; color: #4B5563 !important; }
.ujd-page .ujd-head .ujd-disclaimer { margin: 14px 0 0; max-width: 680px; }
.ujd-list { padding-left: 20px; }
.ujd-page :focus-visible { outline: 2px solid var(--uj-ink); outline-offset: 2px; }
.ujd-page .uj-btn { height: auto; min-height: 44px; white-space: normal; text-align: center; line-height: 1.25; }
.uj-v3 .ujd-page .uj-btn--primary { background: #C2410C; border-color: #C2410C; color: #fff; }
.uj-v3 .ujd-page .uj-btn--primary:hover { background: #9A3412; border-color: #9A3412; }

/* 1. Figure: the SVG scales with its viewBox; desktop and mobile variants swap at 640 px. */
.ujd-figure { margin: 36px 0 0; padding: 22px 16px 16px; border: 1px solid var(--uj-line); background: #fff;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 20px 48px -30px rgba(15,23,42,.2); }
.ujd-figure__title { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; margin-bottom: 16px; }
.ujd-figure__chart svg { display: block; width: 100%; height: auto; overflow: visible; }
.ujd-figure__chart--desktop { display: none; }
.ujd-figure__chart--mobile { display: block; }
.ujd-figure__chart:only-of-type { display: block; }
.ujd-figure__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--uj-line2); }
.ujd-page .ujd-figure__source { flex: 1 1 320px; font: 400 12px/1.55 var(--uj-mono); color: #4B5563; margin: 0; }
.ujd-figure__missing { font-size: 15px; color: #4B5563; padding: 28px 0; }
.ujd-figure .ujc-bar:focus { outline: none; }
.ujd-figure .ujc-bar:focus path, .ujd-figure .ujc-bar.is-active path { filter: brightness(0.88); }
.ujd-tip { position: absolute; z-index: 20; pointer-events: none; background: var(--uj-ink); color: #fff; font-size: 13px;
  line-height: 1.35; padding: 8px 11px; box-shadow: 0 6px 18px rgba(0,0,0,0.2); max-width: 260px; }
.ujd-tip strong { display: block; font-weight: 600; }

.ujd-takeaways ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--uj-line); }
.ujd-takeaways li { position: relative; padding: 14px 0 14px 22px; border-bottom: 1px solid var(--uj-line); margin: 0; }
.ujd-takeaways li::before { content: ""; position: absolute; left: 0; top: 24px; width: 7px; height: 7px; background: #EA580C; }

/* 2. Table: sideways scroll on phones; on wider screens the header sticks under the site header. */
.ujd-table-wrap { overflow-x: auto; border: 1px solid var(--uj-line); background: #fff; }
.ujd-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.ujd-table caption { caption-side: top; text-align: left; font: 400 12px/1.5 var(--uj-mono); color: #4B5563; padding: 10px 14px; border-bottom: 1px solid var(--uj-line2); }
.ujd-table th, .ujd-table td { padding: 10px 14px; text-align: left; border-top: 1px solid var(--uj-line2); white-space: nowrap; }
.ujd-table thead th { position: sticky; top: 0; z-index: 1; background: #FAFAF8; border-top: 0; border-bottom: 1px solid var(--uj-line);
  font: 500 11px/1.3 var(--uj-mono); letter-spacing: .07em; text-transform: uppercase; color: #4B5563; }
.ujd-table tbody tr:first-child > * { border-top: 0; }
.ujd-table tbody tr:hover { background: #FAFAF8; }
.ujd-table tbody th { font-weight: 500; }
.ujd-table .is-num { text-align: right; font-family: var(--uj-mono); font-variant-numeric: tabular-nums; font-size: 13.5px; }
.ujd-table thead .is-num { font-size: 11px; }
.ujd-table th button { all: unset; cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.ujd-table th button:hover { color: var(--uj-ink); }
.ujd-table th button:focus-visible { outline: 2px solid var(--uj-ink); outline-offset: 2px; }
.ujd-table th[aria-sort="ascending"] button::after { content: "\2191"; color: #EA580C; }
.ujd-table th[aria-sort="descending"] button::after { content: "\2193"; color: #EA580C; }
.ujd-table-wrap:focus-visible { outline: 2px solid var(--uj-ink); outline-offset: 2px; }
.ujd-downloads { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px !important; }
.ujd-downloads .uj-btn { max-width: 100%; }

/* 2b. Paged table (data-chart.js, when the page ships a JSON row payload): search, category chips,
   a live row count, a bounded scroll box with a sticky header, and the pager. */
.ujd-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-bottom: 14px; }
.ujd-search { position: relative; flex: 1 1 100%; }
.ujd-search__icon { position: absolute; left: 13px; top: 50%; width: 18px; height: 18px; margin-top: -9px; color: #6B7280; pointer-events: none; }
.ujd-search__input { width: 100%; height: 44px; padding: 0 14px 0 40px; border: 1px solid #D1D5DB; background: #fff; color: var(--uj-ink);
  font: 400 16px/1 var(--uj-sans); transition: border-color .15s; -webkit-appearance: none; appearance: none; }
.ujd-search__input::placeholder { color: #6B7280; }
.ujd-search__input:hover { border-color: #9CA3AF; }
.ujd-page .ujd-search__input:focus-visible { outline: 2px solid var(--uj-ink); outline-offset: -1px; border-color: var(--uj-ink); }
.ujd-filter { display: grid; gap: 8px; flex: 1 1 100%; min-width: 0; }
.ujd-filter__label { font: 500 12px/1.3 var(--uj-mono); color: #4B5563; }
.ujd-filter__opts { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.ujd-chip-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 11px; border: 1px solid var(--uj-line);
  background: #fff; color: #374151; font: 500 13.5px/1.2 var(--uj-sans); cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.ujd-chip-btn:hover { border-color: #9CA3AF; color: var(--uj-ink); }
.ujd-chip-btn__n { font: 400 12px/1 var(--uj-mono); color: #6B7280; font-variant-numeric: tabular-nums; }
.ujd-chip-btn[aria-pressed="true"] { background: var(--uj-ink); border-color: var(--uj-ink); color: #fff; }
.ujd-chip-btn[aria-pressed="true"] .ujd-chip-btn__n { color: #D1D5DB; }
.ujd-chip-btn.is-zero:not([aria-pressed="true"]) { color: #9CA3AF; }
.ujd-chip-btn.is-zero:not([aria-pressed="true"]) .ujd-chip-btn__n { color: #9CA3AF; }
.ujd-filter__select { height: 36px; padding: 0 10px; border: 1px solid var(--uj-line); background: #fff; color: var(--uj-ink); font: 500 13.5px var(--uj-sans); max-width: 100%; }
.ujd-page .ujd-section .ujd-count { flex: 1 1 100%; margin: 0; font: 400 12.5px/1.5 var(--uj-mono); color: #4B5563; font-variant-numeric: tabular-nums; }
.ujd-table-wrap.is-paged { overflow: auto; max-height: min(70vh, 720px); overscroll-behavior: contain; }
.ujd-table__empty td { padding: 40px 14px; white-space: normal; text-align: left; }
.ujd-page .ujd-table__empty p { margin: 0 0 6px; font-size: 15px; font-weight: 600; color: var(--uj-ink); }
.ujd-table__empty:hover { background: none !important; }
.ujd-linkbtn { all: unset; cursor: pointer; font-size: 14px; color: #9A3412; text-decoration: underline; text-decoration-color: rgba(154, 52, 18, .35); text-underline-offset: 3px; }
.ujd-linkbtn:hover { text-decoration-color: currentColor; }
.ujd-linkbtn:focus-visible { outline: 2px solid var(--uj-ink); outline-offset: 2px; }
.ujd-pager { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 12px 0 16px; }
.ujd-pager[hidden] { display: none; }
.ujd-pager__pages { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.ujd-pager__btn { min-width: 40px; height: 40px; padding: 0 10px; border: 1px solid transparent; background: none; color: #374151;
  font: 500 13px/1 var(--uj-mono); font-variant-numeric: tabular-nums; cursor: pointer; transition: border-color .15s, background .15s; }
.ujd-pager__btn:hover:not([disabled]):not([aria-current]) { border-color: var(--uj-line); background: #fff; color: var(--uj-ink); }
.ujd-pager__btn[aria-current="page"] { background: var(--uj-ink); color: #fff; cursor: default; }
.ujd-pager__step { border-color: var(--uj-line); background: #fff; font-family: var(--uj-sans); font-size: 14px; padding: 0 14px; }
.ujd-pager__btn[disabled] { color: #9CA3AF; background: transparent; cursor: default; }
.ujd-pager__gap { min-width: 24px; text-align: center; color: #6B7280; font: 400 13px/1 var(--uj-mono); }
@media (min-width: 640px) {
  .ujd-search { flex: 0 1 380px; }
  .ujd-filter { grid-template-columns: auto minmax(0, 1fr); align-items: start; column-gap: 14px; }
  .ujd-filter__label { line-height: 36px; }
}

/* 3. How we got this data */
.ujd-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 0 8px; border-top: 1px solid var(--uj-line); }
.ujd-facts div { padding: 14px 16px 14px 0; border-bottom: 1px solid var(--uj-line); min-width: 0; }
.ujd-facts dt { font: 500 11px/1.3 var(--uj-mono); letter-spacing: .07em; text-transform: uppercase; color: #4B5563; }
.ujd-facts dd { margin: 6px 0 0; font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
.ujd-code, .ujd-code pre { margin: 0; }
.ujd-code { display: block; background: var(--uj-ink); color: #E5E7EB; padding: 16px 18px; overflow-x: auto;
  font: 13px/1.65 var(--uj-mono); white-space: pre; }
.ujd-code code { font: inherit; color: inherit; background: none; white-space: pre; }
.ujd-page .ujd-h4 { font-size: 14px; font-weight: 600; margin: 0 0 8px; color: #374151; }
.ujd-snippet.is-tabbed .ujd-h4 { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ujd-snippet.is-tabbed { margin-top: 0; }
.ujd-snippet.is-tabbed .ujd-copy__head { position: absolute; right: 10px; top: 10px; z-index: 1; }
.ujd-snippet.is-tabbed { position: relative; }
.ujd-snippet.is-tabbed .ujd-copy__btn { background: rgba(255,255,255,.08); color: #E5E7EB; border-color: rgba(255,255,255,.18); }
.ujd-snippet.is-tabbed .ujd-copy__btn:hover { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.3); }
.ujd-tabs { display: flex; gap: 0; margin-top: 16px; background: #1F2937; }
.ujd-tabs__tab { font: 500 12.5px var(--uj-mono); padding: 11px 16px; border: 0; border-bottom: 2px solid transparent;
  background: none; color: #9CA3AF; cursor: pointer; transition: color .15s; }
.ujd-tabs__tab:hover { color: #fff; }
.ujd-tabs__tab[aria-selected="true"] { color: #fff; border-bottom-color: #F97316; }
.ujd-tabs__tab:focus-visible { outline: 2px solid #fff; outline-offset: -2px; }
.ujd-snippet .ujd-code, .ujd-snippet .ujd-code code { white-space: pre-wrap; overflow-wrap: anywhere; }
.ujd-snippet.is-tabbed .ujd-code { padding-right: 84px; }
.ujd-run { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-top: 20px !important; }

/* 5. Embed and cite */
.ujd-copy { margin-top: 22px; }
.ujd-copy__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.ujd-page .ujd-copy__head .ujd-h3 { margin: 0; }
.ujd-copy__btn { font: 500 12.5px var(--uj-sans); min-height: 32px; padding: 0 12px; border: 1px solid var(--uj-line);
  background: #fff; color: var(--uj-ink); cursor: pointer; transition: background .15s, border-color .15s; }
.ujd-copy__btn:hover { border-color: #D1D5DB; background: var(--uj-paper); }
.ujd-copy pre.ujd-code, .ujd-copy pre.ujd-code code { white-space: pre-wrap; word-break: normal; overflow-wrap: anywhere; }
.ujd-share { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin-top: 22px !important; font-size: 15px; }
.ujd-share span { font: 500 11px var(--uj-mono); letter-spacing: .07em; text-transform: uppercase; color: #4B5563; }
.ujd-cite { padding: 14px 16px; background: var(--uj-paper); border: 1px solid var(--uj-line); font-size: 14px !important; margin: 0 !important; }

/* 6. CTA: the dark panel, like the AI index check form */
.ujd-cta { margin-top: 72px; padding: 32px 24px; background: var(--uj-ink); color: #fff; }
.ujd-page .ujd-cta__h { font-size: clamp(24px, 2.8vw, 30px); line-height: 1.12; font-weight: 600; letter-spacing: -0.025em; margin: 0 0 10px; color: #fff; }
.ujd-page .ujd-cta p { margin: 0 0 22px; font-size: 16px; line-height: 1.55; color: #D1D5DB; max-width: 560px; }
.uj-v3 .ujd-cta .uj-btn--dark { background: #C2410C; border-color: #C2410C; color: #fff; }
.uj-v3 .ujd-cta .uj-btn--dark:hover { background: #9A3412; border-color: #9A3412; }
.ujd-cta :focus-visible { outline-color: #fff; }
.ujd-wrap > .aix-cta { margin-top: 72px; }

/* /ai-index/methodology */
.ujd-method-notice { margin-top: 28px; padding: 12px 16px; border-left: 3px solid #EA580C; background: var(--uj-paper); }
.ujd-method { max-width: 720px; margin-top: 12px; }
.ujd-page .ujd-method h2 { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.2; font-weight: 600; letter-spacing: -0.022em; margin: 52px 0 14px; padding-top: 28px; border-top: 1px solid var(--uj-line); }
.ujd-page .ujd-method h3 { font-size: 17px; font-weight: 600; margin: 28px 0 10px; }
.ujd-method p, .ujd-method li { font-size: 17px; line-height: 1.7; color: #374151; }
.ujd-page .ujd-method p { margin: 0 0 16px; }
.ujd-method strong { color: var(--uj-ink); }
.ujd-method ul, .ujd-method ol { margin: 0 0 16px; padding-left: 22px; }
.ujd-method li { margin-bottom: 8px; }
.ujd-method li::marker { color: #6B7280; }
.ujd-method code { font: 0.88em var(--uj-mono); background: var(--uj-line2); padding: 1px 5px; }
.ujd-method table { width: 100%; border-collapse: collapse; margin: 0 0 20px; font-size: 14.5px; display: block; overflow-x: auto; }
.ujd-method th, .ujd-method td { padding: 9px 12px; border-bottom: 1px solid var(--uj-line); text-align: left; vertical-align: top; }
.ujd-method th { font: 500 11px/1.3 var(--uj-mono); letter-spacing: .07em; text-transform: uppercase; color: #4B5563; background: #FAFAF8; }

/* /data listing */
.ujd-page .ujd-empty { margin-top: 36px; padding: 40px 24px; border: 1px dashed #D1D5DB; text-align: center; font-size: 16px; color: #4B5563;
  background-color: #FCFCFA; background-image: repeating-linear-gradient(135deg, rgba(11,15,25,.028) 0 1px, transparent 1px 9px); }
.ujd-empty strong { display: block; margin-bottom: 6px; font-size: 18px; color: var(--uj-ink); letter-spacing: -0.01em; }
.ujd-cards { list-style: none; margin: 36px 0 0; padding: 0; display: grid; gap: 16px; }
.ujd-card a { display: flex; flex-direction: column; height: 100%; padding: 22px; border: 1px solid var(--uj-line); background: #fff; color: var(--uj-ink); text-decoration: none;
  transition: border-color .15s, box-shadow .15s; }
.ujd-card a:hover { border-color: #FDBA74; box-shadow: 0 10px 28px -12px rgba(15,23,42,.14); }
.ujd-card__date { display: block; font: 400 12px var(--uj-mono); color: #4B5563; }
.ujd-chip { display: inline-block; padding: 2px 6px; font: 500 11px/1.4 var(--uj-mono); letter-spacing: .04em; text-transform: uppercase; vertical-align: 1px; }
.ujd-chip--draft { background: #FEF3C7; color: #78350F; border: 1px solid #FCD34D; margin-right: 6px; }
.ujd-card__title { display: block; font-size: 19px; font-weight: 600; letter-spacing: -0.015em; line-height: 1.3; margin: 8px 0 8px; }
.ujd-card__headline { display: block; font-size: 15px; color: #4B5563; line-height: 1.55; }

/* /data listing: the program explainer (STATUS-O) */
.ujd-visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ujd-def { margin: 0 0 20px; border-top: 1px solid var(--uj-line); }
.ujd-def > div { display: grid; gap: 4px; padding: 16px 0; border-bottom: 1px solid var(--uj-line); }
.ujd-def dt { font: 500 12px/1.4 var(--uj-mono); color: #9A3412; }
.ujd-def dd { margin: 0; font-size: 16px; line-height: 1.6; color: #374151; }
.ujd-def a, .ujd-section .ujd-note a { color: #9A3412; text-decoration: underline; text-decoration-color: rgba(154, 52, 18, .35); text-underline-offset: 3px; }
.ujd-def a:hover { text-decoration-color: currentColor; }
@media (min-width: 760px) { .ujd-def > div { grid-template-columns: 170px minmax(0, 1fr); gap: 24px; } }

@media (min-width: 640px) {
  .ujd-page { padding-top: 48px; }
  .ujd-wrap { padding: 0 28px; }
  .ujd-figure { padding: 28px 28px 18px; }
  .ujd-figure__chart--desktop { display: block; }
  .ujd-figure__chart--mobile { display: none; }
  .ujd-facts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .ujd-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ujd-cta { padding: 44px 44px; }
}
@media (min-width: 760px) {
  /* ai-index.js adds .is-fit when the table needs no sideways scroll */
  .ujd-table-wrap.is-fit { overflow: visible; }
  .ujd-table-wrap.is-fit .ujd-table thead th { top: var(--aix-hdr, 64px); }
}
.ujd-section .ujd-table-wrap.is-paged { overflow: auto; }
.ujd-section .ujd-table-wrap.is-paged .ujd-table thead th { top: 0; }
@media (prefers-reduced-motion: reduce) {
  .ujd-page *, .ujd-page *::before { transition: none !important; }
}
.ujd-page a.uj-btn { text-decoration: none; }
