@import "https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Instrument+Serif:ital@0;1&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f4f1ea;--bg-elevated:#faf8f4;--text:#1a1814;--text-secondary:#5c574f;--text-muted:#8a847a;--border:#ddd8ce;--border-strong:#c4bdb0;--accent:#c45c26;--accent-soft:#c45c261f;--error-bg:#fce8e4;--error-text:#9b2c1a;--shadow:0 1px 2px #1a18140f, 0 4px 16px #1a18140a;--radius:10px;--radius-lg:16px;--font-sans:"DM Sans", system-ui, sans-serif;--font-display:"Instrument Serif", Georgia, serif}.dark{--bg:#141310;--bg-elevated:#1c1a17;--text:#ede9e1;--text-secondary:#a8a296;--text-muted:#6f6a62;--border:#2e2b26;--border-strong:#3d3932;--accent:#e07a3a;--accent-soft:#e07a3a26;--error-bg:#2a1814;--error-text:#f0a898;--shadow:0 1px 2px #0003, 0 4px 16px #00000026}body{font-family:var(--font-sans);background-color:var(--bg);min-height:100vh;color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5;transition:background-color .25s,color .25s}#root{min-height:100vh}.app{flex-direction:column;gap:1.75rem;max-width:520px;min-height:100vh;margin:0 auto;padding:1.5rem 1.25rem 3rem;display:flex}.header{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.header-brand{flex-direction:column;gap:.15rem;display:flex}.header-eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.header-title{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);font-size:clamp(1.75rem,6vw,2.25rem);font-weight:400;line-height:1.1}.theme-toggle{border:1px solid var(--border);background:var(--bg-elevated);width:2.5rem;height:2.5rem;color:var(--text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:border-color .15s,color .15s;display:flex}.theme-toggle:hover{border-color:var(--border-strong);color:var(--text)}.theme-toggle svg{width:1.1rem;height:1.1rem}.search-form{gap:.5rem;display:flex}.search-form input{min-width:0;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);outline:none;flex:1;padding:.75rem 1rem;font-family:inherit;font-size:.95rem;transition:border-color .15s}.search-form input::placeholder{color:var(--text-muted)}.search-form input:focus{border-color:var(--border-strong)}.search-form button{letter-spacing:.02em;color:var(--bg-elevated);background:var(--text);border-radius:var(--radius);cursor:pointer;border:none;padding:.75rem 1.125rem;font-family:inherit;font-size:.875rem;font-weight:600;transition:opacity .15s}.search-form button:hover{opacity:.85}.search-form button:disabled{opacity:.5;cursor:not-allowed}.status-message{text-align:center;color:var(--text-secondary);border:1px dashed var(--border);border-radius:var(--radius-lg);padding:2.5rem 1.5rem;font-size:.95rem}.status-message.loading{flex-direction:column;align-items:center;gap:1rem;display:flex}.loading-dots{gap:.35rem;display:flex}.loading-dots span{background:var(--text-muted);border-radius:50%;width:6px;height:6px;animation:1.2s ease-in-out infinite pulse}.loading-dots span:nth-child(2){animation-delay:.15s}.loading-dots span:nth-child(3){animation-delay:.3s}@keyframes pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}.error-message{color:var(--error-text);background:var(--error-bg);border-radius:var(--radius);border-left:3px solid var(--error-text);padding:1rem 1.25rem;font-size:.9rem}.weather-panel{flex-direction:column;gap:1.25rem;display:flex}.weather-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);overflow:hidden}.weather-card-header{justify-content:space-between;align-items:flex-start;padding:1.5rem 1.5rem 0;display:flex}.weather-location{flex-direction:column;gap:.2rem;display:flex}.weather-city{font-family:var(--font-display);color:var(--text);font-size:1.75rem;font-weight:400;line-height:1.15}.weather-date{color:var(--text-muted);font-size:.8rem}.unit-toggle{letter-spacing:.04em;color:var(--text-secondary);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;padding:.35rem .65rem;font-family:inherit;font-size:.75rem;font-weight:600;transition:border-color .15s,color .15s}.unit-toggle:hover{border-color:var(--border-strong);color:var(--text)}.weather-main{grid-template-columns:1fr auto;align-items:center;gap:.5rem 1rem;padding:1rem 1.5rem 1.25rem;display:grid}.weather-temp-block{align-items:flex-start;gap:0;display:flex}.weather-temp{font-family:var(--font-display);letter-spacing:-.03em;color:var(--text);font-size:clamp(4rem,18vw,5.5rem);font-weight:400;line-height:.9}.weather-unit{color:var(--text-muted);margin-top:.75rem;margin-left:.15rem;font-size:1.25rem;font-weight:500}.weather-icon-wrap{justify-content:center;align-items:center;display:flex}.weather-icon-wrap img{width:88px;height:88px;margin:-.5rem -.25rem 0 0}.weather-description{color:var(--text-secondary);text-transform:capitalize;grid-column:1/-1;padding-top:.25rem;font-size:.95rem}.weather-stats{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;display:grid}.stat{flex-direction:column;gap:.15rem;padding:1rem 1.5rem;display:flex}.stat+.stat{border-left:1px solid var(--border)}.stat-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.stat-value{color:var(--text);font-size:1.05rem;font-weight:600}.forecast-section{flex-direction:column;gap:.875rem;display:flex}.forecast-heading{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);padding-left:.125rem;font-size:.7rem;font-weight:600}.forecast-list{grid-template-columns:repeat(5,1fr);gap:.5rem;display:grid}.forecast-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);text-align:center;flex-direction:column;align-items:center;gap:.35rem;padding:.875rem .5rem;transition:border-color .15s;display:flex}.forecast-card:hover{border-color:var(--border-strong)}.forecast-day{letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem;font-weight:600}.forecast-icon{width:40px;height:40px}.forecast-temps{font-variant-numeric:tabular-nums;gap:.35rem;font-size:.8rem;display:flex}.forecast-high{color:var(--text);font-weight:600}.forecast-low{color:var(--text-muted)}@media (width<=420px){.forecast-list{grid-template-columns:repeat(5,minmax(0,1fr));gap:.35rem}.forecast-card{padding:.75rem .25rem}.forecast-temps{flex-direction:column;gap:0;line-height:1.3}}@media (width>=521px){.app{padding-top:2.5rem}}
