/* ظاهر یکسانِ مودال‌های فرم (ثبت/ویرایش/حذف) در همهٔ صفحه‌ها؛ کافی است مودال کلاس flow-modal داشته باشد */
.flow-modal .modal-content { border: 0; border-radius: 14px; overflow: hidden; }
.flow-modal .modal-header { background: linear-gradient(135deg, #1e2a3a, #2c3e50); color: #fff; border: 0; padding: 16px 20px; }
.flow-modal .modal-title { font-size: 17px; font-weight: 700; margin: 0; color: #fff; display: flex; align-items: center; gap: 8px; }
.flow-modal .btn-close { filter: invert(1) grayscale(100%) brightness(200%); }
.flow-modal .modal-body { padding: 24px; }
.flow-modal .form-label { font-size: 13px; font-weight: 600; color: #475467; margin-bottom: 6px; }
.flow-modal .form-control, .flow-modal .form-select { border-radius: 8px; border-color: #e6e8eb; }
.flow-modal .form-control:focus, .flow-modal .form-select:focus { border-color: #2c3e50; box-shadow: 0 0 0 3px rgba(44,62,80,.1); }
/* فوتر: دکمه‌ی اصلی تمام‌عرض سرمه‌ای + دکمه‌ی متنی کم‌رنگ زیرش */
.flow-modal .modal-footer { flex-direction: column; align-items: stretch; gap: 4px; padding: 12px 16px; border-top: 1px solid #eceef1; }
.flow-modal .modal-footer > * { margin: 0; }
.flow-modal .flow-primary {
  background: #2c3e50; border: 1px solid #2c3e50; color: #fff; border-radius: 10px; padding: 10px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
/* :active هم لازم است: قاعده‌ی .btn:first-child:active بوت‌استرپ هم‌وزن است و بدون آن دکمه موقع فشردن بی‌رنگ می‌شد */
.flow-modal .flow-primary:hover, .flow-modal .flow-primary:active { background: #1e2a3a; border-color: #1e2a3a; color: #fff; }
.flow-modal .flow-ghost {
  background: transparent; border: 0; color: #667085; font-size: 14px; padding: 6px;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.flow-modal .flow-ghost:hover, .flow-modal .flow-ghost:active { background: transparent; border: 0; color: #2c3e50; }
/* دکمه‌ی حذف (قرمز تمام‌عرض) و فوترِ مرحله‌ی تأیید حذف */
.flow-modal .flow-danger {
  background: #b42318; border: 1px solid #b42318; color: #fff; border-radius: 10px; padding: 10px; font-weight: 600;
  display: flex; align-items: center; justify-content: center; gap: 6px;
}
.flow-modal .flow-danger:hover, .flow-modal .flow-danger:active { background: #912018; border-color: #912018; color: #fff; }
.flow-modal .flow-confirm-delete { background: #fef6f6; border-top: 1px solid #f7c1c1; gap: 8px; }
.flow-modal .flow-confirm-title { font-size: 14px; font-weight: 700; color: #b42318; }
.flow-modal .flow-confirm-note { font-size: 12px; color: #667085; }
/* فرمی که بین modal-content و header/body/footer است باید خودش ستونی باشد، وگرنه modal-dialog-scrollable کار نمی‌کند و فوتر بریده می‌شود */
.flow-modal .modal-content > form { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; }

/* ===== مودالِ «اطلاعات پایه» (#basicEditModal)، مشترکِ صفحه‌ی مشتری و صفحه‌ی فایل ===== */
.form-section-title {
  font-size: 12.5px; font-weight: 700; color: #98a2b3; text-transform: uppercase; letter-spacing: .03em;
  display: flex; align-items: center; gap: 6px;
  margin: 6px 0 2px; padding-bottom: 6px; border-bottom: 1px solid #eceef1; width: 100%;
}
/* نوار مراحل زیر سربرگ، مشترک دو مرحله */
.flow-steps { display: flex; align-items: center; gap: 8px; padding: 10px 20px; font-size: 12px; color: #98a2b3; border-bottom: 1px solid #eceef1; flex: 0 0 auto; }
.flow-steps .step { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.flow-steps .dot { width: 20px; height: 20px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; border: 1.5px solid #d0d5dd; }
.flow-steps .on { color: #2c3e50; font-weight: 600; }
.flow-steps .on .dot { background: #2c3e50; border-color: #2c3e50; color: #fff; }
.flow-steps .done .dot { background: #e7f6ee; border-color: #12b76a; color: #12b76a; }
.flow-steps .line { flex: 1; height: 1.5px; background: #d0d5dd; }
.flow-steps .line.done { background: #2c3e50; }

/* مرحله ۲: خلاصه‌ی مرحله ۱، تیتر بخش‌ها و کارت فهرستی سوییچ‌ها */
#basicEditModal .flow-recap { display: flex; align-items: center; gap: 6px; background: #f8f9fb; border-radius: 10px; padding: 8px 12px; font-size: 13px; color: #475467; }
#basicEditModal .flow-recap strong { color: #2c3e50; }
#basicEditModal .flow-recap-edit { margin-right: auto; border: 0; background: transparent; color: #667085; padding: 2px 6px; }
#basicEditModal .flow-recap-edit:hover { color: #2c3e50; }
#basicEditModal .form-section-title { color: #2c3e50; margin-top: 14px; }
#basicEditModal .settings-list { border: 1px solid #eceef1; border-radius: 12px; }
#basicEditModal .settings-row { padding: 10px 12px; border-bottom: 1px solid #eceef1; }
#basicEditModal .settings-row:last-child { border-bottom: 0; }
#basicEditModal .settings-row-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
#basicEditModal .settings-label { margin: 0; font-size: 13.5px; color: #1e2a3a; cursor: pointer; }
#basicEditModal .settings-row .form-switch { padding: 0; margin: 0; min-height: 0; }
#basicEditModal .settings-row .form-check-input { float: none; margin: 0; width: 2.4em; height: 1.3em; cursor: pointer; }
#basicEditModal .settings-row .form-check-input:checked { background-color: #2c3e50; border-color: #2c3e50; }
#basicEditModal .settings-extra { margin-top: 8px; }

/* ===== wheel-picker سفارشی تاریخ فعال‌سازی (سبک مینیمال iOS) ===== */
.wdp-overlay {
  display: none; position: fixed; inset: 0; z-index: 2000;
  align-items: center; justify-content: center;
}
.wdp-overlay.wdp-show { display: flex; }
.wdp-backdrop { position: absolute; inset: 0; background: rgba(16,24,40,.45); }
.wdp-card {
  position: relative; width: 280px; max-width: calc(100vw - 32px);
  background: #fff; border-radius: 16px; box-shadow: 0 12px 32px rgba(16,24,40,.25);
  padding: 14px 14px 10px; text-align: center;
}
.wdp-title { font-size: 14px; font-weight: 700; color: #667085; margin-bottom: 8px; }
.wdp-frame { position: relative; display: flex; height: 150px; direction: ltr; }
.wdp-frame:before, .wdp-frame:after {
  content: ''; position: absolute; right: 0; left: 0; height: 55px; pointer-events: none; z-index: 3;
}
.wdp-frame:before { top: 0; background: linear-gradient(to bottom, #fff, rgba(255,255,255,0)); }
.wdp-frame:after { bottom: 0; background: linear-gradient(to top, #fff, rgba(255,255,255,0)); }
.wdp-band {
  position: absolute; right: 4px; left: 4px; top: 50%; height: 34px; margin-top: -17px;
  background: #f0f1f4; border-radius: 8px; pointer-events: none; z-index: 1;
}
.wdp-col { position: relative; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; z-index: 2; }
.wdp-arrow {
  border: 0; background: transparent; color: #b6bac2; padding: 2px 0; font-size: 11px;
  cursor: pointer; line-height: 1; position: relative; z-index: 4;
}
.wdp-arrow:hover { color: #2c3e50; }
.wdp-track { position: relative; flex: 1 1 auto; width: 100%; overflow-y: auto; scroll-snap-type: y mandatory; scrollbar-width: none; scroll-behavior: smooth; }
.wdp-track::-webkit-scrollbar { display: none; }
.wdp-list { list-style: none; margin: 0; padding: 58px 0; }
.wdp-list li {
  height: 34px; line-height: 34px; text-align: center; font-size: 15px; color: #c2c5cb;
  scroll-snap-align: center; cursor: pointer; transition: color .15s, font-weight .15s;
  font-variant-numeric: tabular-nums;
}
.wdp-list li.wdp-active { color: #1e2a3a; font-weight: 700; font-size: 16px; }
.wdp-actions { display: flex; justify-content: space-between; margin-top: 10px; padding: 0 4px; }
.wdp-actions button { border: 0; background: transparent; font-size: 14px; font-weight: 600; padding: 6px 10px; cursor: pointer; }
.wdp-cancel { color: #98a2b3; }
.wdp-save { color: #2c3e50; }

/* تصویر کوچک شماتیک نوع ملک، کنار فیلد «عنوان» در مودال مرحله ۲ */
#basicEditModal .property-schematic-thumb {
  width: 64px; height: 64px; flex: 0 0 auto; object-fit: contain;
  padding: 4px; border: 1px solid #e6e8eb; border-radius: 10px; background: #f8f9fb;
}

/* وضعیت: سه چیپ هم‌عرض با آیکون؛ روشن = زمینه‌ی سرمه‌ای کم‌رنگ + متن سرمه‌ای */
.status-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.status-chip { position: relative; }
.status-chip input { position: absolute; opacity: 0; width: 0; height: 0; }
.status-chip label {
  cursor: pointer; margin: 0; width: 100%; padding: 10px 4px; border-radius: 10px; border: 1px solid #e6e8eb;
  background: #fff; color: #98a2b3; font-size: 12.5px; font-weight: 600; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 4px; transition: .15s;
}
.status-chip label i { font-size: 18px; }
.status-chip input:checked + label { background: #eef1f5; border-color: #c5d0dc; color: #2c3e50; }
.status-chip input:focus-visible + label { outline: 2px solid #2c3e50; outline-offset: 2px; }


/* ===== قطعه‌های عمومیِ مودال (نسخه‌ی عمومیِ تاگلِ «عرضه/تقاضا»، لینکِ ثانویه و فهرستِ سوییچ‌ها؛ ط۲، ۲۰۲۶-۱۰-۰۳) =====
   قاعده‌های #addFileStep1Modal و #basicEditModal بالاتر دست‌نخورده‌اند. */
.flow-choice { display: flex; gap: 8px; }
.flow-choice-btn {
  flex: 1; padding: 10px 6px; border-radius: 10px; border: 1px solid #e6e8eb;
  background: #fff; color: #6c757d; font-size: 13px; font-weight: 500; text-align: center; transition: all .15s ease;
}
.flow-choice-btn i { display: block; font-size: 18px; margin-bottom: 4px; }
.flow-choice-btn:hover { border-color: #c5d0dc; }
.flow-choice-btn.active { border-color: #2c3e50; background: #eef1f5; color: #2c3e50; }

.flow-link-secondary {
  display: flex; align-items: center; justify-content: center; gap: 6px; width: 100%;
  padding: 8px 12px; border: 1px solid #e6e8eb; border-radius: 10px; background: transparent;
  color: #667085; font-size: 13px; font-weight: 500; text-decoration: none; transition: all .2s ease;
}
.flow-link-secondary:hover { border-color: #2c3e50; background: #f8f9fb; color: #2c3e50; }

.flow-settings-list { border: 1px solid #eceef1; border-radius: 12px; }
.flow-settings-row { padding: 10px 12px; border-bottom: 1px solid #eceef1; }
.flow-settings-row:last-child { border-bottom: 0; }
.flow-settings-row-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.flow-settings-label { margin: 0; font-size: 13.5px; color: #1e2a3a; cursor: pointer; }
.flow-settings-sub { display: block; font-size: 12px; color: #667085; }
.flow-settings-row .form-switch { padding: 0; margin: 0; min-height: 0; }
.flow-settings-row .form-check-input { float: none; margin: 0; width: 2.4em; height: 1.3em; cursor: pointer; }
.flow-settings-row .form-check-input:checked { background-color: #2c3e50; border-color: #2c3e50; }

/* جست‌وجوی زنده داخلِ مودال: فیلد + فهرستِ نتیجه + «انتخاب‌شده» */
.flow-pick { position: relative; }
.flow-pick-results { list-style: none; margin: 4px 0 0; padding: 0; border: 1px solid #eceef1; border-radius: 10px; max-height: 220px; overflow-y: auto; }
.flow-pick-results:empty { display: none; }
.flow-pick-results li { padding: 8px 12px; font-size: 13px; cursor: pointer; border-bottom: 1px solid #f2f4f7; }
.flow-pick-results li:last-child { border-bottom: 0; }
.flow-pick-results li:hover, .flow-pick-results li.active { background: #f4f6f8; }
.flow-pick-chosen { display: flex; align-items: center; gap: 6px; background: #f8f9fb; border-radius: 10px; padding: 8px 12px; font-size: 13px; color: #2c3e50; }
.flow-pick-chosen[hidden] { display: none; }
.flow-pick-chosen button { margin-right: auto; border: 0; background: transparent; color: #667085; padding: 0 4px; }

/* خلاصه‌ی مرحله‌ی قبل (مثلِ flow-recap ِ مودالِ اطلاعاتِ پایه، ولی عمومی) */
.flow-recap-box { display: flex; flex-direction: column; gap: 2px; background: #f8f9fb; border-radius: 10px; padding: 8px 12px; font-size: 13px; color: #475467; }
.flow-recap-box strong { color: #2c3e50; }
.flow-error { background: #fef6f6; border: 1px solid #f7c1c1; color: #b42318; border-radius: 10px; padding: 8px 12px; font-size: 13px; }
.flow-error:empty { display: none; }

/* فیلدِ کم‌کاربرد پشتِ دکمهٔ کوچکِ نقطه‌چینِ «＋ …» / «✕ برداشتن» — مشترکِ مودال‌ها (پیشوند و شبکه‌ی اجتماعی در ثبتِ مشتری،
   عنوان در اطلاعاتِ پایهٔ فایل). name-label-row: برچسب + همین دکمه در یک خط. */
.flow-modal .name-label-row { display: flex; align-items: center; justify-content: space-between; gap: 6px; height: 19.5px; margin-bottom: 6px; }
.flow-modal .name-label-row .form-label { margin: 0; }
.flow-modal .reveal-btn {
  border: 1px dashed #c5ccd6; background: transparent; color: #667085; border-radius: 999px;
  font-size: 11px; font-weight: 600; padding: 0 8px; line-height: 16px; white-space: nowrap;
}
.flow-modal .reveal-btn:hover { border-color: #2c3e50; color: #2c3e50; }
.flow-modal .form-section-title .reveal-btn { margin-inline-start: auto; }

/* لایهٔ تمام‌صفحه برای انتخاب از یک صفحهٔ دیگر داخلِ همان مودال (مثلاً صفحهٔ آگهی‌ها در حالتِ انتخاب، ?embed=1).
   داخلِ خودِ عنصرِ .modal قرار می‌گیرد تا تلهٔ فوکوسِ مودالِ بوت‌استرپ، فوکوس را از iframe پس نگیرد. */
.flow-pick-layer { position: fixed; inset: 0; z-index: 1065; background: #f4f5f7; display: flex; flex-direction: column; }
.flow-pick-layer[hidden] { display: none; }
.flow-pick-layer iframe { border: 0; width: 100%; flex: 1 1 auto; }

/* دکمهٔ حاشیه‌دار، هم‌خانوادهٔ flow-primary — «ثبت مشتری جدید» در تریاژِ تماس و «افزودنِ متقاضی» ِ آگهی */
.flow-modal .flow-outline { background: #fff; border: 1.5px solid #2c3e50; color: #2c3e50; border-radius: 10px; padding: 10px; font-weight: 600; }
.flow-modal .flow-outline:hover, .flow-modal .flow-outline:active { background: #f4f6f8; color: #1e2a3a; border-color: #1e2a3a; }
