*{box-sizing:border-box;margin:0;padding:0}:root{--app-gutter:3rem;--app-gutter-tablet:2rem;--app-gutter-mobile:1.5rem;--card-padding:1.5rem;--section-gap:4rem;--space-1:0.25rem;--space-2:0.5rem;--space-3:0.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--hero-optical-offset:-0.05em;--bg-primary:#f5f3f0;--bg-secondary:#eae6e1;--bg-card:#f5f3f0;--text-primary:#121214;--text-secondary:#52525b;--text-muted:#999;--accent-blue:#4a8bb8;--border-light:#0000001f;--shadow-soft:0 2px 12px #0000000a;--stroke-width:2px;--ui-border:#0000001f;--font-primary:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Helvetica Neue",sans-serif;--font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",sans-serif;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700}body.theme-dark{--bg-primary:#1a1a2e;--bg-secondary:#16213e;--bg-card:#1a1a2e;--text-primary:#fff;--text-secondary:#a1a1aa;--text-muted:#71717a;--accent-blue:#e4e4e7;--border-light:#ffffff1a;--ui-border:#ffffff1a;--shadow-soft:0 2px 12px #0000004d}#root,body,html{margin:0;overflow-x:hidden;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f5f3f0;background:var(--bg-primary);color:#121214;color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;font-family:var(--font-primary);min-height:100vh;overflow-y:auto;-webkit-user-select:none;user-select:none}#root{height:100%;width:100%}body.hide-cursor{cursor:none}*{transition:color .3s ease,background-color .3s ease,transform .3s ease}body::-webkit-scrollbar{height:0;width:0}body{scrollbar-width:none}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}*{scrollbar-color:#ffffff1a #0000;scrollbar-width:thin}.corrected-label{background:#ffffff1f;border:none;border-radius:16px;color:var(--text-primary);display:inline-block;font-size:.75rem;font-style:normal;font-weight:600;letter-spacing:.03em;margin-left:.75rem;margin-right:-.25rem;opacity:.7;padding:.5rem 1rem;text-transform:uppercase;transition:opacity .2s ease;vertical-align:middle}.condition-corrector-wrapper:hover .corrected-label{opacity:1}.condition-corrector-wrapper{align-items:center;display:inline-flex;margin-left:.25rem;position:relative}.condition-menu-btn{background:#0000;border:none;cursor:pointer;height:44px;padding:0;position:relative;width:44px}.condition-menu-btn,.condition-menu-btn:after{align-items:center;display:flex;justify-content:center}.condition-menu-btn:after{background:#ffffff1f;border-radius:50%;color:var(--text-primary);content:"⋮";font-size:1rem;font-weight:700;height:32px;opacity:.7;transition:all .2s ease;width:32px}.condition-menu-btn:hover:after{background:#ffffff2e;opacity:1}.condition-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-card);border:1px solid var(--border-light);border-radius:12px;box-shadow:0 8px 24px #00000014,0 2px 8px #0000000a;display:flex;flex-direction:column;gap:0;min-width:160px;overflow:hidden;padding:0;pointer-events:auto}.menu-option{align-items:center;display:flex;min-height:44px;padding:.75rem 1rem}.condition-corrector{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14141efa;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 4px 12px #0003;left:50%;max-width:90vw;min-width:320px;padding:1.5rem;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.corrector-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.corrector-header span{color:#ffffffb3;font-size:.9rem}.close-btn{height:24px;padding:0;width:24px}.corrector-body label{color:#fff9;display:block;font-size:.85rem;margin-bottom:.75rem}.condition-options{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(2,1fr);margin-bottom:1rem}.condition-option{align-items:center;background:#0000;border:1px solid var(--text-primary);border-radius:999px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8rem;justify-content:center;min-height:36px;opacity:.6;padding:.5rem .75rem;text-align:center;transition:all .2s ease}.condition-option:hover{background:#ffffff0d;opacity:.9}.condition-option.selected{background:#ffffff1a;border-color:var(--text-primary);color:var(--text-primary);opacity:1}.condition-option:disabled{cursor:not-allowed;opacity:.5}.corrector-actions{display:flex;gap:.5rem;margin-top:1rem}body:not(.theme-dark) .condition-report-btn{background:#0000;border:1px solid var(--text-secondary);color:var(--text-secondary);opacity:.5}body:not(.theme-dark) .condition-report-btn:hover{border-color:var(--text-primary);color:var(--text-primary);opacity:.8}body:not(.theme-dark) .condition-report-btn.corrected{opacity:.6}body:not(.theme-dark) .condition-menu-btn:after{background:#0000000f;color:var(--text-primary)}body:not(.theme-dark) .condition-menu-btn:hover:after{background:#0000001a}body:not(.theme-dark) .condition-corrector{background:#fffffffa;border-color:#0000001a}body:not(.theme-dark) .corrector-header{border-bottom-color:#0000001a}body:not(.theme-dark) .corrector-body label,body:not(.theme-dark) .corrector-header span{color:#0009}body:not(.theme-dark) .condition-option{background:#0000;border:1px solid var(--text-primary);color:var(--text-primary);opacity:.6}body:not(.theme-dark) .condition-option:hover{background:#00000008;opacity:.9}body:not(.theme-dark) .condition-option.selected{background:#00000014;border-color:var(--text-primary);color:var(--text-primary);opacity:1}@media (max-width:768px){.condition-corrector-wrapper{bottom:0;right:0}}@media (max-width:480px){.condition-corrector{border-radius:0!important;bottom:0!important;display:flex!important;flex-direction:column!important;height:100%!important;left:0!important;max-width:none!important;min-width:0!important;padding:0!important;position:fixed!important;right:0!important;top:0!important;transform:none!important;width:100%!important}.corrector-header{border-bottom:1px solid #ffffff1a;flex-shrink:0;margin-bottom:0;padding:1rem 1.5rem}.corrector-header span{font-size:1rem}.close-btn{font-size:1.75rem;height:32px;width:32px}.corrector-body{flex:1 1;overflow-y:auto;padding:1.5rem 1.5rem 2rem}.condition-options{gap:.75rem;grid-template-columns:repeat(2,1fr);margin-bottom:0}.condition-option{font-size:.9rem;min-height:44px;padding:.75rem 1rem}.corrector-actions{border-top:1px solid #ffffff1a;flex-shrink:0;gap:.5rem;margin:0;padding:1rem 1.5rem}.cancel-btn,.submit-btn{font-size:.9rem;padding:.75rem 1rem}body:not(.theme-dark) .corrector-header{border-bottom-color:#0000001a}body:not(.theme-dark) .corrector-actions{border-top-color:#0000001a}}:root{--padding-mobile:1.75rem;--padding-tablet:3rem;--padding-desktop:3rem}.current-weather{display:flex;flex:1 1;flex-direction:column;overflow:visible;padding:1.75rem 0 0;padding:var(--padding-mobile) 0 0;position:relative}.current-weather-layout{flex:1 1;justify-content:center}.weather-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1rem;padding:0 1.75rem;padding:0 var(--padding-mobile)}.location-info h1{color:var(--text-primary);font-size:1.75rem;font-weight:var(--weight-medium);margin:0 0 .5rem}.location-city{color:var(--text-secondary);font-size:1.5rem;font-weight:var(--weight-regular)}.weather-icon{color:var(--text-primary);flex-shrink:0;font-size:2.5rem}.current-weather-layout{display:flex;flex-direction:column}.weather-content-row{overflow:visible;padding:0}.temperature-display{margin-bottom:0;padding:0 1.75rem;padding:0 var(--padding-mobile)}.temperature{color:var(--text-primary);font-family:"Fraunces",var(--font-display);font-size:6rem;font-weight:500;letter-spacing:-.02em;line-height:.9;margin-bottom:.5rem;margin-left:var(--hero-optical-offset)}.metadata-container{display:flex;flex-direction:column;gap:.25rem}.conditions-container{align-items:center;display:flex;gap:.5rem;min-height:44px}.conditions{font-size:1.125rem;font-weight:var(--weight-medium);margin-bottom:0}.conditions,.high-low{color:var(--text-primary)}.high-low{align-items:baseline;display:flex;font-family:"Fraunces",var(--font-display);font-size:1.5rem;font-weight:500;gap:.25rem}.temp-separator{color:var(--text-muted);font-weight:var(--weight-regular)}.temp-high-display{color:var(--text-primary)}.feels-like,.temp-low-display{color:var(--text-secondary)}.feels-like{font-size:.875rem;font-weight:var(--weight-regular)}.hourly-preview-section{overflow:visible;padding:.75rem 0 0;position:relative;width:100%}.hourly-preview-container{background:#0000;margin:0;overflow:visible;padding:0}.hourly-preview{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;box-sizing:border-box;display:flex;overflow-x:auto;overflow-y:visible;padding:0 1.75rem;padding:0 var(--padding-mobile) 0 var(--padding-mobile);scroll-behavior:smooth;scrollbar-width:none}.hourly-preview::-webkit-scrollbar{display:none}.hourly-item{flex:0 0 auto;min-width:72px;overflow:visible;text-align:center;transition:opacity .3s cubic-bezier(.4,0,.2,1)}.hourly-item:first-child{text-align:left}.hourly-item:last-child{padding-right:0}.hourly-time{color:var(--text-muted);font-size:.75rem;font-weight:var(--weight-medium);letter-spacing:.03em;margin-bottom:1.25rem;text-transform:uppercase;white-space:nowrap}.hourly-icon-small{color:var(--text-primary)!important;cursor:default;margin:0;opacity:1!important;position:relative}.hourly-temp{color:var(--text-primary);font-family:"Fraunces",var(--font-display);font-size:1.25rem;font-weight:500;margin-top:0}.hourly-trendline{margin-top:-.5rem}.hourly-precip{color:var(--accent-blue);font-size:.75rem;font-weight:var(--weight-medium);margin-top:.25rem;opacity:.9}@media (min-width:768px) and (orientation:portrait){.current-weather{overflow:visible;padding:3rem 0 0;padding:var(--padding-tablet) 0 0}.weather-header{margin-bottom:1rem;padding:0 3rem;padding:0 var(--padding-tablet)}.weather-header .weather-icon{height:80px;width:80px}.metadata-container{margin:0 0 .5rem;padding:0}.conditions-container{align-items:center;display:flex;gap:.5rem}.conditions{font-size:1.125rem}.feels-like,.high-low{display:none!important}.weather-content-row{gap:1.5rem;padding:0}.temperature-display,.weather-content-row{align-items:flex-start;display:flex;flex-direction:column}.temperature-display{margin-bottom:0;padding:0 3rem;padding:0 var(--padding-tablet)}.temperature{font-size:10rem;line-height:.85;margin-bottom:0;margin-left:-.03em}.hourly-preview-section{margin:0;width:100%}.hourly-preview-container{margin:0;padding:0}.hourly-preview{padding:0 3rem .5rem 1.25rem;padding:0 var(--padding-tablet) .5rem 1.25rem}.hourly-item:first-child{padding-left:0}.hourly-item:last-child{padding-right:0}}@media (min-width:1440px){.current-weather{overflow:visible;padding:3rem 0 2rem;padding:var(--padding-tablet) 0 2rem}.weather-header{margin-bottom:1rem;padding:0 3rem;padding:0 var(--padding-tablet)}.weather-content-row{align-items:flex-start;display:flex;flex-direction:row;gap:0;height:180px;overflow:visible;padding:0;position:relative}.temperature-display{align-items:flex-start;background:linear-gradient(to right,var(--bg-primary) 70%,#0000 100%);display:flex;flex-direction:column;left:0;margin-bottom:0;min-width:320px;padding-left:3rem;padding-left:var(--padding-tablet);padding-right:3rem;position:absolute;top:0;z-index:10}.temperature{font-size:9rem;line-height:.9;margin-bottom:.5rem;margin-left:-.08em}.metadata-container{align-items:flex-start;display:flex;flex-direction:column;gap:.125rem}.conditions-container{align-items:center;display:flex;gap:.5rem;margin-bottom:0;min-height:auto;transition:opacity .5s cubic-bezier(.4,0,.2,1)}.conditions{font-size:1.25rem;margin-bottom:0}.temperature-display .high-low{align-items:baseline;display:flex;font-family:"Fraunces",var(--font-display);font-size:2rem;font-weight:500;gap:.25rem;margin-bottom:0;margin-top:.25rem}.temperature-display .feels-like{color:var(--text-secondary);font-family:var(--font-body);font-size:.9375rem;font-weight:var(--weight-regular);margin-bottom:0;margin-top:.125rem}.hourly-preview-section{bottom:0;left:0;min-width:0;overflow:visible;position:absolute;right:0;top:40px;width:100%}.hourly-preview-container{align-items:flex-end;background:#0000;display:flex;height:100%;margin:0;overflow:visible;padding:0}.hourly-preview{-ms-overflow-style:none;align-items:flex-end;display:flex;overflow-x:auto;overflow-y:visible;padding:0 3rem .5rem 360px;padding:0 var(--padding-tablet) .5rem 360px;scrollbar-width:none}.hourly-preview::-webkit-scrollbar{display:none;height:0;width:0}.hourly-item{flex-shrink:0;min-width:70px;padding-bottom:0}.hourly-item:first-child{text-align:center}.hourly-time{font-size:.8rem;margin-bottom:1.25rem}.hourly-icon-small{margin:.5rem 0 .75rem}.hourly-temp{font-size:1.5rem;margin-top:.75rem}.hourly-precip{font-size:.8rem}}@media (min-width:1024px) and (max-width:1439px){.current-weather{padding:3rem 0 0;padding:var(--padding-desktop) 0 0}.weather-header{padding:0 3rem;padding:0 var(--padding-desktop)}.weather-header .weather-icon{height:90px;width:90px}.weather-content-row{gap:2rem;padding:0}.temperature-display,.weather-content-row{align-items:flex-start;display:flex;flex-direction:column}.temperature-display{margin-bottom:0;padding:0 3rem;padding:0 var(--padding-desktop)}.temperature{font-size:11rem;line-height:.85;margin-bottom:0;margin-left:-.03em}.conditions{font-size:1.375rem}.feels-like,.high-low{display:none!important}.hourly-preview-section{margin:0;width:100%}.hourly-preview{padding:0 3rem .5rem 1.5rem;padding:0 var(--padding-desktop) .5rem 1.5rem}.hourly-item{min-width:85px}.hourly-temp{font-size:1.75rem}}@media (min-width:1440px){.current-weather{padding:3rem 0 2rem;padding:var(--padding-tablet) 0 2rem}.weather-content-row{height:240px;overflow:visible}.temperature{font-size:11rem}.temperature-display{min-width:420px}.feels-like,.high-low{display:flex!important}.hourly-preview-section{left:0}.hourly-preview{padding-left:420px}.hourly-item{min-width:90px}.hourly-temp{font-size:2rem}}@media (max-width:480px){.current-weather{padding:1.75rem 0 0}.weather-header{padding:0 1.75rem;padding:0 var(--padding-mobile)}.location-info h1{font-size:1.5rem}.location-city{font-size:1.25rem}.weather-content-row{padding:0}.temperature-display{padding:0 1.75rem;padding:0 var(--padding-mobile)}.temperature{font-size:6.5rem}.hourly-preview-container{margin:.75rem 0 0;padding:0}.hourly-preview{padding:0 1.75rem;padding:0 var(--padding-mobile) 0 var(--padding-mobile)}.hourly-item{min-width:55px}.hourly-item:last-child{padding-right:0}.hourly-temp{font-size:1.125rem}}.forecast-section{background:var(--bg-secondary);border-top:1px solid var(--border-light);margin-top:0}.forecast-container{overflow:hidden;padding:0}.forecast-layout{display:flex;flex-direction:column}.forecast-header{padding:2.5rem 3rem 1.5rem}.forecast-header h2{color:var(--text-primary);font-family:var(--font-display);font-size:1.125rem;font-weight:var(--weight-semibold);letter-spacing:-.01em}.forecast-grid{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;display:flex;gap:0;overflow-x:auto;overflow-y:hidden;padding:0 3rem 1.5rem;scroll-behavior:smooth;scrollbar-width:none}.forecast-grid::-webkit-scrollbar{display:none;height:0;width:0}.forecast-day-card{animation:fadeInUp .6s cubic-bezier(.4,0,.2,1) backwards;background:#0000;border-right:1px solid var(--border-light);cursor:pointer;flex:0 0 auto;min-height:160px;min-width:200px;padding:2rem;position:relative;transition:background .3s ease,transform .3s cubic-bezier(.4,0,.2,1)}.forecast-day-card:hover{background:#0000;transform:none}body.theme-dark .forecast-day-card:hover{background:#0000}.forecast-day-card:first-child{animation-delay:0ms}.forecast-day-card:nth-child(2){animation-delay:30ms}.forecast-day-card:nth-child(3){animation-delay:60ms}.forecast-day-card:nth-child(4){animation-delay:90ms}.forecast-day-card:nth-child(5){animation-delay:.12s}.forecast-day-card:nth-child(6){animation-delay:.15s}.forecast-day-card:nth-child(7){animation-delay:.18s}.forecast-day-card:nth-child(8){animation-delay:.21s}.forecast-day-card:nth-child(9){animation-delay:.24s}.forecast-day-card:nth-child(10){animation-delay:.27s}.forecast-day-card:first-child{padding-left:0}.forecast-day-card:last-child{border-right:none}.forecast-icon{color:var(--text-primary)!important;position:absolute;right:2rem;top:2rem}.forecast-day-card:hover .forecast-icon,.forecast-icon{opacity:1!important}.forecast-content{padding-right:3rem;position:relative;text-align:left}.forecast-day-name{color:var(--text-primary);font-size:1rem;font-weight:var(--weight-semibold);margin-bottom:.75rem}.forecast-condition{color:var(--text-secondary);font-size:.875rem;font-weight:var(--weight-regular);line-height:1.4;margin-bottom:1rem}.forecast-temps{font-family:"Fraunces",var(--font-display);font-size:1.75rem;font-weight:500;margin-bottom:.5rem}.forecast-temps,.forecast-temps .temp-high{color:var(--text-primary)}.forecast-temps .temp-low{color:var(--text-secondary);opacity:.8}.forecast-temps .temp-separator{color:var(--text-secondary);opacity:.5}.forecast-precip{color:var(--accent-blue);font-size:.75rem;font-weight:var(--weight-medium);margin-top:.5rem;opacity:.9}@media (min-width:768px){.forecast-layout{align-items:flex-start;flex-direction:row}.forecast-header{flex-shrink:0;padding:2.5rem 0 1.5rem 3rem;width:140px}.forecast-header h2{font-size:1rem;line-height:1.5;writing-mode:horizontal-tb}.forecast-grid{flex:1 1;overflow-x:auto;padding:1.5rem 3rem 1.5rem 2rem}.forecast-day-card{min-height:120px;min-width:140px;padding:1.25rem}.forecast-day-card:first-child{padding-left:0}.forecast-icon{right:1.25rem;top:1.25rem}.forecast-day-name{font-size:.9rem;margin-bottom:.5rem}.forecast-condition{font-size:.75rem;margin-bottom:.65rem}.forecast-temps{font-size:1.35rem}.forecast-precip{font-size:.7rem}}@media (min-width:1280px){.forecast-header{padding-left:3rem;width:160px}.forecast-header h2{font-size:1.125rem}.forecast-day-card{min-height:130px;min-width:160px;padding:1.5rem}.forecast-temps{font-size:1.5rem}.forecast-day-name{font-size:.95rem}.forecast-condition{font-size:.8rem}}@media (max-width:768px){.forecast-header{padding:1.5rem 2rem 1.25rem}.forecast-grid{padding:0 2rem 1.25rem}.forecast-day-card{min-width:160px;padding:1.5rem}.forecast-day-card:first-child{padding-left:0}.forecast-icon{opacity:1!important;right:1.5rem;top:1.5rem}.forecast-temps{font-size:1.5rem}}@media (max-width:480px){.forecast-header{padding:1.25rem 1.5rem 1rem}.forecast-grid{padding:0 1.5rem 1rem}.forecast-day-card{min-width:140px;padding:1.25rem}.forecast-day-card:first-child{padding-left:0}.forecast-temps{font-size:1.375rem}.forecast-condition{font-size:.8rem}}.precip-logger-wrapper{align-items:center;bottom:.75rem;display:flex;pointer-events:auto;position:absolute;right:.5rem;z-index:10}.precip-menu-btn{align-items:center;background:#0000;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:44px;justify-content:center;padding:0;position:relative;width:44px}.precip-menu-btn:before{background:#ffffff1f;border-radius:50%;content:"";height:32px;opacity:.7;position:absolute;transition:all .2s ease;width:32px;z-index:-1}.precip-menu-btn:hover:before{background:#ffffff1f;opacity:1}.precip-menu{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-card);border:1px solid var(--border-light);border-radius:12px;box-shadow:0 8px 24px #00000014,0 2px 8px #0000000a;display:flex;flex-direction:column;gap:0;min-width:160px;overflow:hidden;padding:0;pointer-events:auto;z-index:10000}.precipitation-logger{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14141efa;border:1px solid #ffffff1a;border-radius:12px;box-shadow:0 4px 12px #0003;left:50%;max-width:90vw;min-width:320px;padding:1.5rem;position:fixed;top:50%;transform:translate(-50%,-50%);z-index:1000}.logger-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.logger-header span{color:#ffffffb3;font-size:.9rem}.close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#ffffff80;cursor:pointer;display:flex;font-size:1.5rem;justify-content:center;min-height:44px;min-width:44px;padding:10px;transition:all .2s ease}.close-btn:hover{background:#ffffff1a;color:#ffffffe6}.logger-body{gap:1rem}.form-group,.logger-body{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#fff9;font-size:.85rem;font-weight:500}.precip-type-options{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:repeat(3,1fr)}.precip-type-option{align-items:center;background:#0000;border:1px solid var(--text-primary);border-radius:999px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.8rem;justify-content:center;min-height:36px;opacity:.6;padding:.5rem .75rem;text-align:center;transition:all .2s ease}.precip-type-option:hover{background:#ffffff0d;opacity:.9}.precip-type-option.selected{background:#ffffff1a;border-color:var(--text-primary);color:var(--text-primary);opacity:1}.precip-type-option:disabled{cursor:not-allowed;opacity:.5}.form-group input,.form-group textarea{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:.875rem;padding:.5rem .75rem;transition:all .2s ease}.form-group input:focus,.form-group textarea:focus{border-color:var(--text-primary);outline:none}.form-group input:disabled,.form-group textarea:disabled{cursor:not-allowed;opacity:.5}.form-group textarea{min-height:60px;resize:vertical}.help-text{color:var(--text-muted);font-size:.75rem}.menu-option{background:#0000;border:none;border-bottom:1px solid var(--border-light);color:var(--text-primary);cursor:pointer;font-size:.875rem;font-weight:var(--weight-regular);padding:.65rem 1rem;text-align:left;transition:background .15s ease;white-space:nowrap}.menu-option:last-child{border-bottom:none}.menu-option:hover:not(:disabled){background:var(--bg-secondary)}.menu-option:disabled{cursor:not-allowed;opacity:.4}.logger-actions{display:flex;gap:.5rem;margin-top:.5rem}.cancel-btn,.submit-btn{border-radius:999px;cursor:pointer;flex:1 1;font-size:.8rem;font-weight:500;padding:.5rem .75rem;transition:all .2s ease}.submit-btn{background:var(--text-primary);border:1px solid var(--text-primary);color:var(--bg-primary)}.submit-btn:hover:not(:disabled){background:var(--text-secondary);border-color:var(--text-secondary)}.submit-btn:disabled{cursor:not-allowed;opacity:.5}.cancel-btn{background:#0000;border:1px solid var(--text-secondary);color:var(--text-secondary);opacity:.5}.cancel-btn:hover:not(:disabled){border-color:var(--text-primary);color:var(--text-primary);opacity:.8}.cancel-btn:disabled{cursor:not-allowed;opacity:.3}.history-empty,.history-loading{color:var(--text-secondary);font-size:.875rem;padding:2rem 1rem;text-align:center}.history-total{align-items:center;background:var(--bg-secondary);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.total-label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.total-value{color:var(--text-primary);font-family:"Fraunces",var(--font-display);font-size:1.25rem;font-weight:500}.history-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem;max-height:240px;overflow-y:auto}.history-entry{align-items:flex-start;background:var(--bg-secondary);border-radius:8px;display:flex;gap:.75rem;justify-content:space-between;padding:.75rem}.entry-info{flex:1 1;min-width:0}.entry-main{align-items:baseline;display:flex;gap:.5rem;margin-bottom:.25rem}.entry-amount{color:var(--text-primary);font-family:"Fraunces",var(--font-display);font-size:1rem;font-weight:500}.entry-type{color:var(--text-secondary);font-size:.75rem;text-transform:capitalize}.entry-time{color:var(--text-muted);font-size:.7rem}.entry-notes{font-size:.75rem;font-style:italic;margin-top:.25rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-delete,.entry-notes{color:var(--text-secondary)}.entry-delete{align-items:center;background:#0000;border:1px solid var(--text-secondary);border-radius:50%;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;height:24px;justify-content:center;opacity:.5;padding:0;transition:all .2s ease;width:24px}.entry-delete:hover:not(:disabled){border-color:#dc2626;color:#dc2626;opacity:1}.entry-delete:disabled{cursor:not-allowed;opacity:.3}.delete-all-btn{background:#0000;border:1px solid #dc2626;border-radius:999px;color:#dc2626;cursor:pointer;flex:1 1;font-size:.8rem;font-weight:500;opacity:.7;padding:.5rem .75rem;transition:all .2s ease}.delete-all-btn:hover:not(:disabled){background:#dc26261a;opacity:1}.delete-all-btn:disabled{cursor:not-allowed;opacity:.3}body:not(.theme-dark) .precip-menu-btn:before,body:not(.theme-dark) .precip-menu-btn:hover:before{background:#0000000f}body:not(.theme-dark) .precipitation-logger{background:#fffffffa;border-color:#0000001a}body:not(.theme-dark) .logger-header{border-bottom-color:#0000001a}body:not(.theme-dark) .form-group label,body:not(.theme-dark) .logger-header span{color:#0009}body:not(.theme-dark) .close-btn{color:#0006}body:not(.theme-dark) .close-btn:hover{background:#0000000d;color:#000000e6}body:not(.theme-dark) .precip-type-option{background:#0000;border:1px solid var(--text-primary);color:var(--text-primary);opacity:.6}body:not(.theme-dark) .precip-type-option:hover{background:#00000008;opacity:.9}body:not(.theme-dark) .precip-type-option.selected{background:#00000014;border-color:var(--text-primary);color:var(--text-primary);opacity:1}body:not(.theme-dark) .submit-btn{background:var(--text-primary);border:1px solid var(--text-primary);color:var(--bg-primary)}body:not(.theme-dark) .submit-btn:hover:not(:disabled){background:var(--text-secondary);border-color:var(--text-secondary)}body:not(.theme-dark) .cancel-btn{background:#0000;border:1px solid var(--text-secondary);color:var(--text-secondary);opacity:.5}body:not(.theme-dark) .cancel-btn:hover:not(:disabled){border-color:var(--text-primary);color:var(--text-primary);opacity:.8}@media (max-width:768px){.precipitation-logger{max-width:calc(100vw - 2rem);min-width:auto}.precip-type-options{grid-template-columns:repeat(2,1fr)}}@media (max-width:480px){.precipitation-logger{border-radius:0!important;bottom:0!important;display:flex!important;flex-direction:column!important;height:100%!important;left:0!important;max-width:none!important;min-width:0!important;padding:0!important;position:fixed!important;right:0!important;top:0!important;transform:none!important;width:100%!important}.logger-header{border-bottom:1px solid #ffffff1a;flex-shrink:0;margin-bottom:0;padding:1rem 1.5rem}.logger-header span{font-size:1rem}.close-btn{font-size:1.75rem;height:32px;width:32px}.logger-body{flex:1 1;overflow-y:auto;padding:1.5rem 1.5rem 2rem}.precip-type-options{gap:.75rem;grid-template-columns:repeat(2,1fr)}.precip-type-option{font-size:.9rem;min-height:44px;padding:.75rem 1rem}.form-group input,.form-group textarea{font-size:1rem;padding:.75rem}.logger-actions{border-top:1px solid #ffffff1a;flex-shrink:0;gap:.5rem;margin:0;padding:1rem 1.5rem}.cancel-btn,.submit-btn{font-size:.9rem;padding:.75rem 1rem}.history-total{padding:1rem}.total-label{font-size:1rem}.total-value{font-size:1.5rem}.history-list{max-height:none}.history-entry{padding:1rem}.entry-amount{font-size:1.125rem}.entry-type{font-size:.875rem}.entry-time{font-size:.75rem}.entry-notes{font-size:.875rem;white-space:normal}.delete-all-btn{font-size:.9rem;padding:.75rem 1rem}body:not(.theme-dark) .logger-header{border-bottom-color:#0000001a}body:not(.theme-dark) .logger-actions{border-top-color:#0000001a}}.metrics-section{background:var(--bg-secondary);margin-top:0;overflow:visible}.metrics{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible;padding:2rem;position:relative;z-index:1}.metric-card:first-child,.metric-card:nth-child(2),.metric-card:nth-child(3){border-bottom:1px solid var(--border-light);padding-bottom:2rem}.metric-card:nth-child(4),.metric-card:nth-child(5),.metric-card:nth-child(6){padding-top:2rem}.metric-card{align-items:flex-start;animation:fadeInUp .6s ease backwards;background:#0000;border:none;border-bottom:1px solid var(--ui-border);cursor:pointer;display:flex;flex-direction:column;isolation:isolate;overflow:visible;padding:0 var(--card-padding);position:relative}.metric-card:first-child{animation-delay:0ms}.metric-card:nth-child(2){animation-delay:20ms}.metric-card:nth-child(3){animation-delay:40ms}.metric-card:nth-child(4){animation-delay:60ms}.metric-card:nth-child(5){animation-delay:80ms}.metric-card:nth-child(6){animation-delay:.1s}.precip-logger-wrapper{transform:none!important}.metric-icon{color:var(--text-primary)!important;flex-shrink:0;opacity:1!important;position:absolute;right:1rem;top:0}.metric-content{flex:1 1;min-width:0;padding-right:2.5rem;transition:transform .2s ease;width:calc(100% - 2.5rem)}.metric-label{color:var(--text-primary);font-size:1rem;font-weight:var(--weight-semibold);margin-bottom:.75rem;text-align:left}.metric-value{align-items:baseline;color:var(--text-primary);display:flex;font-family:"Fraunces",var(--font-display);font-size:3.5rem;font-weight:500;gap:.4rem;line-height:1;margin-bottom:.5rem}.metric-unit{color:var(--text-secondary);font-size:1.5rem;font-weight:var(--weight-medium);line-height:1;vertical-align:initial}.metric-secondary{color:var(--text-secondary);font-size:.875rem;font-weight:var(--weight-regular);line-height:1.4}.manual-precip-note{color:var(--text-secondary);font-size:.8rem;font-style:italic;margin-top:.25rem;opacity:.7}.metric-trend-row{align-items:center;display:flex;gap:.5rem;justify-content:space-between;margin-top:1rem;width:100%}.metric-trend{flex:1 1}.sparkline{opacity:.5}.sparkline path{vector-effect:non-scaling-stroke}@media (min-width:768px) and (orientation:portrait){.metrics{gap:0;grid-template-columns:repeat(3,1fr);overflow-x:visible;padding:2.5rem 3rem 2rem}.metric-card{border-bottom:1px solid var(--border-light);border-right:none;padding:0 1rem!important}.metric-card:first-child,.metric-card:nth-child(2),.metric-card:nth-child(3){border-bottom:1px solid var(--border-light);padding-bottom:2rem!important}.metric-card:nth-child(4),.metric-card:nth-child(5),.metric-card:nth-child(6){border-bottom:none;padding-top:2rem!important}.metric-value{font-size:3rem}.metric-label{font-size:.95rem}.metric-secondary{font-size:.8rem}}@media (min-width:768px) and (orientation:landscape){.metrics{gap:0;grid-template-columns:repeat(3,1fr);overflow-x:visible;padding:2.5rem 3rem 2rem}.metric-card{border-bottom:1px solid var(--border-light);border-right:none;padding:0 1.25rem!important}.metric-card:first-child,.metric-card:nth-child(2),.metric-card:nth-child(3){border-bottom:1px solid var(--border-light);padding-bottom:2rem!important}.metric-card:nth-child(4),.metric-card:nth-child(5),.metric-card:nth-child(6){border-bottom:none;padding-top:2rem!important}.metric-value{font-size:3rem}.metric-label{font-size:.95rem}.metric-secondary{font-size:.8rem}}@media (min-width:1280px){.metrics{padding:2.5rem 3rem 2rem}.metric-card{padding:0 1.5rem!important}.metric-value{font-size:3.5rem}.metric-label{font-size:1rem}.metric-secondary{font-size:.875rem}}@media (max-width:768px){.metrics{gap:0;grid-template-columns:repeat(2,1fr);padding:2rem 1.5rem 1.5rem}.metric-card{padding:0 1.125rem}.metric-card:first-child,.metric-card:nth-child(2),.metric-card:nth-child(3),.metric-card:nth-child(4){border-bottom:1px solid var(--border-light);padding-bottom:1.5rem}.metric-card:nth-child(3),.metric-card:nth-child(4){padding-top:1.5rem}.metric-card:nth-child(5),.metric-card:nth-child(6){border-bottom:none;padding-top:1.5rem}.metric-value{font-size:2.5rem}}@media (max-width:480px){.metrics{padding:2rem 1rem 1rem}.metric-card{padding:0 .5rem}.metric-icon{right:.5rem}.metric-content{padding-right:1.5rem}.metric-value{font-size:2.25rem}.metric-unit{font-size:1.25rem}}@media (max-width:360px){.metrics{padding:.75rem}.metric-card{padding:.875rem .25rem}.metric-icon{right:.25rem}.metric-content{padding-right:1.75rem}.metric-value{font-size:2rem}}@media (min-width:1024px){.metrics-section{overflow:hidden;padding:0 0 2rem}}@media (min-width:1440px){.metrics-section{margin-top:1.5rem}.metrics{-webkit-overflow-scrolling:touch;-ms-overflow-style:none;display:flex;flex-direction:row;gap:2rem;grid-template-columns:none;overflow-x:auto;overflow-y:visible;padding:2.5rem 0 2rem 3rem;scroll-behavior:smooth;scrollbar-width:none}.metrics::-webkit-scrollbar{display:none}.metric-card{border:none;border-bottom:none;border-left:1px solid var(--border-light);flex:0 0 auto;margin-right:0;max-width:320px;min-width:280px;padding:0 2rem!important}.metric-card:first-child{border-left:none;padding-left:0!important}.metric-card:last-child{padding-right:3rem!important}.metric-card:first-child,.metric-card:nth-child(2),.metric-card:nth-child(3),.metric-card:nth-child(4),.metric-card:nth-child(5),.metric-card:nth-child(6){border-bottom:none;padding-bottom:0!important;padding-top:0!important}.metric-value{font-size:3.75rem}.metric-label{font-size:1.0625rem}.metric-secondary{font-size:.9375rem}}.app{display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden;overflow-y:visible}.connection-banner{align-items:center;border:none;display:flex;font-size:.875rem;font-weight:500;gap:1rem;justify-content:space-between;padding:1rem 1.5rem;width:100%}.connection-banner.offline{background:#8b3a3a;color:#fff}.connection-banner.stale{background:#4a5d3f;color:#fff}body.theme-dark .connection-banner.offline{background:#7a3333;color:#fff}body.theme-dark .connection-banner.stale{background:#3f4f36;color:#fff}.connection-banner span:first-child{align-items:center;display:flex;flex:1 1;gap:.5rem}.connection-icon{align-items:center;display:flex;flex-shrink:0}.connection-icon svg{stroke:currentColor}.connection-banner button{background:#ffffff26;border:1px solid #ffffff4d;border-radius:4px;color:#fff;cursor:pointer;font-size:.8rem;font-weight:500;padding:.4rem .75rem;transition:all .2s ease;white-space:nowrap}.connection-banner button:hover{background:#ffffff40;border-color:#ffffff80}.banner-link{color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:2px;transition:opacity .2s ease}.banner-link:hover{opacity:.85}.container{display:flex;flex:1 1;flex-direction:column;overflow:visible;width:100%}.header{animation:fadeInDown .6s ease;background:var(--bg-card);border-bottom:1px solid var(--border-light);padding:2rem 3rem 1.5rem;text-align:left}.header h1{color:var(--text-primary);font-family:var(--font-display);font-size:1.5rem;font-weight:var(--weight-semibold);letter-spacing:-.01em;margin-bottom:.25rem}.last-update{color:var(--text-muted);font-size:.875rem;font-weight:var(--weight-regular)}.main-content{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:visible}.footer{background:var(--bg-secondary);border-top:1px solid var(--border-light);gap:1rem;justify-content:space-between;margin-top:auto;padding:2rem 3rem;text-align:left}.footer,.footer-link{align-items:center;display:flex}.footer-link{color:var(--text-secondary);font-size:.875rem;font-weight:var(--weight-regular);gap:.5rem;text-decoration:none;transition:color .2s ease}.footer-link:hover{color:var(--text-primary)}.footer-link svg{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none;height:16px;width:16px}.theme-toggle{align-items:center;background:#0000;border:none;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;height:32px;justify-content:center;padding:.5rem;transition:all .2s ease;width:32px}.theme-toggle:hover{color:var(--text-primary)}.theme-toggle svg{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;height:16px;width:16px}.app.loading{align-items:center;background:var(--bg-primary);justify-content:center;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:4px solid var(--border-light);border-radius:50%;border-top-color:var(--accent-blue);height:60px;margin:0 auto 1.5rem;width:60px}@keyframes spin{to{transform:rotate(1turn)}}.app.error{align-items:center;background:var(--bg-primary);justify-content:center;text-align:center}.error-icon{color:var(--text-primary);margin-bottom:1rem;opacity:.5}.error-icon svg{stroke:currentColor}.app.error h2{color:var(--text-primary);font-size:1.8rem;font-weight:var(--weight-semibold);margin-bottom:.5rem}.app.error p{color:var(--text-secondary);margin-bottom:2rem}.app.error button{background:var(--text-primary);border:none;border-radius:12px;color:var(--bg-primary);cursor:pointer;font-size:1rem;font-weight:var(--weight-medium);padding:.875rem 2rem;transition:transform .2s,background-color .2s}.app.error button:hover{background:var(--text-secondary);transform:translateY(-2px)}.app.error button:active{transform:translateY(0)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.header{padding:1.5rem 2rem}.header h1{font-size:1.25rem}.footer{padding:1.5rem 2rem}}@media (max-width:480px){.footer{padding:2rem 1.5rem}}
/*# sourceMappingURL=main.9d8abb9e.css.map*/