.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{overscroll-behavior:none;height:100%;margin:0;overflow:hidden}.page,.timeline,.range-presets,.range-pop,.modal,.table-scroll,.side-nav,.form-scroll,.drawer-body,.notices-list{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}body{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}.shell{--rail-w:68px;--rail-item:44px;--rail-gap:6px;grid-template-columns:var(--rail-w) minmax(0, 1fr);height:100dvh;display:grid}.rail{z-index:30;background:var(--surface);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:22px;padding:14px 0;display:flex;position:relative}.rail-brand{border-radius:10px;place-items:center;display:grid}.brand-mark{background:var(--accent);border-radius:10px;flex:none;place-items:center;width:36px;height:36px;display:grid}.brand-mark svg{width:22px;height:22px}.rail-nav{gap:var(--rail-gap);flex-direction:column;display:flex;position:relative}.rail-link,.rail-btn,.rail-user{z-index:1;width:var(--rail-item);height:var(--rail-item);color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:12px;place-items:center;padding:0;display:grid;position:relative}.rail-link svg,.rail-btn svg{width:20px;height:20px}.rail-link:hover,.rail-btn:hover{color:var(--ink);background:var(--surface-2)}.rail-link.active{color:var(--accent)}.rail-link.active:hover{background:0 0}.rail-indicator{width:var(--rail-item);height:var(--rail-item);background:var(--accent-soft);border-radius:12px;transition:transform .45s cubic-bezier(.65,0,.35,1);position:absolute;top:0;left:0}.rail-indicator:before{content:"";left:calc((var(--rail-w) - var(--rail-item)) / -2);background:var(--accent);border-radius:0 3px 3px 0;width:3px;position:absolute;top:11px;bottom:11px}.rail-foot{flex-direction:column;align-items:center;gap:6px;margin-top:auto;display:flex;position:relative}.rail-user:hover .avatar{box-shadow:0 0 0 2px var(--line-strong)}.avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent);border-radius:50%;place-items:center;font-size:.78rem;font-weight:700;transition:box-shadow .15s;display:grid}.rail [data-tip]:after{content:attr(data-tip);background:var(--ink);color:var(--surface);white-space:nowrap;pointer-events:none;opacity:0;border-radius:6px;padding:4px 9px;font-size:.78rem;font-weight:600;transition:opacity .12s,transform .12s;position:absolute;top:50%;left:calc(100% + 12px);transform:translate(-4px,-50%)}.rail [data-tip]:hover:after,.rail [data-tip]:focus-visible:after{opacity:1;transform:translateY(-50%)}.rail [aria-expanded=true][data-tip]:after{display:none}.menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);z-index:40;min-width:220px;padding:6px;position:absolute;bottom:0;left:calc(100% + 10px);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{height:100dvh;padding:20px 24px;overflow-y:auto}.page-fill{flex-direction:column;gap:16px;max-width:1600px;min-height:100%;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;min-height:32px;display:flex}.page-head h1{font-size:1.35rem}.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{box-sizing:content-box;justify-content:space-between;align-items:center;gap:12px;min-height:30px;padding:16px 20px 0;display:flex}.panel-head+.panel-body{padding:12px 20px 16px}.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-small.btn-icon svg{width:16px;height:16px}.icon-btn{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;padding:0;display:grid}.icon-btn svg{width:16px;height:16px}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.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;height:100dvh;padding:24px 16px;display:grid;overflow-y:auto}.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;padding:14px 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}.dash-grid{grid-template-columns:minmax(0,1fr);gap:16px;display:grid}.dash-grid>*{min-width:0}.now-card{align-content:space-between;gap:12px;padding:18px 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:3.9rem;font-weight:800;line-height:.95}.now-unit{color:var(--muted);font-size:.95rem;font-weight:650}.now-meta{color:var(--muted);flex-wrap:wrap;gap:0 8px;margin-top:8px;font-size:.85rem;display:flex}.now-meta span+span:before{content:"·";margin-right:8px}.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 minmax(0,1fr) auto;gap:10px;padding:16px 20px;display:grid}.timeline{align-content:start;gap:0;max-height:270px;margin:0 -12px 0 0;padding:0 12px 0 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:6px 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}.now-stats{border-top:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));margin:4px 0 0;padding-top:14px;display:grid}.now-stats>div{flex-direction:column-reverse;justify-content:flex-end;gap:2px;min-width:0;padding:0 14px;display:flex}.now-stats>div:first-child{padding-left:0}.now-stats>div+div{border-left:1px solid var(--line)}.now-stats dd{letter-spacing:-.02em;margin:0;font-size:1.35rem;font-weight:750;line-height:1.1}.now-stats dd small{color:var(--muted);font-size:.85rem;font-weight:600}.now-stats dt{color:var(--muted);font-size:.78rem;font-weight:600;line-height:1.3}.now-stats .alerting dd{color:var(--danger)}.chart-wrap{height:260px;margin:0 -6px}.plan-levels{gap:8px;margin-top:12px;display:grid}.plan-levels>*{min-width:0}.side-section+.side-section{border-top:1px solid var(--line)}.notices{margin-top:12px}.notices h3{margin-bottom:2px}.entries-panel .table-scroll{margin:0 -20px}.entries-table td{padding-top:8px;padding-bottom:8px}.entries-panel table.data th:first-child,.entries-panel table.data td:first-child{padding-left:20px}.entries-panel table.data th:last-child,.entries-panel table.data td:last-child{padding-right:20px}@media (width>=1000px){.dash-page{height:100%}.dash-grid{flex:1 1 0;grid-template:"now today""chart side"minmax(200px,1.5fr)"entries side"minmax(150px,1fr)/minmax(0,1.6fr) minmax(0,1fr);min-height:0}.dash-grid>*{min-height:0}.now-card{grid-area:now}.today-card{contain:size;grid-area:today}.chart-panel{flex-direction:column;grid-area:chart;display:flex}.entries-panel{flex-direction:column;grid-area:entries;display:flex}.side-panel{grid-area:side;overflow-y:auto}.chart-panel .panel-body{flex-direction:column;flex:1;min-height:0;display:flex}.chart-panel .chart-wrap{flex:1;height:auto;min-height:110px}.entries-panel .panel-body{flex-direction:column;flex:1;min-height:0;padding-bottom:0;display:flex}.entries-panel .table-scroll{flex:1;min-height:0;overflow-y:auto}.today-card .timeline{max-height:none}}@media (width>=1000px) and (height<=940px){.dash-grid:not(:has(.entries-panel.has-needs)){grid-template-areas:"now today""chart side""chart side"}.entries-panel:not(.has-needs){display:none}}@media (width>=1000px) and (height<=820px){.page{padding:12px 20px}.page-fill,.dash-grid{gap:12px}.dash-grid{grid-template-rows:auto minmax(170px,1.5fr) minmax(130px,1fr)}.page-head h1{font-size:1.2rem}.now-card{gap:6px;padding:14px 18px}.now-number{font-size:3.1rem}.now-meta{margin-top:4px;font-size:.8rem}.scale{padding-top:26px}.now-stats{padding-top:10px}.now-stats dd{font-size:1.2rem}.panel-head{padding:12px 18px 0}.panel-head+.panel-body{padding:8px 18px 12px}.entries-panel .table-scroll{margin:0 -18px}.chart-panel .chart-wrap{min-height:90px}.chart-key{margin-top:6px}.today-card{gap:6px;padding:12px 18px}.kv{gap:3px}.kv div{font-size:.85rem}.plan-levels{gap:6px;margin-top:8px;font-size:.8rem}.plan-level span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}table.data th{padding-top:7px;padding-bottom:7px}}.range-picker{flex:none;position:relative}.range-trigger{gap:6px;font-weight:600}.range-trigger svg{width:14px;height:14px}.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:120px;max-height:330px;margin:0;padding:6px 10px 6px 6px;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:5px 8px;font-size:.8rem;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:8px 8px 3px;font-size:.68rem;font-weight:650}.range-cal{padding:10px}.range-fields{gap:6px;margin-bottom:4px;display:flex}.range-field{text-align:left;border-radius:var(--radius-sm);cursor:text;min-width:0;font:inherit;border:1px solid var(--line);background:var(--surface-2);color:var(--ink);flex:1;padding:4px 8px}.range-field.active,.range-field:focus-within{border-color:var(--accent);background:var(--surface);box-shadow:0 0 0 3px var(--accent-soft)}.range-field.bad{border-color:var(--danger);box-shadow:0 0 0 3px var(--danger-soft)}.range-field span{color:var(--muted);font-size:.68rem;display:block}.range-field input{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:none;padding:0;font-size:.78rem;font-weight:600;display:block}.range-field input::placeholder{color:var(--muted);font-weight:500}.range-error{color:var(--danger);font-weight:600}.range-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;margin-top:6px;padding-top:8px;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:30px;--rdp-day-width:32px;--rdp-day_button-height:28px;--rdp-day_button-width:30px;--rdp-day_button-border-radius:7px;--rdp-today-color:var(--accent);--rdp-selected-border:0;--rdp-nav-height:2rem;--rdp-nav_button-height:1.75rem;--rdp-nav_button-width:1.75rem;--rdp-weekday-padding:.25rem 0;color:var(--ink);font-size:.8rem}.range-cal .rdp-caption_label{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:7px 0 0 7px}.range-cal .rp-band-end{border-radius:0 7px 7px 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;padding:6px;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-align:left;text-overflow:ellipsis;flex:1;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}.tooltip-above{white-space:nowrap}.kv{gap:7px;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:8px;font-size:.875rem;font-weight:650;display:flex}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.status-grid dt{color:var(--muted);font-size:.75rem;font-weight:600}.status-grid dd{margin:1px 0 0;font-size:.9rem;font-weight:650}.health-state .pulse{background:var(--aqi-good);border-radius:50%;width:10px;height:10px}.health-state.bad .pulse{background:var(--danger)}.notices-list{max-height:150px;margin-right:-12px;padding-right:12px;overflow-y:auto}.notice{border-top:1px solid var(--line);grid-template-columns:1fr auto;gap:10px;padding:8px 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:separate;border-spacing:0;width:100%;font-size:.875rem}table.data th{text-align:left;color:var(--muted);letter-spacing:.02em;border-bottom:1px solid var(--line);background:var(--surface);white-space:nowrap;z-index:2;padding:9px 12px;font-size:.75rem;font-weight:600;position:sticky;top:0}table.data td{border-top:1px solid var(--line);vertical-align:middle;padding:9px 12px}table.data tbody tr:first-child td{border-top:0}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)}.log-panel{flex-direction:column;flex:1 1 0;min-height:360px;display:flex;overflow:hidden}.log-scroll{flex:1;min-height:0;overflow:auto}.log-loading{gap:12px;padding:18px;display:grid}.log-empty{padding:24px 18px}.log-table th:first-child,.log-table td:first-child{padding-left:18px}.log-table td.time{color:var(--ink-2)}.log-table td.aqi{font-weight:700}.log-table td.actions,.log-table th.actions{min-width:160px}.log-table td.notes,.log-table th.notes{width:30%;min-width:180px}.log-table.size-lg td.notes{width:26%}.log-table .badge{white-space:normal}.log-row{cursor:pointer}.log-row td{transition:background-color .12s}.log-row:hover td{background:var(--surface-2)}.log-row.selected td{background:var(--accent-soft)}.log-row:focus-visible{outline:none}.log-row:focus-visible td{box-shadow:inset 0 2px 0 -1px var(--focus), inset 0 -2px 0 -1px var(--focus)}.log-row.day-start:not(:first-child) td{border-top-color:var(--line-strong)}.log-scroll .log-table{border-bottom:1px solid var(--line)}table.data th.row-tools,table.data td.row-tools{text-align:right;width:1px;padding:4px 12px 4px 4px}.log-row .row-tools .icon-btn{opacity:0;transition:opacity .12s,background-color .12s,color .12s}.log-row:hover .icon-btn,.log-row:focus-within .icon-btn,.log-row.selected .icon-btn{opacity:1}@media (hover:none){.log-row .row-tools .icon-btn{opacity:1}}.log-table.size-sm td,.log-table.size-sm th{padding-left:8px;padding-right:8px}.row-needs{margin-top:4px}.needs-pill{cursor:pointer;background:var(--danger-soft);height:22px;color:var(--danger);white-space:nowrap;border:0;border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;font-weight:650;display:inline-flex}.needs-pill:hover{filter:brightness(.97)}.clip{position:relative}.clip:before{content:" "}.clip>span{white-space:nowrap;text-overflow:ellipsis;position:absolute;inset:0;overflow:hidden}.needs{color:var(--danger);font-weight:650}.toolbar{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 14px;display:flex}.toolbar select.input{width:auto;max-width:190px;height:34px;padding:0 8px;font-size:.875rem}.search{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);min-width:200px;height:34px;color:var(--muted);flex:1;align-items:center;gap:8px;padding:0 10px;display:flex}.search svg{flex:none;width:16px;height:16px}.search input{background:0 0;border:0;outline:none;flex:1;min-width:0;height:100%;font-size:.875rem}.search:focus-within{outline:2px solid var(--focus);outline-offset:-1px;border-color:#0000}.toolbar-actions{gap:6px;margin-left:auto;display:flex}.pager{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:10px 18px;font-size:.82rem;display:flex}.pager-nav{align-items:center;gap:8px;display:flex}.pager-nav span{text-align:center;min-width:3.5em}.drawer-back{z-index:60;background:#0a101447;justify-content:flex-end;animation:.18s ease-out both fade-in;display:flex;position:fixed;inset:0}.drawer{background:var(--surface);border-left:1px solid var(--line);width:min(440px,100vw);height:100%;animation:drawer-in .3s var(--ease-out) both;flex-direction:column;display:flex;box-shadow:-16px 0 40px #00000029}.drawer-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 14px;display:flex}.drawer-head h2{font-size:1.15rem}.drawer-body{flex:1;align-content:start;gap:18px;min-height:0;padding:18px 20px 20px;display:grid;overflow-y:auto}.drawer-aqi{align-items:center;gap:14px;display:flex}.drawer-aqi-num{letter-spacing:-.03em;font-size:2.6rem;font-weight:800;line-height:1}.drawer-grid{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);grid-template-columns:1fr 1fr;gap:12px 16px;margin:0;padding:14px 16px;display:grid}.drawer-grid dt{color:var(--muted);font-size:.72rem;font-weight:600}.drawer-grid dd{overflow-wrap:anywhere;margin:1px 0 0;font-size:.9rem;font-weight:600}.drawer .field textarea.input{min-height:92px}.system-note{color:var(--ink-2);border-left:3px solid var(--line-strong);background:var(--surface-2);border-radius:0 6px 6px 0;padding:10px 12px;font-size:.85rem}.drawer-foot{border-top:1px solid var(--line);align-items:center;gap:8px;padding:14px 20px;display:flex}.spacer{flex:1}.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}@media (width>=761px){.settings{flex:1 1 0;min-height:320px}.settings-content{flex-direction:column;height:100%;min-height:0;display:flex}.settings-content>.panel{flex-direction:column;min-height:0;max-height:100%;display:flex}.form-scroll,.settings-content .panel-body{flex:auto;min-height:0;overflow-y:auto}}.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)}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:none}}@keyframes slide-from-below{0%{opacity:0;transform:translateY(36px)}to{opacity:1;transform:none}}@keyframes slide-from-above{0%{opacity:0;transform:translateY(-36px)}to{opacity:1;transform:none}}@keyframes vt-out-up{to{transform:translateY(-100%)}}@keyframes vt-in-up{0%{transform:translateY(100%)}}@keyframes vt-out-down{to{transform:translateY(100%)}}@keyframes vt-in-down{0%{transform:translateY(-100%)}}.page{view-transition-name:page}::view-transition-old(root){animation:none}::view-transition-new(root){animation:none}::view-transition-group(page){animation-duration:.5s}::view-transition-old(page){animation:.5s cubic-bezier(.65,0,.35,1) both vt-out-up}::view-transition-new(page){animation:.5s cubic-bezier(.65,0,.35,1) both vt-in-up}html[data-nav=up]::view-transition-old(page){animation-name:vt-out-down}html[data-nav=up]::view-transition-new(page){animation-name:vt-in-down}@supports not (view-transition-name:none){.route-in{animation:slide-from-below .35s var(--ease-out) both}html[data-nav=up] .route-in{animation-name:slide-from-above}}.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:0 100%}.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)}.btn,.link-btn,.seg button,.side-nav button,.rail-link,.rail-btn,.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,.rail-btn svg{transition:transform .45s var(--ease-out)}.theme-toggle:hover svg,.rail-btn: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<=760px){.shell{--rail-w:56px;--rail-item:40px}.rail{gap:16px;padding:10px 0}.brand-mark{width:32px;height:32px}.page{padding:16px 14px}.now-number{font-size:3.4rem}.now-stats{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.now-stats>div:nth-child(3){border-left:0;padding-left:0}.settings{grid-template-columns:minmax(0,1fr);gap:12px}.side-nav{display:flex;overflow-x:auto}.event-banner{grid-template-columns:auto 1fr}.event-banner .btn{grid-column:1/-1}.grid-2{grid-template-columns:1fr}.search{flex:calc(100% - 90px);min-width:0}.toolbar select.input{flex:28%;order:2;min-width:0;max-width:none}.toolbar-actions{order:1;margin-left:0}.drawer-grid{grid-template-columns:1fr 1fr}}@media (width<=420px){.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}
