/* Datasets page: provider accordions, catalog counts and access routes. Builds on /styles.css. */
.datasets-page{--soft:#5b6966;--rule:#e7e8e0;--dash:#dcdfd3;--body:#36504a}
.tone-open{--tone:#3f8a5f;--tone-bg:#deecdf;--tone-ink:#275c3b}
.tone-key{--tone:#4f86c0;--tone-bg:#e1e9f2;--tone-ink:#35526f}
.tone-apply{--tone:#d29a4c;--tone-bg:#f4e7d1;--tone-ink:#7a4f1c}
.tone-paid{--tone:#8f6aa8;--tone-bg:#ece4f1;--tone-ink:#5a3f70}
.tone-other{--tone:#8e9690;--tone-bg:transparent;--tone-ink:#59655b}
.mini-label{display:inline-block;margin:0;font-size:9px;font-weight:650;letter-spacing:1px;text-transform:uppercase;color:var(--soft)}
.access-badge{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:4px 9px 4px 8px;border:1px solid transparent;border-radius:3px;background:var(--tone-bg);color:var(--tone-ink);font-size:11px;font-weight:600;line-height:1.35}
.access-badge::before{content:'';flex:none;width:7px;height:7px;border-radius:50%;background:var(--tone)}
.access-badge.tone-other{border:1px dashed #b9bfb3}
.swatch{display:inline-block;flex:none;width:8px;height:8px;border-radius:2px;background:var(--tone)}
.datasets-page mark{background:#f8dfc4;color:inherit;border-radius:2px;padding:0 1px}
.datasets-page code{font:11px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#f0f0e8;border-radius:3px;padding:2px 5px;overflow-wrap:anywhere}

/* Hero, access key and counts strip reuse the home page's hero, atlas panel and strip. */
.datasets-hero{padding-block:58px 50px}
.datasets-hero .hero-description{max-width:490px}
.datasets-hero .hero-stats div:last-child dd{font-size:27px;line-height:inherit}
.access-panel{min-height:0}
.access-list{flex:1;display:flex;flex-direction:column;justify-content:center;list-style:none;margin:0;padding:6px 15px 12px}
.access-list li+li{border-top:1px solid #ffffff1a}
.access-item{display:grid;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:4px 14px;width:100%;padding:15px 10px;border:0;border-radius:4px;background:none;color:var(--paper);text-align:left;transition:background .15s}
button.access-item:hover{background:#ffffff0f}
.access-item[aria-pressed=true]{background:#ffffff1c;box-shadow:inset 3px 0 0 var(--accent)}
.access-item .swatch{width:9px;height:9px;border-radius:50%}
.access-name{font-size:14px;font-weight:550}
.access-count{grid-column:3;grid-row:1/span 2;min-width:2ch;font:400 30px/1 var(--serif);text-align:right}
.access-meaning{grid-column:2;font-size:11px;line-height:1.5;color:#bccac3}
.access-panel .tone-open{--tone:#7cc49a}.access-panel .tone-key{--tone:#8fb4e0}.access-panel .tone-apply{--tone:#e8b46a}.access-panel .tone-paid{--tone:#c3a3d8}.access-panel .tone-other{--tone:#bccac3}
.datasets-page .audit-strip p{margin:0;max-width:860px;line-height:1.6}
.datasets-page .audit-strip .shell{padding-block:12px}
.datasets-page .audit-strip .status-line{flex:none}

/* Directory controls. */
.datasets-directory{padding-top:56px}
#directory-title:focus,#services-title:focus{outline:0}
.dataset-tabs{flex-wrap:wrap;column-gap:25px;row-gap:0}
.dataset-tabs a{display:inline-flex;align-items:center;margin-bottom:-1px;padding:12px 0;border-bottom:2px solid transparent;font-size:14px;color:var(--muted);white-space:nowrap}
.dataset-tabs a:hover{color:var(--green)}
.dataset-tabs a[aria-current=page]{border-color:var(--ink);color:var(--ink);font-weight:650}
.dataset-tabs a span{margin-left:6px;padding:3px 7px;border-radius:3px;background:#e5e6dd;font-size:10px;font-weight:500}
.dataset-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.dataset-filters label{display:block;font-size:10px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--soft)}
.result-actions{display:flex;gap:20px}
.result-actions .text-button{padding:4px 0}
.link-notice{margin:0 0 16px;padding:11px 16px;border-left:3px solid var(--accent);background:#eeeae0;font-size:12px;line-height:1.6;color:#4d5f5a}

/* Provider accordion. The toggle's ::after stretches over the whole header. */
.provider-list{display:grid;gap:12px}
.provider{background:var(--white);border:1px solid var(--line);border-radius:6px;transition:box-shadow .18s,border-color .18s}
.provider:hover{border-color:#c9cebf}
.provider.is-open{box-shadow:0 10px 26px #1637310f}
.provider-head{position:relative;display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr) 34px;grid-template-areas:"routes counts ." "title counts ." "summary counts ." "access access access";gap:0 48px;padding:24px 24px 0 28px}
.provider-routes{grid-area:routes;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0}
.provider-group{flex-basis:100%;margin-bottom:3px;font-size:9px;font-weight:650;letter-spacing:1.1px;text-transform:uppercase;color:var(--green)}
.provider-group.group-platform_data{color:#5a3f70}
.route-note{font-size:11px;color:#7a4f1c;padding-left:2px}
.provider-title{grid-area:title;margin:12px 0 0;font:inherit}
.provider-toggle{display:block;width:100%;padding:0;border:0;background:none;color:inherit;text-align:left}
.provider-toggle::after{content:'';position:absolute;inset:0;border-radius:5px}
.provider-toggle:focus-visible{outline:0}
.provider-toggle:focus-visible::after{outline:3px solid var(--accent);outline-offset:-3px}
.provider-name{display:block;font:400 31px/1.08 var(--serif);letter-spacing:-.4px;overflow-wrap:anywhere;transition:color .15s}
.provider-head:hover .provider-name{color:var(--green)}
.provider-summary{grid-area:summary;max-width:58ch;margin:9px 0 0;font-size:13.5px;line-height:1.65;color:var(--body)}
.chevron{position:absolute;top:24px;right:24px;display:grid;place-items:center;width:34px;height:34px;border:1px solid #c9cebf;border-radius:50%;transition:transform .2s,background .2s,border-color .2s}
.chevron::before{content:'';width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.provider-toggle[aria-expanded=true] .chevron{transform:rotate(180deg);background:var(--ink);border-color:var(--ink);color:var(--paper)}

/* Two counts that must never be confused: what this page lists, and what the provider publishes. */
.provider-counts{grid-area:counts;align-self:start;display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0 28px;margin:2px 0 0}
.provider-counts>div+div{padding-left:28px;border-left:1px solid var(--rule)}
.provider-counts dt{font-size:9px;font-weight:650;letter-spacing:1px;text-transform:uppercase;color:var(--soft)}
.provider-counts dd{margin:7px 0 0;font-size:12px;line-height:1.5;color:var(--soft)}
.count-figure{display:block;font:400 30px/1.05 var(--serif);letter-spacing:-.4px;color:var(--ink)}
.count-unit{display:block;margin-top:4px;color:#46594f}
.count-detail{display:block;margin-top:3px;font-size:11px;color:var(--soft)}
.count-catalog.is-unknown .count-figure{font-size:22px;line-height:1.36;color:#6c7773}
.provider-access{grid-area:access;display:flex;align-items:baseline;justify-content:space-between;gap:10px 24px;margin-top:20px;padding:13px 0 16px;border-top:1px dashed var(--dash);font-size:12.5px;line-height:1.6;color:#44584f}
.provider-access p{margin:0;max-width:86ch}
.provider-access .mini-label{margin-right:8px}
.provider:not(.is-open) .provider-summary,.provider:not(.is-open) .provider-access p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.catalog-link{position:relative;z-index:1;flex:none;font-size:12px;font-weight:600;color:var(--green)}
.catalog-missing{flex:none;font-size:11px;color:var(--soft)}

/* Expanded panel: the access route and the notes behind the counts. */
.provider-panel{padding:0 28px 8px;border-top:1px solid var(--rule)}
.provider-guide{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:28px 56px;padding:24px 0 26px;border-bottom:1px solid var(--rule)}
.access-route{min-width:0}
.access-badges{display:flex;flex-wrap:wrap;gap:6px 8px;margin:10px 0 0}
.access-summary{max-width:62ch;margin:12px 0 0;font-size:14.5px;line-height:1.6;color:var(--ink)}
.access-cost{margin:10px 0 0;font-size:12.5px;color:var(--body)}
.access-cost .mini-label{margin-right:8px}
.access-steps-label{margin-top:18px}
.access-steps{display:grid;gap:9px;max-width:66ch;margin:9px 0 0;padding:0;list-style:none;counter-reset:step}
.access-steps li{position:relative;padding-left:32px;font-size:13px;line-height:1.6;color:var(--body);counter-increment:step;overflow-wrap:anywhere}
.access-steps li::before{content:counter(step);position:absolute;left:0;top:.05em;display:grid;place-items:center;width:20px;height:20px;border:1px solid #bfc8bd;border-radius:50%;font-size:10px;font-weight:650;color:var(--green)}
.access-limits{margin-top:18px}
.access-limits ul{display:grid;gap:6px;max-width:66ch;margin:8px 0 0;padding:0;list-style:none}
.access-limits li{position:relative;padding-left:17px;font-size:12.5px;line-height:1.6;color:#46594f}
.access-limits li::before{content:'';position:absolute;left:0;top:.8em;width:8px;height:1.5px;background:var(--accent)}
.access-links{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0}
.access-link{display:inline-flex;align-items:center;padding:8px 13px;border:1px solid #a9b8a8;border-radius:3px;background:var(--white);font-size:12px;font-weight:600;color:var(--ink);transition:border-color .15s,color .15s}
.access-link:hover{border-color:var(--green);color:var(--green)}
.access-links .access-link:first-child{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.access-links .access-link:first-child:hover{background:var(--green);border-color:var(--green);color:var(--paper)}
.access-sources{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:16px 0 0;font-size:11px;line-height:1.6;color:var(--soft)}
.access-sources a{color:var(--green);overflow-wrap:anywhere}
.access-sources a:hover{text-decoration:underline}
.access-checked{margin-left:4px;padding-left:10px;border-left:1px solid var(--dash)}
.count-notes{min-width:0;padding-left:32px;border-left:1px solid var(--rule)}
.count-notes dl{display:grid;gap:15px;margin:12px 0 0}
.count-notes dt{font-size:9px;font-weight:650;letter-spacing:1px;text-transform:uppercase;color:var(--soft)}
.count-notes dd{margin:5px 0 0;font-size:12.5px;line-height:1.6;color:var(--body)}
.count-notes dd strong{font-weight:650;color:var(--ink)}
.count-meta{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:5px;font-size:11px;color:var(--soft)}
.count-meta a{color:var(--green);overflow-wrap:anywhere}
.count-meta a:hover{text-decoration:underline}
.provider-links,.dataset-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0}
.provider-links{margin-top:18px}
.provider-links a,.dataset-links a,.catalog-link{font-size:12px;font-weight:600;color:var(--green)}
.provider-links a:hover,.dataset-links a:hover,.catalog-link:hover{text-decoration:underline}
.panel-subhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:18px 0 4px}
.panel-subhead p{margin:0}
.panel-count{font-size:11px;color:var(--soft)}

/* Dataset rows. */
.dataset-list{list-style:none;margin:0;padding:0}
.dataset{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(250px,1fr);grid-template-areas:"name name" "main access";gap:10px 56px;padding:22px 0 24px;border-top:1px solid var(--rule);scroll-margin-top:24px}
.dataset:first-child{border-top:0}
.dataset-name{grid-area:name;margin:0;font:400 25px/1.15 var(--serif);letter-spacing:-.2px;overflow-wrap:anywhere}
.dataset-main{grid-area:main;min-width:0}
.dataset-access{grid-area:access;min-width:0}
.dataset-description{max-width:64ch;margin:0;font-size:14px;line-height:1.7;color:#324e48}
.dataset-description.is-missing{font-style:italic;color:var(--soft)}
.dataset-uses{margin-top:14px}
.dataset-uses ul{display:grid;gap:5px;margin:7px 0 0;padding:0;list-style:none}
.dataset-uses li{position:relative;padding-left:17px;font-size:13px;line-height:1.6;color:#46594f}
.dataset-uses li::before{content:'';position:absolute;left:0;top:.8em;width:8px;height:1.5px;background:var(--accent)}
.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin:15px 0 0}
.tag{padding:3px 7px;border-radius:2px;background:#edf0e9;color:#53675a;font-size:10px;line-height:1.4}
.access-route.is-shared .access-badges{margin-top:8px}
.access-same{margin:9px 0 0;font-size:12px;line-height:1.6;color:var(--soft)}
.access-route.is-own{padding:16px 18px 18px;border:1px solid #ead9bb;border-left:3px solid #d29a4c;border-radius:4px;background:#fcf7ec}
.access-route.is-own>.mini-label{color:#7a4f1c}
.access-route.is-own .access-summary{font-size:13.5px}
.access-route.is-own .access-steps li,.access-route.is-own .access-limits li{font-size:12.5px}
.access-route.is-own .access-links .access-link:first-child{background:var(--white);border-color:#a9b8a8;color:var(--ink)}
.dataset-links{margin-top:14px}
.dataset-links .muted{font-size:12px;color:var(--soft)}
.dataset-id{margin:10px 0 0;font-size:10px;color:var(--soft)}
.dataset-id code{font-size:10px}
.dataset.is-target{margin-inline:-28px;padding-inline:28px;background:linear-gradient(90deg,#fbefe3,#fbefe300 75%);box-shadow:inset 3px 0 0 var(--accent)}
.dataset:focus,.service:focus{outline:0}

/* Service APIs: listed apart from datasets and never counted with them. */
.services{padding-block:52px 58px;border-top:1px solid var(--line)}
.services-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:end;gap:20px 64px;margin-bottom:22px}
.services-head .eyebrow{margin-bottom:6px}
.services-head h2{font:400 34px/1.12 var(--serif);letter-spacing:-.5px;margin:0}
.services-head>p{max-width:60ch;margin:0;font-size:13px;line-height:1.75;color:var(--muted)}
.service-details{border:1px solid var(--line);border-radius:6px;background:var(--white)}
.service-details summary{padding:15px 20px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}
.service-details summary:hover{color:var(--green)}
.service-details[open] summary{border-bottom:1px solid var(--rule)}
.service-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;margin:0;padding:6px 20px 14px;list-style:none}
.service{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 12px;padding:12px 0;border-top:1px solid var(--rule);scroll-margin-top:24px}
.service-name{font-size:13.5px;font-weight:650;color:var(--ink)}
.service-name:hover{color:var(--green);text-decoration:underline}
.service-caps{grid-column:1/-1;grid-row:2;font-size:11.5px;line-height:1.55;color:var(--soft)}
.service-docs{font-size:11px;font-weight:600;color:var(--green);white-space:nowrap}
.service-docs:hover{text-decoration:underline}
.service.is-target{margin-inline:-10px;padding-inline:10px;border-radius:3px;background:#fbefe3;box-shadow:inset 3px 0 0 var(--accent)}
.services .inline-link{display:inline-block;margin-top:16px;font-size:12px}

/* Loading, empty and error states. */
.list-loading{margin:0;padding:48px 0;text-align:center;font-size:12px;color:var(--soft)}
.provider-list .empty{padding:56px 24px}
.empty-aside{margin:12px 0 0;font-size:13px}
.empty-aside a{color:var(--green);text-decoration:underline}
.empty-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px 24px;margin-top:20px}
.empty-actions .load-more{margin:0}
.empty-actions .inline-link{margin:0}
.load-error{border-color:#d9a291;background:#fbf3ef}
.noscript-note{margin:0;padding:18px 20px;border-left:3px solid var(--accent);background:#eeeae0;font-size:13px}
.noscript-note a{color:var(--green);text-decoration:underline}

@media(max-width:1050px){.provider-head{column-gap:32px}.provider-counts{gap:0 20px}.provider-counts>div+div{padding-left:20px}.provider-guide{column-gap:36px}.count-notes{padding-left:24px}.dataset{grid-template-columns:minmax(0,1.4fr) minmax(220px,1fr);column-gap:36px}.dataset-filters{gap:12px}.services-head{column-gap:40px}.service-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:780px){.datasets-page .masthead nav a:nth-child(4){display:none}.datasets-hero{padding-block:36px}.datasets-directory{padding-top:42px}.dataset-filters{grid-template-columns:1fr 1fr}.result-bar{flex-wrap:wrap;gap:10px 16px}.provider-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"routes" "title" "summary" "counts" "access";gap:0;padding:20px 18px 0}.provider-routes{padding-right:46px}.chevron{top:18px;right:16px;width:32px;height:32px}.provider-name{font-size:27px}.provider-counts{margin-top:18px;padding-top:16px;border-top:1px dashed var(--dash)}.provider-access{flex-direction:column;align-items:flex-start;gap:8px;margin-top:16px}.provider-panel{padding:0 18px 4px}.provider-guide{grid-template-columns:minmax(0,1fr);gap:22px;padding:20px 0 22px}.count-notes{padding:20px 0 0;border-left:0;border-top:1px dashed var(--dash)}.dataset{grid-template-columns:minmax(0,1fr);grid-template-areas:"name" "main" "access";gap:10px}.dataset-access{margin-top:6px;padding-top:14px;border-top:1px dashed var(--dash)}.dataset.is-target{margin-inline:-18px;padding-inline:18px}.services{padding-block:40px 44px}.services-head{grid-template-columns:minmax(0,1fr);gap:12px}.services-head h2{font-size:30px}}
@media(max-width:480px){.datasets-hero .hero-stats{gap:16px}.datasets-hero .hero-stats div+div{padding-left:14px}.datasets-hero .hero-stats dt{font-size:9px;letter-spacing:.6px}.datasets-hero .hero-stats div:last-child dd{font-size:25px}.dataset-tabs{column-gap:18px}.dataset-tabs a{font-size:12px}.provider-name{font-size:26px}.count-figure{font-size:27px}.count-catalog.is-unknown .count-figure{font-size:20px}.dataset-name{font-size:23px}.access-item{padding-inline:6px}.access-name{font-size:13px}.access-count{font-size:26px}.access-link{padding:9px 12px}.service-list{grid-template-columns:minmax(0,1fr);padding-inline:16px}}
@media(max-width:360px){.dataset-filters{grid-template-columns:1fr}.provider-counts{grid-template-columns:minmax(0,1fr);gap:14px}.provider-counts>div+div{padding-left:0;border-left:0}}
@media(forced-colors:active){.access-badge,.access-badge.tone-other{border:1px solid CanvasText}.swatch,.access-badge::before{forced-color-adjust:none}.access-item[aria-pressed=true]{outline:2px solid Highlight}.access-route.is-own{border:1px solid CanvasText}}

.dataset-coverage{padding:.7rem 1rem;margin:1rem 0;border-left:2px solid var(--accent);background:rgba(23,45,53,.035)}.dataset-coverage p{font-size:.82rem;line-height:1.6;overflow-wrap:anywhere}.dataset-coverage p:last-child{margin-bottom:0}
