:root{font-synthesis:none;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;--radius-card:22px;--radius-hero:26px;--radius-small:15px;--space-page:16px;--focus-ring:#005a9c;--focus-halo:#ffffffeb;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page-bg-end:#f3f7f9;--weather-page-accent:#d8ecf6;--weather-page-glow:#eef5f8;--page-bg:linear-gradient(180deg, var(--weather-page-accent) 0%, var(--weather-page-glow) 42%, var(--page-bg-end) 100%);--text-primary:#152536;--text-secondary:#486171;--surface-card:#f8fbfd;--surface-card-emphasized:#fff;--surface-subtle:#eef5f8;--surface-chip:#f6fafc;--border-subtle:#2d546d33;--divider:#2d546d2e;--accent:#8fd3ff;--accent-text:#06243a;--accent-strong:#0f5f8f;--warning-bg:#fff8df;--warning-text:#67470a;--error-bg:#fff1f1;--error-text:#8e2626;--shadow-card:0 1px 2px #2240580f, 0 8px 22px #22405814;--shadow-hero:0 14px 34px #1e53773d;--shadow-modal:0 -20px 70px #05152440;--hero-highlight:#ffe8aa3d;--hero-text:#fff;--hero-muted:#fffffff0;--hero-tile:#ffffff26;--hero-border:#ffffff52;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #1b88bf, #0f5f8f 58%, #0a496e);--aqi-good:#2f8f63;--aqi-fair:#527f1e;--aqi-moderate:#936a00;--aqi-poor:#b7551d;--aqi-very-poor:#a5373f;--aqi-extremely-poor:#7d3a8a;--aqi-surface:#2f8f631c;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page-bg-end:#071827;--weather-page-accent:#06111d;--weather-page-glow:#0b2033;--page-bg:linear-gradient(180deg, var(--weather-page-accent) 0%, var(--weather-page-glow) 48%, var(--page-bg-end) 100%);--text-primary:#eef8ff;--text-secondary:#b8d1e2;--surface-card:#0b2033;--surface-card-emphasized:#102d45;--surface-subtle:#102d45;--surface-chip:#0f2a42;--border-subtle:#b8d1e233;--divider:#b8d1e22e;--accent:#6ac8ff;--accent-text:#04111d;--accent-strong:#dff2ff;--warning-bg:#3b3214;--warning-text:#ffe6a3;--error-bg:#3a181b;--error-text:#ffb7bd;--shadow-card:0 2px 10px #0000002e;--shadow-hero:0 12px 32px #00000052;--shadow-modal:0 -20px 70px #00000073;--hero-highlight:#ffd16652;--hero-text:#fff;--hero-muted:#fffffff0;--hero-tile:#ffffff24;--hero-border:#ffffff57;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #0b4d78, #06111d);--aqi-good:#7fd6a7;--aqi-fair:#b8d96c;--aqi-moderate:#ffd166;--aqi-poor:#ffab6b;--aqi-very-poor:#ff8f98;--aqi-extremely-poor:#dcb3ff;--aqi-surface:#7fd6a71f;--focus-ring:#ffd166;--focus-halo:#030914eb}}*{box-sizing:border-box}html{background:var(--surface-card)}body{min-width:0;min-height:100vh;color:var(--text-primary);background:var(--page-bg);margin:0}button,input,select{font:inherit}button,select{min-height:44px}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.62}a{color:inherit}.page-shell{--weather-scene:none;--weather-particles:none;--weather-scene-opacity:0;--weather-particle-opacity:0;--weather-scene-animation:none;--weather-particle-animation:none;isolation:isolate;min-height:100dvh;padding-bottom:calc(env(safe-area-inset-bottom) + 16px);background:var(--page-bg);position:relative;overflow-x:clip}.page-shell:before,.page-shell:after{z-index:-1;pointer-events:none;content:"";position:fixed}.page-shell:before{background:var(--weather-scene);opacity:var(--weather-scene-opacity);animation:var(--weather-scene-animation);transform-origin:top;inset:-2% -5% 0}.page-shell:after{background:var(--weather-particles);opacity:var(--weather-particle-opacity);animation:var(--weather-particle-animation);inset:0}.page-shell[data-weather=clear]{--weather-scene:radial-gradient(circle at 82% 5%, #ffdc7e94 0 3%, #ffe29438 11%, transparent 29%);--weather-scene-opacity:.82;--weather-scene-animation:weather-light-breathe 12s ease-in-out infinite alternate}.page-shell[data-weather=cloudy]{--weather-scene:radial-gradient(ellipse 46% 10% at 18% 7%, #ffffff57 0 46%, transparent 50%), radial-gradient(ellipse 58% 12% at 84% 15%, #7d97a933 0 48%, transparent 52%), radial-gradient(ellipse 64% 12% at 37% 25%, #fff3 0 46%, transparent 51%);--weather-scene-opacity:.78;--weather-scene-animation:weather-cloud-drift 24s ease-in-out infinite alternate}.page-shell[data-weather=rain]{--weather-scene:radial-gradient(ellipse 65% 12% at 18% 5%, #53748942 0 48%, transparent 52%), radial-gradient(ellipse 72% 14% at 84% 14%, #63849738 0 48%, transparent 52%);--weather-particles:repeating-linear-gradient(108deg, transparent 0 18px, #5e9ec033 19px 20px, transparent 21px 34px);--weather-scene-opacity:.74;--weather-particle-opacity:.46;--weather-scene-animation:weather-cloud-drift 28s ease-in-out infinite alternate;--weather-particle-animation:weather-rain-fall 1.1s linear infinite}.page-shell[data-weather=snow]{--weather-scene:radial-gradient(ellipse 60% 11% at 24% 6%, #ffffff61 0 47%, transparent 52%), radial-gradient(ellipse 72% 13% at 88% 16%, #cfe4ef4d 0 47%, transparent 52%);--weather-particles:radial-gradient(circle, #fffc 0 2px, transparent 2.5px), radial-gradient(circle, #dceff8b8 0 3px, transparent 3.5px), radial-gradient(circle, #ffffffa3 0 1.5px, transparent 2px);--weather-scene-opacity:.72;--weather-particle-opacity:.58;--weather-particle-animation:weather-snow-fall 13s linear infinite}.page-shell[data-weather=snow]:after{background-position:8px 4px,41px 23px,19px 37px;background-size:86px 104px,137px 173px,59px 79px}.page-shell[data-weather=fog]{--weather-scene:repeating-linear-gradient(176deg, transparent 0 70px, #ffffff3b 90px 128px, transparent 148px 205px);--weather-scene-opacity:.7;--weather-scene-animation:weather-fog-drift 20s ease-in-out infinite alternate}.page-shell[data-weather=storm]{--weather-scene:radial-gradient(ellipse 76% 15% at 22% 5%, #2a344c6b 0 48%, transparent 52%), radial-gradient(ellipse 80% 16% at 89% 17%, #313b545c 0 48%, transparent 52%);--weather-particles:repeating-linear-gradient(108deg, transparent 0 15px, #7799b730 16px 17px, transparent 18px 29px);--weather-scene-opacity:.84;--weather-particle-opacity:.4;--weather-scene-animation:weather-storm-light 11s ease-in-out infinite;--weather-particle-animation:weather-rain-fall .85s linear infinite}.page-shell[data-day-phase=night]{--weather-particle-color:#deedffbf}.page-shell[data-day-phase=night][data-weather=clear]{--weather-scene:radial-gradient(circle at 78% 6%, #e2edff8f 0 2.5%, #bfd7f424 9%, transparent 24%);--weather-particles:radial-gradient(circle, var(--weather-particle-color) 0 1px, transparent 1.5px), radial-gradient(circle, #ffffff80 0 1.5px, transparent 2px);--weather-particle-opacity:.5;--weather-particle-animation:weather-stars-twinkle 6s ease-in-out infinite alternate}.page-shell[data-day-phase=night][data-weather=clear]:after{background-position:12px 9px,45px 31px;background-size:83px 97px,149px 131px}@keyframes weather-light-breathe{0%{opacity:.62;transform:scale(.99)}to{opacity:.88;transform:scale(1.015)}}@keyframes weather-cloud-drift{0%{transform:translate(-1.5%)}to{transform:translate(1.5%,1%)}}@keyframes weather-rain-fall{0%{background-position:0 -90px}to{background-position:-22px 90px}}@keyframes weather-snow-fall{0%{background-position:8px -104px,41px -173px,19px -79px}to{background-position:-24px 104px,65px 173px,4px 79px}}@keyframes weather-fog-drift{0%{opacity:.5;transform:translate(-2%)}to{opacity:.76;transform:translate(2%,1%)}}@keyframes weather-storm-light{0%,44%,48%,to{filter:brightness()}46%{filter:brightness(1.13)}}@keyframes weather-stars-twinkle{0%{opacity:.3}to{opacity:.56}}.app{width:min(100%,480px);padding-left:max(var(--space-page), env(safe-area-inset-left));padding-right:max(var(--space-page), env(safe-area-inset-right));margin:0 auto}.main-flow{gap:14px;padding-top:0;display:grid}.card{border:1px solid var(--border-subtle);border-radius:var(--radius-card);background:var(--surface-card);box-shadow:var(--shadow-card);padding:18px}.card h2{margin:0 0 12px;font-size:1.08rem;font-weight:780}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;box-shadow:0 0 0 5px var(--focus-halo)}@media (prefers-color-scheme:light){[data-weather=clear]{--weather-page-accent:#cce8f4;--weather-page-glow:#edf5f8;--page-bg-end:#f4f7f8;--hero-highlight:#ffe18a40;--hero-bg:radial-gradient(130% 90% at 88% -22%, var(--hero-highlight), transparent 60%), linear-gradient(145deg, #14749e, #0d628e 55%, #094b70)}[data-weather=cloudy]{--weather-page-accent:#d7e2e8;--weather-page-glow:#edf2f5;--page-bg-end:#f4f6f7;--hero-highlight:#ffffff2e;--hero-bg:radial-gradient(130% 95% at 82% -24%, var(--hero-highlight), transparent 62%), linear-gradient(145deg, #557384, #3c5c72 58%, #29465a)}[data-weather=rain]{--weather-page-accent:#c6dce8;--weather-page-glow:#e8f0f4;--page-bg-end:#f3f6f8;--hero-highlight:#aedcef2e;--hero-bg:radial-gradient(130% 95% at 84% -24%, var(--hero-highlight), transparent 62%), linear-gradient(145deg, #2d718a, #215871 58%, #153f53)}[data-weather=snow]{--weather-page-accent:#e1edf2;--weather-page-glow:#f1f5f7;--page-bg-end:#f7f9fa;--hero-highlight:#fff3;--hero-bg:radial-gradient(130% 95% at 84% -24%, var(--hero-highlight), transparent 62%), linear-gradient(145deg, #477b94, #356d89 58%, #27566e)}[data-weather=fog]{--weather-page-accent:#dbe4e7;--weather-page-glow:#eff3f4;--page-bg-end:#f5f6f7;--hero-highlight:#ffffff2e;--hero-bg:radial-gradient(140% 100% at 80% -26%, var(--hero-highlight), transparent 64%), linear-gradient(145deg, #607985, #4c6674 58%, #385463)}[data-weather=storm]{--weather-page-accent:#c6cfdd;--weather-page-glow:#e5ebf2;--page-bg-end:#f1f4f7;--hero-highlight:#ffda752e;--hero-bg:radial-gradient(130% 95% at 84% -24%, var(--hero-highlight), transparent 60%), linear-gradient(145deg, #536487, #33415f 58%, #202b42)}[data-day-phase=night]{--weather-page-accent:#c4d2df;--weather-page-glow:#e6edf3;--page-bg-end:#f3f6f8;--hero-highlight:#d9ebff2e;--hero-bg:radial-gradient(130% 95% at 84% -24%, var(--hero-highlight), transparent 62%), linear-gradient(145deg, #2a5a7c, #173a59 58%, #102941)}}@media (prefers-color-scheme:dark){[data-weather=clear]{--weather-page-accent:#071b2d;--weather-page-glow:#0b2033;--page-bg-end:#06111d;--hero-highlight:#ffd16652;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #0b4d78, #06111d)}[data-weather=cloudy]{--weather-page-accent:#111d29;--weather-page-glow:#0b2033;--page-bg-end:#071827;--hero-highlight:#ffffff1a;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #394f61, #0d1f30)}[data-weather=rain]{--weather-page-accent:#0e2a3a;--weather-page-glow:#0b2033;--page-bg-end:#071827;--hero-highlight:#6ac8ff1f;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #17485f, #071827)}[data-weather=snow]{--weather-page-accent:#102536;--weather-page-glow:#0b2033;--page-bg-end:#071827;--hero-highlight:#dcf5ff24;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #35677f, #0b2033)}[data-weather=fog]{--weather-page-accent:#172633;--weather-page-glow:#0f2230;--page-bg-end:#071827;--hero-highlight:#ffffff1a;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #4d6470, #122635)}[data-weather=storm]{--weather-page-accent:#14192a;--weather-page-glow:#111d2d;--page-bg-end:#070b14;--hero-highlight:#ffd1664d;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #232c44, #070b14)}[data-day-phase=night]{--weather-page-accent:#030914;--weather-page-glow:#071827;--page-bg-end:#030914;--hero-highlight:#dcebff3d;--hero-bg:radial-gradient(120% 85% at 88% -20%, var(--hero-highlight), transparent 58%), linear-gradient(145deg, #102d45, #030914)}}.site-header{padding-top:env(safe-area-inset-top);color:var(--text-primary)}.simple-header{padding-top:8px;padding-bottom:8px}.simple-header h1{letter-spacing:-.02em;color:var(--text-primary);margin:0 0 8px;font-size:1.3rem;font-weight:780;line-height:1}.app-title{justify-content:center;align-items:center;gap:9px;display:flex}.app-mark{border-radius:11px;flex:none;width:36px;height:36px;box-shadow:0 4px 12px #020a1f33}.quick-location-card{margin:0}.quick-location-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.quick-location-chip{white-space:nowrap;border:1px solid var(--border-subtle);background:var(--surface-chip);min-width:0;min-height:44px;color:var(--text-primary);border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:8px 10px;font-size:.95rem;font-weight:680;display:inline-flex}.quick-location-chip[aria-pressed=true]{border-color:var(--accent-strong);background:var(--surface-subtle);color:var(--text-primary)}.quick-location-check{color:var(--accent-strong);font-weight:900}.quick-location-chip.more{color:var(--text-secondary)}.hero{color:var(--hero-text);background:var(--hero-bg);border-radius:var(--radius-hero);box-shadow:var(--shadow-hero);padding:17px;overflow:hidden}.current-card-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.current-card-header h2{color:var(--hero-text);flex-direction:column;align-items:flex-start;gap:2px;margin:0;display:flex}.current-weather-kicker{color:var(--hero-muted);letter-spacing:.04em;text-transform:uppercase;font-size:.76rem;font-weight:680;line-height:1.2}.current-weather-location{letter-spacing:-.02em;font-size:1.35rem;font-weight:780;line-height:1.15}.hero-refresh{border:1px solid var(--hero-border);background:var(--hero-tile);width:44px;height:44px;min-height:44px;color:var(--hero-text);border-radius:50%;place-items:center;padding:0;display:inline-grid}.refresh-icon{width:22px;height:22px}.refresh-icon.is-spinning{animation:.9s linear infinite spin}.condition{align-items:center;gap:9px;margin-top:12px;font-size:1.1rem;display:flex}.weather-icon{place-items:center;width:1.85em;height:1.85em;font-size:1.35rem;line-height:1;display:inline-grid}.weather-icon-svg{width:100%;height:100%;display:block;overflow:visible}.weather-glyph-sun{fill:#ffd166}.weather-glyph-sun path{fill:none;stroke:#ffd166;stroke-width:3px;stroke-linecap:round}.weather-glyph-cloud{fill:#dceaf2;stroke:#153d5459;stroke-width:1.5px}.weather-glyph-rain,.weather-glyph-snow,.weather-glyph-fog{fill:none;stroke:#72d2ff;stroke-width:3px;stroke-linecap:round}.weather-glyph-snow{stroke:#e8f8ff;stroke-width:2.5px}.weather-glyph-fog{stroke:#b9d5e2;stroke-width:2.5px}.weather-glyph-storm{fill:#ffd166;stroke:#ffd166;stroke-linejoin:round}.weather-glyph-unknown{fill:none;stroke:currentColor;stroke-width:2px;opacity:.65}.weather-glyph-unknown-mark{fill:none;stroke:currentColor;stroke-width:3px;stroke-linecap:round}.hero-temperature{letter-spacing:-.08em;margin:10px 0 4px;font-size:clamp(4rem,17vw,5rem);font-weight:850;line-height:.95}.current-summary p:not(.hero-temperature){color:var(--hero-muted);margin:0;font-size:.96rem}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px;margin:16px 0 12px;display:grid}.metrics div{border-radius:var(--radius-small);background:var(--hero-tile);padding:10px 11px}.metrics dt{color:var(--hero-muted);font-size:.76rem;font-weight:560}.metrics dd{white-space:nowrap;margin:3px 0 0;font-size:1.08rem;font-weight:720}.updated{color:var(--hero-muted);gap:3px;font-size:.8rem;display:grid}.updated p{margin:0}.updated a{text-underline-offset:3px}.stale-note{font-weight:760}.data-status{border:1px solid var(--hero-border);background:#00000029;border-radius:999px;width:fit-content;padding:4px 8px;font-weight:740}.data-status.is-attention{background:#37230052}.warning-card{border-color:color-mix(in srgb, #f59e0b 48%, var(--border-subtle))}.warning-item{border-top:1px solid var(--divider);gap:6px;padding:10px 0;display:grid}.warning-item:first-of-type{border-top:0;padding-top:0}.warning-title{margin:0;font-size:1.02rem;font-weight:780}.warning-meta,.warning-cache{color:var(--text-secondary);margin:0;font-size:.88rem}.warning-item details{color:var(--text-primary);margin-top:4px}.warning-item summary{cursor:pointer;min-height:44px;font-weight:720}.warning-item details p{color:var(--text-secondary);margin:8px 0 0}.warning-minor{--warning-accent:#eab308}.warning-moderate{--warning-accent:#f59e0b}.warning-severe{--warning-accent:#ef4444}.warning-extreme{--warning-accent:#a855f7}.warning-item{border-left:4px solid var(--warning-accent,var(--divider));padding-left:10px}.detail-section-grid{gap:14px;display:grid}.detail-section{padding:17px}.section-main-value{margin:8px 0 14px;font-size:clamp(1.9rem,7vw,2.55rem);font-weight:800;line-height:1}.detail-pair-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px;margin:0;display:grid}.detail-item{border-top:1px solid var(--divider);min-width:0;padding:10px 0}.detail-item-wide{grid-column:1/-1}.detail-item dt{color:var(--text-secondary);font-size:.78rem;font-weight:620}.detail-item dd{overflow-wrap:anywhere;margin:4px 0 0;font-size:1rem;font-weight:720}.forecast-card{overflow:hidden}.hourly-scroll-hint{margin-inline:-4px;position:relative}.hourly:focus-visible{border-radius:var(--radius-small)}.hourly-scroll-hint:after{content:"";pointer-events:none;background:linear-gradient(90deg, transparent, var(--surface-card));width:28px;position:absolute;inset:0 0 8px auto}.hourly{overscroll-behavior-x:contain;scroll-snap-type:x proximity;gap:10px;margin:0;padding:0 28px 8px 4px;list-style:none;display:flex;overflow-x:auto}.hour{scroll-snap-align:start;border:1px solid var(--border-subtle);border-radius:var(--radius-small);background:var(--surface-subtle);text-align:center;min-width:90px;padding:11px 10px}.hour time,.hour small{color:var(--text-secondary);white-space:nowrap;font-size:.78rem;display:block}.hour .weather-icon{margin:8px auto}.hour strong{white-space:nowrap;font-size:1.12rem;font-weight:760;display:block}.hour small{margin-top:5px}.air-quality-card{gap:10px;display:grid}.air-quality-card.aqi-good{--aqi-current:var(--aqi-good)}.air-quality-card.aqi-fair{--aqi-current:var(--aqi-fair)}.air-quality-card.aqi-moderate{--aqi-current:var(--aqi-moderate)}.air-quality-card.aqi-poor{--aqi-current:var(--aqi-poor)}.air-quality-card.aqi-very-poor{--aqi-current:var(--aqi-very-poor)}.air-quality-card.aqi-extremely-poor{--aqi-current:var(--aqi-extremely-poor)}.air-quality-card.aqi-unknown{--aqi-current:var(--text-secondary)}.air-quality-main{color:var(--aqi-current);margin:0;font-size:clamp(1.75rem,8vw,2.4rem);font-weight:820;line-height:1.05}.air-quality-trend,.air-quality-primary,.air-quality-status,.air-quality-empty{margin:0}.air-quality-trend{color:var(--text-primary);font-size:1rem;line-height:1.45}.air-quality-primary{color:var(--text-secondary);font-size:.93rem;font-weight:700}.air-quality-status{color:var(--warning-text);font-size:.86rem}.air-quality-empty{color:var(--text-secondary);font-size:.95rem}.daily-list{margin:0;padding:0;list-style:none;display:grid}.day{border-top:1px solid var(--divider);grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:10px 12px;padding:12px 6px;display:grid}.day:first-child{border-top:0}.day.is-today{border-radius:var(--radius-small);background:var(--surface-subtle);padding-inline:10px}.day-date{gap:3px;display:grid}.day-date time{font-weight:720}.day-date span{color:var(--accent-strong);font-size:.72rem;font-weight:780}.day-condition{align-items:center;gap:8px;min-width:0;display:flex}.day-condition span:last-child{overflow-wrap:anywhere}.day-icon{flex:none;width:1.55em;height:1.55em;font-size:1.35rem;line-height:1;display:inline-grid}.day-temps{white-space:nowrap;align-items:baseline;gap:4px;display:flex}.day-temps strong{font-weight:790}.day-temps span{color:var(--text-secondary)}.day-meta{color:var(--text-secondary);grid-column:2/4;margin:-4px 0 0;font-size:.84rem}.notice,.inline-note,.install-hint{border:1px solid var(--border-subtle);background:var(--surface-card);box-shadow:var(--shadow-card);border-radius:16px;padding:12px 14px}.status{font-weight:720}.warning{background:var(--warning-bg);color:var(--warning-text)}.error{background:var(--error-bg);color:var(--error-text);border-color:#9a2c2c73}.inline-note{background:var(--warning-bg);color:var(--warning-text);margin:-2px 0 0}.install-hint{justify-content:space-between;align-items:center;gap:12px;display:flex}.install-hint p{margin:0}.install-hint div{flex-wrap:wrap;gap:8px;display:flex}.install-hint button,.secondary-button{border:1px solid var(--border-subtle);background:var(--surface-card-emphasized);color:var(--text-primary);border-radius:14px;padding:8px 12px;font-weight:720}.text-button{color:var(--text-secondary);background:0 0;border-color:#0000}.install-icon{border:1px solid var(--border-subtle);object-fit:cover;border-radius:10px;flex:none;width:32px;height:32px;box-shadow:0 3px 10px #020a1f29}.install-action{align-items:center;gap:7px;display:inline-flex}.install-action-icon{object-fit:cover;border-radius:6px;flex:none;width:20px;height:20px}.update-dialog{inset:auto;top:max(8px, calc(env(safe-area-inset-top) + 8px));width:min(480px, calc(100% - 2 * var(--space-page) - env(safe-area-inset-left) - env(safe-area-inset-right)));max-width:none;height:fit-content;min-height:0;max-height:calc(100dvh - env(safe-area-inset-top) - 16px);border:1px solid var(--border-subtle);background:var(--surface-card);color:var(--text-primary);box-shadow:var(--shadow-modal);border-radius:18px;margin:0;padding:16px;position:fixed;left:50%;overflow-y:auto;transform:translate(-50%)}.update-dialog[open]{display:block}.update-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#030914a3}.update-dialog h2{margin:0;font-size:1.08rem}.update-dialog p{color:var(--text-secondary);margin:8px 0 0}.update-dialog-actions{justify-content:flex-end;align-items:center;gap:8px;margin-top:14px;display:flex}.update-dialog button{border:1px solid var(--border-subtle);background:var(--surface-card-emphasized);height:auto;min-height:44px;color:var(--text-primary);border-radius:14px;align-self:center;padding:8px 12px;font-weight:720}.update-dialog .update-action{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.update-dialog .text-button{color:var(--text-secondary);background:0 0;border-color:#0000}.site-footer{width:min(100%,860px);padding:10px 16px calc(env(safe-area-inset-bottom) + 12px);color:var(--text-secondary);text-align:center;margin:0 auto;font-size:.82rem}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.app-skeleton{gap:12px;display:grid}.app-skeleton p{color:var(--text-secondary);margin:0;font-weight:720}.skeleton-hero,.skeleton-grid span{border:1px solid var(--border-subtle);background:linear-gradient(105deg, var(--surface-card) 30%, var(--surface-subtle) 48%, var(--surface-card) 66%);background-size:240% 100%;animation:1.8s ease-in-out infinite skeleton-shimmer}.skeleton-hero{border-radius:var(--radius-hero);min-height:280px}.skeleton-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.skeleton-grid span{border-radius:var(--radius-card);min-height:130px}.fatal-error{width:min(100% - 32px,560px);margin:12vh auto 0}.fatal-error h1{margin:0 0 10px;font-size:1.25rem}.fatal-error p{line-height:1.5}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (hover:hover) and (pointer:fine){button:not(:disabled):hover{filter:brightness(.98)}.quick-location-chip:not([aria-pressed=true]):hover{border-color:var(--accent)}}@media (width>=760px){.app{width:min(100%,900px)}.metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.detail-section-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.simple-header{justify-content:space-between;align-items:center;gap:24px;display:flex}.simple-header h1{flex:none;margin-bottom:0;font-size:1.1rem;font-weight:760}.app-title{justify-content:flex-start;gap:8px}.app-mark{border-radius:9px;width:30px;height:30px;box-shadow:0 3px 10px #020a1f2e}.quick-location-card{width:min(100%,340px)}}@media (width>=1120px){.app,.site-footer{width:min(100%,920px)}}@media (width<=420px){:root{--space-page:14px}.card,.hero{padding:16px}.quick-location-chip{padding-inline:8px}.install-hint{display:grid}.update-dialog-actions{grid-template-columns:1fr 1fr;display:grid}.day{grid-template-columns:62px minmax(0,1fr) auto;gap:8px}.day-meta{grid-column:1/-1;margin-top:0}.detail-pair-grid{gap:0 14px}}@media (orientation:landscape) and (height<=520px){.hero-temperature{font-size:3.7rem}.card{padding:14px}}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important}.page-shell:before,.page-shell:after,.refresh-icon.is-spinning,.skeleton-hero,.skeleton-grid span{animation:none}}
