.app{min-height:100vh;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.container{width:100%;max-width:500px}.title{text-align:center;color:#fff;font-size:2.5rem;margin-bottom:2rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.search-form{display:flex;gap:10px;margin-bottom:2rem}.search-input{flex:1;padding:15px 20px;border:none;border-radius:50px;font-size:16px;outline:none;box-shadow:0 4px 6px #0000001a;transition:transform .2s}.search-input:focus{transform:scale(1.02)}.search-button{padding:15px 30px;border:none;border-radius:50px;background:#fff;color:#667eea;font-size:16px;font-weight:700;cursor:pointer;box-shadow:0 4px 6px #0000001a;transition:all .3s}.search-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 12px #00000026}.search-button:disabled{opacity:.6;cursor:not-allowed}.error{background:#fffffff2;color:#e53e3e;padding:15px 20px;border-radius:15px;margin-bottom:1rem;text-align:center;font-weight:500;box-shadow:0 4px 6px #0000001a}.weather-card{background:#fffffff2;border-radius:25px;padding:30px;box-shadow:0 10px 30px #0003;animation:slideIn .5s ease-out}@keyframes slideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.weather-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.city-name{color:#2d3748;font-size:2rem;margin:0}.weather-icon img{width:100px;height:100px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.temperature{font-size:4rem;font-weight:700;color:#667eea;text-align:center;margin:20px 0}.weather-description{text-align:center;font-size:1.5rem;color:#4a5568;margin-bottom:30px;text-transform:capitalize}.weather-details{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-top:20px}.detail-item{background:linear-gradient(135deg,#667eea,#764ba2);padding:15px;border-radius:15px;display:flex;flex-direction:column;align-items:center;box-shadow:0 4px 6px #0000001a}.detail-label{color:#ffffffe6;font-size:.9rem;margin-bottom:5px}.detail-value{color:#fff;font-size:1.2rem;font-weight:700}.loading{text-align:center;color:#fff;padding:40px}.spinner{border:4px solid rgba(255,255,255,.3);border-top:4px solid white;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 20px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading p{font-size:1.2rem;margin:0}@media(max-width:600px){.title{font-size:2rem}.weather-card{padding:20px}.city-name{font-size:1.5rem}.temperature{font-size:3rem}.weather-details{grid-template-columns:1fr}}
