*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,sans-serif;background:linear-gradient(135deg,#e8f4fd,#f5f5f7 50%,#e8f0fe);min-height:100vh;color:#1d1d1f;transition:background .4s ease,color .4s ease}@media (prefers-color-scheme:dark){body{background:linear-gradient(135deg,#0a0f1e,#111827 50%,#0d1230);color:#f5f5f7}}.app-wrapper{min-height:100vh;position:relative}.main-content{max-width:1400px;margin:0 auto;padding:2rem 1.5rem 4rem}.bg-blobs{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.25;mix-blend-mode:multiply}.blob-1{width:500px;height:500px;background:radial-gradient(circle,#93c5fd,#a5b4fc);top:-100px;left:-100px;animation:blob 10s ease-in-out infinite}.blob-2{width:400px;height:400px;background:radial-gradient(circle,#c4b5fd,#fbcfe8);top:200px;right:-80px;animation:blob 12s ease-in-out 2s infinite}.blob-3{width:450px;height:450px;background:radial-gradient(circle,#bae6fd,#99f6e4);bottom:-80px;left:200px;animation:blob 9s ease-in-out 4s infinite}@keyframes blob{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-40px) scale(1.08)}66%{transform:translate(-20px,20px) scale(.94)}}.header{position:sticky;top:0;z-index:100;backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);background:hsla(0,0%,100%,.6);border-bottom:1px solid hsla(0,0%,100%,.4)}.header-inner{max-width:1400px;margin:0 auto;padding:1.25rem 1.5rem}.header h1{font-size:2rem;font-weight:300;letter-spacing:-.03em;color:#1d1d1f}.header-subtitle{font-size:.85rem;color:#6e6e73;margin-top:2px}.live-badge{display:flex;align-items:center;justify-content:center;gap:8px;width:130px;height:32px;font-size:.8rem;white-space:nowrap;color:#6e6e73;background:hsla(0,0%,100%,.5);border:1px solid hsla(0,0%,100%,.6);border-radius:20px;backdrop-filter:blur(10px)}.live-dot{width:8px;height:8px;border-radius:50%;background:#30d158;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.85)}}.settings-dropdown{position:relative}.settings-button{font-size:1.2rem;background:none;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background .2s}.settings-button:hover{background:hsla(0,0%,100%,.3)}.settings-menu{position:absolute;top:100%;right:0;margin-top:8px;background:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.1);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.15);backdrop-filter:blur(10px);padding:1rem;min-width:220px;z-index:1000}.settings-header{font-size:.85rem;font-weight:600;color:#1d1d1f;margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.05em}.settings-list{display:flex;flex-direction:column;gap:.5rem}.settings-checkbox{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;color:#424245;padding:6px 8px;border-radius:6px;transition:background .2s}.settings-checkbox:hover{background:rgba(0,0,0,.05)}.settings-checkbox input[type=checkbox]{cursor:pointer;accent-color:#0071e3}.live-badge--stale{cursor:pointer;transition:background .15s,color .15s}.live-badge--stale:hover{background:rgba(0,113,227,.1);border-color:rgba(0,113,227,.3);color:#0071e3}.live-dot--stale{background:#f5a623;animation:none}.day-section{margin-bottom:2.5rem}.day-heading{font-size:1.5rem;font-weight:300;letter-spacing:-.02em;color:#1d1d1f;margin-bottom:1rem;padding-left:4px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.cards-grid,.collapsed-day-row{display:grid;animation:expandIn .3s ease-out}.collapsed-day-row{grid-template-columns:auto 1fr auto auto;align-items:center;gap:1.5rem;padding:1rem 1.5rem;min-height:100px;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);background:hsla(0,0%,100%,.45);border:1px solid hsla(0,0%,100%,.65);border-radius:16px;cursor:pointer;transition:all .25s ease}.collapsed-day-row:hover{transform:translateY(-2px);background:hsla(0,0%,100%,.58);box-shadow:0 4px 16px rgba(31,38,135,.08)}.collapsed-left{display:flex;align-items:center;gap:1rem;min-width:-moz-fit-content;min-width:fit-content}.collapsed-icon{font-size:2.5rem;line-height:1}.collapsed-temps{display:flex;align-items:baseline;gap:4px}.collapsed-max-temp{font-size:1.75rem;font-weight:300;color:#1d1d1f}.collapsed-temp-sep{color:#aeaeb2;margin:0 2px}.collapsed-min-temp{font-size:1rem;font-weight:300;color:#6e6e73}.collapsed-middle{display:flex;flex-direction:column;gap:2px;justify-content:center;min-height:100%;max-width:120px}.collapsed-condition{font-size:.9rem;color:#1d1d1f;text-transform:capitalize;font-weight:400;line-height:1.3}.collapsed-source-count{font-size:.75rem;color:#aeaeb2}.collapsed-right{display:flex;gap:1.25rem;flex-wrap:nowrap;white-space:nowrap}.collapsed-detail{display:flex;align-items:center;gap:4px;font-size:.85rem}.collapsed-detail-label{font-size:1rem}.collapsed-detail-value{color:#1d1d1f;font-weight:500;min-width:35px;text-align:right}.collapsed-expand-hint{color:#aeaeb2;font-size:.9rem;transition:transform .2s ease;min-width:16px;text-align:center}.collapsed-day-row:hover .collapsed-expand-hint{transform:translateY(2px);color:#1d1d1f}@keyframes expandIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.expanded-day-header{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:1.5rem;padding:1rem 1.5rem;min-height:100px;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);background:hsla(0,0%,100%,.45);border:1px solid hsla(0,0%,100%,.65);border-radius:16px;margin-bottom:1rem;cursor:pointer;transition:all .25s ease;animation:expandIn .3s ease-out}.expanded-day-header:hover{transform:translateY(-2px);background:hsla(0,0%,100%,.58);box-shadow:0 4px 16px rgba(31,38,135,.08)}.expanded-left{display:flex;align-items:center;gap:1rem;min-width:-moz-fit-content;min-width:fit-content}.expanded-icon{font-size:2.5rem;line-height:1}.expanded-temps{display:flex;align-items:baseline;gap:4px}.expanded-max-temp{font-size:1.75rem;font-weight:300;color:#1d1d1f}.expanded-temp-sep{color:#aeaeb2;margin:0 2px}.expanded-min-temp{font-size:1rem;font-weight:300;color:#6e6e73}.expanded-middle{display:flex;flex-direction:column;gap:2px;justify-content:center;min-height:100%;max-width:120px}.expanded-condition{font-size:.9rem;color:#1d1d1f;text-transform:capitalize;font-weight:400;line-height:1.3}.expanded-source-count{font-size:.75rem;color:#aeaeb2}.expanded-right{display:flex;gap:1.25rem;flex-wrap:nowrap;white-space:nowrap}.expanded-detail{display:flex;align-items:center;gap:4px;font-size:.85rem}.expanded-detail-label{font-size:1rem}.expanded-detail-value{color:#1d1d1f;font-weight:500;min-width:35px;text-align:right}.expanded-collapse-hint{color:#aeaeb2;font-size:.9rem;transition:transform .2s ease;min-width:16px;text-align:center}.expanded-day-header:hover .expanded-collapse-hint{transform:translateY(-2px);color:#1d1d1f}.weather-card{position:relative;backdrop-filter:blur(28px) saturate(180%);-webkit-backdrop-filter:blur(28px) saturate(180%);background:hsla(0,0%,100%,.52);border:1px solid hsla(0,0%,100%,.65);border-radius:24px;padding:1.5rem;box-shadow:0 2px 8px rgba(0,0,0,.04),0 8px 32px rgba(31,38,135,.08),inset 0 1px 0 hsla(0,0%,100%,.8);transition:transform .25s ease,box-shadow .25s ease,background .25s ease;display:flex;flex-direction:column}.weather-card:hover{transform:translateY(-4px) scale(1.01);background:hsla(0,0%,100%,.68);box-shadow:0 4px 16px rgba(0,0,0,.06),0 16px 48px rgba(31,38,135,.12),inset 0 1px 0 hsla(0,0%,100%,.9)}.card-source-name{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#1d1d1f;margin-bottom:4px}.card-source-bar{width:32px;height:3px;background:linear-gradient(90deg,#007aff,#5856d6);border-radius:2px;margin-bottom:1.25rem}.card-temp-row{display:flex;align-items:baseline;gap:2px;margin-bottom:4px}.card-temp{font-size:3.25rem;font-weight:200;letter-spacing:-.04em;color:#1d1d1f;line-height:1}.card-temp-unit{font-size:1.5rem;font-weight:300;color:#6e6e73}.card-condition{font-size:.9rem;color:#6e6e73;margin-bottom:1.25rem;text-transform:capitalize}.card-icon{font-size:3.5rem;text-align:center;margin-bottom:1.25rem;line-height:1}.card-details{flex:1;display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.25rem}.detail-row{display:flex;justify-content:space-between;align-items:center}.detail-label{font-size:.82rem;color:#6e6e73}.detail-value{font-size:.82rem;font-weight:500;color:#1d1d1f}.card-minmax{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;padding-top:1rem;border-top:1px solid rgba(0,0,0,.06);margin-bottom:.75rem}.minmax-label{font-size:.65rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#aeaeb2;margin-bottom:2px}.minmax-min{color:#007aff}.minmax-max,.minmax-min{font-size:1.5rem;font-weight:300}.minmax-max{color:#ff6b00}.card-updated{font-size:.7rem;color:#aeaeb2;padding-top:.75rem;border-top:1px solid rgba(0,0,0,.05)}.weather-card--unavailable{justify-content:flex-start;opacity:.65}.card-source-bar--grey{background:linear-gradient(90deg,#aeaeb2,#c7c7cc)}.card-unavailable-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1.5rem 0;gap:.5rem}.card-unavailable-icon{font-size:2rem}.card-unavailable-title{font-size:.85rem;font-weight:500;color:#6e6e73}.card-unavailable-hint{font-size:.75rem;color:#aeaeb2;line-height:1.4;max-width:180px}@media (prefers-color-scheme:dark){.card-unavailable-title{color:#98989d}.card-unavailable-hint{color:#636366}}.loading-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.skeleton-card{backdrop-filter:blur(28px);background:hsla(0,0%,100%,.45);border:1px solid hsla(0,0%,100%,.6);border-radius:24px;padding:1.5rem;height:380px;display:flex;flex-direction:column;gap:1rem;animation:shimmer 1.8s ease-in-out infinite}.skeleton-line{border-radius:8px;background:linear-gradient(90deg,rgba(0,0,0,.04) 25%,rgba(0,0,0,.08) 50%,rgba(0,0,0,.04) 75%);background-size:400% 100%;animation:shimmer-line 1.8s ease-in-out infinite}@keyframes shimmer-line{0%{background-position:100% 50%}to{background-position:-100% 50%}}.error-state{backdrop-filter:blur(28px);background:hsla(0,0%,100%,.45);border:1px solid rgba(255,59,48,.2);border-radius:24px;padding:3rem;text-align:center;color:#ff3b30;font-size:1.1rem}.content-layer{position:relative;z-index:1}.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.header-left{flex-shrink:0}.header-center{flex:1;display:flex;justify-content:center}.header-right{flex-shrink:0;display:flex;align-items:center;gap:1rem}.city-switcher{display:flex;background:rgba(0,0,0,.05);border-radius:14px;padding:4px;gap:2px}.city-tab{padding:7px 20px;border:none;background:transparent;border-radius:10px;font-size:.875rem;font-weight:500;color:#6e6e73;cursor:pointer;transition:all .2s ease;font-family:inherit;white-space:nowrap}.city-tab:hover{color:#1d1d1f;background:rgba(0,0,0,.04)}.city-tab.active{background:hsla(0,0%,100%,.9);color:#1d1d1f;box-shadow:0 1px 4px rgba(0,0,0,.1),0 0 0 .5px rgba(0,0,0,.06)}@media (prefers-color-scheme:dark){.header{background:rgba(20,20,30,.7);border-bottom-color:hsla(0,0%,100%,.08)}.day-heading,.header h1{color:#f5f5f7}.header-subtitle,.live-badge{color:#98989d}.live-badge{border-color:hsla(0,0%,100%,.1)}.city-switcher,.live-badge{background:hsla(0,0%,100%,.07)}.city-tab{color:#98989d}.city-tab:hover{color:#f5f5f7;background:hsla(0,0%,100%,.06)}.city-tab.active{background:hsla(0,0%,100%,.14);color:#f5f5f7;box-shadow:0 1px 4px rgba(0,0,0,.3),0 0 0 .5px hsla(0,0%,100%,.1)}.weather-card{background:hsla(0,0%,100%,.07);border-color:hsla(0,0%,100%,.1);box-shadow:0 2px 8px rgba(0,0,0,.3),0 8px 32px rgba(0,0,0,.2),inset 0 1px 0 hsla(0,0%,100%,.08)}.weather-card:hover{background:hsla(0,0%,100%,.11);box-shadow:0 4px 16px rgba(0,0,0,.4),0 16px 48px rgba(0,0,0,.25),inset 0 1px 0 hsla(0,0%,100%,.1)}.card-source-name,.card-temp{color:#f5f5f7}.card-condition,.card-temp-unit,.detail-label{color:#98989d}.detail-value{color:#f5f5f7}.card-updated,.minmax-label{color:#636366}.card-minmax{border-top-color:hsla(0,0%,100%,.07)}.card-updated{border-top-color:hsla(0,0%,100%,.06)}.detail-row+.detail-row{border-top-color:hsla(0,0%,100%,.04)}.blob-1{opacity:.12}.blob-2,.blob-3{opacity:.1}.skeleton-card{background:hsla(0,0%,100%,.06);border-color:hsla(0,0%,100%,.08)}.skeleton-line{background:linear-gradient(90deg,hsla(0,0%,100%,.05) 25%,hsla(0,0%,100%,.1) 50%,hsla(0,0%,100%,.05) 75%);background-size:400% 100%;animation:shimmer-line 1.8s ease-in-out infinite}.error-state{background:rgba(255,59,48,.1);border-color:rgba(255,59,48,.3)}.collapsed-day-row{background:hsla(0,0%,100%,.07);border-color:hsla(0,0%,100%,.1)}.collapsed-day-row:hover{background:hsla(0,0%,100%,.12);box-shadow:0 4px 16px rgba(0,0,0,.2)}.collapsed-condition,.collapsed-detail-value,.collapsed-max-temp{color:#f5f5f7}.collapsed-expand-hint,.collapsed-source-count{color:#636366}.collapsed-day-row:hover .collapsed-expand-hint{color:#f5f5f7}.expanded-day-header{background:hsla(0,0%,100%,.07);border-color:hsla(0,0%,100%,.1)}.expanded-day-header:hover{background:hsla(0,0%,100%,.12);box-shadow:0 4px 16px rgba(0,0,0,.2)}.expanded-condition,.expanded-detail-value,.expanded-max-temp{color:#f5f5f7}.expanded-collapse-hint,.expanded-source-count{color:#636366}.expanded-day-header:hover .expanded-collapse-hint{color:#f5f5f7}}@media (max-width:900px){.header-inner{flex-wrap:wrap;gap:.5rem}.header-left{flex:1}.header-right{flex-shrink:0}.header-center{order:3;flex-basis:100%;justify-content:flex-start}.cards-grid{grid-template-columns:1fr 1fr;gap:.75rem}.collapsed-day-row{grid-template-columns:auto auto 1fr auto;gap:1rem;padding:.85rem 1.25rem}.collapsed-left{gap:.75rem}.collapsed-icon{font-size:2rem}.collapsed-max-temp{font-size:1.5rem}.collapsed-right{gap:.75rem}.expanded-day-header{grid-template-columns:auto auto 1fr auto;gap:1rem;padding:.85rem 1.25rem}.expanded-left{gap:.75rem}.expanded-icon{font-size:2rem}.expanded-max-temp{font-size:1.5rem}.expanded-right{gap:.75rem}}@media (max-width:600px){.header{padding:.75rem 1rem}.header h1{font-size:1.3rem}.header-subtitle{font-size:.75rem}.live-badge{width:110px;height:28px;font-size:.7rem;gap:5px}.live-dot{width:6px;height:6px}.city-tab{padding:5px 11px;font-size:.78rem}.city-switcher{gap:4px}.cards-grid{grid-template-columns:repeat(2,1fr);gap:.5rem}.weather-card{padding:1rem;border-radius:16px}.card-source-name{font-size:.65rem;margin-bottom:3px}.card-source-bar{width:24px;height:2px;margin-bottom:.75rem}.card-temp{font-size:2rem}.card-temp-unit{font-size:1rem}.card-condition{font-size:.8rem;margin-bottom:.75rem}.card-icon{font-size:2.5rem;margin-bottom:.75rem}.card-details{gap:.35rem;margin-bottom:.75rem}.detail-label,.detail-value{font-size:.75rem}.card-minmax{gap:.5rem;padding-top:.75rem;margin-bottom:.5rem}.minmax-label{font-size:.6rem;margin-bottom:1px}.minmax-max,.minmax-min{font-size:1.2rem}.card-updated{font-size:.65rem;padding-top:.5rem}.main-content{padding:1.5rem .75rem 3rem}.day-heading{font-size:1.1rem;margin-bottom:.75rem}.collapsed-day-row{grid-template-columns:auto auto 1fr;gap:.75rem;padding:.75rem 1rem;min-height:90px}.collapsed-left{gap:.5rem}.collapsed-icon{font-size:1.75rem}.collapsed-max-temp{font-size:1.25rem}.collapsed-condition{font-size:.8rem}.collapsed-source-count{font-size:.65rem}.collapsed-middle{max-width:90px}.collapsed-right{gap:.5rem;flex-wrap:nowrap;white-space:nowrap}.collapsed-detail{font-size:.75rem}.collapsed-detail-value{min-width:28px}.collapsed-expand-hint{display:none}.expanded-day-header{grid-template-columns:auto auto 1fr;gap:.75rem;padding:.75rem 1rem;margin-bottom:.75rem;min-height:90px}.expanded-left{gap:.5rem}.expanded-icon{font-size:1.75rem}.expanded-max-temp{font-size:1.25rem}.expanded-condition{font-size:.8rem}.expanded-source-count{font-size:.65rem}.expanded-right{gap:.5rem;flex-wrap:nowrap;white-space:nowrap}.expanded-middle{max-width:90px}.expanded-detail{font-size:.75rem}.expanded-detail-value{min-width:28px}.expanded-collapse-hint{display:none}}@media (max-width:420px){.cards-grid{grid-template-columns:1fr;gap:.5rem}.main-content{padding:1rem .5rem 3rem}.day-heading{font-size:1rem;margin-bottom:.6rem;padding-left:2px}.weather-card{padding:.85rem}.card-temp{font-size:1.75rem}.card-temp-unit{font-size:.9rem}.card-icon{font-size:2rem}.minmax-max,.minmax-min{font-size:1rem}.collapsed-day-row{grid-template-columns:auto 1fr auto;gap:.6rem;padding:.65rem .85rem;min-height:85px}.collapsed-icon{font-size:1.5rem}.collapsed-max-temp{font-size:1.1rem}.collapsed-detail{font-size:.7rem}.expanded-day-header{grid-template-columns:auto 1fr auto;gap:.6rem;padding:.65rem .85rem;margin-bottom:.6rem;min-height:85px}.expanded-icon{font-size:1.5rem}.expanded-max-temp{font-size:1.1rem}.expanded-detail{font-size:.7rem}}