.site-header[data-v-2288c066]{z-index:50;-webkit-backdrop-filter:saturate(180%)blur(14px);backdrop-filter:saturate(180%)blur(14px);background:#ffffffd1;border-bottom:1px solid #e4eaf3e6;position:sticky;top:0}.header-inner[data-v-2288c066]{align-items:center;gap:28px;height:64px;display:flex}.brand[data-v-2288c066]{flex-shrink:0;align-items:center;gap:10px;display:flex}.brand-mark[data-v-2288c066]{color:#fff;background:linear-gradient(140deg,#2f6fed,#0f9f92);border-radius:11px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 8px 18px -10px #2f6fede6}.brand-text[data-v-2288c066]{flex-direction:column;line-height:1.15;display:flex}.brand-text strong[data-v-2288c066]{letter-spacing:-.01em;font-size:.98rem}.brand-text small[data-v-2288c066]{color:var(--muted);letter-spacing:.04em;font-size:.66rem}.nav[data-v-2288c066]{scrollbar-width:none;flex:1;align-items:center;gap:4px;display:flex;overflow-x:auto}.nav[data-v-2288c066]::-webkit-scrollbar{display:none}.nav-link[data-v-2288c066]{color:var(--text-2);white-space:nowrap;border-radius:999px;padding:7px 14px;font-size:.86rem;transition:background .2s,color .2s}.nav-link[data-v-2288c066]:hover{background:var(--surface-3);color:var(--text)}.nav-link.is-active[data-v-2288c066]{background:var(--accent-soft);color:var(--accent-strong);font-weight:560}.header-meta[data-v-2288c066]{flex-shrink:0}.live-chip[data-v-2288c066]{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--muted);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.73rem;display:inline-flex}@media (width<=900px){.header-inner[data-v-2288c066]{gap:14px}.brand-text small[data-v-2288c066],.header-meta[data-v-2288c066]{display:none}}@media (width<=560px){.brand-text[data-v-2288c066]{display:none}}.app-shell[data-v-c657c2f0]{flex-direction:column;min-height:100vh;display:flex}.app-main[data-v-c657c2f0]{flex:1}.site-footer[data-v-c657c2f0]{border-top:1px solid var(--border);background:#fff9;margin-top:40px;padding:44px 0 26px}.footer-inner[data-v-c657c2f0]{grid-template-columns:1.4fr 1fr 1.2fr;gap:28px;display:grid}.brand-mark[data-v-c657c2f0]{color:#fff;background:linear-gradient(140deg,#2f6fed,#0f9f92);border-radius:10px;place-items:center;width:30px;height:30px;display:grid}.footer-brand strong[data-v-c657c2f0]{font-size:.95rem}.footer-brand p[data-v-c657c2f0]{max-width:280px;margin-top:10px}.footer-col[data-v-c657c2f0]{flex-direction:column;gap:8px;display:flex}.footer-col h4[data-v-c657c2f0]{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;font-size:.74rem;font-weight:620}.footer-col a[data-v-c657c2f0],.footer-col span[data-v-c657c2f0]{color:var(--text-2);font-size:.84rem}.footer-col a[data-v-c657c2f0]:hover{color:var(--accent)}.footer-bottom[data-v-c657c2f0]{border-top:1px solid var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:34px;padding-top:18px;font-size:.76rem;display:flex}.toast-stack[data-v-c657c2f0]{z-index:200;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}.toast[data-v-c657c2f0]{color:#fff;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#121b2aeb;border-radius:999px;align-items:center;gap:9px;padding:9px 14px;font-size:.83rem;display:flex;box-shadow:0 18px 40px -18px #121b2acc}.toast--success .toast-icon[data-v-c657c2f0]{color:#6ee7b7}.toast--warning .toast-icon[data-v-c657c2f0]{color:#fbbf24}.toast--info .toast-icon[data-v-c657c2f0]{color:#93c5fd}.toast-close[data-v-c657c2f0]{color:#ffffff8c;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:1rem;line-height:1}.toast-close[data-v-c657c2f0]:hover{color:#fff}.toast-enter-active[data-v-c657c2f0],.toast-leave-active[data-v-c657c2f0]{transition:opacity .24s,transform .24s cubic-bezier(.2,.8,.2,1)}.toast-enter-from[data-v-c657c2f0],.toast-leave-to[data-v-c657c2f0]{opacity:0;transform:translateY(12px)scale(.96)}.toast-move[data-v-c657c2f0]{transition:transform .24s}@media (width<=840px){.footer-inner[data-v-c657c2f0]{grid-template-columns:1fr 1fr}.footer-brand[data-v-c657c2f0]{grid-column:1/-1}}.picker[data-v-9eaeda95]{position:relative}.picker-trigger[data-v-9eaeda95]{border:1px solid var(--border-strong);background:var(--surface);height:40px;color:var(--text);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 14px;font-size:.88rem;transition:border-color .2s,box-shadow .2s;display:inline-flex}.picker-trigger[data-v-9eaeda95]:hover{border-color:var(--text-2)}.pin[data-v-9eaeda95]{color:var(--accent)}.picker-name[data-v-9eaeda95]{font-weight:560}.picker-province[data-v-9eaeda95]{color:var(--muted);font-size:.72rem}.chevron[data-v-9eaeda95]{color:var(--muted);transition:transform .2s}.chevron.is-open[data-v-9eaeda95]{transform:rotate(180deg)}.picker-panel[data-v-9eaeda95]{z-index:60;border:1px solid var(--border);background:var(--surface);width:268px;box-shadow:var(--shadow-md);border-radius:16px;padding:12px;position:absolute;top:calc(100% + 8px);left:0}.picker-search[data-v-9eaeda95]{border:1px solid var(--border);background:var(--surface-2);border-radius:999px;outline:none;width:100%;height:34px;padding:0 12px;font-size:.82rem}.picker-search[data-v-9eaeda95]:focus{border-color:#2f6fed80}.picker-group[data-v-9eaeda95]{margin-top:12px}.picker-label[data-v-9eaeda95]{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-size:.68rem}.chips[data-v-9eaeda95]{flex-wrap:wrap;gap:6px;display:flex}.chip[data-v-9eaeda95]{border:1px solid var(--border);background:var(--surface-2);color:var(--text-2);cursor:pointer;border-radius:999px;padding:3px 10px;font-size:.76rem}.chip[data-v-9eaeda95]:hover{border-color:var(--accent);color:var(--accent)}.city-list[data-v-9eaeda95]{max-height:220px;overflow-y:auto}.city-item[data-v-9eaeda95]{width:100%;color:var(--text-2);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;padding:6px 8px;font-size:.84rem;display:flex}.city-item small[data-v-9eaeda95]{color:var(--muted);font-size:.72rem}.city-item[data-v-9eaeda95]:hover{background:var(--surface-2)}.city-item.is-current[data-v-9eaeda95]{background:var(--accent-soft);color:var(--accent-strong)}.check[data-v-9eaeda95]{margin-left:auto;font-size:.8rem}.picker-empty[data-v-9eaeda95]{color:var(--muted);padding:8px;font-size:.8rem}.pop-enter-active[data-v-9eaeda95],.pop-leave-active[data-v-9eaeda95]{transition:opacity .18s,transform .18s}.pop-enter-from[data-v-9eaeda95],.pop-leave-to[data-v-9eaeda95]{opacity:0;transform:translateY(-6px)}.weather-icon[data-v-ce63801f]{flex-shrink:0;display:block}.current-card[data-v-2299b676]{border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:radial-gradient(420px 200px at 88% 4%,#2f6fed29,#0000 68%),radial-gradient(320px 180px at 10% 100%,#0f9f921a,#0000 70%),linear-gradient(#fff,#f7fbff);padding:24px;position:relative}.current-head[data-v-2299b676]{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.current-time[data-v-2299b676]{color:var(--muted);margin-top:4px;font-size:.76rem}.source[data-v-2299b676]{background:var(--teal-soft);color:#0b7d73;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:24px;padding:0 10px;font-size:.7rem;display:inline-flex}.source--demo[data-v-2299b676]{color:#9a6a12;background:#fdf3e3}.source-dot[data-v-2299b676]{background:currentColor;border-radius:50%;width:5px;height:5px}.current-main[data-v-2299b676]{justify-content:space-between;align-items:center;gap:10px;margin:18px 0 20px;display:flex}.temp-row[data-v-2299b676]{align-items:flex-start;gap:4px;display:flex}.temp[data-v-2299b676]{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-size:clamp(3.4rem,8vw,4.6rem);font-weight:660;line-height:1}.degree[data-v-2299b676]{color:var(--muted);margin-top:8px;font-size:1rem}.condition[data-v-2299b676]{margin-top:6px;font-size:.95rem;font-weight:520}.range[data-v-2299b676]{color:var(--muted);margin-top:2px;font-size:.78rem}.icon-wrap[data-v-2299b676]{place-items:center;padding-right:4px;display:grid;position:relative}.icon-glow[data-v-2299b676]{opacity:.7;background:radial-gradient(circle,#ffffffd1,#fff0 66%);border-radius:50%;width:108px;height:108px;position:absolute}.metrics[data-v-2299b676]{border-top:1px solid #d5dfecb3;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding-top:16px;display:grid}.metrics li[data-v-2299b676]{flex-direction:column;gap:2px;min-width:0;display:flex}.metric-label[data-v-2299b676]{color:var(--muted);font-size:.72rem}.metrics strong[data-v-2299b676]{font-variant-numeric:tabular-nums;font-size:.98rem;font-weight:600}.metrics small[data-v-2299b676]{color:var(--muted);margin-left:2px;font-size:.66rem;font-weight:500}.metric-text[data-v-2299b676]{font-size:.88rem!important}.metric-sub[data-v-2299b676]{color:var(--muted);font-size:.68rem}@media (width<=480px){.metrics[data-v-2299b676]{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 6px}}.gauge[data-v-97f18b9c]{flex-direction:column;align-items:center;gap:4px;display:flex}.gauge-svg[data-v-97f18b9c]{width:100%;max-width:250px;height:auto}.gauge-progress[data-v-97f18b9c]{transition:stroke-dashoffset .9s cubic-bezier(.2,.8,.2,1),stroke .4s}.value[data-v-97f18b9c]{letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:34px;font-weight:660}.level[data-v-97f18b9c]{fill:var(--text-2);font-size:13px;font-weight:560}.unit[data-v-97f18b9c]{letter-spacing:.12em;fill:var(--muted);font-size:10px}.scale[data-v-97f18b9c]{fill:var(--muted);font-size:10px}.gauge-advice[data-v-97f18b9c]{text-align:center;max-width:260px;color:var(--muted);font-size:.76rem;line-height:1.5}.forecast[data-v-1e24f313]{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.day[data-v-1e24f313]{border-radius:14px;flex-direction:column;align-items:center;gap:3px;padding:10px 4px;transition:background .2s;display:flex}.day[data-v-1e24f313]:hover{background:var(--surface-2)}.day-name[data-v-1e24f313]{font-size:.82rem;font-weight:560}.day-date[data-v-1e24f313]{color:var(--muted);font-size:.7rem}.day-icon[data-v-1e24f313]{margin:4px 0 2px}.day-pop[data-v-1e24f313]{color:#4c82c8;align-items:center;gap:2px;font-size:.68rem;display:inline-flex}.day-temps[data-v-1e24f313]{align-items:center;gap:4px;width:100%;margin-top:4px;display:flex}.tmax[data-v-1e24f313],.tmin[data-v-1e24f313]{font-variant-numeric:tabular-nums;width:22px;font-size:.78rem}.tmax[data-v-1e24f313]{text-align:right;color:var(--text);font-weight:600}.tmin[data-v-1e24f313]{text-align:left;color:var(--muted)}.temp-bar[data-v-1e24f313]{background:var(--surface-3);border-radius:999px;flex:1;height:5px;position:relative;overflow:hidden}.temp-bar-fill[data-v-1e24f313]{background:linear-gradient(90deg,#6fc0b6,#e9b45a);border-radius:999px;transition:left .6s,width .6s;position:absolute;top:0;bottom:0}@media (width<=720px){.forecast[data-v-1e24f313]{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:8px}}.fav[data-v-25b89d18]{border:1px solid var(--border);background:var(--surface);height:30px;color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:.78rem;transition:color .2s,border-color .2s,background .2s,transform .2s;display:inline-flex}.fav[data-v-25b89d18]:hover{color:#e0a02e;border-color:#e0a02e80}.fav.is-active[data-v-25b89d18]{color:#d99a25;background:#fdf6e6;border-color:#d99a2559}.fav[data-v-25b89d18]:active{transform:scale(.94)}.fav-icon[data-v-25b89d18]{place-items:center;display:grid}.fav-icon svg path[data-v-25b89d18]{transition:fill .2s}.stat-card[data-v-87107de5]{padding:18px 18px 16px;position:relative;overflow:hidden}.stat-card[data-v-87107de5]:before{content:"";background:var(--stat-color);opacity:.85;width:3px;position:absolute;top:0;bottom:0;left:0}.stat-top[data-v-87107de5]{justify-content:space-between;align-items:center;gap:8px;display:flex}.stat-label[data-v-87107de5]{color:var(--muted);letter-spacing:.02em;font-size:.78rem}.stat-value[data-v-87107de5]{letter-spacing:-.03em;color:var(--stat-color);align-items:baseline;gap:4px;margin-top:6px;font-size:1.95rem;font-weight:640;line-height:1.15;display:flex}.stat-unit[data-v-87107de5]{color:var(--muted);letter-spacing:0;font-size:.8rem;font-weight:500}.stat-hint[data-v-87107de5]{color:var(--muted);margin-top:4px;font-size:.76rem}.chart[data-v-3a2f0771]{width:100%}.legend[data-v-3a2f0771]{flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:6px;display:flex}.legend-item[data-v-3a2f0771]{color:var(--text-2);align-items:center;gap:6px;font-size:.78rem;display:inline-flex}.legend-item i[data-v-3a2f0771],.tooltip-row i[data-v-3a2f0771]{border-radius:3px;width:8px;height:8px;display:inline-block}.legend-unit[data-v-3a2f0771]{color:var(--muted);margin-left:auto;font-size:.72rem}.chart-canvas[data-v-3a2f0771]{width:100%;position:relative}.chart-svg[data-v-3a2f0771]{width:100%;height:auto;display:block;overflow:visible}.grid line[data-v-3a2f0771]{stroke:#edf1f7;stroke-width:1px}.grid text[data-v-3a2f0771]{fill:#94a3b8;font-variant-numeric:tabular-nums;font-size:10px}.x-axis text[data-v-3a2f0771]{fill:#94a3b8;font-size:10px}.line[data-v-3a2f0771]{stroke-dasharray:3200;stroke-dashoffset:3200px;animation:1.15s cubic-bezier(.3,.8,.3,1) forwards draw-3a2f0771}.area[data-v-3a2f0771]{animation:.9s .15s both fade-3a2f0771}@keyframes draw-3a2f0771{to{stroke-dashoffset:0}}@keyframes fade-3a2f0771{0%{opacity:0}to{opacity:1}}.tooltip[data-v-3a2f0771]{border:1px solid var(--border);min-width:132px;box-shadow:var(--shadow-md);pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffffff5;border-radius:12px;padding:9px 11px;position:absolute;top:6px;transform:translate(-50%)}.tooltip-label[data-v-3a2f0771]{color:var(--muted);margin-bottom:4px;font-size:.72rem}.tooltip-row[data-v-3a2f0771]{color:var(--text-2);align-items:center;gap:6px;font-size:.76rem;display:flex}.tooltip-row strong[data-v-3a2f0771]{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto}.tooltip-row small[data-v-3a2f0771]{color:var(--muted);margin-left:1px;font-size:.68rem}.chart-empty[data-v-3a2f0771]{text-align:center;color:var(--muted);padding:60px 0;font-size:.85rem}@media (width<=640px){.tooltip[data-v-3a2f0771]{min-width:110px}}.hero[data-v-94079f8e]{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:48px;padding:56px 0 34px;display:grid}h1 em[data-v-94079f8e]{background:linear-gradient(100deg,#2f6fed,#0f9f92 70%);color:#0000;-webkit-background-clip:text;background-clip:text;font-style:normal}.hero-actions[data-v-94079f8e]{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.hero-meta[data-v-94079f8e]{border-top:1px solid var(--border);gap:34px;margin-top:34px;padding-top:20px;display:flex}.hero-meta li[data-v-94079f8e]{flex-direction:column;display:flex}.hero-meta strong[data-v-94079f8e]{letter-spacing:-.02em;font-size:1.35rem;font-weight:640}.hero-meta span[data-v-94079f8e]{color:var(--muted);font-size:.76rem}.hero-panel[data-v-94079f8e]{flex-direction:column;gap:10px;display:flex}.panel-bar[data-v-94079f8e]{justify-content:space-between;align-items:center;gap:10px;display:flex}.panel-tools[data-v-94079f8e]{align-items:center;gap:6px;display:flex}.icon-btn[data-v-94079f8e]{border:1px solid var(--border);background:var(--surface);width:30px;height:30px;color:var(--text-2);cursor:pointer;border-radius:50%;place-items:center;transition:color .2s,border-color .2s;display:grid}.icon-btn[data-v-94079f8e]:hover{color:var(--accent);border-color:#2f6fed73}.icon-btn.spinning svg[data-v-94079f8e]{animation:.9s linear infinite spin-94079f8e}@keyframes spin-94079f8e{to{transform:rotate(360deg)}}.notice[data-v-94079f8e]{color:#8a6412;background:#fdf6e7;border-radius:10px;align-items:flex-start;gap:8px;padding:9px 12px;font-size:.76rem;line-height:1.5;display:flex}.notice-dot[data-v-94079f8e]{background:#d99a25;border-radius:50%;flex-shrink:0;width:6px;height:6px;margin-top:6px}.footnote[data-v-94079f8e]{color:var(--muted);font-size:.73rem}.pollutant-row[data-v-94079f8e]{color:var(--muted);justify-content:center;gap:22px;margin-top:2px;font-size:.76rem;display:flex}.pollutant-row strong[data-v-94079f8e]{color:var(--text);font-variant-numeric:tabular-nums;margin-left:2px;font-weight:560}.band-list[data-v-94079f8e]{flex-direction:column;gap:9px;display:flex}.band-list li[data-v-94079f8e]{color:var(--text-2);align-items:center;gap:8px;font-size:.79rem;display:flex}.band-dot[data-v-94079f8e]{border-radius:3px;width:8px;height:8px}.band-range[data-v-94079f8e]{font-variant-numeric:tabular-nums;color:var(--muted);min-width:48px}.band-label[data-v-94079f8e]{margin-left:auto}.link-more[data-v-94079f8e]{color:var(--accent);white-space:nowrap;font-size:.82rem}.link-more[data-v-94079f8e]:hover{text-decoration:underline}@media (width<=980px){.hero[data-v-94079f8e]{grid-template-columns:minmax(0,1fr);gap:30px;padding-top:34px}.hero-meta[data-v-94079f8e]{gap:26px}}:root{--bg:#f5f7fa;--bg-soft:#eef2f8;--surface:#fff;--surface-2:#f8fafd;--surface-3:#eef3fa;--border:#e4eaf3;--border-strong:#d5dfec;--text:#121b2a;--text-2:#3f4f66;--muted:#7b8899;--accent:#2f6fed;--accent-strong:#1f57c9;--accent-soft:#eaf1ff;--teal:#0f9f92;--teal-soft:#e4f6f4;--green:#2fa36b;--amber:#d99a25;--orange:#e4813c;--rose:#d9534f;--violet:#8e5bb5;--shadow-xs:0 1px 2px #121b2a0d;--shadow-sm:0 1px 2px #121b2a0a, 0 8px 20px -14px #121b2a47;--shadow-md:0 2px 4px #121b2a0a, 0 22px 48px -28px #121b2a59;--radius-sm:10px;--radius:16px;--radius-lg:24px;--container:1180px;--font-sans:"Inter", "Segoe UI", system-ui, -apple-system, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}body{background-color:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-sans);background-image:radial-gradient(900px 420px at 82% -8%,#2f6fed1a,#0000 70%),radial-gradient(700px 340px at 4% 0,#0f9f9212,#0000 65%);background-repeat:no-repeat;margin:0;font-size:15px;line-height:1.65}h1,h2,h3,h4,p,figure{margin:0}h1{letter-spacing:-.035em;font-size:clamp(2.1rem,4.4vw,3.4rem);font-weight:660;line-height:1.08}h2{letter-spacing:-.02em;font-size:clamp(1.35rem,2.2vw,1.75rem);font-weight:620;line-height:1.25}h3{letter-spacing:-.01em;font-size:1.05rem;font-weight:620}a{color:inherit;text-decoration:none}button{font-family:inherit}ul{margin:0;padding:0;list-style:none}::selection{background:#2f6fed29}.container{width:min(100% - 48px, var(--container));margin-inline:auto}.section{padding:58px 0}.section--tight{padding:30px 0}.stack{flex-direction:column;gap:12px;display:flex}.row{align-items:center;gap:10px;display:flex}.row--between{justify-content:space-between}.grid{gap:18px;display:grid}.grid--2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid--sidebar{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr)}@media (width<=1024px){.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid--sidebar,.grid--3{grid-template-columns:minmax(0,1fr)}}@media (width<=720px){.container{width:min(100% - 32px, var(--container))}.grid--2,.grid--4{grid-template-columns:minmax(0,1fr)}.section{padding:40px 0}}.eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.71rem;font-weight:620}.muted{color:var(--muted)}.text-sm{font-size:.86rem}.text-2{color:var(--text-2)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}.tag{border:1px solid var(--border);background:var(--surface);height:26px;color:var(--text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 10px;font-size:.75rem;font-weight:520;display:inline-flex}.tag--accent{background:var(--accent-soft);color:var(--accent-strong);border-color:#0000}.tag--teal{background:var(--teal-soft);color:#0b7d73;border-color:#0000}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-xs)}.card--pad{padding:22px}.card--hover{transition:transform .25s,box-shadow .25s,border-color .25s}.card--hover:hover{box-shadow:var(--shadow-md);border-color:var(--border-strong);transform:translateY(-3px)}.card-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.card-title{letter-spacing:-.01em;font-size:1rem;font-weight:620}.card-sub{color:var(--muted);margin-top:3px;font-size:.8rem}.btn{height:40px;color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.88rem;font-weight:560;transition:transform .18s,background .18s,border-color .18s,color .18s;display:inline-flex}.btn:active{transform:scale(.97)}.btn--primary{background:var(--text);color:#fff}.btn--primary:hover{background:#24334a}.btn--accent{background:var(--accent);color:#fff;box-shadow:0 10px 22px -12px #2f6fede6}.btn--accent:hover{background:var(--accent-strong)}.btn--ghost{background:var(--surface);border-color:var(--border-strong);color:var(--text-2)}.btn--ghost:hover{border-color:var(--text-2);color:var(--text)}.btn--sm{height:32px;padding:0 13px;font-size:.8rem}.btn:disabled{opacity:.55;cursor:not-allowed}.field{border:1px solid var(--border);background:var(--surface);border-radius:999px;align-items:center;gap:8px;height:40px;padding:0 14px;transition:border-color .2s,box-shadow .2s;display:flex}.field:focus-within{border-color:#2f6fed8c;box-shadow:0 0 0 4px #2f6fed1a}.field input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:.88rem}.field input::placeholder{color:var(--muted)}.select{border:1px solid var(--border);background-color:var(--surface);height:40px;color:var(--text-2);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237b8899' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;border-radius:999px;padding:0 34px 0 14px;font-size:.85rem}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{border:3px solid var(--bg);background:#cdd7e5;border-radius:999px}::-webkit-scrollbar-track{background:0 0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;padding:46px 0 26px;display:flex}.page-header h1{margin-top:8px;font-size:clamp(1.8rem,3.4vw,2.6rem)}.page-header .description{max-width:620px;color:var(--text-2);margin-top:12px;font-size:.95rem}.page-header-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.empty{text-align:center;color:var(--muted);flex-direction:column;align-items:center;gap:6px;padding:40px 20px;display:flex}.empty-title{color:var(--text-2);font-size:.92rem;font-weight:560}.empty-desc{max-width:320px;font-size:.82rem}.empty .btn{margin-top:10px}.chart-placeholder{flex-direction:column;padding:8px 0;display:flex}.page-enter-active,.page-leave-active{transition:opacity .24s,transform .24s}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-6px)}.reveal{opacity:0;transition:opacity .65s ease var(--reveal-delay,0s), transform .65s cubic-bezier(.2, .7, .2, 1) var(--reveal-delay,0s);will-change:opacity, transform;transform:translateY(16px)}.reveal-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal,.page-enter-active,.page-leave-active{opacity:1;transition:none;transform:none}}.skeleton{background:var(--surface-3);border-radius:8px;position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg,#0000,#ffffffbf,#0000);animation:1.4s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}@keyframes shimmer{to{transform:translate(100%)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline-offset:3px;outline:2px solid #2f6fed99}
