/* «غزنی ما» — استایل: تمیز، مدرن، موبایل‌محور، راست‌چین */

/* فونت وزیرمتن — خودمیزبانی‌شده (فونت متغیر، همه وزن‌ها در دو فایل) */
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./vendor/fonts/vazirmatn-arabic.woff2') format('woff2');
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0898-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC;
}
@font-face {
  font-family: 'Vazirmatn';
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url('./vendor/fonts/vazirmatn-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* درخشش سبک پشت نقشه تا لود سریع‌تر حس شود؛ با لود تایل‌ها خاموش می‌شود */
.map-full:not(.map-ready) {
  background: linear-gradient(100deg, #dde7ea 40%, #f2f7f8 50%, #dde7ea 60%);
  background-size: 200% 100%;
  animation: mapShimmer 1.4s linear infinite;
}
@keyframes mapShimmer { to { background-position: -200% 0; } }

:root {
  --brand: #0b6e4f;
  --brand-dark: #085c42;
  --brand-soft: #e7f4ee;
  --bg: #f4f6f5;
  --card: #ffffff;
  --ink: #1c2421;
  --muted: #6b7672;
  --line: #e3e8e6;
  --wa: #1faa53;
  --danger: #d33;
  --radius: 14px;
}
* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html { scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: 'Vazirmatn', Tahoma, 'Segoe UI', sans-serif;
  font-size: 14px; line-height: 1.9;
  max-width: 720px; margin-inline: auto;
  min-height: 100vh; display: flex; flex-direction: column;
  box-shadow: 0 0 24px rgba(0,0,0,.06);
}
#topbar {
  background: var(--brand); color: #fff; padding: 8px 14px;
  position: sticky; top: 0; z-index: 500;
}
.topbar-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.topbar-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.brand { color: #fff; text-decoration: none; display: flex; align-items: center; gap: 8px; font-weight: 800; font-size: 20px; white-space: nowrap; min-width: 0; }
.brand-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.share-top { background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.4); color: #fff; width: 34px; height: 34px; font-size: 16px; margin: 0; box-shadow: none; border-radius: 999px; display: flex; align-items: center; justify-content: center; cursor: pointer; font-family: inherit; }
.share-top:active { transform: scale(.94); }
.brand-logo { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; display: inline-block; flex: 0 0 auto; }
#announce-bar { font-size: 12px; background: rgba(255,255,255,.14); border-radius: 8px; padding: 4px 10px; margin-top: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#view { flex: 1; padding-bottom: 24px; }
.page { padding: 16px; }
.page.narrow { max-width: 420px; margin: 24px auto; }
.page.wide { padding: 12px; }
h1 { font-size: 20px; margin: 8px 0 12px; }
h3 { font-size: 16px; margin: 18px 0 8px; }
.hint { color: var(--muted); font-size: 14px; }
.back { display: inline-block; margin-bottom: 8px; color: var(--brand); text-decoration: none; font-size: 14px; }

/* قهرمان صفحه اصلی */
.hero { background: linear-gradient(135deg, var(--brand), var(--brand-dark)); color: #fff; text-align: center; padding: 30px 16px 24px; }
.hero h1 { font-size: 24px; margin: 0; font-weight: 800; }
.tagline { margin: 6px 0 0; opacity: .92; font-size: 16px; }
.demo-note { background: #fff3cd; color: #7a5b00; font-size: 12px; border-radius: 8px; padding: 6px 12px; margin-top: 10px; display: inline-block; }

/* بنرها */
.banners { display: flex; gap: 10px; overflow-x: auto; padding: 14px 16px 4px; scroll-snap-type: x mandatory; }
.banner { scroll-snap-align: start; flex: 0 0 82%; background: var(--card); border: 1px solid var(--line); border-inline-start: 5px solid var(--brand); border-radius: var(--radius); padding: 12px 14px; }
.banner-title { font-weight: 700; font-size: 16px; }
.banner-text { color: var(--muted); font-size: 14px; }

/* چهار کارت بزرگ */
.cards4 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 14px 16px; }
.bigcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 18px 10px; text-align: center; text-decoration: none; color: var(--ink); transition: transform .12s; }
.bigcard:active { transform: scale(.97); }
.bc-ico { font-size: 34px; display: block; }
.bc-t { font-weight: 800; font-size: 16px; display: block; margin-top: 4px; }
.bigcard small { color: var(--muted); font-size: 12px; }

/* بخش‌ها */
.sec { padding: 8px 16px; }
.sec-head { display: flex; justify-content: space-between; align-items: center; }
.sec-head h2 { font-size: 16px; margin: 10px 0; }
.sec-head a { color: var(--brand); text-decoration: none; font-size: 14px; }
.hscroll { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 8px; }
.hscroll .pcard { flex: 0 0 240px; }
.hscroll .vchip { flex: 0 0 auto; }

/* کارت ملک */
.cards { display: grid; gap: 12px; }
.pcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--ink); display: block; }
.pcard-img { height: 110px; background: var(--brand-soft); display: flex; align-items: center; justify-content: center; font-size: 52px; }
.pcard-body { padding: 10px 12px; }
.pcard-title { font-weight: 700; font-size: 14px; }
.pcard-meta { color: var(--muted); font-size: 12px; }
.pcard-price { color: var(--brand); font-weight: 800; margin-top: 2px; }
.pcard-dist { padding: 0 12px 8px; color: var(--brand); font-size: 12px; font-weight: 700; }
.res-count { color: var(--muted); font-size: 14px; }

/* ویزا */
.vchip { background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; text-decoration: none; color: var(--ink); display: flex; align-items: center; gap: 8px; font-size: 14px; }
.vchip small { color: var(--muted); }
.vflag { font-size: 22px; }
.vcard { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; text-decoration: none; color: var(--ink); display: flex; gap: 14px; align-items: center; }
.vcard-flag { font-size: 44px; }
.vcard-country { font-weight: 800; font-size: 16px; }
.vcard-type { color: var(--muted); font-size: 14px; }
.vcard-price { color: var(--brand); font-weight: 800; }
.vcard-meta { font-size: 12px; color: var(--muted); }
.st { display: inline-block; font-size: 12px; font-weight: 700; border-radius: 999px; padding: 2px 12px; margin-top: 4px; }
.st-ok { background: #e2f5e9; color: #137333; }
.st-warn { background: #fff3d6; color: #8a5b00; }
.st-off { background: #f1f1f1; color: #777; }

/* دکمه‌ها و فرم */
.btn { display: inline-block; background: var(--brand); color: #fff; border: none; border-radius: 12px; padding: 12px 22px; font-family: inherit; font-size: 16px; font-weight: 700; text-decoration: none; cursor: pointer; text-align: center; }
.btn:active { transform: scale(.98); }
.btn:disabled { opacity: .6; }
.btn-big { display: block; width: 100%; margin-top: 12px; font-size: 16px; }
.btn-wa { background: var(--wa); }
.btn-ghost { background: #fff; color: var(--brand); border: 1.5px solid var(--brand); }
.btn-sm { padding: 6px 12px; font-size: 14px; border-radius: 9px; }
.btn-ok { background: #137333; }
.btn-bad { background: var(--danger); }
.form label { display: block; margin-bottom: 12px; font-weight: 700; font-size: 14px; }
.form input, .form select, .form textarea {
  display: block; width: 100%; margin-top: 4px; padding: 12px; font-family: inherit; font-size: 14px;
  border: 1.5px solid var(--line); border-radius: 12px; background: #fff; font-weight: 400;
}
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--brand); }
.form.slim { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; margin-top: 12px; }
.row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.chk { display: flex !important; align-items: center; gap: 8px; font-weight: 400 !important; }
.chk input { width: auto !important; margin: 0 !important; }

/* نقشه */
.map-sm { height: 260px; border-radius: var(--radius); border: 1px solid var(--line); z-index: 1; }
.map-md { height: 46vh; min-height: 320px; border-radius: var(--radius); border: 1px solid var(--line); z-index: 1; }
.leaflet-container { font-family: inherit; }
.mk-wrap { background: none; border: none; }
.mk { width: 20px; height: 20px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 1px 6px rgba(0,0,0,.4); }
.filters { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; margin-bottom: 10px; }
.map-tools { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.legend { display: flex; gap: 10px; flex-wrap: wrap; font-size: 12px; color: var(--muted); padding: 8px 2px; }

/* جزئیات */
.gallery { display: flex; gap: 8px; overflow-x: auto; margin-bottom: 8px; }
.gallery img { height: 180px; border-radius: var(--radius); }
.ph { height: 180px; flex: 1; min-width: 100%; background: var(--brand-soft); border-radius: var(--radius); display: flex; align-items: center; justify-content: center; font-size: 72px; }
.badge-ok { display: inline-block; background: #e2f5e9; color: #137333; font-weight: 700; font-size: 14px; border-radius: 999px; padding: 4px 14px; margin: 6px 0; }
.big-price { font-size: 24px; font-weight: 800; color: var(--brand); margin: 4px 0 10px; }
.specs { width: 100%; border-collapse: collapse; background: var(--card); border-radius: var(--radius); overflow: hidden; font-size: 14px; }
.specs td { padding: 9px 12px; border-bottom: 1px solid var(--line); }
.specs td:first-child { color: var(--muted); width: 38%; }
.fare-box { background: var(--brand-soft); border-radius: 12px; padding: 10px 14px; margin: 10px 0; font-size: 14px; }
.ok-box { background: #e2f5e9; border-radius: var(--radius); padding: 18px; text-align: center; font-weight: 700; color: #137333; margin: 12px 0; }
.ok-page { text-align: center; padding-top: 40px; }
.rules li { margin-bottom: 8px; }

/* تماس */
.cta-taxi { background: var(--card); border-radius: var(--radius); margin: 12px 16px; padding: 18px; text-align: center; border: 1px solid var(--line); }
.contact-sec { text-align: center; }
.contact-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 8px; }

/* ادمین */
.admin-head { display: flex; justify-content: space-between; align-items: center; }
.tabs { display: flex; gap: 6px; overflow-x: auto; padding: 8px 0; position: sticky; top: 57px; background: var(--bg); z-index: 400; }
.tab { white-space: nowrap; border: 1.5px solid var(--line); background: #fff; border-radius: 999px; padding: 8px 14px; font-family: inherit; font-size: 14px; cursor: pointer; }
.tab.on { background: var(--brand); color: #fff; border-color: var(--brand); font-weight: 700; }
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.stat { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; text-align: center; }
.stat-ico { font-size: 28px; }
.stat-n { font-size: 24px; font-weight: 800; color: var(--brand); }
.stat-l { font-size: 12px; color: var(--muted); }
.arow { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px; margin-bottom: 10px; font-size: 14px; }
.arow-btns { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.arow select { font-family: inherit; font-size: 14px; padding: 6px; border-radius: 8px; border: 1.5px solid var(--line); }

/* فوتر */
#footer { background: #fff; border-top: 1px solid var(--line); padding: 14px 12px 20px; margin-top: auto; }
#footer nav { display: flex; flex-wrap: wrap; gap: 4px 14px; justify-content: center; }
#footer nav a { color: var(--brand); text-decoration: none; font-size: 14px; font-weight: 700; padding: 6px; }
.copy { text-align: center; color: var(--muted); font-size: 12px; margin: 8px 0 0; }

/* متفرقه */
.loading, .empty { text-align: center; padding: 40px 16px; color: var(--muted); }
.toast {
  position: fixed; bottom: 24px; right: 50%; transform: translateX(50%) translateY(20px);
  background: #1c2421; color: #fff; padding: 12px 22px; border-radius: 12px; font-size: 14px;
  opacity: 0; transition: all .3s; z-index: 9999; max-width: 90%;
}
.toast.show { opacity: 1; transform: translateX(50%) translateY(0); }
.toast.err { background: var(--danger); }

@media (min-width: 560px) {
  .stat-grid { grid-template-columns: repeat(4, 1fr); }
  .cards { grid-template-columns: 1fr 1fr; }
}

/* ---------- صفحه اصلی: نقشه زنده ---------- */
.map-home { position: relative; height: calc(100vh - 118px); min-height: 480px; }
.map-full { position: absolute; inset: 0; z-index: 1; }
.map-topbar { position: absolute; top: 10px; right: 10px; left: 10px; z-index: 600; display: flex; align-items: center; justify-content: flex-start; gap: 8px; pointer-events: none; }
.map-topbar > * { pointer-events: auto; }
/* نشان کوچک تعداد ملک روی نقشه */
.map-count { background: rgba(255,255,255,.96); border-radius: 999px; padding: 5px 14px; box-shadow: 0 2px 8px rgba(0,0,0,.18); font-size: 12px; font-weight: 700; color: #374151; display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); white-space: nowrap; }
.demo-tag { background: #eab308; color: #000; font-size: 12px; border-radius: 999px; padding: 2px 8px; margin-right: 6px; }
.icon-btn { background: var(--card); border: 1px solid var(--line); border-radius: 999px; width: 40px; height: 40px; display: flex; color: var(--brand-dark); align-items: center; justify-content: center; text-decoration: none; box-shadow: 0 2px 8px rgba(0,0,0,.2); margin-right: auto; }
.mchips { position: absolute; top: 106px; right: 10px; left: 10px; z-index: 600; display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.mchips::-webkit-scrollbar { display: none; }
.chip { flex: 0 0 auto; background: var(--card); border: 1px solid var(--line); border-radius: 999px; padding: 6px 14px; font-size: 14px; cursor: pointer; box-shadow: 0 1px 6px rgba(0,0,0,.15); font-family: inherit; display: inline-flex; align-items: center; gap: 6px; }
.chip.on { background: var(--brand); color: #fff; border-color: var(--brand); font-weight: 700; }
.cdot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
/* نوار اکشن مینیمال صفحه خانه: نقشه عنصر غالب است؛ دکمه‌های جمع‌وجور آیکون+لیبل */
.actionbar { position: absolute; bottom: 118px; right: 10px; left: 10px; z-index: 600; display: flex; gap: 8px; }
.abar-btn { flex: 1; border: 1px solid rgba(0,0,0,.07); background: rgba(255,255,255,.96); border-radius: 14px; padding: 9px 4px 8px; font-family: inherit; cursor: pointer; color: #1f2937; display: flex; flex-direction: column; align-items: center; gap: 3px; box-shadow: 0 3px 10px rgba(0,0,0,.16); transition: transform .12s ease; min-width: 0; }
.abar-btn:active { transform: scale(.95); }
.abar-ico { font-size: 22px; line-height: 1; display: block; }
.abar-label { font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
/* ثبت ملک جدید: دکمه اصلی — رنگ برند، کمی برجسته‌تر */
.abar-btn.primary { flex: 1.3; background: #0b6e4f; border-color: #0b6e4f; color: #fff; box-shadow: 0 4px 12px rgba(11,110,79,.45); }
.abar-btn.primary .abar-ico { font-size: 26px; }
.abar-btn.primary .abar-label { font-size: 12px; font-weight: 800; }

/* ---------- سفر ---------- */
.cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 6px 0; }
.cards3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; padding: 6px 0; }
.farelist { display: flex; flex-direction: column; gap: 8px; }
.farerow { display: flex; align-items: center; justify-content: space-between; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; text-decoration: none; color: var(--ink); }
.farerow:active { transform: scale(.98); }
.farerow-route { font-weight: 700; }
.farerow-route .arr { color: var(--brand); }
.farerow-price { color: var(--brand-dark); font-weight: 800; white-space: nowrap; }

/* بنر تبلیغاتی پایین صفحه اول: عنوان «اعلانات مهم» + بنر سه‌بعدی روشن؛ با لینک قابل لمس */
.adwrap { position: absolute; bottom: 8px; right: 0; left: 0; z-index: 600; }
.adtitle { text-align: center; font-size: 12px; font-weight: 800; color: #fff; background: linear-gradient(180deg, #b45309, #92400e); padding: 4px 8px; text-shadow: 0 1px 2px rgba(0,0,0,.35); }
.adbar { background: linear-gradient(180deg, #fde047, #f59e0b); color: #422006; font-size: 14px; font-weight: 600; padding: 10px 12px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; box-shadow: 0 -6px 16px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.55); border-top: 2px solid #fef3c7; }
.adbar b { font-weight: 800; }
.adbar a.adlink { color: inherit; text-decoration: none; display: flex; align-items: center; gap: 8px; }
.adlink .ad-view { flex: 0 0 auto; background: #92400e; color: #fff; font-size: 12px; font-weight: 800; border-radius: 999px; padding: 4px 14px; font-family: inherit; }
.adlink .ad-txt { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* فیلدست آدرس دستی سفر داخلی */
.addr { border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px 12px; margin: 0 0 12px; background: rgba(11,110,79,.04); }
.addr legend { font-weight: 800; padding: 0 8px; font-size: 14px; }
/* دکمه نزدیک من */
.nearme-btn { position: absolute; top: 98px; left: 10px; z-index: 600; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); font-size: 20px; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.2); font-family: inherit; }
.nearme-btn:active { transform: scale(.94); }

/* بنر نصب اپ */
.install-banner { position: fixed; bottom: 12px; right: 12px; left: 12px; z-index: 2000; background: #0b6e4f; color: #fff; border-radius: 14px; padding: 12px 14px; display: flex; align-items: center; gap: 10px; font-size: 14px; box-shadow: 0 4px 18px rgba(0,0,0,.25); }
.install-banner .ib-close { background: none; border: none; color: #fff; font-size: 16px; cursor: pointer; margin-right: auto; }
/* پنجره شرایط */
.overlay { position: fixed; inset: 0; z-index: 3000; background: rgba(0,0,0,.5); display: flex; align-items: flex-end; justify-content: center; }
.sheet { background: var(--card); border-radius: 18px 18px 0 0; padding: 20px 16px calc(20px + env(safe-area-inset-bottom)); max-width: 520px; width: 100%; max-height: 85vh; overflow-y: auto; }
.sheet h3 { margin: 0 0 12px; }
.terms { margin: 0 0 14px; padding-right: 20px; font-size: 14px; line-height: 2; }
.terms li { margin-bottom: 6px; }
.check { display: flex; align-items: center; gap: 8px; font-size: 14px; margin: 12px 0; cursor: pointer; }
.check input { width: 18px; height: 18px; }
.center { text-align: center; }

.lang-btn{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:999px;padding:4px 12px;font-size:12px;font-weight:700;cursor:pointer}
.lang-btn:hover{background:rgba(255,255,255,.28)}
/* ---------- لیست کناری املاک (ستون) ---------- */
.plist-col { display: none; }
.plist-head { font-weight: 800; font-size: 16px; padding: 14px 14px 8px; color: #111827; border-bottom: 1px solid var(--line); }
.plist-body { overflow-y: auto; padding: 8px 10px 16px; }
.pgroup { margin-bottom: 10px; }
.pgroup-h { display: flex; align-items: center; gap: 6px; font-weight: 800; font-size: 14px; color: #374151; padding: 6px 4px; }
.pgroup-h i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; }
.pgroup-h .pcount { background: #f3f4f6; border-radius: 999px; font-size: 12px; padding: 1px 8px; color: #6b7280; font-weight: 700; }
.pcard { background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 9px 12px; margin-bottom: 8px; cursor: pointer; box-shadow: 0 1px 4px rgba(0,0,0,.06); transition: transform .1s ease, box-shadow .1s ease; }
.pcard:active { transform: scale(.98); }
.pcard-t { font-weight: 700; font-size: 14px; color: #111827; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pcard-p { color: var(--brand-dark); font-weight: 800; font-size: 20px; margin-top: 2px; }
.pcard-s { color: #6b7280; font-size: 12px; margin-top: 2px; }
/* دسکتاپ: ستون ثابت سمت چپ، نقشه غالب */
@media (min-width: 900px) {
  .map-home { display: flex; direction: ltr; }
  .map-area { flex: 1 1 auto; min-width: 0; position: relative; direction: rtl; }
  .plist-col { display: flex; flex-direction: column; width: 300px; flex: 0 0 300px; direction: rtl; background: var(--card); border-right: 1px solid var(--line); z-index: 700; min-height: 0; }
  .plist-fab, .plist-sheet-wrap { display: none !important; }
}
/* موبایل: دکمه شناور + شیت بازشونده از پایین */
@media (max-width: 899px) {
  .plist-fab { position: absolute; left: 10px; bottom: 150px; z-index: 650; background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 999px; padding: 9px 16px; font-family: inherit; font-size: 14px; font-weight: 800; color: #1f2937; cursor: pointer; box-shadow: 0 3px 12px rgba(0,0,0,.22); }
  .plist-fab:active { transform: scale(.95); }
  .plist-sheet-wrap { position: fixed; inset: 0; z-index: 2000; background: rgba(0,0,0,.45); }
  .plist-sheet { position: absolute; bottom: 0; right: 0; left: 0; max-height: 76vh; background: var(--card); border-radius: 18px 18px 0 0; display: flex; flex-direction: column; box-shadow: 0 -4px 24px rgba(0,0,0,.25); }
  .plist-sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--line); font-size: 16px; }
}
/* نوت سفر فوری (همین حالا) */
.urgent-note{background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;padding:10px 12px;margin:8px 0}
.urgent-note p{margin:0 0 4px;font-size:14px;font-weight:700;color:#92400e}
.featured-head{font-weight:800;font-size:16px;color:#92600a;margin:6px 2px 4px}
.vcard-featured{border:2px solid #eab308;box-shadow:0 0 0 3px rgba(234,179,8,.25),0 4px 18px rgba(234,179,8,.28);background:linear-gradient(135deg,#fffbeb 0%,#fff 60%);position:relative}
.vcard-featured::before{content:"⭐";position:absolute;top:8px;left:12px;font-size:20px}
.ok-box{background:#ecfdf5;border:1px solid #16a34a;color:#065f46;border-radius:10px;padding:10px 14px;margin:12px 0;font-weight:700}

/* پین‌های مبدأ/مقصد در فرم سفر */
.trip-pin { background: none; border: none; }
.trip-pin .pin-dot { width: 18px; height: 18px; border-radius: 50%; border: 3px solid #fff; box-shadow: 0 1px 6px rgba(0,0,0,.4); }

.info-box { background: #eef4ff; border: 1px solid #c7d7f5; border-radius: 10px; padding: 10px 12px; font-size: 14px; margin: 10px 0; line-height: 1.9; }

/* ---------- بسته ۲۰ بندی ---------- */
/* ردیف اشتراک‌گذاری پس از ثبت آگهی */
.share-row { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 14px; margin: 14px 0; }
.share-title { font-weight: 800; font-size: 14px; margin-bottom: 10px; }
.share-btns { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.share-btn { background: var(--brand-soft); color: var(--brand-dark); border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; font-family: inherit; font-size: 14px; font-weight: 700; cursor: pointer; text-decoration: none; }
.share-btn:active { transform: scale(.96); }
.share-link { margin-top: 10px; }
.share-link input { width: 100%; font-size: 12px; padding: 8px 10px; border: 1px dashed var(--line); border-radius: 8px; background: #f8faf9; color: var(--muted); direction: ltr; text-align: center; }
/* تب‌های دسته‌بندی ویزا */
.vtabs { display: flex; gap: 8px; overflow-x: auto; padding: 4px 2px 8px; scrollbar-width: none; }
.vtabs::-webkit-scrollbar { display: none; }
.vtabs.sub { margin-top: -2px; }
.vtab { flex: 0 0 auto; background: var(--card); border: 1.5px solid var(--line); border-radius: 999px; padding: 8px 18px; font-family: inherit; font-size: 14px; cursor: pointer; white-space: nowrap; }
.vtab.on { background: var(--brand); color: #fff; border-color: var(--brand); font-weight: 800; }
.vtab.sm { padding: 5px 14px; font-size: 12px; }
/* بنر باریک «پیشنهاد امروز» */
.visa-day { background: linear-gradient(135deg, #fffbeb, #fef3c7); border: 1.5px solid #f59e0b; border-radius: 12px; padding: 8px 12px; font-size: 14px; margin-bottom: 10px; }
.visa-day a { color: inherit; text-decoration: none; display: flex; gap: 8px; align-items: center; }
.visa-day > span, .visa-day a > span { display: inline; }
.visa-day .visa-day-tag { background: #f59e0b; color: #fff; font-weight: 800; font-size: 12px; border-radius: 999px; padding: 2px 10px; white-space: nowrap; }
.visa-day img { width: 44px; height: 44px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; }
.visa-promo { background: var(--brand-soft); border-radius: 12px; padding: 10px 14px; font-size: 14px; font-weight: 700; color: var(--brand-dark); margin: 0 0 10px; }
/* کارت ویزا با نماینده */
.vcard { display: block; }
.vcard-main { display: flex; gap: 14px; align-items: center; cursor: pointer; }
.vcard-rep { margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 14px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* نوار اعلانات پایین صفحه (تیکر) */
.annc-wrap { position: absolute; right: 0; left: 0; z-index: 600; background: rgba(11,110,79,.94); color: #fff; overflow: hidden; padding: 6px 0; font-size: 12px; font-weight: 600; }
.annc-strip { display: inline-flex; align-items: center; gap: 26px; white-space: nowrap; padding-inline-start: 14px; will-change: transform; }
.annc-strip.anim { animation: anncTick 24s linear infinite; }
.annc-strip.static { animation: none; display: flex; justify-content: center; width: 100%; }
@keyframes anncTick { to { transform: translateX(-50%); } }
.annc-strip a { color: #ffe9a8; }
.annc-sep { opacity: .5; }
/* عکس کاور ملک: 16:9 فقط در صفحه جزئیات */
.cover-169 { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius); display: block; }
.photo-preview { width: 100%; max-height: 180px; object-fit: cover; border-radius: 12px; margin-top: 6px; }
.form input[type="file"] { padding: 8px; }

@media (max-width: 400px) {
  .share-btn { padding: 7px 12px; font-size: 12px; }
  .vtab { padding: 7px 14px; font-size: 12px; }
}
@media (max-width: 400px) {
  #topbar { padding: 7px 10px; }
  .brand { gap: 6px; }
  .brand-logo { width: 30px; height: 30px; }
  .lang-btn { padding: 4px 10px; font-size: 12px; }
  .share-top { width: 32px; height: 32px; font-size: 15px; }
  .chip { padding: 5px 11px; font-size: 12px; }
  .map-count { font-size: 12px; padding: 4px 11px; }
  .abar-btn { padding: 7px 2px 6px; border-radius: 12px; }
  .abar-ico { font-size: 19px; }
  .abar-label { font-size: 10px; }
  .abar-btn.primary .abar-ico { font-size: 22px; }
  .abar-btn.primary .abar-label { font-size: 12px; }
  .adtitle { font-size: 12px; }
  .adbar { font-size: 12px; padding: 8px 10px; }
  .plist-fab { font-size: 12px; padding: 8px 13px; }
  .nearme-btn { width: 38px; height: 38px; font-size: 18px; }
}
@media (max-width: 340px) {
  .abar-label { font-size: 9px; }
  .abar-ico { font-size: 17px; }
  .actionbar { gap: 6px; right: 8px; left: 8px; }
}

/* ---------- 💡 راهنمای هوشمند ---------- */
.guide-fab { position: fixed; bottom: 14px; left: 12px; z-index: 700; width: 52px; height: 52px; border-radius: 50%; border: none; background: #0b6e4f; color: #fff; font-size: 24px; cursor: pointer; box-shadow: 0 4px 14px rgba(11,110,79,.45); font-family: inherit; }
.guide-fab:active { transform: scale(.93); }
.guide-overlay { position: fixed; inset: 0; z-index: 800; background: rgba(0,0,0,.45); display: flex; align-items: flex-end; justify-content: center; }
.guide-overlay[hidden] { display: none; }
.guide-sheet { background: #fff; width: 100%; max-width: 480px; max-height: 72vh; border-radius: 18px 18px 0 0; display: flex; flex-direction: column; overflow: hidden; }
.guide-head { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; border-bottom: 1px solid var(--line); font-weight: 800; }
.guide-head button { border: none; background: none; font-size: 18px; cursor: pointer; color: var(--muted); font-family: inherit; }
.guide-chips { display: flex; gap: 8px; overflow-x: auto; padding: 8px 12px; border-bottom: 1px solid var(--line); -webkit-overflow-scrolling: touch; }
.guide-chip { flex: 0 0 auto; border: 1px solid var(--line); background: var(--brand-soft); color: var(--brand-dark); border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 700; cursor: pointer; font-family: inherit; white-space: nowrap; }
.guide-msgs { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; min-height: 120px; }
.g-msg { max-width: 92%; padding: 8px 12px; border-radius: 12px; font-size: 14px; line-height: 1.9; }
.g-msg.me { align-self: flex-start; background: var(--brand); color: #fff; border-bottom-left-radius: 4px; }
.g-msg.bot { align-self: flex-end; background: #f1f5f4; color: var(--ink); border-bottom-right-radius: 4px; }
.g-title { font-weight: 800; margin-bottom: 4px; }
.g-row { display: flex; justify-content: space-between; gap: 8px; padding: 3px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.g-card { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; margin: 6px 0; font-size: 14px; }
.g-note { font-size: 12px; color: var(--muted); margin-top: 6px; }
.g-btns { display: flex; gap: 8px; margin-top: 8px; flex-wrap: wrap; }
.g-btn { display: inline-block; background: var(--brand); color: #fff; border-radius: 10px; padding: 8px 14px; font-size: 14px; font-weight: 700; text-decoration: none; }
.g-btn.wa { background: var(--wa); }
.g-btn.ai { background: #7c3aed; border: none; cursor: pointer; font-family: inherit; }
.g-btn.ai:disabled { opacity: .55; cursor: default; }
.g-msg.g-thinking { opacity: .75; font-style: italic; }
.guide-input { display: flex; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line); }
.guide-input input { flex: 1; border: 1px solid var(--line); border-radius: 10px; padding: 9px 12px; font-size: 14px; font-family: inherit; min-width: 0; }
.guide-input button { border: none; background: var(--brand); color: #fff; border-radius: 10px; padding: 0 16px; font-size: 16px; cursor: pointer; font-family: inherit; }

/* ---------- اسپلش شروع: گرادیان کهربایی برند ---------- */
#splash { position: fixed; inset: 0; z-index: 9000; display: flex; align-items: center; justify-content: center;
  background: linear-gradient(160deg, #F59E0B 0%, #D97706 60%, #B45309 100%);
  transition: opacity .45s ease; cursor: pointer; overflow: hidden;
  animation: splashAuto .6s ease 3.4s forwards; }
@keyframes splashAuto { to { opacity: 0; visibility: hidden; } }
#splash.hide { opacity: 0; pointer-events: none; visibility: hidden; animation: none; }
.splash-inner { text-align: center; color: #fff; padding: 20px; animation: splashUp .7s ease-out; }
@keyframes splashUp { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
.splash-logo { width: 112px; height: 112px; border-radius: 28px; object-fit: cover; display: block; margin: 0 auto;
  background: #fff; padding: 6px; box-shadow: 0 16px 40px rgba(0,0,0,.35); }
.splash-name { font-size: 38px; font-weight: 900; margin-top: 16px; text-shadow: 0 2px 10px rgba(0,0,0,.25); }

/* ---------- راهنمای یک‌باره استفاده (P1) ---------- */
.guide2-overlay { position: fixed; inset: 0; z-index: 8500; background: rgba(0,0,0,.5); display: flex; align-items: center; justify-content: center; padding: 24px; }
.guide2-sheet { background: var(--card); border-radius: 18px; padding: 22px 20px 16px; max-width: 380px; width: 100%; box-shadow: 0 12px 40px rgba(0,0,0,.3); }
.guide2-title { font-weight: 800; font-size: 16px; margin-bottom: 10px; color: var(--brand-dark); }
.guide2-list { margin: 0 0 8px; padding-right: 20px; font-size: 14px; line-height: 2; }
.guide2-list li { margin-bottom: 6px; }

/* ---------- منوی پایینی صفحه خانه (P18) ---------- */
.home-menu { position: absolute; bottom: 0; right: 0; left: 0; z-index: 600; display: flex; align-items: stretch;
  background: rgba(255,255,255,.97); border-top: 1px solid var(--line); box-shadow: 0 -2px 10px rgba(0,0,0,.08); height: 52px; }
.home-menu a, .home-menu button { flex: 1; background: none; border: none; font-family: inherit; font-size: 12px; font-weight: 700;
  color: var(--brand-dark); padding: 8px 2px; text-align: center; cursor: pointer; text-decoration: none; display: flex;
  align-items: center; justify-content: center; gap: 4px; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.home-menu a + a, .home-menu button + button, .home-menu a + button, .home-menu button + a { border-right: 1px solid var(--line); }
.home-menu a:active, .home-menu button:active { background: var(--brand-soft); }

/* ---------- استپر یکپارچه ۴ مرحله‌ای (P9) ---------- */
.steps { display: flex; align-items: center; gap: 4px; margin: 4px 0 14px; padding: 10px 8px; background: var(--card);
  border: 1px solid var(--line); border-radius: 12px; overflow-x: auto; }
.step { display: flex; align-items: center; gap: 5px; flex: 0 0 auto; color: var(--muted); font-size: 12px; white-space: nowrap; }
.step-n { width: 22px; height: 22px; border-radius: 50%; background: #eef2f1; color: var(--muted); font-weight: 800; font-size: 12px;
  display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.step.on { color: var(--brand-dark); font-weight: 800; }
.step.on .step-n { background: var(--brand); color: #fff; }
.step.done { color: var(--brand-dark); }
.step.done .step-n { background: var(--brand-soft); color: var(--brand-dark); }
.step-sep { color: #c7d2ce; font-size: 12px; flex: 0 0 auto; }
.step-nav { display: flex; gap: 10px; margin-top: 14px; }
.step-nav .btn { flex: 1; margin-top: 0; }
.step-body .form { margin-top: 0; }
.review-box { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; }
.review-box .r-row { display: flex; justify-content: space-between; gap: 10px; padding: 5px 0; border-bottom: 1px dashed var(--line); font-size: 14px; }
.review-box .r-row:last-child { border-bottom: none; }
.review-box .r-k { color: var(--muted); }
.review-box .r-v { font-weight: 700; text-align: left; }

/* ---------- نشان «پیشنهاد برتر» ویزا (P16) ---------- */
.vcard-badge { display: inline-block; background: #f59e0b; color: #fff; font-size: 12px; font-weight: 800;
  border-radius: 999px; padding: 2px 12px; margin-top: 6px; }

/* ---------- کارت تحلیل ملک (P22b) ---------- */
.analyze-card { background: linear-gradient(135deg, #f0f9ff, #fff); border: 1.5px solid #38bdf8; border-radius: 12px;
  padding: 12px 14px; margin: 12px 0; font-size: 14px; line-height: 2; }
.analyze-card .an-label { display: inline-block; font-size: 12px; font-weight: 800; border-radius: 999px; padding: 2px 12px; margin-bottom: 6px; }
.analyze-card .an-label.ai { background: #7c3aed; color: #fff; }
.analyze-card .an-label.stats { background: #e2e8f0; color: #334155; }
.analyze-card .an-row { display: flex; justify-content: space-between; gap: 10px; padding: 3px 0; border-bottom: 1px dashed #e2e8f0; }
.analyze-card .an-row:last-child { border-bottom: none; }
.analyze-card .an-k { color: #64748b; }
.analyze-card .an-v { font-weight: 700; }
.an-disclaimer { font-size: 12px; color: #94a3b8; margin: 8px 0 0; line-height: 1.8; }
/* دکمه ساخت توضیح با هوش مصنوعی در فرم ثبت ملک */
.ai-gen-btn { display: inline-flex; align-items: center; gap: 6px; margin: 4px 0 8px; font-size: 14px;
  padding: 8px 14px; border-color: #7c3aed !important; color: #7c3aed !important; border-radius: 999px; }
.ai-gen-btn:disabled { opacity: .55; }
.ai-gen-btn:active { transform: scale(.97); }

/* ---------- فاز ۱: دکمه‌های pill و سکشن فرم ---------- */
.form-sec { margin-bottom: 14px; }
.form-sec-t { font-weight: 700; font-size: 14px; margin-bottom: 8px; color: var(--ink); }
.pill-row { display: flex; flex-wrap: wrap; gap: 8px; }
.pill { border: 1.5px solid var(--line); background: var(--card); color: var(--ink);
  border-radius: 999px; padding: 8px 18px; font-size: 14px; font-family: inherit; cursor: pointer;
  min-height: 44px; }
.pill.on { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 700; }
.muted { color: var(--muted); font-size: 12px; }

/* ---------- نوار جست‌وجو ---------- */
.searchbar { position: absolute; top: 52px; right: 12px; left: 12px; z-index: 500; }
.searchbar input { width: 100%; border: 1.5px solid var(--line); border-radius: 999px;
  padding: 10px 18px; font-size: 14px; font-family: inherit; background: rgba(255,255,255,.95);
  box-shadow: 0 2px 8px rgba(0,0,0,.1); }
.searchbar input:focus { outline: none; border-color: var(--brand); }

/* ---------- دکمه علاقه‌مندی ---------- */
.fav-btn { background: var(--card); border: 1.5px solid var(--line); border-radius: 50%;
  width: 48px; height: 48px; font-size: 20px; cursor: pointer; flex-shrink: 0; }
.fav-btn.on { border-color: #ef4444; background: #fef2f2; }

/* ---------- فاز ۴: امضای بصری غزنی ما ---------- */
:root {
  --accent: #d97706; /* کهربایی برای دکمه‌های عمل */
  --accent-dark: #b45309;
}
.btn-ok, .btn-wa {
  background: linear-gradient(180deg, var(--accent), var(--accent-dark)) !important;
  border-color: var(--accent-dark) !important;
}
/* الگوی ظریف در هدر */
#topbar {
  background: var(--brand) url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M20 0l4 16 16 4-16 4-4 16-4-16-16-4 16-4z' fill='%23ffffff' fill-opacity='0.04'/%3E%3C/svg%3E");
}

/* ---------- نشان آفلاین ---------- */
.offline-bar { background: #475569; color: #fff; text-align: center; font-size: 12px;
  padding: 6px 12px; font-weight: 600; }

/* ---------- خبرم‌کن: زنگ اعلان و محله‌های دنبال‌شده ---------- */
.bell-wrap { position: relative; }
.bell-badge { position: absolute; top: -5px; inset-inline-start: -5px; min-width: 19px; height: 19px;
  border-radius: 999px; background: #dc2626; color: #fff; font-size: 12px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; padding: 0 5px;
  border: 2px solid var(--brand); }
.bell-badge[hidden] { display: none; }
.watch-chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0; }
/* کارت فعال‌سازی پوش نوتیفیکیشن (صفحه خبرم‌کن) */
.push-card { display: flex; align-items: center; gap: 12px; background: linear-gradient(135deg, #fffbeb, #fef3c7); border: 1px solid #fcd34d; border-radius: 14px; padding: 12px 14px; margin: 12px 0; }
.push-card .push-info { flex: 1; min-width: 0; }
.push-card .push-t { font-weight: 800; font-size: 14px; color: #1f2937; }
.push-card .push-s { font-size: 12px; color: #92400e; margin-top: 2px; }
.push-card .btn { white-space: nowrap; flex-shrink: 0; }
.watch-chip { display: inline-flex; align-items: center; gap: 8px; background: var(--brand-soft);
  border: 1.5px solid var(--brand); color: var(--brand-dark); border-radius: 999px;
  padding: 7px 8px 7px 14px; font-size: 14px; font-weight: 700; }
.watch-x { border: none; background: #dc2626; color: #fff; border-radius: 50%;
  width: 22px; height: 22px; font-size: 12px; cursor: pointer; line-height: 1; }
.fav-btn.watch-on { border-color: #d97706; background: #fffbeb; }

/* ---------- آیکون‌های یکدست SVG ---------- */
.ic { flex-shrink: 0; vertical-align: middle; }
.bc-ico { display: flex; align-items: center; justify-content: center; width: 54px; height: 54px;
  border-radius: 18px; background: var(--brand-soft); color: var(--brand-dark); margin-bottom: 8px; }
.bigcard { align-items: center; text-align: center; }
.abar-ico { display: flex; align-items: center; justify-content: center; color: inherit; }
.abar-ico .ic { display: block; }
h1.h-ic { display: flex; align-items: center; gap: 10px; }
h1.h-ic .ic { color: var(--brand-dark); }
.fav-btn .ic { display: block; margin: auto; }
.fav-btn.on .ic { fill: #ef4444; stroke: #ef4444; }
.watch-x .ic { display: block; margin: auto; }
#bell-ic, #share-ic { display: flex; align-items: center; justify-content: center; }
/* ---------- حالت تعاملی: فشردن دکمه‌ها ---------- */
.btn, .bigcard, .abar-btn, .pill, .chip, .fav-btn, .pcard, .share-btn {
  transition: transform .12s ease, box-shadow .12s ease; }
.btn:active, .bigcard:active, .abar-btn:active, .pill:active, .chip:active,
.fav-btn:active, .pcard:active, .share-btn:active { transform: scale(.94); }
.bigcard:hover { box-shadow: 0 6px 18px rgba(11,110,79,.16); }

/* ---------- آیکون‌های رنگی صفحه خانه ---------- */
#fab-trip .abar-ico { color: #2563eb; }
#fab-visas .abar-ico { color: #7c3aed; }
#fab-more .abar-ico { color: #475569; }
#fab-new .abar-ico { color: #fff; }
.abar-btn .abar-ico .ic { filter: drop-shadow(0 1px 2px rgba(0,0,0,.12)); }
/* ---------- کاشی‌های رنگی منوی بیشتر ---------- */
.bc-ico.c-red { color: #dc2626; background: #fee2e2; }
.bc-ico.c-amber { color: #d97706; background: #fef3c7; }
.bc-ico.c-green { color: #059669; background: #d1fae5; }
.bc-ico.c-blue { color: #2563eb; background: #dbeafe; }
.bc-ico.c-purple { color: #7c3aed; background: #ede9fe; }
.bc-ico.c-orange { color: #ea580c; background: #ffedd5; }
.bc-ico.c-teal { color: #0d9488; background: #ccfbf1; }
.bc-ico.c-slate { color: #475569; background: #e2e8f0; }
.bc-ico.c-indigo { color: #4f46e5; background: #e0e7ff; }
.bc-ico.c-pink { color: #db2777; background: #fce7f3; }

/* ---------- دکمه نمایش/پنهان محدوده محله‌ها ---------- */
.map-toggle { background: rgba(255,255,255,.96); border: 1px solid var(--line); border-radius: 999px;
  padding: 5px 14px; font-size: 12px; font-weight: 700; color: #9ca3af; cursor: pointer;
  font-family: inherit; box-shadow: 0 2px 8px rgba(0,0,0,.18); pointer-events: auto; white-space: nowrap; }
.map-toggle.on { color: var(--brand-dark); border-color: var(--brand); }
.map-toggle:active { transform: scale(.94); }

/* ============================================================
   نسخه ۲ — صفحه اول خلوت، فیلتر املاک، تکت، نشان‌ها
   ============================================================ */

/* ---------- کارت بارگیری حرفه‌ای ---------- */
.loading-wrap { display: flex; align-items: center; justify-content: center; min-height: 60vh; padding: 24px; }
.loading-card { background: #fff; border-radius: 18px; box-shadow: 0 10px 30px rgba(0,0,0,.12);
  padding: 28px 34px; text-align: center; max-width: 330px; }
.spinner { width: 46px; height: 46px; margin: 0 auto 14px; border-radius: 50%;
  border: 4px solid #FDE68A; border-top-color: #D97706; animation: gmSpin .9s linear infinite; }
@keyframes gmSpin { to { transform: rotate(360deg); } }
.loading-l1 { font-weight: 800; font-size: 15.5px; color: var(--ink); }
.loading-l2 { color: var(--muted); font-size: 14px; margin-top: 6px; }

/* ---------- صفحه اول خلوت: سه کارت بزرگ ---------- */
.home-clean { padding: 22px 16px; max-width: 560px; margin: 0 auto; }
.home-cards { display: grid; gap: 14px; }
.home-card { display: flex; align-items: center; gap: 14px; background: var(--card);
  border: 1px solid var(--line); border-radius: 18px; padding: 18px 16px;
  text-decoration: none; color: var(--ink); box-shadow: 0 4px 14px rgba(0,0,0,.07);
  transition: transform .12s ease, box-shadow .12s ease; }
.home-card:active { transform: scale(.97); }
.home-card:hover { box-shadow: 0 8px 22px rgba(0,0,0,.12); }
.hc-ico { width: 62px; height: 62px; border-radius: 18px; display: flex; align-items: center;
  justify-content: center; flex: 0 0 auto; }
.hc-amber .hc-ico { background: #FEF3C7; color: #D97706; }
.hc-blue .hc-ico { background: #DBEAFE; color: #2563EB; }
.hc-green .hc-ico { background: #D1FAE5; color: #059669; }
.hc-tx { flex: 1; min-width: 0; }
.hc-tx b { display: block; font-size: 20px; font-weight: 800; }
.hc-tx small { color: var(--muted); font-size: 14px; }
.hc-go { color: #cbd5e1; font-size: 24px; font-weight: 800; line-height: 1; }
.home-newprop { display: flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: 14px; padding: 15px 16px; border-radius: 18px; text-decoration: none;
  border: 2px dashed #D97706; color: #B45309; background: #FFFBEB;
  font-size: 16px; font-weight: 800; box-shadow: 0 4px 14px rgba(217,119,6,.10);
  transition: transform .12s ease, box-shadow .12s ease; }
.home-newprop:active { transform: scale(.97); }
.home-newprop:hover { box-shadow: 0 8px 22px rgba(217,119,6,.18); }
.home-banner { display: block; margin-top: 14px; background: linear-gradient(180deg,#fde047,#f59e0b);
  border-radius: 14px; padding: 11px 14px; font-size: 14px; color: #422006; text-align: center;
  box-shadow: 0 4px 12px rgba(0,0,0,.12); text-decoration: none; }
.home-banner b { font-weight: 800; }
.home-links { display: flex; align-items: center; justify-content: center; gap: 14px;
  margin-top: 20px; font-size: 14px; }
.home-links a { color: var(--brand-dark); text-decoration: none; font-weight: 700; padding: 6px 4px; }
.home-links span { color: #cbd5e1; }

/* ---------- فیلترهای صفحه املاک ---------- */
.fbar { position: absolute; top: 150px; right: 10px; left: 10px; z-index: 600;
  display: flex; gap: 8px; align-items: center; }
.fbar-btn { display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.96);
  border: 1px solid var(--line); border-radius: 999px; padding: 7px 14px; font-size: 14px; font-weight: 700;
  font-family: inherit; cursor: pointer; box-shadow: 0 2px 8px rgba(0,0,0,.15); color: #374151; white-space: nowrap; }
.fbar-btn.on { background: var(--brand); border-color: var(--brand); color: #fff; }
.fbar-btn:active { transform: scale(.95); }
.fbar .btn-sm { white-space: nowrap; box-shadow: 0 2px 8px rgba(0,0,0,.15); text-decoration: none; }
.zchips { display: flex; gap: 6px; overflow-x: auto; flex: 1; scrollbar-width: none; padding: 2px; }
.zchips::-webkit-scrollbar { display: none; }
.zchip { flex: 0 0 auto; background: rgba(255,255,255,.96); border: 1px solid var(--line);
  border-radius: 999px; padding: 6px 12px; font-size: 12px; font-weight: 700; font-family: inherit;
  cursor: pointer; color: #4b5563; box-shadow: 0 1px 6px rgba(0,0,0,.12); white-space: nowrap; }
.zchip.on { background: #7c3aed; border-color: #7c3aed; color: #fff; }
.zchip:active { transform: scale(.94); }
.fpanel { position: absolute; top: 196px; right: 10px; left: 10px; z-index: 650; background: #fff;
  border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 30px rgba(0,0,0,.18); padding: 14px; }
.fpanel[hidden] { display: none; }
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.fgrid label { font-size: 12px; font-weight: 700; color: #4b5563; display: block; }
.fgrid select, .fgrid input { width: 100%; margin-top: 4px; padding: 9px 10px; font-size: 14px;
  font-family: inherit; border: 1.5px solid var(--line); border-radius: 10px; background: #fff; }
.fgrid select:focus, .fgrid input:focus { outline: none; border-color: var(--brand); }
.fgrid .chip { justify-self: start; }
.fpanel .hint { margin: 10px 0 0; font-size: 12px; }

/* ---------- دکمه موقعیت من (آیکون استاندارد GPS) ---------- */
.locate-btn { position: absolute; bottom: 100px; right: 10px; z-index: 600; width: 46px; height: 46px;
  border-radius: 50%; background: #fff; border: 1px solid var(--line);
  box-shadow: 0 3px 10px rgba(0,0,0,.22); color: var(--brand-dark);
  display: flex; align-items: center; justify-content: center; cursor: pointer; }
.locate-btn:active { transform: scale(.9); }

/* ---------- نشان‌ها: ویژه، تأییدشده ---------- */
.pcard { position: relative; }
.p-ribbon { position: absolute; top: 8px; left: 8px; z-index: 2;
  background: linear-gradient(180deg,#F59E0B,#D97706); color: #fff;
  font-size: 12px; font-weight: 800; border-radius: 999px; padding: 3px 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.p-ribbon.big { position: static; font-size: 14px; padding: 5px 16px; }
.verified-badge { display: inline-flex; align-items: center; gap: 4px; background: #e2f5e9;
  color: #137333; font-weight: 800; font-size: 12px; border-radius: 999px;
  padding: 5px 14px; white-space: nowrap; }

/* ---------- دکمه‌های جزئیات ملک ---------- */
.detail-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0 4px; }
.detail-actions .btn { margin-top: 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; }

/* ---------- ویزا: قیمت درشت و مدارک خلاصه ---------- */
.vcard-price.big { font-size: 20px; }
.vcard-docs { font-size: 12px; color: var(--muted); margin-top: 4px; line-height: 1.8; }

/* ---------- تکت ---------- */
.ticket-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ticket-cards .bigcard { padding: 24px 12px; }

/* ---------- فاز ۲: کاتالوگ تکت (انتخاب مرحله‌ای مسیر/شرکت/پرواز) ---------- */
.tk-step { margin-bottom: 20px; }
.tk-step-t { font-weight: 800; font-size: 16px; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; }
.tk-change { background: none; border: none; color: var(--brand-dark); font-family: inherit;
  font-weight: 700; font-size: 14px; cursor: pointer; text-decoration: underline; padding: 2px 4px; }
.tk-cards { display: grid; gap: 10px; }
.tk-card { display: flex; flex-direction: column; align-items: flex-start; gap: 5px; width: 100%;
  text-align: right; font-family: inherit; color: var(--ink); cursor: pointer;
  background: var(--card); border: 1.5px solid var(--line); border-radius: 14px; padding: 13px 14px;
  box-shadow: 0 2px 8px rgba(0,0,0,.05); transition: border-color .12s ease, box-shadow .12s ease, transform .12s ease; }
.tk-card:active { transform: scale(.98); }
.tk-card.on { border-color: #D97706; background: #FFFBEB; box-shadow: 0 4px 14px rgba(217,119,6,.18); }
.tk-card.custom { border-style: dashed; }
.tk-route { font-weight: 800; font-size: 16px; }
.tk-co { font-weight: 800; font-size: 16px; display: flex; align-items: center; gap: 8px; }
.tk-meta { color: var(--muted); font-size: 14px; }
.tk-sel { background: #F8FAFC; border: 1px dashed var(--line); border-radius: 12px;
  padding: 10px 12px; font-size: 14px; font-weight: 700; margin-bottom: 10px; }

@media (max-width: 400px) {
  .fbar { top: 148px; }
  .fpanel { top: 192px; }
  .home-card { padding: 15px 13px; }
  .hc-ico { width: 54px; height: 54px; border-radius: 16px; }
  .hc-tx b { font-size: 16px; }
}

/* ============================================================
   ✨ پولیش غزنی‌ما — 2026-10-07
   فاز A (زیبایی/هیپنوتیزم) + فاز B (خلوت‌سازی صفحه نقشه)
   ============================================================ */
:root{
  --brand-purple:#7c3aed; --brand-gold:#f59e0b; --brand-green:#0b6e4f;
  --radius:18px; --shadow-soft:0 8px 28px rgba(15,23,42,.13);
  --glass:rgba(255,255,255,.72); --glass-brd:rgba(255,255,255,.65);
}

/* ---- سرچ‌بار هوشمند شیشه‌ای ---- */
.searchbar.smart{
  display:flex; gap:8px; align-items:center;
  background:var(--glass); -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid var(--glass-brd); border-radius:var(--radius);
  box-shadow:var(--shadow-soft); padding:6px 6px 6px 12px;
}
.searchbar.smart input{ flex:1; border:0; background:transparent; outline:none; font:inherit; min-width:0; }
.sfilter-btn{
  display:flex; align-items:center; gap:6px; position:relative;
  background:var(--brand-purple); color:#fff; border:0; border-radius:12px;
  padding:9px 14px; font:inherit; font-weight:700; cursor:pointer; white-space:nowrap;
  box-shadow:0 4px 14px rgba(124,58,237,.35); transition:transform .12s ease;
}
.sfilter-btn:active{ transform:scale(.95); }
.fbadge{
  position:absolute; top:-7px; inset-inline-start:-7px;
  background:#ef4444; color:#fff; font-size:12px; font-weight:800;
  min-width:20px; height:20px; border-radius:10px; display:flex; align-items:center; justify-content:center;
  padding:0 5px; box-shadow:0 2px 8px rgba(0,0,0,.25);
}

/* ---- سوییچ نقشه/لیست ---- */
.seg{ display:flex; background:rgba(255,255,255,.75); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border-radius:999px; padding:3px; gap:2px; box-shadow:var(--shadow-soft); }
.seg button{ border:0; background:transparent; border-radius:999px; padding:7px 14px; font:inherit; font-weight:700;
  color:#475569; cursor:pointer; transition:all .15s ease; }
.seg button.on{ background:var(--brand-purple); color:#fff; box-shadow:0 3px 10px rgba(124,58,237,.4); }

/* ---- نوار خلوت + راهنمای لمس ناحیه ---- */
.fbar.slim{ display:flex; align-items:center; justify-content:space-between; gap:8px; }
.zone-hint{ font-size:12px; color:#64748b; background:rgba(255,255,255,.7);
  padding:6px 12px; border-radius:999px; -webkit-backdrop-filter:blur(8px); backdrop-filter:blur(8px); }

/* ---- شیت پایینی فیلترها ---- */
.sheet-wrap{ position:fixed; inset:0; z-index:1200; background:rgba(15,23,42,.45);
  display:flex; align-items:flex-end; justify-content:center; animation:fadeIn .18s ease; }
.sheet-wrap[hidden]{ display:none; }
.sheet{ width:100%; max-width:560px; max-height:82vh; overflow-y:auto; background:#fff;
  border-radius:22px 22px 0 0; padding:14px 16px calc(18px + env(safe-area-inset-bottom));
  animation:sheetUp .25s cubic-bezier(.2,.9,.3,1.2); box-shadow:0 -12px 40px rgba(0,0,0,.2); }
@keyframes sheetUp{ from{ transform:translateY(60px); opacity:0; } to{ transform:none; opacity:1; } }
@keyframes fadeIn{ from{ opacity:0; } to{ opacity:1; } }
.sheet-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; font-size:16px; }
.frow{ margin:10px 0; }
.flab{ display:block; font-size:12px; color:#64748b; margin-bottom:6px; font-weight:700; }
.dchips{ display:flex; gap:8px; flex-wrap:wrap; }
.frow-btns{ display:flex; justify-content:center; margin-top:12px; }

/* ---- کارت اعلانات قابل بستن ---- */
.annc-card{ position:absolute; bottom:12px; inset-inline:12px; z-index:600; display:flex; flex-direction:column; gap:6px; }
.annc-item{ display:flex; align-items:center; gap:8px; background:rgba(255,251,235,.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid #fde68a; border-radius:14px; padding:9px 12px; font-size:14px;
  box-shadow:var(--shadow-soft); animation:sheetUp .25s ease; }
.annc-item a, .annc-item span{ flex:1; color:#92400e; text-decoration:none; }
.annc-x{ border:0; background:#f59e0b33; color:#92400e; width:26px; height:26px; border-radius:50%;
  cursor:pointer; font-size:12px; flex-shrink:0; }

/* ---- نقطه «من اینجام» ضربان‌دار ---- */
.me-wrap{ position:relative; }
.me-dot{ position:absolute; top:50%; left:50%; width:14px; height:14px; margin:-7px;
  background:#2563eb; border:3px solid #fff; border-radius:50%; box-shadow:0 2px 10px rgba(37,99,235,.6); z-index:2; }
.me-pulse{ position:absolute; top:50%; left:50%; width:14px; height:14px; margin:-7px; border-radius:50%;
  background:rgba(37,99,235,.35); animation:mePulse 1.8s ease-out infinite; }
@keyframes mePulse{ 0%{ transform:scale(1); opacity:.8; } 100%{ transform:scale(3.4); opacity:0; } }

/* ---- کارت‌های آگهی نسل ۲ ---- */
.pcard-v2{ animation:cardIn .45s cubic-bezier(.2,.8,.3,1) both; border-radius:var(--radius) !important;
  box-shadow:0 4px 18px rgba(15,23,42,.09) !important; border:1px solid #f1f5f9 !important;
  transition:transform .15s ease, box-shadow .15s ease; }
.pcard-v2:active{ transform:scale(.97); }
@keyframes cardIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
.pcard-top{ margin-bottom:6px; }
.pcard-deal{ display:inline-block; color:#fff; font-size:12px; font-weight:800; padding:4px 10px; border-radius:999px; }
.pcard-v2 .pcard-p{ font-size:20px; font-weight:900; color:var(--brand-green); }
.pcard-meta{ margin-top:6px; font-size:12px; color:#64748b; }

/* ---- حالت خالی زیبا ---- */
.empty-hero{ text-align:center; padding:44px 20px; color:#94a3b8; animation:fadeIn .3s ease; }
.empty-hero svg{ margin-bottom:10px; opacity:.7; }
.empty-hero b{ display:block; color:#64748b; font-size:14px; }

/* ---- اسکلت براق (shimmer) ---- */
.skel{ position:relative; overflow:hidden; background:#eef2f7; border-radius:12px; min-height:74px; }
.skel::after{ content:''; position:absolute; inset:0;
  background:linear-gradient(100deg, transparent 20%, rgba(255,255,255,.75) 50%, transparent 80%);
  animation:shimmer 1.4s infinite; }
@keyframes shimmer{ from{ transform:translateX(-100%); } to{ transform:translateX(100%); } }
[dir="ltr"] .skel::after{ animation-direction:reverse; }

/* ---- گرادیان روی عکس گالری صفحه جزئیات ---- */
.gallery{ position:relative; overflow:hidden; border-radius:16px; }
.gallery img{ display:block; width:100%; background:#eef2f7; min-height:120px; }
.gallery::after{ content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to top, rgba(0,0,0,.42), transparent 42%); }

/* ---- اسپلش زنده‌تر ---- */
.splash-logo{ animation:logoPop .8s cubic-bezier(.2,.9,.3,1.4) both; }
@keyframes logoPop{ from{ opacity:0; transform:scale(.6); } to{ opacity:1; transform:scale(1); } }
.splash-inner::after{ content:''; display:block; width:120px; height:4px; margin:18px auto 0; border-radius:99px;
  background:linear-gradient(90deg, transparent, #fff, transparent); background-size:200% 100%;
  animation:shimmer 1.8s infinite; opacity:.8; }

/* ---- تیک موفقیت متحرک ---- */
.ok-check{ width:84px; height:84px; margin:6px auto 12px; display:block; }
.ok-check circle{ stroke:var(--brand-green); stroke-width:5; fill:#e2f5e9; stroke-dasharray:290; stroke-dashoffset:290; animation:draw .7s ease forwards; }
.ok-check path{ stroke:var(--brand-green); stroke-width:7; fill:none; stroke-linecap:round; stroke-linejoin:round;
  stroke-dasharray:80; stroke-dashoffset:80; animation:draw .45s .55s ease forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.ok-page{ text-align:center; }

/* ---- نظم برند: شعاع و سایه یکدست ---- */
.btn{ border-radius:14px !important; }
.chip{ border-radius:999px !important; transition:transform .12s ease; }
.chip:active{ transform:scale(.94); }
.mchips .chip.on{ box-shadow:0 4px 12px rgba(124,58,237,.3); }

/* ---- حالت شب: شیشه تیره ---- */
.gm-night .searchbar.smart{ background:rgba(17,24,39,.72); border-color:rgba(255,255,255,.14); }
.gm-night .searchbar.smart input{ color:#f1f5f9; }
.gm-night .searchbar.smart input::placeholder{ color:#94a3b8; }
.gm-night .seg{ background:rgba(17,24,39,.75); }
.gm-night .seg button{ color:#94a3b8; }
.gm-night .zone-hint{ background:rgba(17,24,39,.7); color:#cbd5e1; }
.gm-night .leaflet-control-attribution{ background:rgba(0,0,0,.55) !important; color:#94a3b8 !important; }
.gm-night .leaflet-control-attribution a{ color:#c4b5fd !important; }
.gm-night .leaflet-tile-pane{ filter:invert(1) hue-rotate(180deg) saturate(.55) brightness(.92); }
.gm-night .leaflet-bar a{ background:#1e293b !important; color:#e2e8f0 !important; border-color:#334155 !important; }

/* ---- تراکم نوار بالا در موبایل ---- */
.map-topbar{ flex-wrap:wrap; }
@media (max-width:480px){
  .seg button{ padding:6px 10px; font-size:12px; }
  .map-toggle{ font-size:12px; padding:6px 10px; }
  .zone-hint{ font-size:12px; }
}

/* ===== جادوی ویزا: سبک، ریسپانسیو، هم‌رنگ برند ===== */
.urgent-sec{ margin:14px 0 6px; }
.urgent-head{ font-weight:800; font-size:clamp(15px,4.2vw,18px); margin-bottom:8px; }
.urgent-row{ display:flex; gap:10px; overflow-x:auto; padding:10px 2px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; }
.urgent-card{ position:relative; flex:0 0 232px; scroll-snap-align:start; border-radius:16px; padding:14px 12px 12px;
  border:2px solid transparent; cursor:pointer;
  background:linear-gradient(#fffdf4,#fffdf4) padding-box, linear-gradient(135deg,#e8a93d,#ffe9a8,#e8a93d) border-box;
  box-shadow:0 4px 14px rgba(232,169,61,.22); transition:transform .15s; }
.urgent-card:active{ transform:scale(.97); }
.urgent-flag{ font-size:36px; line-height:1; }
.urgent-country{ font-weight:800; font-size:16px; margin-top:4px; }
.urgent-price{ color:var(--brand); font-weight:800; font-size:20px; margin-top:2px; }
.cd{ font-size:12px; color:#a16207; font-variant-numeric:tabular-nums; margin-top:4px; }
.urgent-badge{ position:absolute; top:-10px; inset-inline-start:10px; background:linear-gradient(135deg,#f59e0b,#ef4444); color:#fff;
  font-size:12px; font-weight:800; padding:3px 10px; border-radius:999px; animation:pulse 1.6s infinite; box-shadow:0 2px 8px rgba(239,68,68,.4); }
.vcard-v2{ position:relative; border:1.5px dashed #d8cfc0; }
.vcard-v2 .vcard-flag{ font-size:clamp(36px,10vw,46px); }
.vcard-urgent{ position:absolute; top:8px; inset-inline-end:8px; background:linear-gradient(135deg,#f59e0b,#ef4444); color:#fff;
  font-size:12px; font-weight:800; padding:2px 9px; border-radius:999px; animation:pulse 1.6s infinite; }
.vt-chips{ display:flex; gap:8px; overflow-x:auto; padding:8px 2px 10px; -webkit-overflow-scrolling:touch; }
.vt-chip{ flex:0 0 auto; border:1.5px solid #e5e0d5; background:#fff; border-radius:12px; padding:8px 13px; font-size:14px; cursor:pointer; transition:transform .15s, box-shadow .15s; }
.vt-chip.on{ border-color:var(--brand); box-shadow:0 0 0 3px rgba(11,110,79,.15); font-weight:700; }
.vt-chip:active{ transform:scale(.95); }
.vt-panel{ background:var(--brand-soft); border:1px solid #cde8da; border-radius:14px; padding:12px 14px; margin-bottom:10px; }
.vt-price{ font-size:clamp(20px,6vw,26px); font-weight:800; color:var(--brand); }
.vt-row{ font-size:14px; color:#4b5a54; margin-top:4px; }
.stepper{ display:flex; margin:14px 0 12px; }
.stp{ flex:1; text-align:center; font-size:12px; color:#9aa5a0; font-weight:600; }
.stp span{ width:24px; height:24px; border-radius:50%; background:#e7f0eb; color:var(--brand); font-size:12px; font-weight:800;
  display:flex; align-items:center; justify-content:center; margin:0 auto 4px; }
.stp.on{ color:var(--brand); }
.stp.on span{ background:var(--brand); color:#fff; }
.docs-check{ margin:12px 0; }
.docs-title{ font-weight:800; margin-bottom:8px; font-size:14px; }
.dc-item{ display:flex; align-items:center; gap:10px; padding:9px 10px; border:1px solid #eceae4; border-radius:12px; margin-bottom:8px; cursor:pointer; font-size:14px; background:#fff; }
.dc-item input{ position:absolute; opacity:0; width:1px; height:1px; }
.dc-box{ width:24px; height:24px; border-radius:8px; border:2px solid #c9c2b4; display:flex; align-items:center; justify-content:center; flex:0 0 auto; transition:background .2s, border-color .2s; }
.dc-box svg{ width:15px; height:15px; fill:none; stroke:#fff; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.dc-item input:checked + .dc-box{ background:#16a34a; border-color:#16a34a; }
.dc-item input:checked + .dc-box svg path{ stroke-dasharray:24; stroke-dashoffset:24; animation:draw .3s ease forwards; }
.dc-item input:checked ~ span:last-child{ color:#4b5a54; }
.docs-done{ background:#ecfdf5; border:1px solid #a7f3d0; color:#047857; border-radius:12px; padding:10px; font-weight:700; text-align:center; font-size:14px; }
.consult{ background:linear-gradient(135deg,#f2fbf6,#fff); border:1.5px solid #cde8da; border-radius:18px; padding:16px; margin:14px 0; }
.consult-title{ font-weight:800; font-size:clamp(15px,4.4vw,18px); }
.consult-sub{ font-size:14px; color:#5c6a63; margin:4px 0 12px; }
.cq-q{ display:block; font-size:14px; font-weight:700; margin-bottom:10px; }
.cq-q .inp{ margin-top:6px; }
.cq-fixed{ margin-top:6px; background:#fff; border:1px solid #e5e0d5; border-radius:10px; padding:9px 12px; font-weight:800; }
.cq-types{ display:flex; gap:8px; overflow-x:auto; padding:8px 2px 4px; -webkit-overflow-scrolling:touch; }
.cq-type{ flex:0 0 auto; border:1.5px solid #e5e0d5; background:#fff; border-radius:12px; padding:8px 12px; font-size:14px; cursor:pointer; transition:transform .15s; }
.cq-type.on{ border-color:#16a34a; box-shadow:0 0 0 3px rgba(22,163,74,.15); font-weight:700; }
.cq-type:active{ transform:scale(.95); }
.consult-cta{ width:100%; margin-top:8px; }
.consult-cta.disabled{ opacity:.45; }
@media (max-width:480px){
  .urgent-card{ flex-basis:206px; }
  .dc-item{ font-size:14px; padding:8px; }
  .consult{ padding:13px; }
}

/* ===== ورود هیپنوتیزم‌کننده + خانه طلایی: خلوت، سبک، ریسپانسیو ===== */
@keyframes fadeIn{ from{ opacity:0; } }
@keyframes popIn{ from{ opacity:0; transform:scale(.93) translateY(10px); } }
@keyframes shine{ to{ left:135%; } }
@keyframes cardIn{ from{ opacity:0; transform:translateY(16px) scale(.98); } to{ opacity:1; transform:none; } }
#splash.lift{ transform:translateY(-101%); transition:transform .55s cubic-bezier(.75,0,.25,1); animation:none; }
.splash-inner{ position:relative; overflow:hidden; }
.splash-inner::before{ content:''; position:absolute; top:0; bottom:0; width:70px; left:-90px; transform:skewX(-20deg);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent); animation:shine 1.3s ease .25s 1; pointer-events:none; }
.ob-overlay{ position:fixed; inset:0; z-index:9500; background:rgba(15,23,42,.55); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  display:flex; align-items:center; justify-content:center; padding:20px; animation:fadeIn .3s ease; }
.ob-sheet{ background:#fff; border-radius:22px; max-width:340px; width:100%; padding:26px 22px 20px; text-align:center; position:relative;
  animation:popIn .35s cubic-bezier(.2,.9,.3,1.2); }
.ob-skip{ position:absolute; top:10px; inset-inline-end:14px; background:none; border:0; color:#999; font-size:14px; cursor:pointer; }
.ob-ic{ font-size:54px; line-height:1.2; }
.ob-t{ font-weight:800; font-size:20px; margin-top:10px; }
.ob-s{ font-size:14px; color:#666; margin-top:6px; line-height:1.9; min-height:54px; }
.ob-dots{ margin:12px 0; }
.ob-dots span{ display:inline-block; width:8px; height:8px; border-radius:50%; background:#e2e2e2; margin:0 4px; transition:all .25s; }
.ob-dots span.on{ background:var(--brand); width:22px; border-radius:99px; }
.ob-name{ margin:4px 0 10px; text-align:right; }
.ob-name label{ font-size:14px; font-weight:700; display:block; }
.ob-name .inp{ margin-top:6px; }
.ob-next{ width:100%; }
.home-v2 .home-greet{ font-size:16px; font-weight:700; color:#374151; margin:2px 0; }
.home-v2 .home-promise{ font-size:12px; color:#9aa5a0; margin-bottom:12px; }
.home-v2 .home-card{ animation:cardIn .5s cubic-bezier(.2,.9,.3,1.1) both; }
.home-v2 .home-cards .home-card:nth-child(2){ animation-delay:.08s; }
.home-v2 .home-cards .home-card:nth-child(3){ animation-delay:.16s; }
.home-v2 .hc-ico{ border-radius:16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 0 2px 6px rgba(0,0,0,.06); }
.home-gold{ display:flex; align-items:center; gap:10px; border-radius:16px; padding:12px 14px; margin-bottom:12px; text-decoration:none; color:#7c2d12;
  border:2px solid transparent; background:linear-gradient(#fffdf4,#fffdf4) padding-box, linear-gradient(135deg,#e8a93d,#ffe9a8,#e8a93d) border-box;
  box-shadow:0 4px 14px rgba(232,169,61,.25); animation:cardIn .5s ease both; }
.hg-fire{ font-size:26px; animation:pulse 1.6s infinite; }
.home-gold .hc-tx b{ font-size:14px; display:block; }
.home-gold .hc-tx small{ font-size:12px; color:#a16207; }
.trust-strip{ display:flex; gap:8px; margin:2px 0 12px; }
.trust-strip span{ flex:1; text-align:center; font-size:12px; color:#4b5a54; background:#f4f7f5; border:1px solid #e6ece9; border-radius:12px; padding:8px 4px; }
@media (max-width:380px){ .trust-strip span{ font-size:12px; padding:7px 2px; } }

/* ===== دکمه خروج واضح + دکمه‌های اشتراک ===== */
.exit-top{ display:flex; align-items:center; gap:5px; background:#fef2f2; border:1.5px solid #fecaca; color:#dc2626;
  font-weight:800; font-size:14px; padding:7px 13px; border-radius:999px; cursor:pointer; transition:transform .15s; }
.exit-top:active{ transform:scale(.94); }
.exit-top svg{ display:block; }
.pcard-v2{ position:relative; }
.pcard-share{ position:absolute; top:8px; inset-inline-end:8px; z-index:5; width:32px; height:32px; border-radius:50%;
  background:rgba(255,255,255,.92); border:1px solid #e5e0d5; color:#374151; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 2px 6px rgba(0,0,0,.12); transition:transform .15s; }
.pcard-share:active{ transform:scale(.9); }

/* ===== بنر یکپارچه ===== */
.ubanner{ display:flex; align-items:center; gap:10px; background:linear-gradient(135deg,#fffbeb,#fff);
  border:1.5px solid #fde68a; border-radius:14px; padding:10px 12px; margin:10px 0; text-decoration:none; color:#92400e; font-size:14px; }
.ubanner img{ width:44px; height:44px; border-radius:10px; object-fit:cover; flex:0 0 auto; }
.ub-tx{ flex:1; line-height:1.8; }
.ub-tx b{ font-weight:800; }
.ub-x{ background:none; border:0; color:#b45309; font-size:14px; cursor:pointer; padding:6px; flex:0 0 auto; }
/* ===== کمان متحرک مسیر ===== */
.route-arc{ background:#f2fbf6; border:1px solid #cde8da; border-radius:16px; padding:6px 12px 2px; margin:10px 0; animation:cardIn .5s ease both; }
.ra-svg{ width:100%; height:auto; display:block; }
.ra-cities{ display:flex; align-items:center; justify-content:space-between; font-weight:800; font-size:14px; padding:0 6px 10px; }
.ra-dots{ color:#0b6e4f; letter-spacing:3px; font-size:12px; }
/* ===== نقشه چوکی ===== */
.bus-map{ background:#fff; border:2px solid #e5e0d5; border-radius:18px; padding:12px 10px; margin:10px auto; max-width:300px; }
.bus-front{ text-align:center; font-size:12px; color:#999; padding:6px; border-bottom:1px dashed #e5e0d5; margin-bottom:10px; }
.bus-row{ display:flex; align-items:center; justify-content:center; gap:6px; margin-bottom:6px; }
.bus-aisle{ width:24px; }
.seat{ width:38px; height:38px; border-radius:10px 10px 4px 4px; border:1.5px solid #d8cfc0; background:#f8f6f1;
  font-size:14px; font-weight:700; color:#374151; cursor:pointer; transition:transform .15s, background .15s; }
.seat.on{ background:var(--brand); border-color:var(--brand); color:#fff; transform:scale(1.1); box-shadow:0 3px 8px rgba(11,110,79,.35); }
.seat:active{ transform:scale(.9); }
.pax-row{ display:flex; align-items:center; gap:12px; justify-content:center; margin:10px 0; font-weight:700; font-size:14px; }
.pax-row button{ width:36px; height:36px; border-radius:50%; border:1.5px solid #d8cfc0; background:#fff; font-size:19px; line-height:1; cursor:pointer; }
.pax-row button:active{ transform:scale(.9); }
/* ===== کارت پرواز/بلیت ===== */
.bpass{ background:#fff; border:1.5px solid #e5e0d5; border-radius:18px; overflow:hidden; margin-top:6px; animation:popIn .4s cubic-bezier(.2,.9,.3,1.2); }
.bp-head{ background:var(--brand); color:#fff; font-weight:800; padding:10px 14px; font-size:16px; }
.bp-route{ display:flex; align-items:center; justify-content:center; gap:12px; font-size:20px; font-weight:900; padding:14px 10px 6px; }
.bp-arrow{ color:var(--brand); }
.bp-row{ display:flex; justify-content:space-between; gap:10px; padding:7px 14px; font-size:14px; border-top:1px dashed #f0ece3; }
.bp-row span{ color:#777; }
.bp-row b{ text-align:left; }
.bp-perf{ height:2px; margin:10px 14px; background-image:linear-gradient(90deg,#d8cfc0 55%,transparent 45%); background-size:12px 2px; }
.bp-code-l{ text-align:center; font-size:12px; color:#999; }
.bp-code{ text-align:center; font-size:20px; font-weight:900; letter-spacing:2px; padding:2px 0 14px; color:var(--brand); }
@media (max-width:360px){ .seat{ width:33px; height:33px; font-size:12px; } .bus-aisle{ width:14px; } }

/* ===== روانشناسی فروش: اعتماد و اعتبار ===== */
.prop-desc{ background:#f8faf9; border:1px solid #e6ece9; border-radius:14px; padding:12px 14px; font-size:14px; line-height:2; margin:10px 0; color:#374151; }
.views-line{ font-size:12px; color:#6b7280; margin:2px 0 6px; }
.old-price{ font-size:14px; color:#9ca3af; margin:-6px 0 8px; }
.old-price s{ text-decoration-color:#ef4444; }
.off-badge{ background:#fef2f2; color:#dc2626; font-size:12px; font-weight:800; padding:2px 9px; border-radius:999px; border:1px solid #fecaca; }
.pcard-old{ font-size:12px; color:#9ca3af; font-weight:400; }
.pcard-verified{ display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%;
  background:#16a34a; color:#fff; font-size:12px; font-weight:900; margin-inline-start:6px; vertical-align:middle; }
.sim-row{ display:flex; gap:10px; overflow-x:auto; padding:4px 2px 10px; -webkit-overflow-scrolling:touch; }
.sim-card{ flex:0 0 200px; padding:10px 12px; }
.sim-card .pcard-t{ font-size:14px; }
.home-fav{ display:flex; align-items:center; justify-content:space-between; gap:10px; background:#fff1f2; border:1.5px solid #fecdd3;
  border-radius:14px; padding:11px 14px; margin-bottom:12px; text-decoration:none; color:#881337; font-size:14px; animation:cardIn .5s ease both; }
.home-fav b{ font-size:16px; }
/* واتساپ همیشه در دسترس: چسبان پایین */
.detail-actions{ position:sticky; bottom:10px; z-index:40; background:rgba(255,255,255,.95); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  border-radius:14px; padding:8px; box-shadow:0 -2px 14px rgba(0,0,0,.1); }
/* ویزا: خط تبلیغاتی + شمار صادرشده */
.visa-promo-line{ background:#fffbeb; border:1px solid #fde68a; border-radius:12px; padding:10px 12px; font-size:14px; line-height:1.9; margin:10px 0; color:#92400e; }
.issued-line{ font-size:14px; font-weight:700; color:#047857; margin:6px 0; }

/* ===== سیستم یکدست: تایپوگرافی، برجستگی، تفکیک کارت‌ها ===== */
.btn{ font-weight:800; }
.pcard-p, .pcard-price, .vcard-price, .urgent-price{ font-size:20px; font-weight:800; }
.cd{ font-size:14px !important; font-weight:800; color:#92400e; }
.pcard-v2{ box-shadow:0 4px 18px rgba(15,23,42,.09), inset 0 3px 0 var(--brand) !important; }
.vcard-v2{ box-shadow:inset 0 3px 0 #d97706; }
.tk-card{ box-shadow:0 2px 8px rgba(0,0,0,.05), inset 0 3px 0 #0284c7; }
.tk-card.on{ box-shadow:0 4px 14px rgba(217,119,6,.18), inset 0 3px 0 #0284c7; }
.install-card{ position:relative; display:flex; align-items:center; gap:10px; background:var(--brand-soft);
  border:1.5px dashed var(--brand); border-radius:14px; padding:10px 12px; margin:0 0 12px; }
.ic-ico{ font-size:28px; line-height:1; }
.ic-tx{ flex:1; min-width:0; }
.ic-tx b{ display:block; font-size:14px; }
.ic-tx small{ color:var(--muted); font-size:12px; }
.ic-x{ position:absolute; top:4px; inset-inline-end:6px; border:none; background:none; color:var(--muted);
  font-size:14px; cursor:pointer; padding:4px; font-family:inherit; }
.exit-screen{ min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px; text-align:center; padding:24px; }
.exit-screen img{ width:84px; height:84px; }
.exit-screen h2{ font-size:20px; margin:6px 0 0; }
.exit-screen p{ color:var(--muted); font-size:14px; margin:0 0 8px; }

/* ===== بسته ۸ اکتوبر: نقشه، بنر باریک، نشان‌ها، مشاوره، ترانزیشن سبک ===== */
/* کنترل‌های نقشه: دو ردیف منظم در کادر ظریف کم‌رنگ */
.map-controls{ position:absolute; top:10px; right:10px; left:10px; z-index:600;
  background:rgba(255,255,255,.88); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  border:1px solid #e8eeeb; border-radius:14px; padding:4px 6px; box-shadow:0 2px 10px rgba(15,23,42,.07); }
.mc-row{ display:flex; align-items:center; justify-content:center; gap:6px; padding:2px; flex-wrap:wrap; }
.mc-row + .mc-row{ border-top:1px solid #eef2f0; margin-top:1px; padding-top:6px; }
.mc-row .chip.on{ box-shadow:0 4px 12px rgba(124,58,237,.3); }
.map-controls .seg button{ padding:5px 12px; font-size:13px; }
.map-controls .chip{ padding:4px 10px; font-size:12px; }
/* جستجو: کوچک‌تر، سمت راست، زیر دو ردیف */
.searchbar.smart.search-r{ top:130px; right:12px; left:auto; width:min(50%,250px); padding:3px 3px 3px 8px; }
.searchbar.smart.search-r input{ font-size:12px; }
/* دکمه ثبت ملک: پایین-چپ، قرینه دکمه موقعیت */
.newprop-fab{ position:absolute; bottom:100px; left:12px; z-index:600; display:flex; align-items:center; gap:8px;
  background:linear-gradient(135deg,#f59e0b,#ea580c); color:#fff; font-weight:800; font-size:14px;
  padding:12px 18px; border-radius:999px; text-decoration:none; box-shadow:0 6px 20px rgba(234,88,12,.45); }
.newprop-fab:active{ transform:scale(.94); }
.npf-plus{ font-size:18px; line-height:1; }
/* شماره ناحیه روی چندضلعی: کم‌رنگ */
.zone-num{ background:none !important; border:none !important; box-shadow:none !important;
  color:rgba(71,85,105,.55) !important; font-size:12px; font-weight:700; font-family:inherit; }
.zone-num:before{ display:none !important; }
/* ستاره پیشنهاد طلایی */
.mk.star{ width:26px; height:26px; background:#fffbeb; border:2px solid #d97706;
  display:flex; align-items:center; justify-content:center; font-size:14px; }
/* بنر باریک دوم */
.ubanner.thin{ padding:7px 10px; gap:8px; margin-top:8px; }
.ubanner.thin .ub-tx{ font-size:12px; }
.ubanner.thin img{ width:28px; height:28px; border-radius:8px; }
/* درخواست نام در آنبوردینگ */
.ob-name-card{ background:var(--brand-soft); border:1.5px solid #bfe3d2; border-radius:16px; padding:14px; margin-top:10px; }
.ob-name-ic{ font-size:30px; line-height:1; margin-bottom:6px; }
.ob-name label{ font-size:14px; font-weight:800; color:var(--brand-dark); display:block; }
.ob-name .inp{ margin-top:8px; width:100%; border:1.5px solid #bfe3d2; border-radius:12px;
  padding:10px 12px; font-family:inherit; font-size:14px; background:#fff; }
.ob-name .inp:focus{ outline:none; border-color:var(--brand); box-shadow:0 0 0 3px rgba(11,110,79,.15); }
.ob-name small{ color:var(--muted); font-size:12px; display:block; margin-top:6px; }
/* ===== کارت مشاوره خفن ===== */
.consult.x{ position:relative; overflow:hidden; border:2px solid transparent; border-radius:18px; padding:16px 14px; margin:14px 0;
  background:linear-gradient(#ffffff,#ffffff) padding-box, linear-gradient(135deg,#0b6e4f,#f59e0b,#0b6e4f) border-box;
  box-shadow:0 8px 28px rgba(11,110,79,.16); }
.consult.x:before{ content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(115deg,transparent 30%,rgba(245,158,11,.16) 45%,transparent 60%);
  animation:shine 3.4s ease-in-out infinite; }
@keyframes shine{ 0%{ transform:translateX(90%); } 55%,100%{ transform:translateX(-90%); } }
.consult-head{ position:relative; display:flex; align-items:center; gap:12px; margin-bottom:12px; }
.consult-ico{ width:52px; height:52px; flex:0 0 auto; border-radius:16px; display:flex; align-items:center; justify-content:center;
  font-size:28px; background:linear-gradient(135deg,#0b6e4f,#17a46f); box-shadow:0 4px 12px rgba(11,110,79,.35); }
.consult-headtx{ flex:1; min-width:0; }
.consult.x .consult-title{ font-size:16px; font-weight:800; }
.consult.x .consult-sub{ font-size:12px; color:var(--muted); margin:2px 0 0; }
.consult-timer{ font-size:12px; font-weight:800; color:#b45309; background:#fef3c7;
  border-radius:999px; padding:4px 10px; white-space:nowrap; }
.cq-cell{ position:relative; display:flex; gap:10px; align-items:flex-start; background:#f8faf9;
  border:1px solid #e6eeea; border-radius:14px; padding:10px 12px; margin-bottom:8px; }
.cq-num{ width:26px; height:26px; flex:0 0 auto; border-radius:50%; background:var(--brand); color:#fff;
  font-size:14px; font-weight:800; display:flex; align-items:center; justify-content:center; }
.cq-body{ flex:1; min-width:0; }
.cq-body > label{ font-size:13px; font-weight:800; display:block; margin-bottom:6px; }
.cq-body .inp{ width:100%; }
.consult.x .cq-types{ padding:2px; }
.consult.x .cq-type{ border-radius:999px; }
.consult.x .cq-type.on{ background:var(--brand); color:#fff; border-color:var(--brand); }
/* دکمه مشاوره: کوچک و آب‌دار */
.consult-cta{ position:relative; display:block; width:fit-content; margin:8px auto 0; padding:10px 28px;
  border-radius:999px; background:linear-gradient(180deg,#2fca64,#1a9e47); color:#fff;
  font-size:14px; font-weight:800; text-decoration:none; overflow:hidden;
  box-shadow:0 4px 14px rgba(26,158,71,.4), inset 0 1px 0 rgba(255,255,255,.45); }
.consult-cta:after{ content:''; position:absolute; top:0; bottom:0; width:40%; left:-60%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg); animation:gloss 2.8s ease-in-out infinite; }
@keyframes gloss{ 0%{ left:-60%; } 55%,100%{ left:130%; } }
.consult-cta:active{ transform:scale(.95); }
/* ===== ترانزیشن‌های سبک کارت‌های اصلی (فقط transform/opacity) ===== */
.pcard-v2, .vcard-v2, .tk-card, .home-card, .ubanner, .urgent-card{ transition:transform .16s ease, box-shadow .16s ease; }
.pcard-v2:active, .vcard-v2:active, .tk-card:active, .home-card:active{ transform:scale(.96); }
@media (hover:hover){
  .pcard-v2:hover, .vcard-v2:hover, .tk-card:not(.on):hover{ transform:translateY(-2px); }
}
/* بنر سه‌بعدی ویزا با نور براق */
.visa-promo-3d{ position:relative; overflow:hidden; border-radius:18px; padding:20px 16px; margin:0 0 12px;
  background:linear-gradient(135deg,#0b6e4f 0%,#12926a 40%,#b45309 100%);
  box-shadow:0 10px 30px rgba(11,110,79,.35), inset 0 2px 0 rgba(255,255,255,.35), inset 0 -4px 0 rgba(0,0,0,.18);
  color:#fff; text-align:center; }
.visa-promo-3d:before{ content:''; position:absolute; top:0; bottom:0; width:45%; left:-60%;
  background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg); animation:gloss 3s ease-in-out infinite; }
.visa-promo-3d .vp-t{ position:relative; font-size:17px; font-weight:800; text-shadow:0 2px 5px rgba(0,0,0,.3); line-height:1.9; }
