:root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400}#root{width:100%}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.container{max-width:1200px;margin:0 auto;padding:2rem;min-height:100vh}header{text-align:center;margin-bottom:2rem;color:#fff}header h1{font-size:2.5rem;margin-bottom:.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.2)}.subtitle{font-size:1.2rem;opacity:.9}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.forecast-card{background:#fffffff2;border-radius:20px;padding:1.5rem;text-align:center;box-shadow:0 10px 30px #0003;transition:transform .3s ease,box-shadow .3s ease}.forecast-card:hover{transform:translateY(-5px);box-shadow:0 15px 40px #0000004d}.forecast-card.today{background:linear-gradient(135deg,#fff,#f0f4ff);border:3px solid #667eea}.card-header{margin-bottom:1rem}.day{font-weight:600;color:#333;font-size:.95rem;text-transform:capitalize}.forecast-card.today .day{color:#667eea;font-size:1.1rem}.weather-icon{font-size:3.5rem;margin:.5rem 0}.weather-desc{font-size:.85rem;color:#666;margin-bottom:1rem;min-height:2.5em}.temps{display:flex;justify-content:center;gap:1rem;margin-bottom:1rem}.temp-max{font-size:1.8rem;font-weight:700;color:#e74c3c}.temp-min{font-size:1.4rem;font-weight:500;color:#3498db;align-self:flex-end}.details{display:flex;justify-content:center;gap:1rem;font-size:.85rem;color:#777}.detail{display:flex;align-items:center;gap:.25rem}.detail-icon{font-size:1rem}footer{text-align:center;margin-top:2rem;color:#fffc;font-size:.9rem}footer a{color:#fff;text-decoration:underline}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;color:#fff}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.error{text-align:center;color:#fff;padding:2rem;background:#e74c3c4d;border-radius:10px}@media(max-width:600px){.container{padding:1rem}header h1{font-size:1.8rem}.forecast-grid{grid-template-columns:repeat(2,1fr)}.weather-icon{font-size:2.5rem}}
