* { box-sizing: border-box; }
:root { color-scheme: light; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif; color: #17243b; background: #f3f6fb; }
body { margin: 0; line-height: 1.65; }
a { color: #1d4ed8; text-underline-offset: 3px; overflow-wrap: anywhere; }
a:hover { color: #1e3a8a; }
a:focus-visible, summary:focus-visible { outline: 3px solid #60a5fa; outline-offset: 4px; border-radius: 4px; }
main { max-width: 1220px; margin: auto; padding: 28px 28px 40px; }
.top-nav { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; font-size: 14px; }
.top-nav div { display: flex; flex-wrap: wrap; gap: 18px; }
.hero { padding: 42px 0 24px; max-width: 930px; }
.eyebrow { color: #4b6180; font-size: 12px; font-weight: 700; letter-spacing: .07em; margin: 0 0 10px; }
h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.2; letter-spacing: -.035em; margin: 0 0 18px; }
.intro { color: #40516b; margin: 0; font-size: 17px; }
.catalog-meta { display: flex; flex-wrap: wrap; gap: 12px 24px; color: #52627b; margin: 22px 0 0; font-size: 14px; }
.catalog-meta strong { color: #1d4ed8; }
.boundary-note { padding: 20px 24px; border: 1px solid #cdddff; background: #eaf1ff; border-radius: 14px; margin-bottom: 28px; }
.boundary-note h2 { font-size: 16px; margin: 0 0 8px; }
.boundary-note ul { margin: 0; padding-left: 20px; color: #3a506f; font-size: 14px; }
.boundary-note li + li { margin-top: 5px; }
.dataset-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.dataset-card { min-width: 0; padding: 26px; background: #fff; border: 1px solid #dce4ef; border-radius: 16px; box-shadow: 0 3px 12px #203b6510; overflow-wrap: anywhere; }
.dataset-card h2 { font-size: 23px; line-height: 1.35; letter-spacing: -.02em; margin: 0; }
.focus { color: #1d4ed8; font-size: 14px; font-weight: 600; margin: 10px 0 0; }
.summary { font-size: 15px; color: #40516b; margin: 18px 0; }
.coverage { padding: 13px 16px; background: #f4f7fc; border-radius: 9px; font-size: 14px; }
.coverage strong { color: #354d6e; font-size: 12px; }
.coverage p { margin: 4px 0 0; }
dl { margin: 18px 0; font-size: 14px; }
dl > div { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 12px; padding: 8px 0; border-bottom: 1px solid #edf0f5; }
dt { color: #62718a; }
dd { margin: 0; }
.download-box { background: #edf4ff; border: 1px solid #d8e6ff; border-radius: 10px; padding: 16px; margin-top: 20px; }
h3 { font-size: 14px; margin: 0 0 10px; }
.download-item + .download-item { margin-top: 12px; }
.download-button { display: block; text-align: center; padding: 10px 14px; border-radius: 7px; background: #2563eb; color: #fff; text-decoration: none; font-size: 14px; font-weight: 650; }
.download-button:hover { background: #1d4ed8; color: #fff; }
.download-kind { display: block; color: #526681; font-size: 12px; margin-top: 4px; }
.download-note { font-size: 12px; color: #526681; margin: 12px 0 0; }
details { margin-top: 20px; font-size: 14px; }
summary { cursor: pointer; color: #1d4ed8; font-weight: 600; padding: 5px 0; }
.detail-facts { margin-top: 10px; }
.sources { padding-left: 20px; margin-bottom: 0; }
.sources li + li { margin-top: 7px; }
footer { color: #65748a; font-size: 12px; margin-top: 30px; }
footer p { margin: 5px 0; }
code { overflow-wrap: anywhere; }
.sr-only, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.skip-link:focus { display: block; padding: 10px 24px; background: #fff; }
@media (max-width: 760px) {
  main { padding: 20px 16px 32px; }
  .hero { padding-top: 32px; }
  .intro { font-size: 15px; }
  .dataset-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .dataset-card { padding: 20px; }
  .dataset-card h2 { font-size: 21px; }
  .boundary-note { padding: 17px 18px; }
  dl > div { grid-template-columns: 66px minmax(0, 1fr); gap: 10px; }
}
