.rdp-root{--rdp-accent-color:blue;--rdp-accent-background-color:#f0f0ff;--rdp-day-height:44px;--rdp-day-width:44px;--rdp-day_button-border-radius:100%;--rdp-day_button-border:2px solid transparent;--rdp-day_button-height:42px;--rdp-day_button-width:42px;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-disabled-opacity:.5;--rdp-outside-opacity:.75;--rdp-today-color:var(--rdp-accent-color);--rdp-dropdown-gap:.5rem;--rdp-months-gap:2rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2.25rem;--rdp-nav_button-width:2.25rem;--rdp-nav-height:2.75rem;--rdp-range_middle-background-color:var(--rdp-accent-background-color);--rdp-range_middle-color:inherit;--rdp-range_start-color:white;--rdp-range_start-background:linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%);--rdp-range_start-date-background-color:var(--rdp-accent-color);--rdp-range_end-background:linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%);--rdp-range_end-color:white;--rdp-range_end-date-background-color:var(--rdp-accent-color);--rdp-week_number-border-radius:100%;--rdp-week_number-border:2px solid transparent;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weeknumber-text-align:center;--rdp-weekday-opacity:.75;--rdp-weekday-padding:.5rem 0rem;--rdp-weekday-text-align:center;--rdp-gradient-direction:90deg;--rdp-animation_duration:.3s;--rdp-animation_timing:cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity:unset}.rdp-root{box-sizing:border-box;position:relative}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{cursor:pointer;font:inherit;color:inherit;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:relative}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-accent-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-size:large;font-weight:700;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{inset-inline-start:0;height:var(--rdp-nav-height);display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{inset-inline-end:0;height:var(--rdp-nav-height);justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse}.rdp-nav{height:var(--rdp-nav-height);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-size:large;font-weight:700}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}:root{--bg:#f3f5f6;--surface:#fff;--surface-2:#f7f9fa;--ink:#17212a;--ink-2:#44525e;--muted:#6b7984;--line:#dde3e7;--line-strong:#c5cfd5;--accent:#2b5d6e;--accent-ink:#fff;--accent-soft:#e3eef1;--focus:#2f7f96;--danger:#b42318;--danger-soft:#fdecea;--warn-soft:#fff6dc;--warn-ink:#7a5300;--ok-soft:#e7f5ec;--ok-ink:#1f6b3a;--shadow:0 1px 2px #17212a0f, 0 1px 1px #17212a0a;--aqi-good:#2e9e4f;--aqi-moderate:#cdaa00;--aqi-usg:#e8641c;--aqi-unhealthy:#c9302c;--aqi-very:#8a3f97;--aqi-hazardous:#7e0023;--aqi-good-soft:#e3f4e8;--aqi-moderate-soft:#fbf2c8;--aqi-usg-soft:#fde6d8;--aqi-unhealthy-soft:#fbe1df;--aqi-very-soft:#f1e3f4;--aqi-hazardous-soft:#f5dde3;--aqi-good-ink:#1d6b35;--aqi-moderate-ink:#6b5800;--aqi-usg-ink:#8e3a0b;--aqi-unhealthy-ink:#93201c;--aqi-very-ink:#682c73;--aqi-hazardous-ink:#6a001d;--radius-lg:14px;--radius:10px;--radius-sm:6px;--ease-out:cubic-bezier(.2, .7, .2, 1);--font:"Public Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0e1418;--surface:#162027;--surface-2:#1b262e;--ink:#e5ecef;--ink-2:#bac7ce;--muted:#8e9ea8;--line:#26343d;--line-strong:#34454f;--accent:#6fb3c4;--accent-ink:#0e1418;--accent-soft:#1d3540;--focus:#8fd0e0;--danger:#f27a6e;--danger-soft:#3a1d1b;--warn-soft:#3a2f12;--warn-ink:#f1d27a;--ok-soft:#173325;--ok-ink:#8fd9a6;--shadow:none;--aqi-good:#4cc26d;--aqi-moderate:#ebcb3b;--aqi-usg:#f5823c;--aqi-unhealthy:#ef5350;--aqi-very:#b985c6;--aqi-hazardous:#d9667f;--aqi-good-soft:#173325;--aqi-moderate-soft:#332c10;--aqi-usg-soft:#3a2414;--aqi-unhealthy-soft:#3a1b1b;--aqi-very-soft:#2e1f33;--aqi-hazardous-soft:#331820;--aqi-good-ink:#8fd9a6;--aqi-moderate-ink:#f1d77a;--aqi-usg-ink:#f9b183;--aqi-unhealthy-ink:#f59a97;--aqi-very-ink:#d6b0df;--aqi-hazardous-ink:#eda3b3;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}html{overscroll-behavior:none;overflow-y:scroll}body{overscroll-behavior:none;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums;font-size:15px;line-height:1.5}h1,h2,h3{letter-spacing:-.01em;margin:0;line-height:1.2}h1{font-size:1.6rem;font-weight:750}h2{font-size:1.05rem;font-weight:700}h3{font-size:.95rem;font-weight:650}p{margin:0}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.muted{color:var(--muted)}.small{font-size:.85rem}.nowrap{white-space:nowrap}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.topbar{background:var(--surface);border-bottom:1px solid var(--line);z-index:20;position:sticky;top:0}.topbar-inner{align-items:center;gap:28px;max-width:1240px;height:64px;margin:0 auto;padding:0 24px;display:flex}.brand{color:var(--ink);align-items:center;gap:10px;text-decoration:none;display:flex}.brand-mark{background:var(--accent);border-radius:8px;flex:none;place-items:center;width:30px;height:30px;display:grid}.brand-mark svg{width:20px;height:20px}.brand-name{font-size:1rem;font-weight:750;line-height:1.1}.tabs{gap:4px;height:100%;display:flex}.tab{color:var(--muted);align-items:center;padding:0 14px;font-weight:600;text-decoration:none;transition:color .2s;display:flex;position:relative}.tab:after{content:"";background:var(--accent);height:3px;transition:transform .3s var(--ease-out);border-radius:3px 3px 0 0;position:absolute;bottom:-1px;left:10px;right:10px;transform:scaleX(0)}.tab:hover{color:var(--ink)}.tab.active{color:var(--accent)}.tab.active:after{transform:scaleX(1)}.topbar-right{margin-left:auto;position:relative}.user-button{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:10px;padding:4px 10px 4px 4px;display:flex}.user-button:hover{border-color:var(--line)}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent);border-radius:50%;place-items:center;font-size:.8rem;font-weight:700;display:grid}.menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:30;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #0000001f}.menu-head{border-bottom:1px solid var(--line);margin-bottom:6px;padding:8px 10px 10px}.menu button{text-align:left;border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;width:100%;padding:8px 10px;display:block}.menu button:hover{background:var(--surface-2)}.page{max-width:1240px;margin:0 auto;padding:28px 24px 96px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin-top:4px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow)}.panel-pad{padding:20px 22px}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;padding:18px 22px 0;display:flex}.panel-head+.panel-body{padding:14px 22px 20px}.btn{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);height:38px;color:var(--accent-ink);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:650;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:disabled{opacity:.55;cursor:not-allowed;filter:none}.btn-quiet{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}.btn-quiet:hover{background:var(--surface-2);filter:none}.btn-danger{background:var(--surface);color:var(--danger);border-color:var(--line-strong)}.btn-small{height:30px;padding:0 10px;font-size:.85rem}.btn svg{width:16px;height:16px}.btn-icon{aspect-ratio:1;justify-content:center;padding:0}.btn-icon svg{width:18px;height:18px}.link-btn{color:var(--accent);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.field{align-content:start;gap:6px;display:grid}.field>span{font-size:.875rem;font-weight:600}.field small{color:var(--muted);font-size:.8rem}.input,select.input,textarea.input{border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface);width:100%;height:38px;color:var(--ink);padding:0 12px}textarea.input{resize:vertical;height:auto;min-height:84px;padding:10px 12px;line-height:1.45}.input:focus{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{accent-color:var(--accent);width:16px;height:16px;margin-top:4px}.alert{border-radius:var(--radius);padding:12px 14px;font-size:.9rem}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-ok{background:var(--ok-soft);color:var(--ok-ink)}.alert-warn{background:var(--warn-soft);color:var(--warn-ink)}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px 2px 7px;font-size:.8rem;font-weight:650;line-height:1.6;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;flex:none;width:8px;height:8px}.badge.plain:before{display:none}.badge.plain{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);padding:2px 9px}.cat-good{background:var(--aqi-good-soft);color:var(--aqi-good-ink)}.cat-moderate{background:var(--aqi-moderate-soft);color:var(--aqi-moderate-ink)}.cat-usg{background:var(--aqi-usg-soft);color:var(--aqi-usg-ink)}.cat-unhealthy{background:var(--aqi-unhealthy-soft);color:var(--aqi-unhealthy-ink)}.cat-very{background:var(--aqi-very-soft);color:var(--aqi-very-ink)}.cat-hazardous{background:var(--aqi-hazardous-soft);color:var(--aqi-hazardous-ink)}.badge.missed{background:var(--danger-soft);color:var(--danger)}.theme-toggle{z-index:40;border:1px solid var(--line-strong);background:var(--surface);height:40px;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 14px 0 12px;font-size:.85rem;font-weight:600;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 4px 14px #0000001f}.theme-toggle svg{width:18px;height:18px}.auth-wrap{place-items:center;min-height:100vh;padding:24px 16px;display:grid}.auth-card{width:100%;max-width:400px}.auth-card form{gap:16px;display:grid}.auth-card h1{margin-bottom:4px;font-size:1.35rem}.event-banner{border-radius:var(--radius-lg);background:var(--aqi-unhealthy-soft);color:var(--aqi-unhealthy-ink);border:1px solid var(--aqi-unhealthy);grid-template-columns:auto 1fr auto;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;display:grid}.event-banner.severe{background:var(--aqi-very-soft);color:var(--aqi-very-ink);border-color:var(--aqi-very)}.event-banner svg{width:26px;height:26px}.event-banner strong{font-size:1rem;display:block}.event-banner p{font-size:.9rem}.hero>*,.grid-main>*{min-width:0}.hero{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;margin-bottom:20px;display:grid}.now-card{gap:18px;padding:22px 24px 20px;display:grid}.now-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.now-label{color:var(--ink-2);font-weight:650}.now-value{align-items:baseline;gap:14px;margin-top:2px;display:flex}.now-number{letter-spacing:-.04em;font-size:4.6rem;font-weight:800;line-height:.95}.now-unit{color:var(--muted);font-size:.95rem;font-weight:650}.now-meta{color:var(--muted);gap:2px;margin-top:10px;font-size:.875rem;display:grid}.pollutants{grid-template-columns:repeat(3,auto);align-content:start;gap:4px 18px;display:grid}.pollutants dt{color:var(--muted);font-size:.8rem}.pollutants dd{margin:0;font-size:1.15rem;font-weight:700}.pollutants .main dd:after{content:" main";color:var(--muted);font-size:.7rem;font-weight:600}.scale{padding-top:30px;position:relative}.scale-bar{border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.scale-bar span{height:100%;display:block}.scale-ticks{height:18px;color:var(--muted);margin-top:4px;font-size:.72rem;position:relative}.scale-ticks span{position:absolute;transform:translate(-50%)}.scale-ticks span:first-child{transform:none}.scale-line{border-left:2px dashed var(--ink-2);width:0;position:absolute;top:22px;bottom:18px}.scale-line-label{color:var(--ink-2);white-space:nowrap;font-size:.72rem;font-weight:650;position:absolute;top:0;transform:translate(-50%)}.scale-marker{background:var(--surface);border:4px solid var(--ink);width:20px;height:20px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;margin-left:-10px;position:absolute;top:24px}.today-card{grid-template-rows:auto 1fr auto;gap:14px;padding:20px 22px;display:grid}.timeline{align-content:start;gap:0;max-height:270px;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.timeline li{border-bottom:1px solid var(--line);grid-template-columns:74px 14px 1fr auto;align-items:center;gap:10px;padding:7px 0;font-size:.9rem;display:grid}.timeline li:last-child{border-bottom:0}.timeline .dot{border-radius:50%;width:10px;height:10px}.timeline .quiet{color:var(--muted)}.timeline .aqi{text-align:right;font-weight:700}.empty{color:var(--muted);padding:10px 0;font-size:.9rem}.stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.stat{padding:16px 18px}.stat-value{letter-spacing:-.02em;font-size:1.75rem;font-weight:750;line-height:1.1}.stat-value small{color:var(--muted);font-size:.95rem;font-weight:600}.stat-label{color:var(--ink-2);margin-top:2px;font-size:.875rem;font-weight:600}.stat.alerting .stat-value{color:var(--danger)}.grid-main{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.stack{grid-template-columns:minmax(0,1fr);gap:20px;display:grid}.chart-wrap{height:280px;margin:0 -6px}.range-picker{flex:none;position:relative}.range-trigger{justify-content:space-between;min-width:13rem;font-weight:600}.range-trigger span{text-align:left;flex:1}.range-trigger svg:last-child{color:var(--muted)}.range-pop{z-index:40;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:max-content;animation:.15s ease-out both fade-in;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000024}.range-presets{border-right:1px solid var(--line);width:150px;max-height:470px;margin:0;padding:8px;list-style:none;overflow-y:auto}.range-presets button{text-align:left;border-radius:var(--radius-sm);width:100%;color:var(--ink-2);cursor:pointer;font:inherit;background:0 0;border:0;padding:7px 10px;font-size:.875rem;display:block}.range-presets button:hover{background:var(--surface-2);color:var(--ink)}.range-presets button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);font-weight:650}.range-presets-head{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:10px 10px 4px;font-size:.72rem;font-weight:650}.range-cal{padding:12px}.range-fields{gap:8px;margin-bottom:8px;display:flex}.range-field{text-align:left;border-radius:var(--radius-sm);cursor:pointer;font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);flex:1;padding:6px 10px}.range-field[aria-pressed=true]{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.range-field span{color:var(--muted);font-size:.72rem;display:block}.range-field strong{font-size:.85rem;font-weight:600;display:block}.range-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:10px;display:flex}.range-hint{color:var(--accent);font-weight:600}.range-cal .rdp-root{--rdp-accent-color:var(--accent);--rdp-accent-background-color:var(--accent-soft);--rdp-day-height:36px;--rdp-day-width:36px;--rdp-day_button-height:34px;--rdp-day_button-width:34px;--rdp-day_button-border-radius:8px;--rdp-today-color:var(--accent);--rdp-selected-border:0;--rdp-months-gap:24px;color:var(--ink);font-size:.875rem}.range-cal .rdp-day_button:hover:not(:disabled){background:var(--surface-2)}.range-cal .rdp-disabled{opacity:.35}.range-cal .rdp-chevron{fill:var(--ink-2)}.range-cal .rp-middle,.range-cal .rp-band-start,.range-cal .rp-band-end{background:var(--accent-soft)}.range-cal .previewing .rp-middle,.range-cal .previewing .rp-band-start,.range-cal .previewing .rp-band-end{background:color-mix(in srgb, var(--accent-soft) 55%, transparent)}.range-cal .rp-band-start{border-radius:8px 0 0 8px}.range-cal .rp-band-end{border-radius:0 8px 8px 0}.range-cal .rp-start .rdp-day_button,.range-cal .rp-end .rdp-day_button{background:var(--accent);color:var(--accent-ink);font-weight:650}.range-cal .rp-preview-end .rdp-day_button{box-shadow:inset 0 0 0 2px var(--accent)}@media (width<=640px){.range-pop{flex-direction:column;width:auto;max-height:calc(100vh - 90px);position:fixed;top:72px;left:12px;right:12px;overflow-y:auto}.range-presets{border-right:0;border-bottom:1px solid var(--line);flex-wrap:wrap;gap:4px;width:auto;max-height:none;display:flex}.range-presets li{flex:none}.range-presets-head{display:none}.range-cal .rdp-root{--rdp-day-width:calc((100vw - 74px) / 7);--rdp-day_button-width:calc((100vw - 78px) / 7)}.range-trigger{min-width:0;max-width:100%}.range-trigger span{text-overflow:ellipsis;overflow:hidden}.panel-head:has(.range-picker){flex-wrap:wrap}.range-picker{max-width:100%}}.chart-key{color:var(--ink-2);flex-wrap:wrap;gap:6px 14px;margin-top:10px;font-size:.78rem;display:flex}.chart-key span{align-items:center;gap:6px;display:inline-flex}.chart-key i{border-radius:3px;width:10px;height:10px;display:inline-block}.seg{border:1px solid var(--line-strong);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--muted);cursor:pointer;border:0;padding:4px 10px;font-size:.8rem;font-weight:600}.seg button+button{border-left:1px solid var(--line-strong)}.seg button[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.tooltip{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;font-size:.82rem;box-shadow:0 6px 18px #0000001f}.tooltip strong{font-size:.95rem;display:block}.kv{gap:10px;margin:0;display:grid}.kv div{justify-content:space-between;gap:12px;font-size:.9rem;display:flex}.kv dt{color:var(--ink-2)}.kv dd{text-align:right;margin:0;font-weight:650}.health-state{align-items:center;gap:10px;margin-bottom:12px;font-weight:650;display:flex}.health-state .pulse{background:var(--aqi-good);border-radius:50%;width:10px;height:10px}.health-state.bad .pulse{background:var(--danger)}.notice{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:10px;padding:10px 0;font-size:.875rem;display:grid}.notice time{color:var(--muted);font-size:.78rem;display:block}.notice.critical p{color:var(--danger)}.table-scroll{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.875rem}table.data th{text-align:left;color:var(--ink-2);border-bottom:1px solid var(--line-strong);background:var(--surface-2);white-space:nowrap;padding:10px 12px;font-size:.8rem;font-weight:650;position:sticky;top:0}table.data td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 12px}table.data tr.band td{background:var(--surface-2)}table.data tr.day-start td{border-top:1px solid var(--line-strong)}table.data td.num,table.data th.num{text-align:right}table.data td.date{white-space:nowrap;font-weight:650}table.data td.notes{color:var(--ink-2);min-width:140px}table.data td.actions{min-width:140px}.log-table.size-lg td.actions{min-width:180px}.log-table.size-lg td.notes{min-width:200px}table.data tr.row-detail td{padding-top:0;padding-left:46px}.detail-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px 16px;margin:0 0 10px;display:grid}.detail-grid>div.wide{grid-column:1/-1}.detail-grid dt{color:var(--muted);font-size:.75rem;font-weight:600}.detail-grid dd{overflow-wrap:anywhere;margin:2px 0 0}.row-needs{margin-top:4px;display:block}.log-table .badge{white-space:normal}.log-table.size-sm td,.log-table.size-sm th{padding-left:8px;padding-right:8px}.log-table.size-sm td.expand,.log-table.size-sm th.expand{padding-right:0}.log-table.size-sm tr.row-detail td{padding-left:38px}table.data tr.expanded td.notes,table.data tr.expanded td.actions{max-width:360px}table.data tr.log-row{cursor:pointer}table.data tr.log-row.expanded{cursor:auto}table.data td.expand,table.data th.expand{width:1px;padding-right:0}.clip{position:relative}.clip:before{content:" "}.clip>span{white-space:nowrap;text-overflow:ellipsis;position:absolute;inset:0;overflow:hidden}.expand-btn{width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.expand-btn:hover{color:var(--ink);background:var(--surface-2)}.expand-btn svg{width:14px;height:14px;transition:transform .15s}.expand-btn[aria-expanded=true] svg{transform:rotate(90deg)}@media (prefers-reduced-motion:reduce){.expand-btn svg{transition:none}}.needs{color:var(--danger);font-weight:650}.system-note{display:block}.system-note+.staff-note,.system-note+.inline-edit{margin-top:4px;display:block}.staff-note>span:first-child{color:var(--ink)}.actions-by{color:var(--muted);margin-top:2px;font-size:.75rem;display:block}.inline-edit{gap:6px;display:grid}.inline-edit .row{gap:6px;display:flex}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:flex-end;gap:10px;padding:16px 18px;display:flex}.toolbar .field{min-width:150px}.toolbar .grow{flex:1;min-width:200px}.toolbar-actions{gap:8px;margin-left:auto;display:flex}.pager{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;font-size:.85rem;display:flex}.pager .row{gap:6px;display:flex}.modal-back{z-index:50;background:#0a101480;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{width:100%;max-width:520px;max-height:calc(100vh - 32px);overflow-y:auto}.modal form,.modal .modal-body{gap:16px;padding:20px 22px 22px;display:grid}.modal-head{justify-content:space-between;align-items:center;padding:18px 22px 0;display:flex}.modal-foot{justify-content:flex-end;gap:8px;display:flex}.grid-2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.close-x{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:4px;font-size:1.5rem;line-height:1}.secret{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);-webkit-user-select:all;user-select:all;padding:12px 14px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.1rem}.settings{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:24px;display:grid}.side-nav{gap:2px;display:grid;position:sticky;top:84px}.side-nav button{text-align:left;border-radius:var(--radius-sm);color:var(--ink-2);cursor:pointer;background:0 0;border:0;padding:9px 12px;font-weight:600}.side-nav button:hover{background:var(--surface)}.side-nav button[aria-current=true]{background:var(--accent-soft);color:var(--accent)}.form-section{gap:18px;padding:20px 22px 22px;display:grid}.form-section+.form-section{border-top:1px solid var(--line)}.form-section>header p{color:var(--muted);max-width:70ch;margin-top:4px;font-size:.875rem}.form-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px;display:grid}.save-bar{border-top:1px solid var(--line);background:var(--surface-2);border-radius:0 0 var(--radius-lg) var(--radius-lg);justify-content:flex-end;align-items:center;gap:12px;padding:16px 22px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--surface-2);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:.85rem;display:inline-flex}.chip button{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:1rem;line-height:1}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}@keyframes attention{0%,to{transform:none}50%{transform:scale(1.15)}}.reveal{animation:rise .6s var(--ease-out) both;animation-delay:calc(var(--i,0) * 70ms)}.route-fade{animation:.3s ease-out both fade-in}.auth-card{animation:rise .5s var(--ease-out) both}.modal-back{animation:.18s ease-out both fade-in}.modal{animation:pop .24s var(--ease-out) both}.menu{animation:pop .18s var(--ease-out) both;transform-origin:100% 0}.alert,.chip,.notice{animation:.25s ease-out both fade-in}.timeline li{animation:rise .4s var(--ease-out) both;animation-delay:calc(var(--i,0) * 50ms + .25s)}.event-banner>svg{animation:1.6s ease-in-out .6s 3 attention}.scale-marker{transition:left 1s var(--ease-out)}.inline-edit{animation:.2s ease-out both fade-in}.btn,.link-btn,.seg button,.side-nav button,.user-button,.menu button,.theme-toggle,.close-x,.input{transition:background-color .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s,filter .15s}.btn:active:not(:disabled),.theme-toggle:active{transform:translateY(1px)scale(.98)}.theme-toggle:hover{box-shadow:0 6px 18px #00000029}.theme-toggle svg{transition:transform .45s var(--ease-out)}.theme-toggle:hover svg{transform:rotate(-20deg)}html.theme-switching,html.theme-switching *,html.theme-switching :before,html.theme-switching :after{transition:background-color .35s,border-color .35s,color .35s,fill .35s,stroke .35s!important}.skeleton{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface) 0, var(--surface-2) 40%, var(--surface) 80%) var(--surface);border:1px solid var(--line);background-size:1200px 100%;animation:1.4s linear infinite shimmer}.skeleton-line{background-color:var(--surface-2);border:0;border-radius:7px;height:14px}@media (width<=1020px){.hero,.grid-main{grid-template-columns:minmax(0,1fr)}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.topbar-inner{flex-wrap:wrap;gap:12px;height:auto;padding:10px 16px 0}.user-name{display:none}.tabs{order:3;width:100%;height:44px;overflow-x:auto}.page{padding:20px 16px 96px}.now-number{font-size:3.6rem}.settings{grid-template-columns:minmax(0,1fr)}.side-nav{display:flex;position:static;overflow-x:auto}.event-banner{grid-template-columns:auto 1fr}.event-banner .btn{grid-column:1/-1}.grid-2{grid-template-columns:1fr}.toolbar-actions{width:100%;margin-left:0}.toolbar-actions .btn:not(.btn-icon){flex:1}.theme-toggle span{display:none}.theme-toggle{padding:0 11px}}@media (width<=420px){.stats{grid-template-columns:minmax(0,1fr)}.pollutants{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){html *,html :before,html :after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.auth-card .panel>form{gap:16px;padding:16px 22px 22px;display:grid}.plan-level{border-left:4px solid var(--aqi-unhealthy);padding:2px 0 2px 10px}.plan-level.severe{border-left-color:var(--aqi-very)}.plan-level strong{display:block}
