*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh;padding:20px}.app{max-width:900px;margin:0 auto;padding:40px 20px;text-align:center}.header{margin-bottom:40px}.header h1{font-size:3rem;font-weight:700;color:#fff;margin-bottom:10px;text-shadow:0 2px 4px rgba(0,0,0,.3)}.subtitle{font-size:1.1rem;color:#ffffffe6;margin-bottom:0}.search-container{margin-bottom:40px}.search-bar{display:flex;justify-content:center;align-items:center;gap:15px;flex-wrap:wrap}.search-input-container{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:16px;font-size:1.2rem;color:#666;z-index:1}.search-input{padding:16px 20px 16px 50px;font-size:16px;width:350px;border:none;border-radius:50px;outline:none;background:#fff;box-shadow:0 4px 20px #0000001a;transition:all .3s ease}.search-input:focus{transform:translateY(-2px);box-shadow:0 8px 30px #00000026}.search-input::placeholder{color:#999}.search-button{padding:16px 32px;font-size:16px;font-weight:600;background:linear-gradient(135deg,#ff6b6b,#ee5a52);color:#fff;border:none;border-radius:50px;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 20px #ff6b6b4d}.search-button:hover{transform:translateY(-2px);box-shadow:0 8px 30px #ff6b6b66}.search-button:active{transform:translateY(0)}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;color:#fff}.loading-spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-text{font-size:1.1rem;color:#ffffffe6}.error-container{background:#fffffff2;border-radius:20px;padding:30px;margin:20px auto;max-width:500px;box-shadow:0 8px 30px #0000001a;border-left:5px solid #ff6b6b}.error-icon{font-size:2rem;margin-bottom:15px}.error-message{color:#d63031;font-size:1.1rem;font-weight:500;line-height:1.5}.weather-card{background:#fffffff2;border-radius:25px;padding:35px;margin:30px auto;max-width:600px;box-shadow:0 15px 50px #00000026;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2);animation:fadeInUp .6s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.weather-header{margin-bottom:30px}.city-name{font-size:1.8rem;font-weight:600;color:#2d3436;margin-bottom:8px}.last-updated{color:#636e72;font-size:.9rem}.weather-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.temperature-section{display:flex;align-items:center;gap:20px}.weather-icon{width:100px;height:100px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.1))}.temperature-info{text-align:left}.temperature{font-size:3.5rem;font-weight:700;color:#2d3436;line-height:1}.description{font-size:1.2rem;color:#636e72;margin:5px 0;font-weight:500}.feels-like{color:#74b9ff;font-size:1rem;font-weight:500}.temp-range{display:flex;flex-direction:column;gap:10px;text-align:right}.temp-high,.temp-low{font-size:1.1rem;font-weight:600;padding:8px 15px;border-radius:15px;background:#74b9ff1a;color:#0984e3}.temp-low{background:#636e721a;color:#636e72}.weather-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:20px;padding-top:25px;border-top:2px solid rgba(116,185,255,.1)}.weather-detail{display:flex;flex-direction:column;align-items:center;padding:20px 15px;background:#74b9ff0d;border-radius:15px;transition:all .3s ease}.weather-detail:hover{transform:translateY(-5px);background:#74b9ff1a}.detail-icon{font-size:1.8rem;margin-bottom:10px}.detail-value{font-size:1.2rem;font-weight:600;color:#2d3436;margin-bottom:5px}.detail-label{font-size:.9rem;color:#636e72;font-weight:500;text-transform:uppercase;letter-spacing:.5px}@media (max-width: 768px){.header h1{font-size:2.2rem}.subtitle{font-size:1rem}.search-input{width:280px}.search-bar{flex-direction:column;gap:15px}.weather-main{flex-direction:column;text-align:center}.temperature-section{flex-direction:column;gap:15px}.temperature-info{text-align:center}.temp-range{flex-direction:row;justify-content:center;gap:15px}.weather-details{grid-template-columns:repeat(2,1fr);gap:15px}.weather-card{padding:25px 20px}}@media (max-width: 480px){.search-input,.search-button{width:100%;max-width:300px}.temperature{font-size:2.8rem}.weather-details{grid-template-columns:1fr}.weather-detail{padding:15px}}
