:root{color-scheme:dark;font-family:Instrument Sans,Microsoft YaHei UI,PingFang SC,Noto Sans CJK SC,sans-serif;color:#e9f3fc;background:#0a1220;font-synthesis:none;--panel: #101d2d;--border: #23384c;--muted: #94aac0;--accent: #68e5d4}*{box-sizing:border-box}body{margin:0;min-width:300px;background:radial-gradient(ellipse at 30% 0%,#13263c 0%,transparent 47rem),#0a1220}button,select,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{opacity:.38;cursor:default}button:focus-visible,select:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}h1,h2,p{margin:0}a{color:#a3c6dd;text-underline-offset:3px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.topbar{border-bottom:1px solid #213448;background:#0c1725e8}.topbar-inner{max-width:1920px;margin:auto;padding:15px 26px;display:flex;align-items:center;justify-content:space-between;gap:15px}.brand,.top-controls{display:flex;align-items:center;gap:14px}.brand-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;color:#a1f8e9;background:linear-gradient(145deg,#204a52,#123240);border:1px solid #30606a;box-shadow:inset 0 1px #73ead42d}.brand-icon svg{width:24px;height:24px}.brand h1{font-size:21px;letter-spacing:.06em;font-weight:720}.brand p{margin-top:3px;color:var(--muted);font-size:11px;letter-spacing:.11em}.demo-tag{white-space:nowrap;display:inline-flex;align-items:center;gap:7px;font-size:12px;color:#ffda9a;border:1px solid #70502e;background:#31261f;border-radius:999px;padding:6px 10px}.demo-tag i,.map-footer i{width:6px;height:6px;border-radius:50%;background:currentColor;display:inline-block}.load-time{color:var(--muted);white-space:nowrap;font-size:12px;font-variant-numeric:tabular-nums}.outline{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #344b62;border-radius:8px;background:#152638;padding:7px 11px;font-size:12px}.outline:not(:disabled):hover,.map-tools button:hover{border-color:#5faea9;background:#1d3747}.refresh svg{width:15px;height:15px}.dashboard{max-width:1920px;padding:20px 24px 12px;margin:auto}.dashboard-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(268px,1fr);gap:15px;align-items:stretch}.panel{min-width:0;border:1px solid var(--border);border-radius:15px;background:var(--panel);box-shadow:0 12px 28px #04081032,inset 0 1px #d0e6ff06}.map-panel{display:flex;flex-direction:column;overflow:hidden}.map-header{display:flex;align-items:center;justify-content:space-between;gap:13px;padding:18px 20px 12px}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.08em;color:var(--accent)}.breadcrumb svg{width:14px;height:14px}.breadcrumb button{border:0;padding:0;background:none;text-decoration:underline;color:inherit}.map-header h2{margin-top:6px;font-size:clamp(20px,2vw,29px);letter-spacing:.045em;line-height:1.35;white-space:nowrap}.segmented{display:flex;padding:4px;gap:2px;border:1px solid #2a4056;border-radius:9px;background:#0b1726}.segmented button{border:1px solid transparent;border-radius:6px;padding:7px 11px;background:transparent;color:#afc2d3;white-space:nowrap;font-size:12px}.segmented button[aria-pressed=true]{background:#213e46;border-color:#3e6266;color:#a8ffec}.segmented button:hover{color:#d9fff9}.map-subbar{padding:0 20px 10px;display:flex;align-items:center;justify-content:space-between;gap:12px}.map-day{color:#abc0d3;font-size:12px;display:flex;align-items:center;gap:6px}.map-day svg{width:15px;color:#7a9fb4}.region-picker select{max-width:180px;background:#152538;border:1px solid #344b62;border-radius:6px;font-size:12px;color:#c0d3e5;padding:5px 8px}.map-frame{flex:1;position:relative;display:grid;align-content:stretch;min-height:405px;background-color:#0b1726;background-image:radial-gradient(ellipse at 47% 48%,#203c5233,transparent 73%),linear-gradient(#7c9bb310 1px,transparent 1px),linear-gradient(90deg,#7c9bb310 1px,transparent 1px);background-size:auto,34px 34px,34px 34px;border-block:1px solid #213549}.map-stage{position:relative;min-height:0;overflow:hidden}.weather-map{display:block;width:100%;height:clamp(425px,55vh,690px);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.weather-map:active{cursor:grabbing}.map-enter{transform-origin:50% 50%;animation:map-enter .32s ease-out both}@keyframes map-enter{0%{opacity:.55;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.region{cursor:pointer;outline:none}.boundary{stroke:#183446;stroke-width:1.05;stroke-linejoin:round;vector-effect:non-scaling-stroke;transition:fill .34s ease,filter .16s ease}.region-active .boundary,.region:focus-visible .boundary{stroke:#e3fff9;stroke-width:1.9;filter:brightness(1.15)}.map-name,.map-value{fill:#fcfffe;paint-order:stroke;stroke:#14273be8;stroke-width:2.6;stroke-linejoin:round}.map-name{font-size:13px;font-weight:720}.map-value{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.leader{stroke:#e1f8f2;fill:none;stroke-width:1;opacity:.8}.anchor{fill:#e1f8f2;stroke:#223446}.sea-mark{fill:#a1b9d1;opacity:.85;pointer-events:none}.inset rect{stroke:#55768e;fill:#0c1929}.inset>text{font-size:11px;font-weight:700;fill:#a9c5d7}.inset .map-name,.inset .map-value{font-size:10px}.map-tools{position:absolute;top:14px;right:14px;display:grid;overflow:hidden;background:#122337;border:1px solid #385168;border-radius:8px;box-shadow:0 4px 18px #04090d8c}.map-tools button{width:35px;height:35px;border:0;background:transparent;color:#cce4f1;font-size:18px}.map-tools button+button{border-top:1px solid #324b63}.map-tooltip{z-index:4;position:absolute;pointer-events:none;padding:12px 14px;min-width:214px;color:#e5f3fa;background:#122235f5;border:1px solid #547991;border-radius:9px;box-shadow:0 8px 24px #0309108f;font-size:12px;line-height:1.7}.map-tooltip strong{display:block;font-size:15px}.tooltip-date,.muted{color:var(--muted)}.empty-map{align-self:center;text-align:center;color:var(--muted)}.map-notice{position:absolute;z-index:2;top:12px;left:12px;max-width:calc(100% - 74px);background:#192b3e;border:1px solid #405e73;color:#d5e4ef;border-radius:7px;padding:8px 10px;font-size:12px}.legend{position:absolute;bottom:16px;left:16px;width:min(222px,55%);padding:10px 11px;background:#0c1928e8;border:1px solid #30495f;border-radius:8px;pointer-events:none}.legend>div:first-child{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#c7dae8;margin-bottom:8px}.legend-ramp{height:7px;border-radius:999px}.legend-stops{display:flex;justify-content:space-between;color:#adc0d1;margin-top:5px;font-size:10px;font-variant-numeric:tabular-nums}.map-footer{padding:11px 16px;display:flex;justify-content:space-between;gap:10px;color:#a3b9cf;font-size:11px}.map-footer i{color:var(--accent);margin-right:6px;vertical-align:2px}.sidebar{display:grid;grid-template-rows:auto minmax(165px,1fr) auto;gap:12px;min-height:0}.side-panel{padding:13px 14px;overflow:hidden}.section-title{display:flex;align-items:center;gap:9px;min-width:0}.section-title h2{font-size:14px;font-weight:700;letter-spacing:.035em;white-space:nowrap}.section-icon{width:28px;height:28px;flex:0 0 28px;border-radius:7px;display:grid;place-items:center;background:#173740;color:#78e6d6}.section-icon svg{width:16px;height:16px}.section-note{margin-top:7px;font-size:11px;color:#9bb0c5;line-height:1.45}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.metric-grid div{min-width:0;display:grid;gap:5px;padding:9px 9px 8px;background:#0c1928;border:1px solid #293f56;border-radius:8px}.metric-grid span,.metric-grid small{color:#a9bfd2;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.metric-grid strong{font-size:clamp(19px,1.9vw,30px);font-variant-numeric:tabular-nums;line-height:1.1;letter-spacing:-.025em}.warm{color:#ffc384}.cool{color:#8dc9ff}.regions{display:flex;flex-direction:column}.sort{margin-left:auto;border:0;background:none;color:#a9c2d4;padding:3px;font-size:11px;white-space:nowrap}.sort:hover{color:var(--accent)}.region-list{margin-top:9px;flex:1;min-height:115px;max-height:clamp(158px,28vh,290px);overflow:auto;scrollbar-width:thin;scrollbar-color:#38546c #101d2d}.region-row{display:grid;width:100%;grid-template-columns:9px minmax(0,1fr) auto 9px;align-items:center;gap:9px;text-align:left;border:0;border-bottom:1px solid #22354a;color:#dbe9f4;background:transparent;padding:9px 3px;min-height:33px;font-size:12px}.region-row:hover,.region-row.picked{background:#1b3245}.region-row strong{font-variant-numeric:tabular-nums}.swatch{height:8px;width:8px;border-radius:50%}.chevron{color:#7f9bb3;text-align:right}.trend-chart{height:clamp(100px,15vh,155px);margin:2px -4px -5px}.timeline{margin-top:15px;padding:13px 15px 12px}.timeline-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.timeline-date{margin-left:7px;color:#9eb4c8;font-size:11px}.play-controls{display:flex;align-items:center;gap:6px}.step{height:30px;width:30px;padding:0;font-size:21px}.play{height:30px;display:inline-flex;align-items:center;gap:5px;padding:0 10px 0 7px;color:#101f27;font-weight:700;font-size:12px;background:#72e6d5;border:1px solid #91fae9;border-radius:7px}.play:hover{background:#a0f3e8}.play svg{width:16px}.timeline input{appearance:none;margin:14px 2px 9px;width:calc(100% - 4px);height:5px;border-radius:10px;background:linear-gradient(90deg,#6ce8d5 var(--progress),#304458 var(--progress));cursor:pointer}.timeline input::-webkit-slider-thumb{appearance:none;width:14px;height:14px;border-radius:50%;border:2px solid #0e1a29;background:#84f3e1;box-shadow:0 0 0 1px #78e6d6}.timeline input::-moz-range-thumb{width:12px;height:12px;border-radius:50%;border:2px solid #0e1a29;background:#84f3e1;box-shadow:0 0 0 1px #78e6d6}.date-grid{display:grid;grid-template-columns:repeat(var(--forecast-days),minmax(0,1fr));gap:5px}.date{background:#132235;border:1px solid #263b51;border-radius:7px;display:grid;text-align:center;gap:4px;padding:7px 1px;white-space:nowrap}.date strong{font-size:11px}.date span{color:#97adc4;font-size:10px}.date:hover{border-color:#58889a}.date[aria-current=date]{background:#193c45;border-color:#5fd5c7;color:#d8fff7}.date[aria-current=date] span{color:#a5f7e7}.footnote{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;padding:12px 2px 2px;color:#90a5bb;font-size:10px}@media(min-width:1500px){.dashboard{padding-inline:30px}.dashboard-grid{gap:18px}.map-header{padding-top:21px}.side-panel{padding:16px 18px}}@media(max-width:1000px){.dashboard{padding:13px}.dashboard-grid{grid-template-columns:minmax(0,2.3fr) minmax(215px,1fr);gap:10px}.map-header,.map-subbar{padding-inline:13px}.segmented button{padding-inline:6px}.weather-map{height:455px}}@media(max-width:760px){.dashboard-grid,.dashboard{display:flex;flex-direction:column}.dashboard-grid{display:contents}.map-panel{order:0}.timeline{order:1;margin:10px 0}.sidebar{order:2;grid-template-columns:1fr 1fr;grid-template-rows:auto auto}.regions{grid-row:1 / 3;grid-column:2}.footnote{order:3}.map-frame{min-height:0}.weather-map{height:auto;aspect-ratio:1000 / 650}.map-tools{top:8px;right:8px}.map-tools button{width:29px;height:29px}.legend{bottom:5px;left:5px;width:130px;padding:5px 6px}.legend>div:first-child{margin-bottom:4px}.legend-stops{margin-top:3px;font-size:8px}.map-footer{flex-wrap:wrap;padding:8px 9px}.date-grid{grid-template-columns:repeat(var(--forecast-days),63px);overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.region-list{max-height:315px}.map-name{font-size:15px}.map-value{font-size:14px}.map-tooltip{font-size:11px}}@media(max-width:520px){.topbar-inner{padding:10px 12px}.brand,.top-controls{gap:8px}.brand h1{font-size:17px}.brand p{font-size:9px}.brand-icon{width:35px;height:35px}.brand-icon svg{width:20px}.load-time{display:none}.refresh{width:32px;height:32px;padding:0}.refresh span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.map-header{flex-wrap:wrap;gap:9px;padding-top:12px}.map-header h2{font-size:21px;margin-top:3px}.segmented{width:100%}.segmented button{flex:1}.sidebar{grid-template-columns:1fr;grid-template-rows:auto}.regions{grid-area:auto}.region-list{max-height:178px}.timeline-date{margin-left:0}}@media(prefers-reduced-motion:reduce){.boundary,.map-enter{animation:none;transition:none}}.play-controls{flex:0 0 auto}.play,.timeline-date{white-space:nowrap}@media(max-width:350px){.timeline-date{display:none}}.real-tag{color:#b0f9ec;background:#17343b;border-color:#416468}.analysis-panel{min-height:176px}.analysis-tabs{width:100%}.analysis-tabs button{flex:1;padding-inline:5px}.analysis-controls,.thresholds,.watch-add{display:flex;align-items:center;gap:8px;margin-top:9px;flex-wrap:wrap}.analysis-controls label,.thresholds label{display:flex;align-items:center;gap:5px;font-size:11px;color:#afc2d3}.analysis-panel select,.analysis-panel input{min-width:0;background:#122336;border:1px solid #344b62;border-radius:6px;padding:4px 6px;font-size:11px;color:#dbecf6}.thresholds input{width:48px}.analysis-scroll,.watch-list{margin-top:5px;max-height:165px;overflow:auto;scrollbar-width:thin}.analysis-scroll h3{margin:8px 0 3px;font-size:11px}.analysis-row,.anomaly-row{width:100%;border:0;border-bottom:1px solid #26394d;padding:7px 2px;background:transparent;color:#dbe9f4;text-align:left;font-size:11px}.analysis-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.analysis-row small{color:#9ab0c4}.anomaly-row{display:grid;gap:3px}.anomaly-row span{color:#9ab0c4}.analysis-row:hover,.anomaly-row:hover{background:#1b3245}.watch-add select{flex:1}.watch-row{display:flex;justify-content:space-between;border-bottom:1px solid #26394d}.watch-row button{border:0;background:none;padding:6px 4px;font-size:11px}.watch-row button[aria-pressed=true]{color:var(--accent)}@media(max-width:760px){.analysis-panel{grid-column:1 / -1}}.sidebar{grid-template-rows:auto auto minmax(136px,1fr) auto}.sidebar.showing-analysis{grid-template-rows:auto auto minmax(190px,1fr)}.side-navigation button{flex:1}[hidden]{display:none!important}@media(max-width:760px){.sidebar,.sidebar.showing-analysis{grid-template-rows:auto auto auto}.side-navigation{grid-row:2;grid-column:1 / -1}.regions{grid-area:3 / 2}.trend{grid-area:3 / 1}.summary{grid-column:1 / -1}}@media(max-width:520px){.regions,.trend{grid-area:auto}}.rankings-page{max-width:1040px;margin:0 auto;padding:24px clamp(12px,4vw,32px)}.rankings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.rankings-heading h1{font-size:clamp(25px,5vw,38px);margin:0}.rankings-heading p,.rankings-status,.ranking-caption,.ranking-card p{color:#aec4d7;margin:10px 0}.rankings-status,.ranking-caption{min-height:1.5em}.ranking-card{padding:14px}.ranking-card h2{margin:0 0 8px;font-size:16px}.ranking-columns{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-dates{display:grid;gap:6px;grid-template-columns:repeat(10,minmax(0,1fr))}.ranking-dates button{flex-direction:column;gap:2px;padding:6px 0}.ranking-dates button[aria-pressed=true]{color:#bdf9ee;border-color:#6ce8d5;background:#1d3747}.ranking-dates small{color:#aec4d7}.ranking-card ol{margin:0;padding:0 0 0 24px}.ranking-card li{padding:8px 2px;border-bottom:1px solid var(--border)}.ranking-card li strong{float:right;margin-left:6px}.warming{color:#ffae95}.cooling{color:#9ac8ff}.ranking-places{margin-top:12px}.ranking-places label{color:#aec4d7}.ranking-places input{color:inherit;background:#152638;border:1px solid #344b62;border-radius:6px;padding:5px 8px;max-width:155px}.ranking-table{max-height:420px;overflow:auto;margin-top:8px}.ranking-table table{width:100%;border-collapse:collapse}.ranking-table :is(th,td){padding:6px 3px;border-bottom:1px solid var(--border);text-align:right;font-variant-numeric:tabular-nums}.ranking-table th:first-child{text-align:left}.ranking-table thead th{position:sticky;top:0;background:var(--panel)}@media(max-width:620px){.ranking-dates{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:370px){.ranking-columns{grid-template-columns:1fr}}
