:root{color:#ecf4ff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#07111f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-weight:400;line-height:1.5}*{box-sizing:border-box}html{min-width:320px;min-height:100%}body{background:#07111f;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}a{color:inherit}#root{min-height:100vh}.auth-shell,.dashboard-shell{color:#ecf4ff;background:#0b1320;min-height:100svh}.auth-shell{place-items:center;padding:1rem;display:grid}.dashboard-shell{padding:1rem}.auth-panel{color:#102033;background:#f4f8fc;border-radius:1.75rem;flex-direction:column;gap:1rem;width:min(100%,30rem);padding:clamp(1.25rem,3vw,2rem);display:flex;box-shadow:0 24px 60px #0208173d}.mode-switch{background:#e9f2fb;border-radius:999px;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:.35rem;display:grid}.tab,.primary-button,.secondary-button,.link-button{font:inherit}.tab{color:#48627b;cursor:pointer;background:0 0;border:0;border-radius:999px;padding:.85rem 1rem;transition:background-color .18s,color .18s,box-shadow .18s,transform .18s}.tab.is-active{color:#fff;background:#1761a8;box-shadow:0 10px 20px #0f356538}.panel-header h1,.dashboard-header h1{color:#0f172a;margin:0;font-size:clamp(1.7rem,4vw,2.6rem);line-height:1.05}.dashboard-header h1{color:#f4f8fc}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:#90d7ff;margin:0 0 .35rem;font-size:.78rem}.panel-header p,.dashboard-copy,.status,.empty-state,.favorite-card-header p{color:#48627b;margin:0;line-height:1.7}.status{min-height:1.5rem}.status-error{color:#b42318;background:#fff0f0;border-radius:1rem;padding:.75rem 1rem}.auth-form{gap:1rem;display:grid}.field-slot{min-height:0}.auth-form.is-sign-up .field-slot{min-height:4.85rem}.field,.search-field{color:#22364b;gap:.5rem;font-size:.95rem;font-weight:600;display:grid}.auth-form input[type=text],.auth-form input[type=email],.auth-form input[type=password],.search-field input{appearance:none;box-sizing:border-box;color:#0f172a;width:100%;font:inherit;background:#fff;border:1px solid #cad9e8;border-radius:1rem;padding:.95rem 1rem;transition:border-color .18s,box-shadow .18s,transform .18s}.auth-form input::placeholder,.search-field input::placeholder{color:#8aa0b4}.auth-form input:focus,.search-field input:focus{border-color:#2a7fc2;outline:none;box-shadow:0 0 0 4px #2a7fc21f}.form-row{color:#49627a;justify-content:space-between;align-items:center;gap:1rem;min-height:2rem;display:flex}.checkbox{align-items:center;gap:.65rem;font-weight:500;display:inline-flex}.checkbox input{accent-color:#1761a8;width:1rem;height:1rem}.primary-button,.secondary-button{cursor:pointer;border:0;border-radius:1rem;padding:.95rem 1.1rem;transition:transform .18s,box-shadow .18s,background-color .18s,opacity .18s}.primary-button{color:#fff;background:#1761a8;font-weight:700;box-shadow:0 18px 30px #0f356533}.secondary-button{color:#18314a;background:#edf5fb;font-weight:600}.primary-button:disabled,.secondary-button:disabled,.link-button:disabled{cursor:not-allowed;opacity:.65}.primary-button:hover,.secondary-button:hover,.tab:hover{transform:translateY(-1px)}.link-button{color:#1761a8;cursor:pointer;background:0 0;border:0;padding:0;font-weight:700}.form-note{color:#48627b;margin:0;font-size:.95rem}.panel-footer{color:#48627b;text-align:center;min-height:1.75rem;margin:0}.panel-footer-copy{min-width:14ch;display:inline-block}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:1rem;width:min(100%,72rem);margin:0 auto 1rem;display:flex}.dashboard-copy{color:#c5d1e0;max-width:60ch}.signout-button{align-self:flex-start}.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;width:min(100%,72rem);margin:0 auto;display:grid}.panel{color:#102033;background:#f4f8fc;border-radius:1.5rem;padding:1.25rem;box-shadow:0 24px 60px #0208173d}.search-panel,.forecast-panel,.favorites-panel,.current-panel{grid-column:span 1}.forecast-panel,.favorites-panel{min-height:100%}.panel-title-row{justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.panel-kicker{text-transform:uppercase;letter-spacing:.16em;color:#2d79b5;margin:0 0 .25rem;font-size:.76rem}.panel-title-row h2{color:#0f172a;margin:0;font-size:1.35rem}.favorite-count{color:#1761a8;background:#e9f2fb;border-radius:999px;flex:none;padding:.35rem .75rem;font-weight:700}.search-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;margin-top:1rem;display:grid}.weather-summary{gap:1rem;margin-top:1rem;display:grid}.weather-hero{color:#fff;background:#1761a8;border-radius:1.25rem;flex-direction:column;gap:.25rem;padding:1.25rem;display:flex}.weather-hero strong{font-size:clamp(2.4rem,7vw,3.4rem);line-height:1}.metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin:0;display:grid}.metric-grid div,.forecast-card,.favorite-card{background:#fff;border:1px solid #d8e2ee;border-radius:1rem;padding:1rem}.metric-grid dt,.forecast-card dt{text-transform:uppercase;letter-spacing:.12em;color:#6b7f95;font-size:.78rem}.metric-grid dd,.forecast-card dd{color:#0f172a;margin:.3rem 0 0;font-weight:700}.forecast-list,.favorites-list{gap:.75rem;margin-top:1rem;display:grid}.forecast-card strong{color:#0f172a;margin:.4rem 0 .75rem;display:block}.forecast-card dl{flex-wrap:wrap;gap:1rem;margin:0;display:flex}.forecast-date,.favorite-card-header p{color:#48627b;margin:0}.metric-grid-compact{margin-top:.85rem}.favorite-card-header h3{color:#0f172a;margin:0;font-size:1.05rem}.favorite-card-header .link-button{flex:none}.favorite-card-actions{flex:none;align-items:center;gap:.9rem;display:inline-flex}.favorite-card{transition:transform .18s,border-color .18s,box-shadow .18s}.favorite-card:hover{border-color:#bcd2e6;transform:translateY(-1px);box-shadow:0 14px 30px #0f356514}.favorite-card--active{border-color:#2a7fc2;box-shadow:0 0 0 1px #2a7fc238,0 18px 36px #0f35651f}.empty-state{margin-top:1rem}.search-field{margin:0}.favorite-card .status-error{margin-top:.35rem}@media (width<=960px){.dashboard-header,.dashboard-grid{width:min(100%,42rem)}.dashboard-header{flex-direction:column}.dashboard-grid,.metric-grid,.search-form{grid-template-columns:1fr}}@media (width<=640px){.auth-shell,.dashboard-shell{padding:.75rem}.auth-panel,.panel{border-radius:1.25rem;width:100%}.form-row{flex-direction:column;align-items:flex-start;min-height:auto}.panel-footer-copy{min-width:0}.panel-title-row{flex-direction:column}}
