:root{--bg-a: #0b1220;--bg-b: #16213e;--fg: #f5f7fb;--fg-muted: #b8c3dd;--card: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .12);--accent: #7cc4ff;--danger: #ff8a8a;--radius: 18px;--shadow: 0 10px 30px rgba(0, 0, 0, .25);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0;background:var(--bg-a);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{min-height:100dvh}a{color:var(--accent)}.app{min-height:100dvh;padding:max(env(safe-area-inset-top),16px) 16px max(env(safe-area-inset-bottom),16px);padding-left:max(env(safe-area-inset-left),16px);padding-right:max(env(safe-area-inset-right),16px);background:radial-gradient(120% 90% at 50% -10%,var(--bg-b) 0%,var(--bg-a) 60%,#05070f 100%);transition:background .8s ease;max-width:780px;margin:0 auto}.theme-clear{--bg-a: #0a1a36;--bg-b: #2f6ed1;--accent: #ffd97d}.theme-night{--bg-a: #05070f;--bg-b: #111a36;--accent: #a1c4ff}.theme-cloudy{--bg-a: #1b2336;--bg-b: #3a4663;--accent: #cfd7ea}.theme-rain{--bg-a: #0b1b2b;--bg-b: #20425f;--accent: #7cc4ff}.theme-snow{--bg-a: #12223a;--bg-b: #5f7695;--accent: #e7f0ff}.theme-storm{--bg-a: #0a0f1e;--bg-b: #353154;--accent: #f1b0ff}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.brand{display:flex;align-items:center;gap:10px;font-weight:600}.brand-mark{font-size:22px}.brand-name{font-size:16px;letter-spacing:.2px}.units-toggle{display:inline-flex;gap:6px;padding:8px 12px;border-radius:999px;border:1px solid var(--card-border);background:var(--card);color:var(--fg-muted);cursor:pointer;font-weight:500;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.units-toggle .active{color:var(--fg);font-weight:700}.location-bar{position:relative;margin-bottom:12px}.location-pill{display:flex;align-items:center;gap:8px;width:100%;padding:12px 14px;border-radius:14px;border:1px solid var(--card-border);background:var(--card);color:var(--fg);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.location-pill .label{flex:1;text-align:left;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.location-pill .chev{color:var(--fg-muted)}.location-popover{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;padding:10px;border-radius:14px;border:1px solid var(--card-border);background:#0e1628eb;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}.geo-btn{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--card-border);background:transparent;color:var(--fg);cursor:pointer;margin-bottom:8px}.search-row input{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--card-border);background:#ffffff0a;color:var(--fg);font-size:16px}.results{list-style:none;margin:8px 0 0;padding:0;max-height:240px;overflow:auto}.results li .hint,.results .hint{padding:8px 10px;color:var(--fg-muted);font-size:14px}.results li button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;text-align:left;background:transparent;border:0;color:var(--fg);padding:10px;border-radius:8px;cursor:pointer}.results li button:hover{background:#ffffff0f}.results li button span{color:var(--fg-muted);font-size:13px}.content{display:flex;flex-direction:column;gap:14px}.skeleton,.alert{padding:20px;border-radius:var(--radius);background:var(--card);border:1px solid var(--card-border);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.alert{color:var(--danger)}.inline-btn{margin-left:8px;background:transparent;color:var(--accent);border:0;cursor:pointer;text-decoration:underline}.spinner{width:24px;height:24px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:var(--accent);margin:0 auto 10px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.card{border-radius:var(--radius);border:1px solid var(--card-border);background:var(--card);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);overflow:hidden}.card-header{display:flex;align-items:center;gap:8px;padding:14px 16px 4px;color:var(--fg-muted);font-weight:600;font-size:13px;letter-spacing:.6px;text-transform:uppercase}.card-header.collapsible{width:100%;border:0;background:transparent;color:var(--fg-muted);cursor:pointer;justify-content:flex-start}.card-header .chev{margin-left:auto;color:var(--fg-muted)}.card-summary{margin-left:auto;font-size:11px;font-weight:500;letter-spacing:.2px;text-transform:none;color:var(--fg-muted);opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}.card-summary+.chev{margin-left:8px}.card-icon{font-size:14px}.card-body{padding:6px 16px 16px}.current{padding:22px;border-radius:var(--radius);background:linear-gradient(140deg,#ffffff14,#ffffff05);border:1px solid var(--card-border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.current-main{display:flex;align-items:center;gap:16px}.current-main .icon{font-size:56px;line-height:1}.temp-now{font-size:56px;font-weight:300;line-height:1;letter-spacing:-1px}.temps .label{margin-top:6px;font-weight:600}.temps .feels{color:var(--fg-muted);font-size:14px}.current-meta{margin-top:16px;display:flex;flex-direction:column;gap:10px}.hi-lo{display:flex;gap:14px;color:var(--fg-muted)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px}.stats>div{display:flex;justify-content:space-between;padding:6px 0;border-top:1px solid rgba(255,255,255,.06)}.stats .k{color:var(--fg-muted)}.summary{margin:4px 0 10px;font-size:15px;line-height:1.45}.hourly-strip{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 2px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.hourly-cell{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;background:#ffffff0a;scroll-snap-align:start}.hourly-cell .t{font-size:12px;color:var(--fg-muted)}.hourly-cell .i{font-size:22px;line-height:1}.hourly-cell .temp{font-weight:600}.hourly-cell .pop{font-size:11px;color:var(--fg-muted)}.hourly-cell .pop.wet{color:var(--accent)}.cards{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 520px){.cards{grid-template-columns:1fr}}.card .big{font-size:26px;font-weight:600}.card .sub{color:var(--fg-muted);font-size:13px;margin-bottom:8px}.card .note{font-size:14px;color:var(--fg);margin-top:6px}.bar{display:flex;align-items:flex-end;gap:3px;height:48px;padding-top:10px}.bar-tick{flex:1;background:linear-gradient(180deg,var(--accent) 0%,rgba(124,196,255,.2) 100%);border-radius:3px 3px 0 0;min-height:2px}.bar-labels{display:flex;justify-content:space-between;font-size:11px;color:var(--fg-muted);margin-top:4px}.sun-times{display:flex;justify-content:space-between;gap:14px;margin-bottom:12px}.sun-times .k{display:block;font-size:12px;color:var(--fg-muted)}.sun-times .v{font-size:18px;font-weight:600}.sun-arc{position:relative;height:32px;margin:6px 0 10px}.sun-arc-track{position:absolute;inset:auto 0 6px;height:2px;background:linear-gradient(90deg,#ffd97d26,#ffd97d99,#ffd97d26);border-radius:2px}.sun-arc-dot{position:absolute;top:-4px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#ffd97d;box-shadow:0 0 16px #ffd97d99}.daily-list{list-style:none;margin:0;padding:6px 12px 12px}.daily-row{padding:0}.daily-row-btn{display:grid;grid-template-columns:56px 24px 44px 1fr 44px 40px 14px;align-items:center;gap:8px;width:100%;padding:10px 4px;border:0;background:transparent;color:var(--fg);cursor:pointer;text-align:left;border-top:1px solid rgba(255,255,255,.06);border-radius:0;-webkit-tap-highlight-color:rgba(124,196,255,.15);transition:background .12s ease}.daily-row-btn:hover,.daily-row-btn:focus-visible{background:#ffffff0a;outline:none}.daily-row:first-child .daily-row-btn{border-top:0}.daily-row-btn .day{font-weight:600}.daily-row-btn .wi{font-size:20px;text-align:center}.daily-row-btn .lo,.daily-row-btn .hi{color:var(--fg-muted);text-align:right;font-variant-numeric:tabular-nums}.daily-row-btn .hi{color:var(--fg)}.daily-row-btn .pop{text-align:right;font-size:12px;color:var(--accent)}.daily-row-btn .chev{color:var(--fg-muted);font-size:18px;line-height:1;text-align:right}.rangebar{position:relative;height:6px;background:#ffffff14;border-radius:3px}.rangebar-fill{position:absolute;top:0;bottom:0;background:linear-gradient(90deg,#7cc4ff,#ffd97d);border-radius:3px}.footer{margin-top:18px;display:flex;justify-content:space-between;gap:12px;color:var(--fg-muted);font-size:12px}.card-moon .moon-main{display:flex;align-items:center;gap:14px;margin-bottom:14px}.moon-icon{font-size:44px;line-height:1;filter:drop-shadow(0 0 14px rgba(255,255,255,.25))}.moon-name{font-size:18px;font-weight:600}.moon-sub{color:var(--fg-muted);font-size:13px}.moon-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:8px}.moon-stats>div{display:flex;flex-direction:column;gap:2px}.moon-stats .k{color:var(--fg-muted);font-size:12px}.moon-stats .v{font-weight:600}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#03060e8c;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .18s ease-out;transition:opacity .22s ease-out}.modal-backdrop.closing{pointer-events:none}.modal-sheet{width:100%;max-width:780px;max-height:92dvh;background:linear-gradient(160deg,#16233d,#0b1220);border-top-left-radius:24px;border-top-right-radius:24px;border:1px solid var(--card-border);box-shadow:0 -20px 60px #00000073;display:flex;flex-direction:column;animation:slideUp .22s cubic-bezier(.22,1,.36,1);transition:transform .22s cubic-bezier(.22,1,.36,1);padding-bottom:env(safe-area-inset-bottom);will-change:transform}.modal-backdrop.closing .modal-sheet{transform:translateY(100%)!important}.modal-drag-region{flex-shrink:0;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.modal-drag-region:active{cursor:grabbing}.modal-drag-content{padding:6px 18px 14px}.modal-grabber{width:40px;height:5px;border-radius:999px;background:#ffffff40;margin:8px auto 2px}@media (min-width: 640px){.modal-backdrop{align-items:center}.modal-sheet{border-radius:24px;max-height:88dvh}}@keyframes fadeIn{0%{opacity:0}}@keyframes slideUp{0%{transform:translateY(24px);opacity:0}}.modal-header{display:flex;align-items:center;gap:12px;padding:14px 14px 8px;border-bottom:1px solid rgba(255,255,255,.06)}.modal-title{flex:1;text-align:center;font-weight:600;font-size:15px;letter-spacing:.2px}.modal-back,.modal-close{background:transparent;border:0;color:var(--fg);font-size:14px;padding:8px 10px;border-radius:10px;cursor:pointer}.modal-back{font-weight:500;color:var(--accent)}.modal-close{font-size:18px;color:var(--fg-muted);width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center}.modal-back:hover,.modal-close:hover{background:#ffffff0f}.detail-section{padding:4px 18px 20px;border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.detail-hero{display:flex;align-items:center;gap:18px;padding:4px 2px 8px}.detail-icon{font-size:64px;line-height:1}.detail-high{font-size:44px;font-weight:300;letter-spacing:-1px;line-height:1}.detail-low{color:var(--fg-muted);margin-top:4px}.detail-label{margin-top:6px;font-weight:600}.detail-feels{color:var(--fg-muted);font-size:13px}.detail-summary{margin:14px 0 6px;font-size:15px;line-height:1.5;color:var(--fg)}.detail-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 16px;margin:12px 0 16px}@media (min-width: 500px){.detail-stats{grid-template-columns:repeat(3,1fr)}}.stat-cell{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid rgba(255,255,255,.06)}.stat-cell .k{color:var(--fg-muted);font-size:13px}.stat-cell .v{font-weight:600;font-variant-numeric:tabular-nums}.detail-section h3{margin:18px 0 8px;font-size:13px;letter-spacing:.6px;text-transform:uppercase;color:var(--fg-muted);font-weight:600}.detail-hours{display:flex;gap:10px;overflow-x:auto;padding:4px 2px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.detail-hour{flex:0 0 64px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;border-radius:12px;background:#ffffff0a;scroll-snap-align:start}.detail-hour .t{font-size:12px;color:var(--fg-muted)}.detail-hour .i{font-size:22px;line-height:1}.detail-hour .temp{font-weight:600}.detail-hour .pop{font-size:11px;color:var(--fg-muted)}.detail-hour .pop.wet{color:var(--accent)}
