:root{--text-primary:#fff;--text-secondary:#ffffffb3;--glass-bg:#ffffff1a;--glass-border:#fff3;--glass-shadow:#0000001a;--font-main:"Inter", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);color:var(--text-primary);background-position:50%;background-size:cover;background-attachment:fixed;min-height:100vh;margin:0;transition:background .8s ease-in-out;overflow-x:hidden}body.theme-clear-day{background:linear-gradient(135deg,#4facfe 0%,#00f2fe 100%)}body.theme-clear-night{background:linear-gradient(135deg,#0f2027 0%,#203a43 50%,#2c5364 100%)}body.theme-clouds-day{background:linear-gradient(135deg,#8e9eab 0%,#eef2f3 100%)}body.theme-clouds-night{background:linear-gradient(135deg,#304352 0%,#d7d2cc 100%)}body.theme-rain{background:linear-gradient(135deg,#2b5876 0%,#4e4376 100%)}body.theme-snow{background:linear-gradient(135deg,#e0c3fc 0%,#8ec5fc 100%)}body.theme-thunderstorm{background:linear-gradient(135deg,#141e30 0%,#243b55 100%)}.background-overlay{z-index:-1;background:radial-gradient(circle,#0000 0%,#0000004d 100%);width:100%;height:100%;position:fixed;top:0;left:0}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#root{flex-direction:column;min-height:100vh;display:flex}.app-container{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);width:90vw;max-width:500px;box-shadow:0 8px 32px 0 var(--glass-shadow);border-radius:24px;margin:2rem auto;padding:2rem;transition:all .3s;animation:.5s ease-out fadeIn}.error-message{color:#fcc;background:#ff3b3033;border:1px solid #ff3b3066;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:1rem;display:flex}.loading-spinner{text-align:center;color:var(--text-secondary);padding:3rem 0}.spinner{border:3px solid #ffffff1a;border-top-color:#fff;border-radius:50%;width:30px;height:30px;margin:0 auto 1rem;animation:1s linear infinite spin}.forecast-title{color:#ffffffe6;margin-bottom:1rem;font-size:1.1rem;font-weight:500}.landing-state{text-align:center;color:var(--text-primary);padding:3rem 1rem;animation:.8s ease-out fadeIn}.landing-state h2{margin-bottom:.5rem;font-size:1.8rem;font-weight:600}.landing-state p{color:var(--text-secondary);font-size:1rem;line-height:1.5}@media (width<=600px){.app-container{border-radius:20px;width:95vw;margin:1rem auto;padding:1.5rem 1rem}.landing-state{padding:2rem .5rem}.landing-state h2{font-size:1.5rem}.landing-state i{font-size:3rem!important}}.search-container{border:1px solid var(--glass-border);background:#0003;border-radius:100px;align-items:center;margin-bottom:2rem;padding:.5rem 1rem;display:flex}.search-icon{color:var(--text-secondary);margin-right:.5rem;font-size:1.2rem}.city-input{color:var(--text-primary);font-size:1rem;font-family:var(--font-main);background:0 0;border:none;outline:none;flex:1}.city-input::placeholder{color:var(--text-secondary)}.search-button,.location-button{color:var(--text-primary);cursor:pointer;font-family:var(--font-main);background:0 0;border:none;padding:.5rem;font-weight:500;transition:opacity .2s}.search-button:hover,.location-button:hover{opacity:.7}.location-button{border-left:1px solid var(--glass-border);justify-content:center;align-items:center;margin-left:.5rem;padding-left:1rem;font-size:1.2rem;display:flex}@media (width<=600px){.search-container{margin-bottom:1.5rem;padding:.3rem .8rem}.city-input{font-size:.9rem}.search-button,.location-button{padding:.3rem;font-size:1rem}.location-button{margin-left:.3rem;padding-left:.6rem}}.current-weather{text-align:center;animation:.5s ease-out forwards fadeIn}.city-name{letter-spacing:-.5px;margin-bottom:.2rem;font-size:2.5rem;font-weight:600}.date-time{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem}.temp-container{justify-content:center;align-items:center;margin-bottom:.5rem;display:flex}@keyframes floatIcon{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}.weather-icon{filter:drop-shadow(0 4px 6px #0003);width:100px;height:100px;animation:4s ease-in-out infinite floatIcon}.temperature{letter-spacing:-2px;font-size:5rem;font-weight:700;line-height:1}.weather-condition{text-transform:capitalize;margin-bottom:2.5rem;font-size:1.5rem;font-weight:400}@media (width<=600px){.temperature{font-size:4rem}.city-name{font-size:2rem}.weather-condition{font-size:1.2rem}}.weather-details{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.detail-card{background:#00000026;border:1px solid #ffffff0d;border-radius:16px;align-items:center;padding:1rem;transition:transform .2s;display:flex}.detail-card:hover{background:#0003;transform:translateY(-2px)}.detail-icon{color:#ffffffe6;margin-right:1rem;font-size:1.8rem}.detail-info{text-align:left;flex-direction:column;display:flex}.detail-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.2rem;font-size:.75rem}.detail-value{font-size:1.1rem;font-weight:600}@media (width<=600px){.weather-details{grid-template-columns:1fr}}.forecast-container{margin-top:1.5rem}.forecast-section{border-top:1px solid #ffffff1a;margin-top:1.5rem;padding-top:1.5rem;animation:.5s ease-out forwards fadeIn}.forecast-title{color:#ffffffe6;text-align:left;margin-bottom:1rem;font-size:1.1rem;font-weight:500}.hourly-scroll{-ms-overflow-style:none;scrollbar-width:none;gap:1rem;padding-bottom:1rem;display:flex;overflow-x:auto}.hourly-scroll::-webkit-scrollbar{display:none}.hourly-item{background:#0000001a;border:1px solid #ffffff0d;border-radius:16px;flex-direction:column;align-items:center;min-width:80px;padding:1rem;display:flex}.forecast-time{color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem}.forecast-icon{width:50px;height:50px}.forecast-temp{font-size:1.1rem;font-weight:600}.daily-list{flex-direction:column;gap:.8rem;display:flex}.daily-item{background:#0000001a;border:1px solid #ffffff0d;border-radius:12px;justify-content:space-between;align-items:center;padding:.8rem 1rem;display:flex}.daily-day{flex:1;font-weight:500}.daily-icon-container{flex:1;justify-content:center;display:flex}.forecast-icon-small{width:40px;height:40px}.daily-temp{text-align:right;flex:1;font-size:1.1rem;font-weight:600}@media (width<=600px){.hourly-item{min-width:70px;padding:.8rem}.forecast-temp{font-size:1rem}.daily-item{padding:.6rem .8rem}.daily-day,.daily-temp{font-size:1rem}}.animated-bg-container{z-index:-2;pointer-events:none;width:100vw;height:100vh;position:fixed;top:0;left:0;overflow:hidden}.sun-wrapper{position:absolute;top:5%;right:10%}.landing-sun{top:15%;left:10%;right:auto}.sun-animation{background:radial-gradient(circle,#ffdf00 0%,#ffdf0000 70%);border-radius:50%;width:150px;height:150px;animation:20s linear infinite rotateSun,4s ease-in-out infinite alternate pulseSun;box-shadow:0 0 60px 30px #ffdf004d}@keyframes rotateSun{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseSun{0%{opacity:.8;transform:scale(1)}to{opacity:1;transform:scale(1.2)}}.moon-wrapper{position:absolute;top:8%;right:12%}.moon-animation{transform-origin:50%;background:0 0;border-radius:50%;width:100px;height:100px;animation:6s ease-in-out infinite alternate floatMoon;box-shadow:-20px 20px #ffffffe6}@keyframes floatMoon{0%{transform:translateY(0)rotate(-10deg)}to{transform:translateY(-15px)rotate(10deg)}}.cloud-animation{filter:blur(8px);background:#ffffff4d;border-radius:50px;position:absolute}.cloud-animation:before,.cloud-animation:after{content:"";background:#ffffff4d;border-radius:50%;position:absolute}.cloud-1{width:250px;height:70px;animation:45s linear infinite floatCloud;top:15%;left:-20%}.cloud-1:before{width:100px;height:100px;top:-50px;left:40px}.cloud-1:after{width:80px;height:80px;top:-30px;right:40px}.cloud-2{opacity:.8;width:300px;height:90px;animation:60s linear -15s infinite floatCloud;top:40%;left:-30%}.cloud-2:before{width:120px;height:120px;top:-60px;left:50px}.cloud-2:after{width:100px;height:100px;top:-40px;right:50px}.cloud-3{width:200px;height:60px;animation:35s linear -5s infinite floatCloud;top:65%;left:-20%}.cloud-3:before{width:80px;height:80px;top:-40px;left:30px}.cloud-3:after{width:60px;height:60px;top:-20px;right:30px}.cloud-4{opacity:.6;width:150px;height:45px;animation:50s linear -25s infinite floatCloud;top:80%;left:-25%}.cloud-4:before{width:60px;height:60px;top:-30px;left:20px}.cloud-4:after{width:50px;height:50px;top:-20px;right:20px}@keyframes floatCloud{0%{transform:translate(-20vw)}to{transform:translate(120vw)}}.navbar{-webkit-backdrop-filter:blur(16px);z-index:100;background:#0000001a;border:1px solid #ffffff0d;border-radius:24px;justify-content:space-between;align-items:center;width:90vw;max-width:1200px;margin:1.5rem auto 0;padding:1rem 2rem;animation:.5s ease-out fadeInDown;display:flex;box-shadow:0 4px 16px #0000001a}.navbar-brand{color:var(--text-primary);text-shadow:0 2px 4px #0003;align-items:center;gap:.5rem;font-size:1.5rem;font-weight:700;text-decoration:none;display:flex}.navbar-brand i{color:#ffdf00;font-size:1.8rem}.navbar-links{gap:1.5rem;display:flex}.navbar-links a{color:var(--text-secondary);font-size:1rem;font-weight:500;text-decoration:none;transition:all .3s;position:relative}.navbar-links a:hover,.navbar-links a.active{color:var(--text-primary)}.navbar-links a:after{content:"";background:var(--text-primary);width:0;height:2px;transition:width .3s;position:absolute;bottom:-4px;left:0}.navbar-links a:hover:after,.navbar-links a.active:after{width:100%}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media (width<=600px){.navbar{border-radius:20px;width:95vw;margin:1rem auto 0;padding:.8rem 1rem}.navbar-brand{font-size:1.2rem}.navbar-brand i{font-size:1.5rem}.navbar-links{gap:1rem}.navbar-links a{font-size:.9rem}}.footer{-webkit-backdrop-filter:blur(10px);z-index:100;background:#0000001a;border-top:1px solid #ffffff0d;width:100%;margin-top:auto;padding:1.5rem 5%}.footer-content{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.footer-content p{color:var(--text-secondary);font-size:.9rem}.footer-links{gap:1rem;display:flex}.footer-links a{color:var(--text-secondary);font-size:1.8rem;transition:color .3s}.footer-links a:hover{color:var(--text-primary)}@media (width<=600px){.footer-content{text-align:center;flex-direction:column;gap:1rem}}
