*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f1117;--surface:#1a1d27;--border:#2a2d3a;--text:#e4e6ed;--text-muted:#8b8fa3;--accent:#5b9cf6;--warm:#f5a623;--cool:#4fc3f7;--rain:#66b3ff;--danger:#ef5350;--success:#66bb6a;--font:system-ui, -apple-system, sans-serif}html{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;line-height:1.5;overflow-x:hidden}body{max-width:960px;margin:0 auto;padding:1rem}header{text-align:center;padding:1.5rem 0 1rem}header h1{margin-bottom:.75rem;font-size:1.4rem;font-weight:600}#location-bar{justify-content:center;align-items:center;gap:.75rem;display:flex}#location-bar .separator{color:var(--text-muted);font-size:.85rem}#zip-form{gap:.25rem;display:flex}#zip-input{border:1px solid var(--border);background:var(--surface);width:5.5rem;color:var(--text);text-align:center;border-radius:6px;padding:.4rem .6rem;font-size:.9rem}button{border:1px solid var(--border);background:var(--surface);color:var(--accent);cursor:pointer;border-radius:6px;padding:.4rem .8rem;font-size:.85rem;transition:background .15s}button:hover{background:var(--border)}#location-display{justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;display:flex}.icon-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1;transition:color .15s}.icon-btn:hover{color:var(--accent);background:0 0}#location-label{color:var(--text);font-size:1.15rem;font-weight:500}#forecast-meta-bar{color:var(--text-muted);justify-content:center;align-items:center;gap:.5rem;margin-top:.25rem;font-size:.8rem;display:flex}.meta-separator{color:var(--text-muted)}#unit-toggle{align-items:center;gap:.15rem;display:inline-flex}.unit-text{color:var(--text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;padding:.2rem .3rem;font-size:.8rem;font-style:italic;transition:color .15s}.unit-text:hover{color:var(--text)}.unit-text.active{color:var(--text);text-underline-offset:2px;text-decoration:underline}.unit-slash{color:var(--text-muted);font-size:.8rem;font-style:italic}#updating-indicator{color:var(--accent);animation:1.5s ease-in-out infinite pulse}#loading{text-align:center;padding:4rem 0}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:32px;height:32px;margin:0 auto 1rem;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}#error{border:1px solid var(--danger);color:var(--danger);background:#2d1515;border-radius:8px;margin:1rem 0;padding:1rem}#aberrations{margin-bottom:1.5rem}.aberration-card{background:var(--surface);border-left:4px solid var(--accent);border-radius:8px;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.75rem 1rem;font-size:.9rem;display:flex}.aberration-card.warm{border-left-color:var(--warm)}.aberration-card.cool{border-left-color:var(--cool)}.aberration-card.rain{border-left-color:var(--rain)}.aberration-card.danger{border-left-color:var(--danger)}.aberration-icon{flex-shrink:0;font-size:1.3rem}#model-controls{z-index:10;background:var(--bg);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem 1rem;margin-bottom:1rem;padding:.5rem 0;display:flex;position:sticky;top:0}#model-checkboxes{align-items:center;gap:.75rem;display:flex}.select-all-glyph{cursor:pointer;color:var(--text-muted);-webkit-user-select:none;user-select:none;font-size:1.1rem;line-height:1}.select-all-glyph:hover{color:var(--text)}.model-checkbox{color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation;align-items:center;gap:.3rem;font-size:.85rem;display:flex}.model-checkbox input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.model-checkbox.unavailable{opacity:.4;pointer-events:none}#toggle-group{flex-wrap:wrap;flex:1;justify-content:center;align-items:center;gap:.5rem;display:flex}#view-toggle{gap:0;display:flex}.view-btn{color:var(--text-muted);border-color:var(--border);border-radius:0;padding:.35rem .75rem;font-size:.85rem}.view-btn:first-child{border-radius:4px 0 0 4px}.view-btn:last-child{border-left:none;border-radius:0 4px 4px 0}.view-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}#blend-toggle{gap:0;display:flex}.blend-btn{color:var(--text-muted);border-color:var(--border);border-radius:0;padding:.35rem .75rem;font-size:.85rem}.blend-btn:first-child{border-radius:4px 0 0 4px}.blend-btn:last-child{border-left:none;border-radius:0 4px 4px 0}.blend-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.blend-btn.inactive{opacity:.4}#charts{gap:1.5rem;display:grid}.chart-container{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.chart-header{justify-content:space-between;align-items:baseline;margin-bottom:.5rem;display:flex}.chart-container h2{color:var(--text-muted);font-size:.95rem;font-weight:500}.chart-legend{color:var(--text-muted);font-size:.7rem}canvas{width:100%;height:200px;display:block}footer{text-align:center;color:var(--text-muted);padding:2rem 0 1rem;font-size:.8rem}footer a{color:var(--accent);text-decoration:none}#info-toggle{letter-spacing:.05em;font-size:.85rem}#info-panel{text-align:left;background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-top:.75rem;padding:1rem;font-size:.8rem;line-height:1.6}#info-panel p{margin-bottom:.5rem}#info-panel p:last-child{margin-bottom:0}#blend-weights-info{font-style:italic}.hidden{display:none!important}@media (max-width:600px){body{padding:.5rem}header{padding:1rem 0 .75rem}header h1{margin-bottom:.5rem;font-size:1.15rem}#location-bar{flex-wrap:wrap;gap:.5rem}button{padding:.5rem 1rem;font-size:.9rem}#zip-input{padding:.5rem .6rem;font-size:.95rem}.chart-container{padding:.625rem}#charts{gap:1rem}canvas{height:180px}.aberration-card{gap:.5rem;padding:.625rem .75rem;font-size:.85rem}#model-controls{flex-direction:column;align-items:stretch;gap:.5rem}#model-checkboxes,#blend-toggle{justify-content:center}footer{padding:1.5rem 0 .75rem}}
