.app-shell{width:min(100%,58rem);min-height:100vh;margin:0 auto;padding:1.25rem 1rem 2.5rem}.app-header{padding:.25rem .25rem .8rem}.eyebrow,.location-label{margin:0 0 .25rem;color:#356483;font-size:.75rem;font-weight:750;letter-spacing:.08em;text-transform:uppercase}h1{margin:0;color:#102f47;font-size:clamp(1.75rem,7vw,2.65rem);line-height:1.12;letter-spacing:-.035em}.weather-section{width:100%}.weather-meta{display:flex;min-height:1.5rem;align-items:center;justify-content:space-between;gap:.75rem;padding:0 .25rem}.weather-updated,.loading-status{margin:0;color:#5b7384;font-size:.78rem}.loading-status{color:#155f91;font-weight:700}.weather-grid{display:grid;gap:.85rem;margin-top:.55rem}.forecast-card{min-width:0;overflow:hidden;border:1px solid rgb(108 164 202 / 24%);border-radius:1.4rem;padding:1.15rem;background:#ffffffe0}.forecast-card--current{box-shadow:0 1rem 2.5rem #205c8524}.forecast-card--next{background:#eff8fec7;box-shadow:0 .5rem 1.5rem #205c8514}.forecast-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.forecast-heading h2{margin:0;color:#173d56;font-size:1rem;letter-spacing:-.01em}.forecast-card--current .forecast-heading h2{font-size:1.2rem}.forecast-time{flex:0 0 auto;margin:0;color:#607989;font-size:.78rem}.current-weather,.next-weather{display:flex;align-items:center;gap:1rem;margin:1.1rem 0}.next-weather{margin:.9rem 0}.weather-icon{display:grid;width:4.5rem;height:4.5rem;flex:0 0 auto;place-items:center;border-radius:1.35rem;background:#e8f5fd;font-size:2.7rem;line-height:1}.weather-icon--small{width:3.4rem;height:3.4rem;border-radius:1.05rem;font-size:2rem}.current-temperature,.next-temperature,.weather-description{margin:0}.current-temperature{color:#0c334d;font-size:clamp(3.4rem,16vw,5rem);font-weight:720;line-height:.95;letter-spacing:-.065em}.next-temperature{color:#173d56;font-size:2.2rem;font-weight:720;line-height:1;letter-spacing:-.04em}.weather-description{margin-top:.45rem;color:#49687b;font-size:.95rem;font-weight:650}.weather-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:0;border-top:1px solid #dceaf3;padding-top:.9rem}.weather-metrics div,.technical-details div{min-width:0}.weather-metrics dt,.technical-details dt{color:#607989;font-size:.7rem}.weather-metrics dd,.technical-details dd{overflow-wrap:anywhere;margin:.22rem 0 0;color:#173d56;font-size:.84rem;font-weight:720}.weather-error,.error-message{margin:.65rem 0;border-left:.25rem solid #b42318;border-radius:.35rem;padding:.65rem .8rem;color:#8f1d14;background:#fff5f4;font-size:.9rem}.weather-warning{margin:.65rem 0;border:1px solid #d97706;border-left-width:.35rem;border-radius:.9rem;padding:.8rem .9rem;color:#713f12;background:#fffbeb;font-size:.9rem;font-weight:700}.weather-warning--thunder{border-color:#7c3aed;color:#4c1d95;background:#f5f3ff}.location-card{margin-top:.85rem;border:1px solid rgb(108 164 202 / 22%);border-radius:1.4rem;padding:1rem 1.1rem;background:#ffffffb8;box-shadow:0 .5rem 1.5rem #205c8512}.pwa-guide{display:flex;gap:.85rem;margin-top:.85rem;border:1px solid rgb(108 164 202 / 22%);border-radius:1.4rem;padding:1rem 1.1rem;background:#ffffffb8;box-shadow:0 .5rem 1.5rem #205c8512}.pwa-guide-icon{display:grid;width:2.25rem;height:2.25rem;flex:0 0 auto;place-items:center;border-radius:.7rem;color:#fff;background:#176b9e;font-size:1.2rem;font-weight:800}.pwa-guide h2{margin:0;color:#173d56;font-size:.95rem}.pwa-guide p{margin:.35rem 0 0;color:#567184;font-size:.84rem;line-height:1.45}.location-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.location-name{margin:0;color:#173d56;font-size:1.05rem;line-height:1.25}.location-card button{min-height:2.5rem;flex:0 0 auto;border:0;border-radius:.8rem;padding:.55rem .85rem;color:#fff;background:#176b9e;font:inherit;font-size:.85rem;font-weight:720;cursor:pointer}.location-card button:hover:not(:disabled){background:#11557f}.location-card button:disabled{cursor:wait;opacity:.7}.location-prompt{margin:.7rem 0 0;color:#567184;font-size:.88rem}.detail-disclosure{margin-top:.75rem;color:#49687b;font-size:.82rem}.detail-disclosure summary{width:max-content;border-radius:.35rem;color:#17628f;font-weight:700;cursor:pointer}.detail-disclosure summary:hover{color:#0f4e76}.detail-disclosure[open] summary{margin-bottom:.7rem}.location-details,.weather-disclosure{border-top:1px solid #dceaf3;padding-top:.7rem}.location-coordinates,.location-source,.location-note,.weather-source{margin:.35rem 0 0;color:#5b7384;font-size:.78rem;line-height:1.45}.location-source a,.weather-source a{color:#155f91}.technical-grid{display:grid;gap:.8rem}.technical-group{border-radius:.9rem;padding:.8rem;background:#e8f5fd99}.technical-group-title{margin:0 0 .55rem;color:#294f67;font-size:.82rem}.technical-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;margin:0}button:focus-visible,summary:focus-visible,a:focus-visible{outline:.2rem solid #f5a623;outline-offset:.18rem}@media(min-width:44rem){.app-shell{padding:2.5rem 2rem 4rem}.app-header{padding-bottom:1rem}.weather-grid{grid-template-columns:minmax(0,1.35fr) minmax(17rem,.8fr);align-items:stretch;gap:1rem}.forecast-card{padding:1.45rem}.forecast-card--next{display:flex;flex-direction:column}.forecast-card--next .weather-metrics{margin-top:auto}.technical-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:22rem){.weather-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.location-row{align-items:stretch;flex-direction:column}.location-card button{width:100%}}@media(display-mode:standalone){.pwa-guide{display:none}}:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#173d56;background:#eaf4fa;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body,#root{min-width:0;min-height:100%;margin:0}body{min-height:100vh;overflow-x:hidden;background:radial-gradient(circle at top left,rgb(255 255 255 / 92%),transparent 36rem),linear-gradient(180deg,#eaf5fb,#dcecf6)}
