/* Stats pages — only uses existing CSS variables from styles.css */

.stats-kpi-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:18px}
.stats-kpi{flex:1 1 130px;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface)}
.stats-kpi-value{display:block;font-size:1.8rem;font-weight:650;line-height:1.1;color:var(--ink);font-variant-numeric:tabular-nums}
.stats-kpi-label{display:block;font-size:var(--text-small);color:var(--muted);margin-top:5px}

.stats-page .stats-hero{padding-top:56px}
.stats-asof{font-size:var(--text-small);color:var(--muted);margin:0 0 14px}

.stats-map-wrap{position:relative;margin:0 0 20px}
.stats-map{width:100%;height:auto;display:block;border-radius:10px;border:1px solid var(--line)}
.map-base{fill:#e8ede4}
.map-region{fill:#cdd8c6;stroke:#fff;stroke-width:.4;cursor:default}
.map-region.has-data{fill:var(--green);cursor:pointer}
.map-region.has-data:focus-visible{outline:2px solid var(--green);outline-offset:1px}
.map-dot{fill:var(--green);cursor:pointer}
.map-dot:focus-visible{outline:2px solid var(--green);outline-offset:2px}

.stats-tooltip{position:fixed;z-index:200;padding:7px 11px;background:var(--ink);color:#fff;border-radius:8px;font-size:var(--text-small);line-height:1.5;pointer-events:none;max-width:220px;white-space:normal;word-break:break-word}
.stats-tooltip[hidden]{display:none}

.stats-rankings{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:4px}
.stats-ranking-section{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.stats-ranking-section h2{font-size:.8rem;font-weight:600;color:var(--muted);margin:0 0 10px;text-transform:uppercase;letter-spacing:.04em;line-height:1.4}
.stats-unit-note{font-size:.75rem;font-weight:400;text-transform:none;letter-spacing:0}
.stats-ranking-list{margin:0;padding:0;list-style:none;counter-reset:rank}
.stats-ranking-list li{display:flex;align-items:baseline;gap:6px;padding:5px 0;border-bottom:1px solid var(--line);font-size:var(--text-small);line-height:1.4}
.stats-ranking-list li:last-child{border-bottom:none}
.stats-ranking-list li::before{counter-increment:rank;content:counter(rank);min-width:16px;color:var(--muted);font-size:.75rem;flex-shrink:0}
.stats-rank-name{flex:1;color:var(--ink);word-break:break-word}
.stats-rank-value{color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:4px}
.stats-ranking-empty{color:var(--muted)!important;font-style:italic}
.stats-ranking-empty::before{display:none}
.stats-unknown-note,.stats-city-note{font-size:.75rem;color:var(--muted);margin-top:8px;line-height:1.6}

.stats-loading,.stats-error-state{padding:36px 0;text-align:center;color:var(--muted);font-size:var(--text-small)}
.stats-error-state p{margin-bottom:12px}
.stats-empty{padding:14px 0;font-size:var(--text-small);color:var(--muted);text-align:center}

.stats-methodology{margin-top:48px;padding-top:24px;border-top:1px solid var(--line)}
.stats-methodology h2{font-size:1rem;font-weight:600;margin-bottom:12px;color:var(--ink)}
.stats-methodology ul{padding-left:18px;margin:0}
.stats-methodology li{font-size:var(--text-small);color:var(--muted);line-height:1.85;margin-bottom:4px}
.stats-not-participating{margin-top:14px;padding:13px 15px;background:var(--sage);border-radius:8px;font-size:var(--text-small);color:var(--muted);line-height:1.8;border:1px solid var(--line)}

.stats-home-block{padding:48px 0;border-top:1px solid var(--line)}
/* 首页只放紧凑版：数字与地图收窄居中 */
.stats-home-block .stats-container{max-width:760px;margin-inline:auto}
.stats-home-block .stats-home-title{max-width:760px;margin-inline:auto}
.stats-home-block .stats-view-link{margin-left:max(0px,calc((100% - 760px) / 2))}
.stats-home-title{font-size:1.3rem;font-weight:650;color:var(--ink);margin:0 0 18px}
.stats-view-link{display:inline-block;margin-top:14px;font-size:var(--text-small)}

.stats-embed-page{margin:0;min-height:100vh;background:var(--paper)}
.stats-embed-page .stats-hero{padding:16px}
.stats-embed-title{font-size:1rem;font-weight:600;color:var(--ink);margin:0 0 14px}
.stats-embed-page .stats-kpi-value{font-size:1.35rem}
.stats-embed-page .stats-map{max-height:160px}

[data-theme=dark]{--paper:#1a1f1c;--surface:#242a26;--ink:#e2ede0;--muted:#7a9478;--line:#2e3830;--green-soft:#1c2920;--sage:#1f2921}
[data-theme=dark] .map-base{fill:#1e2820}
[data-theme=dark] .map-region{fill:#2c3829;stroke:#1a1f1c}
[data-theme=dark] .map-region.has-data{fill:#5a9460}
[data-theme=dark] .map-dot{fill:#5a9460}
[data-theme=dark] .stats-tooltip{background:#d4ead2;color:#1a2318}

@media(max-width:650px){
  .stats-page .stats-hero{padding-top:32px}
  .stats-kpi-value{font-size:1.4rem}
  .stats-kpi{padding:13px 12px}
  .stats-kpi-label{font-size:12px;white-space:nowrap}
  .stats-rankings{grid-template-columns:1fr}
}
@media(max-width:390px){
  .stats-kpi-row{gap:10px}
  .stats-kpi{flex:1 1 80px}
}
