:root{
    --bg: #0f1724;
    --card: #0b1220;
    --accent: #5eead4;
    --muted: #94a3b8;
    --glass: rgba(255,255,255,0.03);
}
*{box-sizing:border-box}
html,body{height:100%}
body{
    margin:0;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial;
    background: linear-gradient(180deg,#071025 0%, #0b1220 100%);
    color:#e6eef8;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:32px;
}
.app{width:100%;max-width:720px}
.visually-hidden{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.title{margin:0 0 18px 8px;font-weight:600}
.controls{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:18px}
.search{display:flex;gap:8px;flex:1}
/* Input and focus styles */
#cityInput{flex:1;padding:10px 12px;border-radius:10px;border:none;background:var(--glass);color:inherit}
#cityInput:focus{outline:3px solid rgba(94,234,212,0.16);outline-offset:2px}
button{background:var(--accent);border:none;color:#042022;padding:10px 12px;border-radius:10px;cursor:pointer}
button[title]{padding:8px 10px}
button:focus{box-shadow:0 0 0 3px rgba(94,234,212,0.12)}
.actions{display:flex;gap:8px;align-items:center}
.unit-toggle{display:flex;align-items:center;gap:8px;color:var(--muted)}
.card{background:linear-gradient(180deg, rgba(255,255,255,0.03), rgba(255,255,255,0.02));padding:22px;border-radius:14px;box-shadow:0 6px 30px rgba(2,6,23,0.6);}
.location{font-size:18px;color:var(--accent);margin-bottom:8px}
.temp-row{display:flex;align-items:baseline;gap:10px}
.temperature{font-size:64px;font-weight:700}
.unit{font-size:20px;color:var(--muted)}
.description{margin-top:6px;color:var(--muted)}
.details{margin-top:12px;color:var(--muted);font-size:14px}
.error{margin-top:12px;color:#ffb4b4}
.footer{margin-top:14px;color:var(--muted);font-size:13px;text-align:center}

/* Forecast grid */
.forecast{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:14px}
.forecast-item{background:rgba(255,255,255,0.02);padding:10px;border-radius:10px;text-align:center}
.forecast-date{font-size:13px;color:var(--muted);margin-bottom:6px}
.forecast-icon{font-size:28px;margin-bottom:6px}
.forecast-temp{font-weight:600}

/* Card head with icon */
.card-head{display:flex;gap:12px;align-items:center;margin-bottom:6px}
.weather-icon{color:var(--accent);transition:transform 400ms ease;}
.weather-icon.spin{transform:rotate(20deg);}

/* Forecast animation */
.forecast-item:hover{transform:translateY(-4px);transition:transform 180ms ease}

/* Recent searches */
.recent{margin-top:14px}
.recent-list{display:flex;gap:8px;flex-wrap:wrap}
.recent-btn{background:transparent;border:1px solid rgba(255,255,255,0.04);padding:6px 10px;border-radius:8px;color:var(--muted);cursor:pointer}
.recent-btn:focus{outline:3px solid rgba(94,234,212,0.12)}

@media (max-width:520px){
    .temperature{font-size:44px}
    .app{padding:0 8px}
}
