* { box-sizing:border-box; }
:root {
  --bg:#eaf4ff; --card:rgba(255,255,255,.9); --text:#132238; --muted:#64748b;
  --primary:#2563eb; --primary2:#06b6d4; --border:#dbe5f0; --input:#f8fbff;
  --shadow:0 25px 70px rgba(30,64,175,.14);
}
body.dark {
  --bg:#08111f; --card:rgba(15,27,45,.94); --text:#eef6ff; --muted:#9fb0c4;
  --primary:#60a5fa; --primary2:#22d3ee; --border:#26384e; --input:#101e31;
  --shadow:0 25px 70px rgba(0,0,0,.4);
}
body {
  margin:0; min-height:100vh; color:var(--text);
  font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  background:radial-gradient(circle at 15% 10%,#bfdbfe 0,transparent 34%),var(--bg);
  transition:.25s ease;
}
body.dark { background:radial-gradient(circle at 15% 10%,#12345c 0,transparent 34%),var(--bg); }
.app { width:min(760px,92%); margin:auto; padding:42px 0 28px; }
.topbar { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; margin-bottom:22px; }
.eyebrow { color:var(--primary); font-size:12px; font-weight:900; letter-spacing:.16em; }
h1 { margin:7px 0 5px; font-size:clamp(34px,7vw,54px); line-height:1; }
.topbar p { margin:0; color:var(--muted); }
.actions { display:flex; gap:8px; }
.icon-btn { width:46px; height:46px; border:1px solid var(--border); border-radius:12px; background:var(--card); color:var(--text); cursor:pointer; font-weight:800; }
.card { background:var(--card); border-radius:28px; padding:28px; box-shadow:var(--shadow); backdrop-filter:blur(14px); }
.search-form { display:grid; grid-template-columns:1fr auto; gap:10px; }
input { min-width:0; padding:15px 16px; border:1px solid var(--border); border-radius:14px; background:var(--input); color:var(--text); font-size:16px; outline:none; }
input:focus { border-color:var(--primary); box-shadow:0 0 0 4px rgba(37,99,235,.12); }
.search-btn { padding:0 24px; border:0; border-radius:14px; color:#fff; font-weight:800; cursor:pointer; background:linear-gradient(135deg,var(--primary),var(--primary2)); }
.message { min-height:20px; margin:14px 2px 0; color:#ef4444; text-align:center; }
.weather { margin-top:18px; padding:24px; border:1px solid var(--border); border-radius:22px; background:linear-gradient(145deg,rgba(37,99,235,.10),rgba(6,182,212,.06)); animation:show .25s ease; }
.weather-head { display:flex; justify-content:space-between; align-items:center; }
.city { display:block; font-size:26px; font-weight:900; }
.country { color:var(--muted); font-size:13px; }
.weather-icon { font-size:58px; }
.temperature { margin-top:14px; font-size:76px; font-weight:900; letter-spacing:-.06em; }
.temperature sup { font-size:24px; vertical-align:top; margin-left:4px; }
.condition { margin:0 0 22px; color:var(--muted); font-size:17px; }
.details { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.details div { display:flex; flex-direction:column; gap:5px; padding:14px; border:1px solid var(--border); border-radius:16px; background:var(--input); }
.details span { font-size:19px; }
.details strong { font-size:16px; }
.details small { color:var(--muted); }
.empty { text-align:center; padding:50px 15px 30px; color:var(--muted); }
.cloud { font-size:58px; opacity:.8; }
.empty h2 { color:var(--text); margin:12px 0 5px; }
.empty p { margin:0; }
footer { text-align:center; color:var(--muted); font-size:13px; margin-top:18px; }
[dir="rtl"] { font-family:Vazirmatn,Tahoma,Arial,sans-serif; }
@keyframes show { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@media (max-width:600px) {
  .app { padding-top:25px; }
  .card { padding:20px; border-radius:22px; }
  .search-form { grid-template-columns:1fr; }
  .search-btn { padding:14px; }
  .temperature { font-size:64px; }
  .details { grid-template-columns:1fr; }
}
