.rankings-module{color-scheme:light;--ink:#17263b;--muted:#63738a;--blue:#2466e8;--line:#e5ebf2;--paper:#fff;--background:#f5f7fb}
.rankings-module *{box-sizing:border-box}
.rankings-module{margin:0;background:var(--background);color:var(--ink);font:15px/1.55 system-ui,-apple-system,"Segoe UI","Microsoft YaHei",sans-serif}
.rankings-module button, .rankings-module input, .rankings-module select{font:inherit}
.rankings-module button, .rankings-module select{cursor:pointer}
.rankings-module button{color:inherit}
.rankings-module button:disabled{cursor:default}
.rankings-module button:focus-visible, .rankings-module input:focus-visible, .rankings-module select:focus-visible, .rankings-module summary:focus-visible, .rankings-module a:focus-visible{outline:3px solid #4b86ef;outline-offset:4px}
.rankings-module a{color:var(--blue)}
.rankings-module [hidden]{display:none!important}
.rankings-module .wrap{width:min(1140px,calc(100% - 48px));margin:auto}
.rankings-module .topbar{height:76px;background:white;border-bottom:1px solid var(--line)}
.rankings-module .topbar .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.rankings-module .brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:650;letter-spacing:-.6px}
.rankings-module .brand img{width:32px;height:32px}
.rankings-module .demo-tag{border:1px solid #d9e5f8;color:#456384;background:#f6f9ff;font-size:12px;border-radius:30px;padding:5px 12px}
.rankings-module .hero{padding:44px 0 26px}
.rankings-module .eyebrow{font-size:12px;letter-spacing:2px;color:#718096;font-weight:650;margin:0 0 8px}
.rankings-module .hero-line{display:flex;justify-content:space-between;align-items:center;gap:24px}
.rankings-module .hero h1{font-size:clamp(25px,3vw,35px);letter-spacing:-1px;line-height:1.3;margin:0 0 12px;font-weight:720}
.rankings-module .hero p{margin:0;color:var(--muted)}
.rankings-module .stamp{text-align:right;flex-shrink:0;font-size:12px;color:var(--muted)}
.rankings-module .stamp time{display:block;font-variant-numeric:tabular-nums;font-size:17px;color:#31435b;margin-top:3px}
.rankings-module .overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:30px}
.rankings-module .stat{background:white;border:1px solid var(--line);border-radius:14px;padding:19px 22px}
.rankings-module .stat-label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.rankings-module .stat-label svg{width:18px;height:18px;color:#5878a2}
.rankings-module .stat strong{display:block;font-size:29px;font-weight:680;letter-spacing:-.7px;line-height:1.45;margin:4px 0}
.rankings-module .stat strong small{font-size:13px;font-weight:400;color:var(--muted);letter-spacing:0;margin-left:5px}
.rankings-module .stat-note{font-size:12px;color:#7a8798}
.rankings-module .view-nav{display:flex;gap:26px;border-bottom:1px solid #dbe3ee;margin-bottom:23px}
.rankings-module .view-nav button{border:0;background:none;padding:0 2px 15px;position:relative;color:var(--muted);font-weight:550;white-space:nowrap}
.rankings-module .view-nav button[aria-selected=true]{color:var(--blue)}
.rankings-module .view-nav button[aria-selected=true]::after{content:"";position:absolute;height:3px;left:0;right:0;bottom:-1px;background:var(--blue);border-radius:3px}
.rankings-module .view-nav .num{display:inline-flex;align-items:center;justify-content:center;font-size:11px;width:23px;height:23px;border-radius:7px;background:#e9eef5;margin-right:7px}
.rankings-module .view-nav button[aria-selected=true] .num{background:#e4edff}
.rankings-module .panel{background:white;border:1px solid var(--line);border-radius:18px;box-shadow:0 5px 20px #13284103;padding:28px 30px}
.rankings-module .panel-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:22px}
.rankings-module h2{font-size:21px;line-height:1.4;margin:0 0 5px;letter-spacing:-.3px}
.rankings-module .subtitle{font-size:13px;color:var(--muted);margin:0}
.rankings-module .segmented{display:flex;background:#f0f3f8;border-radius:9px;padding:4px;gap:2px}
.rankings-module .segmented button{background:none;border:0;min-height:34px;border-radius:6px;padding:5px 15px;color:#68778b;white-space:nowrap;font-size:13px}
.rankings-module .segmented button[aria-pressed=true]{background:white;color:var(--ink);box-shadow:0 1px 5px #1c304b15;font-weight:650}
.rankings-module .toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}
.rankings-module .search{position:relative;max-width:300px;flex:1}
.rankings-module .search svg{position:absolute;left:12px;top:12px;width:17px;height:17px;color:#7d8c9e;pointer-events:none}
.rankings-module .search input{background:#fafbfd;width:100%;border:1px solid var(--line);border-radius:8px;height:41px;padding:8px 35px 8px 37px;font-size:13px;color:var(--ink)}
.rankings-module .search button{position:absolute;right:6px;top:3px;border:0;background:none;font-size:22px;color:#63738a;width:32px;height:34px}
.rankings-module .limit{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--muted);flex-shrink:0}
.rankings-module .limit select{border:1px solid var(--line);border-radius:7px;background:white;color:#34465e;padding:8px;font-size:12px;max-width:160px}
.rankings-module .ranking-chart{--name:95px;--value:80px}
.rankings-module .axis{display:grid;grid-template-columns:27px var(--name) minmax(0,1fr) var(--value);gap:8px;margin-bottom:9px;font-size:11px;color:#8190a2}
.rankings-module .axis-ticks{display:flex;justify-content:space-between;grid-column:3}
.rankings-module .axis-unit{grid-column:4;text-align:right}
.rankings-module .bar-row{display:grid;grid-template-columns:27px var(--name) minmax(0,1fr) var(--value);gap:8px;align-items:center;min-height:43px;border-radius:7px;padding:3px 0}
.rankings-module .bar-row:hover{background:#f8faff}
.rankings-module .rank-number{font-size:12px;text-align:center;font-variant-numeric:tabular-nums;color:#7a899c}
.rankings-module .bar-row:nth-child(-n+3) .rank-number{font-weight:700;color:#315782}
.rankings-module .city-label{font-size:14px;overflow-wrap:anywhere}
.rankings-module .bar-track{height:29px;display:flex;align-items:center;background:repeating-linear-gradient(to right,#e7edf5 0,#e7edf5 1px,transparent 1px,transparent 25%);border-right:1px solid #e7edf5}
.rankings-module .bar-fill{display:block;height:15px;width:var(--size);border-radius:0 5px 5px 0;background:linear-gradient(90deg,#477eee,#80a8fa);transition:width .24s ease}
.rankings-module .bar-row:first-child .bar-fill{background:linear-gradient(90deg,#1955d9,#427df3)}
.rankings-module .bar-value{font-weight:650;font-size:14px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.rankings-module .bar-value small{font-weight:400;color:var(--muted);font-size:11px;margin-left:4px}
.rankings-module .chart-footer{display:flex;justify-content:space-between;gap:15px;padding-top:18px;margin-top:14px;border-top:1px solid #edf1f6;font-size:12px;color:var(--muted)}
.rankings-module .empty{padding:60px 12px;text-align:center;color:var(--muted)}
.rankings-module .more-button, .rankings-module .quiet-button{background:white;border:1px solid #dce5f0;border-radius:8px;padding:7px 14px;min-height:36px;font-size:12px;color:#45607e}
.rankings-module .compare-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:10px 0 30px}
.rankings-module .pick{padding:18px;background:var(--soft);border:1px solid var(--edge);border-radius:12px;min-width:0}
.rankings-module .pick-label{font-size:11px;font-weight:650;color:var(--color);display:block;margin-bottom:8px}
.rankings-module .pick select{width:100%;border:0;border-bottom:1px solid var(--edge);padding:4px 25px 9px 0;background:transparent;color:var(--ink);font-size:21px;font-weight:650}
.rankings-module .pick-date{font-size:12px;color:var(--muted);margin-top:10px}
.rankings-module .compare-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.rankings-module .compare-metric{min-width:0}
.rankings-module .compare-metric+ .compare-metric{border-left:1px solid var(--line);padding-left:26px}
.rankings-module .compare-metric h3{margin:0;font-size:15px}
.rankings-module .metric-unit{font-weight:400;color:var(--muted);font-size:12px}
.rankings-module .compare-scale{font-size:11px;color:#8996a7;margin:4px 0 20px}
.rankings-module .compare-row{margin:17px 0}
.rankings-module .compare-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:6px;font-size:13px;margin-bottom:7px}
.rankings-module .compare-row-head strong{font-size:21px;line-height:1;font-variant-numeric:tabular-nums}
.rankings-module .compare-rail{height:8px;background:#f0f3f8;border-radius:3px;overflow:hidden}
.rankings-module .compare-rail span{display:block;height:100%;width:var(--size);background:var(--color);border-radius:3px}
.rankings-module .decades{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px;margin:22px 0 25px;align-items:end}
.rankings-module .decade{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;border:1px solid transparent;border-radius:9px;padding:10px 8px;background:#fff;min-width:0}
.rankings-module .decade:hover, .rankings-module .decade[aria-pressed=true]{background:#f5f8ff;border-color:#dbe6fa}
.rankings-module .decade strong{font-size:18px;font-weight:650;color:#37557d;margin-bottom:7px}
.rankings-module .decade-track{height:125px;width:100%;max-width:100px;display:flex;align-items:flex-end;border-bottom:1px solid #dbe3ee}
.rankings-module .decade-track i{display:block;width:100%;background:#c2d5fa;height:var(--size);border-radius:5px 5px 0 0}
.rankings-module .decade[aria-pressed=true] i{background:#3375ef}
.rankings-module .decade-name{font-size:12px;color:var(--muted);margin-top:10px;white-space:nowrap}
.rankings-module .timeline-head{border-top:1px solid var(--line);padding:20px 0 5px;display:flex;justify-content:space-between;align-items:center;gap:15px}
.rankings-module .timeline-head h3{font-size:14px;font-weight:600;margin:0}
.rankings-module .year-row{display:grid;grid-template-columns:60px 1fr;gap:18px;padding:16px 0;position:relative}
.rankings-module .year-row::before{content:"";position:absolute;left:67px;top:0;bottom:0;border-left:1px solid #e2e9f4}
.rankings-module .year-row::after{content:"";position:absolute;left:64px;top:24px;width:7px;height:7px;border-radius:50%;background:#4c83e6;box-shadow:0 0 0 4px #f0f5fe}
.rankings-module .year-label{font-variant-numeric:tabular-nums;font-size:15px;font-weight:650;color:#426088;padding-top:2px}
.rankings-module .year-cities{display:flex;flex-wrap:wrap;gap:8px;padding-left:10px}
.rankings-module .year-chip{display:inline-flex;align-items:center;gap:12px;border:1px solid #e8edf4;background:#fafbfd;padding:5px 10px;border-radius:7px;font-size:13px}
.rankings-module .year-chip small{font-size:11px;color:#7b899b;font-variant-numeric:tabular-nums}
.rankings-module .raw-data{margin:24px 0 0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.rankings-module .raw-data summary{padding:18px 22px;font-size:14px;font-weight:550;cursor:pointer}
.rankings-module .raw-data summary span{font-size:12px;font-weight:400;color:var(--muted);margin-left:8px}
.rankings-module .table-wrap{overflow:auto;padding:0 20px 20px}
.rankings-module .raw-data table{border-collapse:collapse;width:100%;font-size:13px;font-variant-numeric:tabular-nums}
.rankings-module .raw-data th{background:#f6f8fb;white-space:nowrap}
.rankings-module .raw-data td, .rankings-module .raw-data th{padding:10px 12px;border-bottom:1px solid var(--line);text-align:right}
.rankings-module .raw-data td:first-child, .rankings-module .raw-data th:first-child{text-align:left}
.rankings-module .notes{padding:26px 4px 40px;color:var(--muted);font-size:12px}
.rankings-module .notes p{margin:5px 0}
.rankings-module .notes strong{color:#486078;font-weight:600}
.rankings-module .notes .boundary{margin-top:14px;color:#8390a2}
.rankings-module .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.rankings-module .no-script{padding:12px;background:#f8f2df;color:#5d502e;border-radius:8px}
.rankings-module .view-panel{scroll-margin-top:15px}
@media(max-width:760px){
.rankings-module .wrap{width:calc(100% - 32px)}
.rankings-module .topbar{height:64px}
.rankings-module .brand{font-size:18px}
.rankings-module .demo-tag{font-size:10px;padding:4px 8px}
.rankings-module .hero{padding-top:28px}
.rankings-module .hero-line{display:block}
.rankings-module .hero h1{font-size:26px}
.rankings-module .hero p{font-size:13px}
.rankings-module .stamp{display:flex;align-items:center;gap:8px;text-align:left;margin-top:14px;font-size:11px}
.rankings-module .stamp time{display:inline;font-size:12px;margin:0}
.rankings-module .overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:24px}
.rankings-module .stat{padding:15px 16px;border-radius:11px}
.rankings-module .stat strong{font-size:25px}
.rankings-module .stat-label{font-size:12px}
.rankings-module .stat-note{font-size:10px}
.rankings-module .view-nav{gap:17px;margin-bottom:17px}
.rankings-module .view-nav button{font-size:13px;padding-bottom:12px}
.rankings-module .view-nav .num{display:none}
.rankings-module .panel{padding:20px 17px;border-radius:13px}
.rankings-module .panel-top{display:block;margin-bottom:16px}
.rankings-module h2{font-size:19px}
.rankings-module .subtitle{font-size:12px}
.rankings-module .segmented{margin-top:16px;display:inline-flex}
.rankings-module .segmented button{padding:5px 17px}
.rankings-module .toolbar{gap:10px}
.rankings-module .search{max-width:none}
.rankings-module .search input{font-size:12px}
.rankings-module .limit>span{display:none}
.rankings-module .limit select{font-size:11px;padding:9px 5px;max-width:105px}
.rankings-module .ranking-chart{--name:65px;--value:65px}
.rankings-module .axis, .rankings-module .bar-row{grid-template-columns:19px var(--name) minmax(0,1fr) var(--value);gap:5px}
.rankings-module .city-label{font-size:12px}
.rankings-module .bar-value{font-size:12px}
.rankings-module .bar-value small{font-size:10px;margin-left:2px}
.rankings-module .rank-number{font-size:11px}
.rankings-module .bar-row{min-height:40px}
.rankings-module .bar-fill{height:12px}
.rankings-module .chart-footer{font-size:11px;flex-wrap:wrap}
.rankings-module .compare-picks{gap:8px;margin-bottom:24px}
.rankings-module .pick{padding:11px 8px;border-radius:9px}
.rankings-module .pick select{font-size:15px;padding-right:15px}
.rankings-module .pick-label{font-size:10px}
.rankings-module .pick-date{font-size:10px}
.rankings-module .compare-metrics{grid-template-columns:1fr;gap:25px}
.rankings-module .compare-metric+.compare-metric{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:20px}
.rankings-module .compare-scale{margin-bottom:14px}
.rankings-module .compare-row{margin:14px 0}
.rankings-module .decades{gap:3px;margin:18px -5px}
.rankings-module .decade{padding:7px 3px}
.rankings-module .decade-track{height:90px;max-width:35px}
.rankings-module .decade strong{font-size:15px}
.rankings-module .decade-name{font-size:10px}
.rankings-module .year-row{grid-template-columns:46px 1fr;gap:14px}
.rankings-module .year-row::before{left:52px}
.rankings-module .year-row::after{left:49px}
.rankings-module .year-label{font-size:13px}
.rankings-module .year-cities{gap:6px;padding-left:6px}
.rankings-module .year-chip{font-size:12px;gap:7px;padding:4px 7px}
.rankings-module .raw-data summary{padding:16px;font-size:13px}
.rankings-module .raw-data summary span{display:block;margin:4px 0 0 16px}
.rankings-module .notes{font-size:11px}
.rankings-module .quiet-button{margin-top:12px}
.rankings-module .timeline-head .quiet-button{margin:0}
.rankings-module .chart-footer .more-button{width:100%;margin-top:3px}}
@media(max-width:460px){
.rankings-module .compare-picks{grid-template-columns:1fr;gap:9px}
.rankings-module .pick{display:grid;grid-template-columns:46px minmax(0,1fr);align-items:center;gap:3px 12px;padding:10px 13px}
.rankings-module .pick-label{margin:0}
.rankings-module .pick select{font-size:17px;padding:2px 20px 5px 0}
.rankings-module .pick-date{grid-column:2;margin:0}}
@media(prefers-reduced-motion:reduce){
.rankings-module *{scroll-behavior:auto!important;transition:none!important}}

.rankings-module { background: transparent; font-family: inherit; }
.rankings-module .rk-surface { background: #f5f7fb; border-radius: 16px; padding: 24px; }
.rankings-module .hero { padding: 0 0 16px; }
.rankings-module .rk-page-nav { display:flex; flex-wrap:wrap; gap:4px 16px; margin:0 0 22px; border-bottom:1px solid #dce5f0; }
.rankings-module .rk-page-nav a { min-height:42px; padding:9px 2px; color:#52657e; border-bottom:3px solid transparent; text-decoration:none; font-size:14px; }
.rankings-module .rk-page-nav a[aria-current=page] { color:#195bd4; border-bottom-color:#2466e8; font-weight:650; }
.rankings-module .overview { margin-bottom:24px; }
.rankings-module .stat { padding:16px; }
.rankings-module .stat strong { display:flex; flex-wrap:wrap; align-items:baseline; gap:0 4px; font-size:27px; }
.rankings-module .stat strong small { margin-left:0; }
.rankings-module .view-nav { flex-wrap:wrap; gap:8px 24px; }
.rankings-module .city-label { color:var(--ink); text-decoration:none; }
.rankings-module .city-label:hover { color:var(--blue); text-decoration:underline; }
.rankings-module .segmented { flex-wrap:wrap; }
.rankings-module .segmented a { padding:7px 10px; font-size:12px; text-decoration:none; border-radius:6px; color:#52657e; }
.rankings-module .segmented a.active { background:white; color:#17263b; box-shadow:0 1px 5px #1c304b15; }
.rankings-module .search input { padding-left:12px; }
.rankings-module .ranking-chart { --name:120px; --value:110px; }
.rankings-module .bar-value { white-space:normal; }
.rankings-module .bar-value small { display:inline-block; }
.rankings-module .decades { grid-template-columns:repeat(var(--decade-columns),minmax(0,1fr)); }
.rankings-module .decade-name { white-space:normal; overflow-wrap:anywhere; }
.rankings-module .year-chip { color:var(--ink); text-decoration:none; flex-wrap:wrap; }
.rankings-module .year-chip:hover { border-color:#9dbbef; color:#155acb; }
.rankings-module .year-chip time { font-size:11px; color:#63738a; }
.rankings-module .notes { padding:24px 2px 0; }
.rankings-module .notes h2 { font-size:14px; margin-bottom:8px; }
.rankings-module .rk-table-controls { display:flex; flex-wrap:wrap; align-items:center; gap:12px; padding:0 20px 14px; font-size:12px; color:#63738a; }
.rankings-module .rk-table-controls input { width:min(260px,100%); height:40px; padding:8px 10px; border:1px solid #dce5f0; border-radius:8px; }
.rankings-module .rk-table td,.rankings-module .rk-table th { vertical-align:middle; padding:10px 12px; }
.rankings-module .rk-table .rk-rank { width:48px; text-align:center; color:#63738a; }
.rankings-module .rk-table .rk-city { text-align:left; min-width:95px; background:#fff; position:sticky; left:0; z-index:1; box-shadow:1px 0 #e5ebf2; white-space:normal; }
.rankings-module .rk-table thead .rk-city { background:#f6f8fb; }
.rankings-module .rk-table tbody tr:nth-child(even) td,.rankings-module .rk-table tbody tr:nth-child(even) .rk-city { background:#fafbfd; }
.rankings-module .rk-table .rk-current { font-weight:650; color:#173d75; }
.rankings-module .rk-table a { color:inherit; text-decoration:none; }
.rankings-module .rk-table a:hover { color:#195bd4; text-decoration:underline; }
.rankings-module .rk-table time { white-space:nowrap; }
.rankings-module .rk-map-link { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; }
.rankings-module .rk-map-link img { object-fit:contain; }
@media(max-width:767px) {
.rankings-module .rk-surface { padding:16px 12px; margin:0 -4px; }
.rankings-module .hero h1 { font-size:24px; }
.rankings-module .rk-page-nav { gap:2px 13px; margin-bottom:16px; }
.rankings-module .rk-page-nav a { font-size:12px; }
.rankings-module .panel { padding:18px 13px; }
.rankings-module .ranking-chart { --name:78px; --value:83px; }
.rankings-module .axis,.rankings-module .bar-row { grid-template-columns:18px var(--name) minmax(0,1fr) var(--value); gap:4px; }
.rankings-module .stat { padding:13px; }
.rankings-module .stat strong { font-size:23px; }
.rankings-module .stat strong small { font-size:11px; }
.rankings-module .bar-row { min-height:46px; }
.rankings-module .axis-ticks { font-size:9px; }
.rankings-module .axis-ticks span:nth-child(2),.rankings-module .axis-ticks span:nth-child(4) { visibility:hidden; }
.rankings-module .view-nav { gap:6px 16px; }
.rankings-module .view-nav button { white-space:normal; text-align:left; }
.rankings-module .rk-table .rk-city { min-width:85px; max-width:120px; overflow-wrap:anywhere; }
.rankings-module .table-wrap { padding:0 10px 14px; }
.rankings-module .rk-table-controls { padding:0 12px 12px; }
.rankings-module .toolbar { flex-wrap:wrap; }
.rankings-module .search { min-width:130px; }
}
