:root{
  --primary:#4285f4;--success:#34a853;--warning:#fbbc05;--danger:#ea4335;
  --bg:#fff;--text:#202124;--text-secondary:#70757a;
  --border:#dfe1e5;--hover-bg:#f8f9fa;
  --shadow:0 1px 6px rgba(32,33,36,.28);
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{font-family:'Vazirmatn','Segoe UI',Tahoma,Arial,sans-serif;background:var(--bg);
  color:var(--text);min-height:100vh;display:flex;flex-direction:column}

/* ── Header ───────────────────────────────────────────── */
.top-bar{display:flex;justify-content:flex-end;align-items:center;
  padding:14px 24px;gap:8px}
.top-bar a{font-size:13px;color:var(--text);text-decoration:none;
  padding:8px 12px;border-radius:4px}
.top-bar a:hover{background:var(--hover-bg);text-decoration:underline}
.icon-btn{width:40px;height:40px;border:none;background:transparent;
  border-radius:50%;cursor:pointer;display:flex;align-items:center;
  justify-content:center;color:var(--text-secondary);font-size:18px;
  transition:background .15s}
.icon-btn:hover{background:#e8eaed}
.avatar{width:32px;height:32px;border-radius:50%;
  background:linear-gradient(135deg,var(--primary),var(--success));
  display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:13px;font-weight:600;cursor:pointer;border:none}

/* ── Center content ───────────────────────────────────── */
.center{flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:0 24px 120px}

/* ── Logo ─────────────────────────────────────────────── */
.logo{font-size:88px;font-weight:500;letter-spacing:-3px;
  line-height:1;margin-bottom:32px;user-select:none;cursor:default}
.logo .c1{color:var(--primary)}
.logo .c2{color:var(--danger)}
.logo .c3{color:var(--warning)}
.logo .c4{color:var(--primary)}
.logo .c5{color:var(--success)}
.logo .c6{color:var(--danger)}

/* ── Search box ───────────────────────────────────────── */
.search-wrap{position:relative;width:100%;max-width:584px}
.search-box{display:flex;align-items:center;
  border:1px solid var(--border);border-radius:24px;
  padding:0 16px;height:46px;background:#fff;
  transition:box-shadow .15s,border-color .15s;gap:8px;
  outline:none !important}
.search-box:hover{box-shadow:var(--shadow);border-color:transparent}
.search-box:focus-within{box-shadow:var(--shadow);border-color:transparent;outline:none !important}
.search-icon{color:var(--text-secondary);font-size:18px;flex-shrink:0}
.search-input{flex:1;border:none;outline:none !important;box-shadow:none !important;
  font-size:16px;font-family:inherit;color:var(--text);background:transparent;
  text-align:right;direction:rtl;-webkit-appearance:none;appearance:none}
.search-input::placeholder{color:var(--text-secondary)}
.search-input::-webkit-search-decoration,
.search-input::-webkit-search-cancel-button{-webkit-appearance:none}



.clear-btn{background:none;border:none;cursor:pointer;
  color:var(--text-secondary);font-size:16px;padding:4px;
  display:none;align-items:center;justify-content:center;border-radius:50%}
.clear-btn:hover{background:#e8eaed}
.clear-btn.visible{display:flex}

/* ── Voice search button ──────────────────────────────── */
.voice-btn{background:none;border:none;cursor:pointer;
  color:var(--text-secondary);font-size:18px;padding:4px;
  display:flex;align-items:center;justify-content:center;
  border-radius:50%;flex-shrink:0;transition:color .15s}
.voice-btn:hover{color:var(--primary);background:#e8f0fe}
.voice-btn.listening{color:var(--danger);animation:mic-pulse .8s ease-in-out infinite}
@keyframes mic-pulse{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.25);opacity:.7}
}

/* ── Autocomplete dropdown ────────────────────────────── */
.suggestions{position:absolute;top:100%;right:0;left:0;
  background:#fff;border:1px solid var(--border);border-top:none;
  border-radius:0 0 24px 24px;box-shadow:var(--shadow);
  z-index:100;display:none;overflow:hidden}
.suggestion-item{display:flex;align-items:center;gap:10px;
  padding:10px 18px;cursor:pointer;font-size:15px;
  color:var(--text);direction:rtl}
.suggestion-item:hover,.suggestion-item.active{background:var(--hover-bg)}
.suggestion-item i{color:var(--text-secondary);font-size:14px;flex-shrink:0}

/* suggestion header (e.g. 'recent searches') */
.suggestion-header{
  padding:8px 18px 4px;
  font-size:12px;color:var(--text-secondary);
  direction:rtl;border-bottom:1px solid var(--border);
  margin-bottom:2px;
}

/* history item: push remove button to the left */
.suggestion-item.suggestion-history{justify-content:flex-start}
.suggestion-item.suggestion-history span{flex:1}

/* remove button inside history item */
.history-remove-btn{
  background:none;border:none;cursor:pointer;
  color:var(--text-secondary);font-size:13px;
  padding:4px 6px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  flex-shrink:0;opacity:.6;transition:opacity .15s,background .15s;
  margin-right:auto;
}
.history-remove-btn:hover{opacity:1;background:#e8eaed}

/* ── Buttons ──────────────────────────────────────────── */
.btn-row{display:flex;gap:12px;margin-top:20px;flex-wrap:wrap;
  justify-content:center}
.btn{padding:10px 20px;border:1px solid var(--border);border-radius:4px;
  background:var(--hover-bg);color:#3c4043;font-size:14px;
  font-family:inherit;cursor:pointer;transition:box-shadow .15s,border-color .15s;
  white-space:nowrap}
.btn:hover{box-shadow:0 1px 2px rgba(0,0,0,.2);border-color:#c6c6c6;
  color:var(--text)}

/* ── Language offer ───────────────────────────────────── */
.lang-offer{margin-top:24px;font-size:13px;color:var(--text-secondary)}
.lang-offer a{color:var(--primary);text-decoration:none}
.lang-offer a:hover{text-decoration:underline}

/* ── PWA Install Banner ───────────────────────────────── */
.pwa-banner{display:none;position:fixed;bottom:0;left:0;right:0;
  background:#fff;border-top:1px solid var(--border);
  box-shadow:0 -2px 12px rgba(0,0,0,.12);
  padding:14px 20px;z-index:1000;
  align-items:center;gap:14px;direction:rtl}
.pwa-banner.show{display:flex}
.pwa-banner-icon{width:48px;height:48px;border-radius:12px;
  flex-shrink:0;overflow:hidden;background:#e8f0fe;
  display:flex;align-items:center;justify-content:center}
.pwa-banner-icon img{width:100%;height:100%;object-fit:cover}
.pwa-banner-text{flex:1;min-width:0}
.pwa-banner-title{font-size:15px;font-weight:600;color:var(--text);margin-bottom:2px}
.pwa-banner-desc{font-size:12px;color:var(--text-secondary)}
.pwa-banner-actions{display:flex;gap:8px;flex-shrink:0}
.pwa-install-btn{padding:9px 18px;background:var(--primary);color:#fff;
  border:none;border-radius:20px;font-size:14px;font-family:inherit;
  cursor:pointer;white-space:nowrap;font-weight:500;
  transition:background .15s}
.pwa-install-btn:hover{background:#3367d6}
.pwa-dismiss-btn{padding:9px 14px;background:none;color:var(--text-secondary);
  border:1px solid var(--border);border-radius:20px;font-size:14px;
  font-family:inherit;cursor:pointer;white-space:nowrap;
  transition:background .15s}
.pwa-dismiss-btn:hover{background:var(--hover-bg)}
@media(max-width:480px){
  .pwa-banner{padding:12px 14px;gap:10px}
  .pwa-banner-icon{width:40px;height:40px}
  .pwa-banner-title{font-size:14px}
  .pwa-banner-desc{font-size:11px}
  .pwa-install-btn,.pwa-dismiss-btn{padding:8px 12px;font-size:13px}
}

/* ══════════════════════════════════════════════════════
   ── Weather Widget ──────────────────────────────────────
   ══════════════════════════════════════════════════════ */

/* Container */
.weather-widget{
  position:relative;overflow:hidden;
  width:100%;max-width:584px;
  border-radius:20px;margin-bottom:32px;
  padding:20px 24px 16px;
  display:flex;align-items:center;gap:16px;
  cursor:default;user-select:none;
  transition:transform .2s,box-shadow .2s;
  box-shadow:0 4px 20px rgba(0,0,0,.12);
  min-height:90px;
  direction:rtl;
}
.weather-widget:hover{transform:translateY(-2px);box-shadow:0 8px 28px rgba(0,0,0,.18)}

/* ── Theme backgrounds ── */
.weather-widget.wt-sunny{
  background:linear-gradient(135deg,#f9a825 0%,#ffcc02 40%,#ffe57f 100%);color:#5d3a00}
.weather-widget.wt-clear-night{
  background:linear-gradient(135deg,#0d1b4b 0%,#1a237e 50%,#283593 100%);color:#e8eaf6}
.weather-widget.wt-partly-cloudy{
  background:linear-gradient(135deg,#64b5f6 0%,#90caf9 50%,#b3e5fc 100%);color:#0d2137}
.weather-widget.wt-cloudy{
  background:linear-gradient(135deg,#546e7a 0%,#78909c 50%,#b0bec5 100%);color:#fff}
.weather-widget.wt-rainy{
  background:linear-gradient(135deg,#1565c0 0%,#1976d2 40%,#42a5f5 100%);color:#e3f2fd}
.weather-widget.wt-snowy{
  background:linear-gradient(135deg,#b3e5fc 0%,#e1f5fe 50%,#fff 100%);color:#1a237e}
.weather-widget.wt-stormy{
  background:linear-gradient(135deg,#212121 0%,#37474f 50%,#546e7a 100%);color:#eceff1}
.weather-widget.wt-foggy{
  background:linear-gradient(135deg,#90a4ae 0%,#b0bec5 50%,#cfd8dc 100%);color:#263238}
.weather-widget.wt-loading{
  background:linear-gradient(135deg,#e0e0e0 0%,#f5f5f5 100%);color:#9e9e9e}

/* ── Weather info ── */
.weather-info{position:relative;z-index:2;flex:1;min-width:0}
.weather-temp{font-size:42px;font-weight:700;line-height:1;letter-spacing:-1px}
.weather-desc{font-size:14px;margin-top:4px;opacity:.85;font-weight:500}
.weather-city{font-size:12px;margin-top:2px;opacity:.7}
.weather-details{
  display:flex;gap:12px;margin-top:10px;
  font-size:11px;opacity:.75;flex-wrap:wrap;
}
.weather-details span{display:flex;align-items:center;gap:4px}

/* ── Icon area ── */
.weather-icon-wrap{
  position:relative;z-index:2;
  width:72px;height:72px;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
}

/* ─────────────── CSS Animations ─────────────── */

/* Sun */
.sun{
  width:44px;height:44px;border-radius:50%;
  background:radial-gradient(circle,#fff9c4 30%,#ffee58 100%);
  box-shadow:0 0 0 4px rgba(255,238,88,.4),0 0 0 8px rgba(255,238,88,.15);
  animation:sun-pulse 3s ease-in-out infinite;
}
@keyframes sun-pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(255,238,88,.4),0 0 0 8px rgba(255,238,88,.15)}
  50%  {box-shadow:0 0 0 8px rgba(255,238,88,.5),0 0 0 16px rgba(255,238,88,.2)}
}
.sun-rays{
  position:absolute;inset:0;
  animation:spin-slow 8s linear infinite;
}
.sun-rays::before,.sun-rays::after{
  content:'';position:absolute;background:rgba(255,238,88,.6);border-radius:2px;
}
.sun-rays::before{
  width:4px;height:14px;
  top:0;left:50%;transform:translateX(-50%);
  box-shadow:
    0 58px 0 rgba(255,238,88,.6),
    26px 30px 0 rgba(255,238,88,.6),
    -26px 30px 0 rgba(255,238,88,.6);
}
@keyframes spin-slow{to{transform:rotate(360deg)}}

/* Moon */
.moon{
  width:40px;height:40px;border-radius:50%;
  background:radial-gradient(circle at 35% 35%,#e8eaf6,#9fa8da);
  box-shadow:0 0 20px rgba(159,168,218,.5);
  animation:moon-glow 4s ease-in-out infinite;
  position:relative;
}
.moon::after{
  content:'';position:absolute;
  width:12px;height:12px;border-radius:50%;
  background:rgba(0,0,0,.1);
  top:10px;right:8px;
}
.star{
  position:absolute;border-radius:50%;background:#fff;
  animation:twinkle var(--td,2s) ease-in-out infinite;
}
@keyframes moon-glow{
  0%,100%{box-shadow:0 0 20px rgba(159,168,218,.5)}
  50%  {box-shadow:0 0 32px rgba(159,168,218,.8)}
}
@keyframes twinkle{
  0%,100%{opacity:.3;transform:scale(.8)}
  50%  {opacity:1;transform:scale(1.2)}
}

/* Cloud */
.cloud{
  position:relative;
  width:52px;height:28px;
  background:#fff;border-radius:14px;
  box-shadow:inset 0 -3px 6px rgba(0,0,0,.06);
  animation:cloud-float 4s ease-in-out infinite;
}
.cloud::before{
  content:'';position:absolute;
  width:28px;height:28px;border-radius:50%;
  background:#fff;top:-14px;right:10px;
  box-shadow:inset 0 -3px 6px rgba(0,0,0,.06);
}
.cloud::after{
  content:'';position:absolute;
  width:20px;height:20px;border-radius:50%;
  background:#fff;top:-10px;right:28px;
  box-shadow:inset 0 -3px 6px rgba(0,0,0,.06);
}
@keyframes cloud-float{
  0%,100%{transform:translateY(0)}
  50%  {transform:translateY(-6px)}
}
.cloud-dark{background:#78909c}
.cloud-dark::before,.cloud-dark::after{background:#78909c}

/* Sun + Cloud (partly cloudy) */
.partly-sun{
  position:absolute;bottom:4px;right:4px;
  width:30px;height:30px;border-radius:50%;
  background:radial-gradient(circle,#fff9c4,#ffee58);
  box-shadow:0 0 0 3px rgba(255,238,88,.4);
  animation:sun-pulse 3s ease-in-out infinite;
}

/* Rain drops */
.rain-wrap{
  position:absolute;inset:0;overflow:hidden;border-radius:20px;
  pointer-events:none;z-index:1;
}
.drop{
  position:absolute;
  width:2px;border-radius:1px;
  background:rgba(255,255,255,.6);
  animation:fall var(--dur,.6s) linear var(--del,0s) infinite;
  top:-20px;
}
@keyframes fall{
  to{transform:translateY(120px);opacity:0}
}

/* Snow flakes */
.snowflake{
  position:absolute;color:#fff;font-size:var(--sz,14px);
  animation:snow-fall var(--dur,3s) linear var(--del,0s) infinite;
  top:-20px;opacity:.8;
}
@keyframes snow-fall{
  to{transform:translateY(120px) rotate(360deg);opacity:0}
}

/* Lightning */
.lightning{
  position:absolute;right:24px;top:8px;
  width:4px;height:32px;
  background:linear-gradient(to bottom,#fff700,transparent);
  clip-path:polygon(30% 0,70% 0,40% 45%,70% 45%,20% 100%,50% 55%,20% 55%);
  animation:flash 2.5s ease-in-out infinite;
  z-index:1;
}
@keyframes flash{
  0%,85%,100%{opacity:0}
  87%,92%{opacity:1}
  90%,95%{opacity:.5}
}

/* Fog lines */
.fog-wrap{
  position:absolute;inset:0;overflow:hidden;border-radius:20px;
  pointer-events:none;z-index:1;
}
.fog-line{
  position:absolute;height:8px;border-radius:4px;
  background:rgba(255,255,255,.35);
  animation:fog-drift var(--dur,6s) ease-in-out var(--del,0s) infinite;
}
@keyframes fog-drift{
  0%  {transform:translateX(0);opacity:.3}
  50% {transform:translateX(-12px);opacity:.6}
  100%{transform:translateX(0);opacity:.3}
}

/* ── Loading skeleton ── */
.weather-loading-text{
  font-size:13px;
  animation:skeleton-pulse 1.4s ease-in-out infinite;
}
@keyframes skeleton-pulse{
  0%,100%{opacity:.4}50%{opacity:1}
}

/* ── Error state ── */
.weather-error{opacity:.6;font-size:13px;text-align:center;width:100%}

/* ── Footer ───────────────────────────────────────────── */
footer{background:#f2f2f2;color:var(--text-secondary);font-size:14px}
.footer-country{padding:12px 24px;border-bottom:1px solid #e0e0e0}
.footer-links{display:flex;justify-content:space-between;
  padding:10px 24px;flex-wrap:wrap;gap:8px}
.footer-links a{color:var(--text-secondary);text-decoration:none;
  padding:4px 8px}
.footer-links a:hover{text-decoration:underline}

/* ── Mobile ───────────────────────────────────────────── */
@media(max-width:600px){
  .top-bar{padding:10px 16px;gap:4px}
  .top-bar .top-link{display:none}
  .logo{font-size:56px;letter-spacing:-2px;margin-bottom:20px}
  .center{padding:0 12px 80px}
  .search-wrap{max-width:100%}
  .search-box{height:48px;padding:0 12px;border-radius:24px}
  .search-input{font-size:16px}  /* 16px prevents iOS auto-zoom */
  .btn-row{width:100%;gap:8px;margin-top:16px}
  .btn{flex:1;text-align:center;padding:10px 12px;font-size:14px}
  .lang-offer{font-size:12px;margin-top:16px}
  .footer-links{flex-direction:column;align-items:center;gap:4px}
  .footer-links div{display:flex;flex-wrap:wrap;justify-content:center;gap:0}
  footer{font-size:13px}
}
@media(max-width:400px){
  .logo{font-size:48px}
  .btn-row{flex-direction:column}
  .btn{flex:unset;width:100%}
}
@media(hover:none){
  .search-box:hover{box-shadow:none;border-color:var(--border)}
  .search-box:focus-within{box-shadow:var(--shadow);border-color:transparent;outline:none !important}
  .btn:hover{box-shadow:none;border-color:var(--border)}
  .btn:active{box-shadow:0 1px 2px rgba(0,0,0,.2)}
}
/* ── Submit spinner ─────────────────────────────────────── */
@keyframes btn-spin{to{transform:rotate(360deg)}}
.btn:disabled{opacity:.65;cursor:default;pointer-events:none}