:root{--bg: #0b1220;--surface: #131c2e;--surface-2: #1b2740;--border: #28344f;--text: #e7ecf5;--muted: #9fb0cc;--accent: #4c8dff;--accent-text: #cfe0ff;--warn: #ffb020;--sev-extreme: #ff4d4f;--sev-severe: #ff7a45;--sev-moderate: #ffb020;--sev-minor: #ffd666;--sev-unknown: #8c9bb5;--radius: 12px;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}#root{max-width:960px;margin:0 auto;padding:1.25rem}a{color:var(--accent)}.header-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.app-header h1{font-size:1.5rem;margin:0 0 .25rem}.share-btn{flex:0 0 auto;padding:.4rem .9rem;font-size:.85rem;font-weight:600;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--accent-text);cursor:pointer}.share-btn:hover{border-color:var(--accent)}.app-header p{color:var(--muted);margin:0 0 1rem;font-size:.95rem}.search-form{display:flex;gap:.5rem;margin-bottom:1rem}.search-form input{flex:1;min-width:0;padding:.7rem .9rem;font-size:1rem;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text)}.search-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.search-form button{padding:.7rem 1.1rem;font-size:1rem;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent);color:#04122c;font-weight:600;cursor:pointer}.search-form button:disabled{opacity:.6;cursor:progress}.examples{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}.examples button{background:var(--surface-2);border:1px solid var(--border);color:var(--accent-text);border-radius:999px;padding:.3rem .75rem;font-size:.85rem;cursor:pointer}.examples button:disabled{opacity:.6;cursor:progress}.examples .locate-btn{border-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.1rem;margin-bottom:1.1rem}.location-title{margin:0 0 .25rem;font-size:1.3rem}.location-sub{color:var(--muted);font-size:.85rem;margin:0}.current-grid{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.current-temp{font-size:3rem;font-weight:700;line-height:1}.current-desc{font-size:1.1rem;color:var(--accent-text)}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.6rem;margin-top:.75rem}.metric{background:var(--surface-2);border-radius:10px;padding:.55rem .7rem}.metric .label{display:block;color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.metric .value{font-size:1.1rem;font-weight:600}.forecast-list{display:grid;gap:.6rem}.period{display:grid;grid-template-columns:110px 1fr auto;gap:.75rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--border)}.period:last-child{border-bottom:none}.period .name{font-weight:600}.period .detail{color:var(--muted);font-size:.88rem}.period .temp{font-size:1.25rem;font-weight:700;text-align:right;white-space:nowrap}.period .pop{color:var(--accent);font-size:.8rem}.hourly-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;background:none;border:none;cursor:pointer;color:inherit}.hourly-toggle .section-title{margin:0}.hourly-chevron{color:var(--muted);font-size:.75rem}.hourly-strip{display:flex;gap:.5rem;overflow-x:auto;padding:.9rem 0 .2rem;scrollbar-width:thin}.hour{flex:0 0 auto;width:76px;display:grid;gap:.3rem;justify-items:center;text-align:center;padding:.6rem .4rem;background:var(--surface-2);border-radius:10px}.hour-time{font-weight:600;font-size:.85rem}.hour-icon{width:34px;height:34px;border-radius:6px}.hour-temp{font-size:1.1rem;font-weight:700}.hour-pop{color:var(--accent);font-size:.78rem}.hour-desc{color:var(--muted);font-size:.72rem;line-height:1.2}.alert{border-left:4px solid var(--sev-unknown);background:var(--surface-2);border-radius:8px;padding:.7rem .9rem;margin-bottom:.6rem}.alert.sev-Extreme{border-left-color:var(--sev-extreme)}.alert.sev-Severe{border-left-color:var(--sev-severe)}.alert.sev-Moderate{border-left-color:var(--sev-moderate)}.alert.sev-Minor{border-left-color:var(--sev-minor)}.alert .event{font-weight:700}.alert .badge{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;padding:.1rem .45rem;border-radius:999px;background:#ffffff14;margin-left:.5rem}.alert summary{cursor:pointer;list-style:none;display:flex;align-items:baseline;flex-wrap:wrap;gap:.15rem 0}.alert summary::-webkit-details-marker{display:none}.alert summary:after{content:"▾";margin-left:auto;color:var(--muted);font-size:.75rem;transition:transform .15s ease}.alert[open] summary:after{transform:rotate(180deg)}.alert-until{color:var(--muted);font-size:.8rem;margin-left:.5rem}.alert-body{margin-top:.5rem;border-top:1px solid var(--border);padding-top:.5rem}.alert-headline{margin:0 0 .35rem;font-size:.88rem}.alert-desc,.alert-instruction{color:var(--muted);font-size:.85rem;margin:.35rem 0 0;white-space:pre-line}.alert-instruction strong{color:var(--text)}.alert .area{color:var(--muted);font-size:.82rem;margin:.2rem 0 0}.alerts-hint{color:var(--muted);font-size:.75rem;margin:.4rem 0 0}.kalshi-card{border:1px solid var(--accent);background:linear-gradient(180deg,#16233d,#131c2e)}.kalshi-card h3{margin:0 0 .35rem;font-size:1.05rem}.kalshi-card .lede{color:var(--muted);font-size:.9rem;margin:0 0 .75rem}.bucket-ladder{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0 .75rem}.bucket{border:1px solid var(--border);border-radius:8px;padding:.35rem .6rem;font-size:.85rem;background:var(--surface);color:var(--muted)}.bucket.hit{border-color:var(--accent);background:var(--accent);color:#04122c;font-weight:700}.kalshi-link{display:inline-block;margin-top:.25rem;padding:.5rem .9rem;border-radius:8px;border:1px solid var(--accent);color:var(--accent-text);text-decoration:none;font-weight:600;font-size:.9rem}.disclaimer{color:var(--muted);font-size:.74rem;margin-top:.6rem}.status{color:var(--muted);padding:1rem 0}.error{color:#ffb4b4;background:#3a1b1b;border:1px solid #5c2b2b;border-radius:var(--radius);padding:.8rem 1rem;margin-bottom:1.1rem}.error p{margin:0 0 .6rem}.error-actions{display:flex;flex-wrap:wrap;gap:.5rem}.error-actions button{padding:.4rem .9rem;font-size:.85rem;font-weight:600;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:#04122c;cursor:pointer}.error-actions button.secondary{background:transparent;color:var(--accent-text);border-color:var(--border)}.demo-banner{background:#33290f;border:1px solid #6b5518;color:#ffe1a1;border-radius:var(--radius);padding:.7rem 1rem;font-size:.88rem;margin-bottom:1.1rem}.demo-banner button{margin-left:.35rem;padding:.25rem .7rem;font-size:.8rem;font-weight:600;border-radius:999px;border:1px solid #6b5518;background:transparent;color:inherit;cursor:pointer}.results.is-refreshing{opacity:.55;transition:opacity .2s ease}.skeleton-card{display:grid;gap:.7rem}.skeleton-line{height:.9rem;border-radius:6px;background:var(--surface-2);animation:skeleton-pulse 1.4s ease-in-out infinite}.skeleton-line.tall{height:2.4rem}.skeleton-line.w-25{width:25%}.skeleton-line.w-30{width:30%}.skeleton-line.w-40{width:40%}.skeleton-line.w-60{width:60%}.skeleton-line.w-80{width:80%}.skeleton-line.w-85{width:85%}.skeleton-line.w-90{width:90%}@keyframes skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}@media (prefers-reduced-motion: reduce){.skeleton-line{animation:none}.alert summary:after{transition:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.period .wind{white-space:normal}@media (max-width: 560px){#root{padding:1rem .85rem}.period{grid-template-columns:1fr auto;grid-template-areas:"name temp" "detail detail";gap:.15rem .75rem}.period>div:nth-child(1){grid-area:name}.period .detail{grid-area:detail}.period .temp{grid-area:temp}.current-temp{font-size:2.4rem}.search-form button{padding:.7rem .9rem}}.app-footer{color:var(--muted);font-size:.78rem;border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem}.section-title{font-size:1.05rem;margin:0 0 .6rem;color:var(--accent-text)}
