:root {
  --ink: #142b3d;
  --ink-2: #213d50;
  --muted: #64717b;
  --line: #d9e0e4;
  --paper: #fff;
  --soft: #f3f6f7;
  --accent: #b36b16;
  --accent-soft: #fff4dd;
  color-scheme: light;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { background: var(--soft); color: var(--ink); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; margin: 0; }
a { color: inherit; }
input, select, button { font: inherit; }

.site-header { align-items: center; background: rgba(255,255,255,.97); border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; min-height: 78px; padding: 12px clamp(18px, 5vw, 72px); }
.brand { align-items: center; display: inline-flex; gap: 11px; text-decoration: none; }
.brand img { display: block; }
.brand span { align-items: baseline; display: flex; letter-spacing: -.035em; }
.brand strong { font-size: 21px; }
.brand small { color: var(--accent); font-size: 16px; font-weight: 800; }
.site-header nav { display: flex; gap: 7px; }
.site-header nav a { border-radius: 999px; font-size: 14px; font-weight: 750; padding: 9px 14px; text-decoration: none; }
.site-header nav a:hover { background: var(--soft); }
.site-header nav a[aria-current="page"] { background: var(--ink); color: #fff; }

.shell { margin: 0 auto; max-width: 1240px; padding: clamp(32px, 5vw, 72px) clamp(18px, 4vw, 52px); }
.narrow { max-width: 920px; }
.hero { align-items: end; display: grid; gap: 42px; grid-template-columns: minmax(0, 1fr) 260px; margin-bottom: 38px; }
.eyebrow { color: var(--accent); font-size: 12px; font-weight: 850; letter-spacing: .11em; margin: 0; text-transform: uppercase; }
.hero h1 { font-size: clamp(40px, 7vw, 88px); hyphens: auto; letter-spacing: -.065em; line-height: .94; margin: 11px 0 22px; overflow-wrap: anywhere; }
.hero-copy { color: var(--muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.6; margin: 0; max-width: 850px; }
.data-status { background: var(--ink); border-radius: 18px; color: #fff; padding: 24px; }
.data-status span, .data-status small { color: #bac8d0; display: block; font-size: 12px; }
.data-status strong { display: block; font-size: 27px; letter-spacing: -.035em; margin: 9px 0 6px; }

.search-panel { align-items: end; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 50px rgba(20,43,61,.08); display: grid; gap: 12px; grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .7fr) minmax(135px, .45fr) minmax(135px, .45fr) auto; padding: 20px; }
.search-panel label { display: block; font-size: 11px; font-weight: 800; margin: 0 0 7px 2px; }
.search-panel input, .search-panel select { background: #fff; border: 1px solid #bac5cb; border-radius: 10px; color: var(--ink); min-height: 46px; padding: 10px 12px; width: 100%; }
.search-panel input:focus, .search-panel select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(179,107,22,.15); outline: 0; }
.search-panel button, .button { background: var(--ink); border: 0; border-radius: 10px; color: #fff; cursor: pointer; display: inline-block; font-weight: 800; min-height: 46px; padding: 12px 17px; text-align: center; text-decoration: none; }
.search-panel button:hover, .button:hover { background: var(--ink-2); }
.alert { background: #fff1ef; border: 1px solid #e2b8b2; border-radius: 12px; color: #832c21; margin-top: 18px; padding: 13px 16px; }
.alert p { margin: 0; }
.alert p + p { margin-top: 5px; }

.results { margin-top: 58px; }
.section-heading { align-items: end; display: flex; gap: 20px; justify-content: space-between; margin-bottom: 20px; }
.section-heading h2 { font-size: clamp(29px, 4vw, 46px); letter-spacing: -.045em; margin: 6px 0 0; }
.section-heading > span { color: var(--muted); flex: 0 0 auto; font-size: 12px; font-weight: 750; }
.notice-list { display: grid; gap: 12px; list-style: none; margin: 0; padding: 0; }
.notice-card { align-items: start; background: var(--paper); border: 1px solid var(--line); border-radius: 15px; display: grid; gap: 22px; grid-template-columns: 130px minmax(0, 1fr) auto; padding: 22px; transition: border-color .16s ease, transform .16s ease; }
.notice-card:hover { border-color: #aebcc4; transform: translateY(-1px); }
.notice-date time { display: block; font-size: 17px; font-weight: 850; }
.notice-date span { color: var(--muted); display: block; font-size: 11px; line-height: 1.35; margin-top: 7px; }
.notice-kind { color: var(--accent) !important; font-size: 10px !important; font-weight: 850; letter-spacing: .075em; margin-bottom: 7px !important; text-transform: uppercase; }
.notice-body h3 { font-size: clamp(18px, 2.2vw, 24px); line-height: 1.25; margin: 0 0 6px; }
.notice-body h3 a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.notice-body > p { color: var(--muted); line-height: 1.5; margin: 0; }
.notice-body dl { display: flex; flex-wrap: wrap; font-size: 12px; gap: 5px 9px; margin: 13px 0 0; }
.notice-body dt { color: var(--muted); font-weight: 650; }
.notice-body dd { font-weight: 800; margin: 0 18px 0 0; }
.notice-body .excerpt { border-top: 1px solid var(--line); font-size: 13px; margin-top: 14px; padding-top: 12px; }
.detail-link { color: var(--accent); font-size: 13px; font-weight: 850; padding: 4px 0; text-decoration: none; white-space: nowrap; }
.detail-link span { display: inline-block; margin-left: 3px; }
.empty-state { background: var(--paper); border: 1px dashed #aebcc4; border-radius: 14px; padding: 30px; text-align: center; }
.empty-state h3 { margin: 0 0 7px; }
.empty-state p { color: var(--muted); margin: 0; }
.limit-note { background: var(--accent-soft); border-radius: 10px; color: #71430d; line-height: 1.5; padding: 12px 15px; }

.scope-note { background: var(--ink); border-radius: 18px; color: #fff; margin-top: 52px; padding: clamp(24px, 4vw, 38px); }
.scope-note h2 { font-size: clamp(25px, 3vw, 36px); letter-spacing: -.035em; margin: 0 0 10px; }
.scope-note p { color: #c3d0d7; line-height: 1.65; margin: 0; max-width: 920px; }
.scope-note a { color: #f5c451; display: inline-block; font-size: 13px; font-weight: 800; margin-top: 16px; }

.portal-links { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; margin-top: 46px; }
.portal-link { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; display: flex; flex-direction: column; min-height: 220px; padding: 28px; text-decoration: none; }
.portal-link:hover { border-color: #aebcc4; transform: translateY(-1px); }
.portal-link h2 { font-size: clamp(25px, 3vw, 37px); letter-spacing: -.04em; line-height: 1.05; margin: 10px 0 12px; }
.portal-link p { color: var(--muted); line-height: 1.6; margin: 0; }
.portal-link > span:last-child { color: var(--accent); font-size: 13px; font-weight: 850; margin-top: auto; padding-top: 20px; }

.page-intro { margin-bottom: 46px; max-width: 990px; }
.page-intro h1 { font-size: clamp(43px, 7vw, 82px); hyphens: auto; letter-spacing: -.06em; line-height: .96; margin: 11px 0 22px; overflow-wrap: anywhere; }
.page-intro > p:last-child { color: var(--muted); font-size: clamp(17px, 2vw, 21px); line-height: 1.65; margin: 0; max-width: 880px; }

.metric-grid { display: grid; gap: 13px; grid-template-columns: repeat(4, 1fr); }
.metric-grid article { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; display: flex; flex-direction: column; min-height: 180px; padding: 23px; }
.metric-grid span { color: var(--muted); font-size: 12px; font-weight: 800; }
.metric-grid strong { font-size: clamp(34px, 4vw, 54px); letter-spacing: -.055em; line-height: 1; margin: 18px 0 8px; }
.metric-grid small { color: var(--muted); line-height: 1.45; margin-top: auto; }
.stats-section { margin-top: 65px; }
.section-copy { color: var(--muted); line-height: 1.65; max-width: 900px; }
.bar-chart { align-items: end; background: var(--paper); border: 1px solid var(--line); border-radius: 18px; display: grid; gap: 12px; grid-template-columns: repeat(13, minmax(50px, 1fr)); height: 340px; overflow-x: auto; padding: 28px 22px 20px; }
.bar-item { align-items: center; display: grid; grid-template-rows: 25px 1fr 34px; height: 100%; min-width: 50px; text-align: center; }
.bar-item > span { color: var(--muted); font-size: 10px; font-weight: 800; }
.bar-item > i { align-self: end; background: var(--ink); border-radius: 5px 5px 1px 1px; display: block; height: var(--bar-height); min-height: 4px; transition: height .2s ease; width: 100%; }
.bar-item:last-child > i { background: var(--accent); }
.bar-item > small { align-items: end; display: flex; font-size: 10px; justify-content: center; line-height: 1.2; padding-top: 8px; }
.chart-note { color: var(--muted); font-size: 12px; line-height: 1.55; }
.stats-table-wrap { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; overflow-x: auto; }
.stats-table { border-collapse: collapse; min-width: 720px; width: 100%; }
.stats-table th, .stats-table td { border-bottom: 1px solid var(--line); font-size: 13px; padding: 15px 18px; text-align: right; }
.stats-table thead th { color: var(--muted); font-size: 10px; letter-spacing: .055em; text-transform: uppercase; }
.stats-table th:first-child { min-width: 240px; text-align: left; }
.stats-table tbody tr:last-child th, .stats-table tbody tr:last-child td { border-bottom: 0; }
.stats-table tbody th span { display: block; margin-bottom: 8px; }
.stats-table tbody th i { background: #d9e4e9; border-radius: 99px; display: block; height: 5px; width: var(--row-width); }
.change-up { color: #8d530d; font-weight: 850; }
.change-down { color: #366475; font-weight: 850; }
.industry-grid { display: grid; gap: 12px; grid-template-columns: repeat(4, 1fr); margin-top: 24px; }
.industry-grid article { background: var(--paper); border: 1px solid var(--line); border-radius: 15px; min-height: 145px; padding: 20px; }
.industry-grid article.is-unclassified { background: #eef2f3; }
.industry-grid h3 { font-size: 15px; line-height: 1.3; margin: 0 0 13px; }
.industry-grid strong { display: block; font-size: 33px; letter-spacing: -.04em; }
.industry-grid p { color: var(--muted); font-size: 11px; line-height: 1.5; margin: 6px 0 0; }
.method-card { background: var(--ink); border-radius: 18px; color: #fff; margin-top: 65px; padding: clamp(25px, 4vw, 42px); }
.method-card h2 { font-size: clamp(26px, 3vw, 40px); letter-spacing: -.04em; margin: 9px 0 18px; }
.method-card ul { color: #c3d0d7; line-height: 1.7; margin: 0; padding-left: 21px; }

.news-intro { max-width: 1040px; }
.lead-story { background: var(--ink); border-radius: 20px; color: #fff; display: grid; gap: 26px; min-height: 360px; padding: clamp(28px, 5vw, 58px); }
.lead-story h2 { font-size: clamp(32px, 5vw, 58px); letter-spacing: -.05em; line-height: 1.03; margin: 13px 0 18px; max-width: 970px; }
.lead-story h2 a { text-decoration: none; }
.lead-story h2 a:hover { text-decoration: underline; text-decoration-color: var(--accent); text-decoration-thickness: 3px; text-underline-offset: 6px; }
.lead-story > div > p:last-child { color: #c3d0d7; font-size: 18px; line-height: 1.65; max-width: 850px; }
.lead-story footer { align-items: center; align-self: end; border-top: 1px solid #385366; color: #bac8d0; display: flex; font-size: 12px; gap: 16px; justify-content: space-between; padding-top: 20px; }
.story-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); margin-top: 16px; }
.story-grid article { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 24px; }
.story-grid h2 { font-size: 23px; letter-spacing: -.03em; line-height: 1.15; }
.story-grid h2 a { text-decoration-thickness: 1px; text-underline-offset: 4px; }
.story-grid article > p:not(.eyebrow) { color: var(--muted); line-height: 1.55; }
.story-grid time { color: var(--muted); font-size: 12px; }
.editorial-strip { align-items: center; background: var(--accent-soft); border: 1px solid #ead7ad; border-radius: 17px; display: flex; gap: 30px; justify-content: space-between; margin-top: 48px; padding: 25px 28px; }
.editorial-strip strong { font-size: 19px; }
.editorial-strip p { color: #71430d; line-height: 1.55; margin: 5px 0 0; }
.editorial-strip .button { flex: 0 0 auto; }

.article-shell { max-width: 1040px; }
.news-article { background: var(--paper); border: 1px solid var(--line); border-radius: 20px; box-shadow: 0 18px 50px rgba(20,43,61,.07); overflow: hidden; }
.news-article > header { padding: clamp(27px, 6vw, 68px) clamp(25px, 7vw, 82px) 38px; }
.news-article h1 { font-size: clamp(38px, 6vw, 70px); hyphens: auto; letter-spacing: -.055em; line-height: 1.01; margin: 12px 0 24px; overflow-wrap: anywhere; }
.article-dek { color: #48606f; font-size: clamp(18px, 2.4vw, 23px); line-height: 1.55; margin: 0; }
.byline { border-top: 1px solid var(--line); color: var(--muted); display: flex; flex-wrap: wrap; font-size: 12px; gap: 9px 20px; margin-top: 28px; padding-top: 17px; }
.byline a { color: var(--ink); font-weight: 800; }
.article-figure { background: var(--ink); margin: 0; }
.article-figure img { display: block; height: auto; width: 100%; }
.article-body, .article-sources { margin-left: auto; margin-right: auto; max-width: 760px; padding-left: 25px; padding-right: 25px; }
.article-body { padding-bottom: 25px; padding-top: 36px; }
.article-body section { margin: 0 0 40px; }
.article-body h2 { font-size: clamp(25px, 3.4vw, 34px); letter-spacing: -.035em; line-height: 1.12; margin: 0 0 15px; }
.article-body p, .article-body li { color: #344b5b; font-family: Georgia, "Times New Roman", serif; font-size: 18px; line-height: 1.78; }
.article-body ul { padding-left: 24px; }
.article-sources { border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.65; padding-bottom: 50px; padding-top: 28px; }
.article-sources h2 { color: var(--ink); font-size: 19px; }
.article-sources a { color: var(--accent); font-weight: 750; }

.breadcrumbs { color: var(--muted); display: flex; font-size: 12px; gap: 8px; margin-bottom: 18px; }
.detail-card, .card, .source-card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 18px 50px rgba(20,43,61,.07); }
.detail-card { padding: clamp(23px, 4vw, 42px); }
.detail-heading { align-items: start; border-bottom: 1px solid var(--line); display: flex; gap: 30px; justify-content: space-between; padding-bottom: 25px; }
.detail-heading h1 { font-size: clamp(34px, 5vw, 62px); letter-spacing: -.055em; line-height: 1.02; margin: 8px 0 9px; }
.detail-heading p:last-child { color: var(--muted); margin: 0; }
.detail-heading time { background: var(--accent-soft); border-radius: 999px; color: #71430d; flex: 0 0 auto; font-size: 13px; font-weight: 850; padding: 9px 13px; }
.facts { display: grid; gap: 11px 22px; grid-template-columns: minmax(145px, .45fr) 1.55fr; margin: 27px 0 0; }
.facts dt { color: var(--muted); }
.facts dd { font-weight: 750; margin: 0; }
.notice-text { border-top: 1px solid var(--line); margin-top: 30px; padding-top: 27px; }
.notice-text h2 { font-size: 24px; margin: 0 0 18px; }
.notice-text > div, .notice-text > p { color: #344b5b; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; line-height: 1.75; overflow-wrap: anywhere; }
.source-card { box-shadow: none; margin-top: 17px; padding: 20px 23px; }
.source-card strong { display: block; }
.source-card p { color: var(--muted); line-height: 1.6; margin: 7px 0; }
.source-card a { color: var(--accent); font-size: 13px; font-weight: 800; }

.card { padding: clamp(23px, 4vw, 42px); }
.prose h1, .error-card h1 { font-size: clamp(36px, 6vw, 62px); letter-spacing: -.055em; line-height: 1; margin: 9px 0 28px; }
.prose h2 { font-size: 23px; letter-spacing: -.02em; margin: 34px 0 10px; }
.prose p, .prose li { color: #344b5b; line-height: 1.72; }
.prose a { color: var(--accent); font-weight: 700; }
.legal-details { display: grid; gap: 11px 22px; grid-template-columns: minmax(160px, .55fr) 1.45fr; margin: 0; }
.legal-details dt { color: var(--muted); }
.legal-details dd { line-height: 1.55; margin: 0; }
.error-card p { color: var(--muted); line-height: 1.6; }
.error-card .button { margin-top: 10px; }

.site-footer { align-items: center; border-top: 1px solid var(--line); color: var(--muted); display: flex; font-size: 12px; gap: 30px; justify-content: space-between; margin: 0 auto; max-width: 1240px; padding: 25px clamp(18px, 4vw, 52px) 38px; }
.site-footer p { margin: 0; }
.site-footer nav { display: flex; flex-wrap: wrap; gap: 16px; }

@media (max-width: 980px) {
  .search-panel { grid-template-columns: 1fr 1fr; }
  .search-main { grid-column: 1 / -1; }
  .search-panel button { grid-column: 1 / -1; }
  .metric-grid, .industry-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 700px) {
  .site-header { align-items: flex-start; flex-wrap: wrap; gap: 10px; }
  .site-header nav { max-width: 100%; overflow-x: auto; width: 100%; }
  .site-header nav { gap: 2px; justify-content: space-between; }
  .site-header nav a { flex: 0 0 auto; font-size: 12px; padding-left: 7px; padding-right: 7px; }
  .hero { align-items: stretch; grid-template-columns: 1fr; }
  .data-status { max-width: 330px; }
  .search-panel { grid-template-columns: 1fr; }
  .search-main, .search-panel button { grid-column: auto; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .notice-card { grid-template-columns: 1fr; gap: 13px; }
  .notice-date { align-items: center; display: flex; gap: 12px; justify-content: space-between; }
  .notice-date span { margin: 0; text-align: right; }
  .detail-link { justify-self: start; }
  .detail-heading { flex-direction: column; gap: 15px; }
  .facts, .legal-details { grid-template-columns: 1fr; gap: 4px; }
  .facts dd, .legal-details dd { margin-bottom: 10px; }
  .site-footer { align-items: flex-start; flex-direction: column; gap: 13px; }
  .portal-links, .metric-grid, .industry-grid, .story-grid { grid-template-columns: 1fr; }
  .bar-chart { grid-template-columns: repeat(13, 58px); }
  .editorial-strip { align-items: flex-start; flex-direction: column; }
  .lead-story footer { align-items: flex-start; flex-direction: column; }
}

@media print {
  body { background: #fff; }
  .site-header, .site-footer, .search-panel, .scope-note, .source-card, .breadcrumbs { display: none !important; }
  .shell { max-width: none; padding: 0; }
  .detail-card, .card { border: 0; box-shadow: none; padding: 0; }
}
