/* ==========================================================
   ROKAB FEATURES — شیوه‌نامه‌ی ماژولار
   هر بخش با کامنتِ FEATURE مشخص شده و با پرچمِ مربوطه قابلِ خاموشی است
   حذفِ یک بخش بقیه را نمی‌شکند
   همه‌ی متن‌ها فارسی و راست‌چین
   ========================================================== */

/* ---------- FEATURE: Action Architecture — متغیرهایِ مشترک ---------- */
:root{
  --rf-primary:#0d9488;
  --rf-primary-dark:#0f766e;
  --rf-radius:16px;
  --rf-shadow:0 8px 32px rgba(15,23,42,.12);
}

/* ---------- FEATURE 1: Swipe Actions ---------- */
/* کانتینرِ کشویی — کارتِ اصلی رویِ لایه‌ی بالاست */
.rf-swipe-wrap{position:relative; overflow:hidden; border-radius:18px; touch-action:pan-y; -webkit-user-select:none; user-select:none;}
.rf-swipe-actions{position:absolute; inset:0; display:flex; align-items:stretch; justify-content:space-between; pointer-events:none; opacity:0; transition:opacity .18s;}
.rf-swipe-actions.rf-visible{opacity:1; pointer-events:auto;}
.rf-swipe-left, .rf-swipe-right{display:flex; gap:6px; align-items:center; padding:0 10px;}
.rf-swipe-left{justify-content:flex-start; background:linear-gradient(90deg, #ecfdf5 0%, #f0fdfa 100%);}
.rf-swipe-right{justify-content:flex-end; background:linear-gradient(270deg, #fef3c7 0%, #fffbeb 100%);}
[dir="rtl"] .rf-swipe-left{justify-content:flex-end;}
[dir="rtl"] .rf-swipe-right{justify-content:flex-start;}
.rf-swipe-btn{width:44px; height:44px; border-radius:999px; border:1.5px solid #e2e8f0; background:#fff; display:flex; align-items:center; justify-content:center; font-size:18px; cursor:pointer; box-shadow:0 1px 4px rgba(15,23,42,.08); transition:transform .15s, background .15s;}
.rf-swipe-btn:active{transform:scale(.96);}
.rf-swipe-btn.rf-primary{background:var(--rf-primary); color:#fff; border-color:var(--rf-primary);}
.rf-swipe-card{position:relative; z-index:1; background:#fff; transition:transform .22s cubic-bezier(.2,.8,.2,1); will-change:transform; touch-action:pan-y;}
.rf-swipe-card.rf-dragging{transition:none;}
/* در دسکتاپ، کشیدن با موس هم کار می‌کند */
@media (hover:hover){
  .rf-swipe-wrap:hover .rf-swipe-actions{opacity:.6;}
  .rf-swipe-wrap:hover .rf-swipe-actions:hover{opacity:1;}
}

/* ---------- FEATURE 2: Quick Action ---------- */
.rf-quick-btn{position:absolute; top:10px; left:10px; z-index:2; width:34px; height:34px; border-radius:999px; border:1px solid #e2e8f0; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); display:flex; align-items:center; justify-content:center; font-size:16px; cursor:pointer; box-shadow:0 2px 8px rgba(15,23,42,.08);}
[dir="rtl"] .rf-quick-btn{left:auto; right:10px;}
.rf-quick-btn:hover{background:#fff; transform:scale(1.04);}
.rf-sheet-backdrop{position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:10060; display:none; align-items:flex-end; justify-content:center; padding:0;}
.rf-sheet-backdrop.rf-open{display:flex;}
.rf-sheet{width:100%; max-width:520px; background:#fff; border-radius:20px 20px 0 0; padding:12px 16px calc(16px + env(safe-area-inset-bottom)); box-shadow:0 -12px 40px rgba(15,23,42,.18); transform:translateY(100%); transition:transform .28s cubic-bezier(.2,.8,.2,1); max-height:78vh; overflow-y:auto; overscroll-behavior:contain;}
.rf-sheet-backdrop.rf-open .rf-sheet{transform:translateY(0);}
.rf-sheet-handle{width:36px; height:4px; border-radius:999px; background:#e2e8f0; margin:6px auto 14px;}
.rf-sheet-title{font-weight:800; font-size:15px; text-align:center; margin-bottom:12px; color:#0f172a;}
.rf-sheet-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:10px;}
.rf-sheet-item{display:flex; flex-direction:column; align-items:center; gap:6px; padding:12px 6px; border-radius:14px; border:1px solid #f1f5f9; background:#f8fafc; cursor:pointer; transition:background .15s, transform .15s;}
.rf-sheet-item:hover{background:#fff; transform:translateY(-1px); box-shadow:0 2px 8px rgba(15,23,42,.06);}
.rf-sheet-item i{font-size:22px; color:var(--rf-primary);}
.rf-sheet-item span{font-size:11.5px; font-weight:700; color:#334155; text-align:center;}

/* ---------- FEATURE 3: Offer Price ---------- */
.rf-modal-backdrop{position:fixed; inset:0; background:rgba(15,23,42,.48); z-index:10070; display:none; align-items:center; justify-content:center; padding:16px;}
.rf-modal-backdrop.rf-open{display:flex;}
.rf-modal{width:100%; max-width:420px; background:#fff; border-radius:20px; padding:20px; box-shadow:var(--rf-shadow);}
.rf-modal h3{font-size:16px; font-weight:900; margin:0 0 12px; color:#0f172a;}
.rf-modal .rf-price-row{display:flex; justify-content:space-between; align-items:center; background:#f8fafc; border:1px solid #f1f5f9; border-radius:12px; padding:10px 12px; margin-bottom:12px; font-size:13px;}
.rf-modal .rf-price-row b{color:#0f172a;}
.rf-input{width:100%; height:44px; border:1.5px solid #e2e8f0; border-radius:12px; padding:0 12px; font-size:14px; text-align:left; direction:ltr;}
.rf-input:focus{border-color:var(--rf-primary); box-shadow:0 0 0 3px rgba(13,148,136,.12); outline:none;}
.rf-input-hint{font-size:11.5px; color:#64748b; margin-top:6px;}
.rf-status{display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:800;}
.rf-status-pending{background:#fef3c7; color:#92400e; border:1px solid #fde68a;}
.rf-status-accepted{background:#dcfce7; color:#166534; border:1px solid #86efac;}
.rf-status-rejected{background:#fee2e2; color:#b91c1c; border:1px solid #fecaca;}
.rf-status-counter{background:#e0e7ff; color:#3730a3; border:1px solid #c7d2fe;}

/* ---------- FEATURE 4: Visit Request ---------- */
.rf-cal-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:6px; margin:10px 0;}
.rf-cal-day{aspect-ratio:1; display:flex; align-items:center; justify-content:center; border-radius:10px; border:1px solid #e2e8f0; background:#fff; font-size:13px; cursor:pointer;}
.rf-cal-day.rf-disabled{opacity:.35; cursor:not-allowed; background:#f8fafc;}
.rf-cal-day.rf-selected{background:var(--rf-primary); color:#fff; border-color:var(--rf-primary);}
.rf-time-grid{display:flex; flex-wrap:wrap; gap:8px; margin:10px 0;}
.rf-time-chip{padding:8px 14px; border-radius:999px; border:1.5px solid #e2e8f0; background:#fff; font-size:12.5px; cursor:pointer;}
.rf-time-chip.rf-selected{background:var(--rf-primary); color:#fff; border-color:var(--rf-primary);}

/* ---------- FEATURE 6: Compare ---------- */
.rf-compare-bar{position:fixed; bottom:16px; left:50%; transform:translateX(-50%) translateY(120%); background:#0f172a; color:#fff; border-radius:999px; padding:10px 14px; display:flex; align-items:center; gap:12px; box-shadow:0 12px 32px rgba(15,23,42,.28); z-index:10055; transition:transform .28s cubic-bezier(.2,.8,.2,1); max-width:calc(100vw - 24px);}
.rf-compare-bar.rf-visible{transform:translateX(-50%) translateY(0);}
.rf-compare-bar button{border:none; border-radius:999px; padding:8px 14px; font-weight:800; font-size:12.5px; cursor:pointer;}
.rf-compare-bar .rf-compare-go{background:#fff; color:#0f172a;}
.rf-compare-bar .rf-compare-clear{background:transparent; color:#cbd5e1; border:1px solid rgba(255,255,255,.2);}
.rf-compare-page{position:fixed; inset:0; background:#f8fafc; z-index:10065; display:none; flex-direction:column; overflow:hidden;}
.rf-compare-page.rf-open{display:flex;}
.rf-compare-head{height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; background:#fff; border-bottom:1px solid #e2e8f0; flex-shrink:0;}
.rf-compare-grid{flex:1; overflow:auto; display:grid; grid-auto-flow:column; grid-auto-columns:minmax(280px, 1fr); gap:12px; padding:16px; align-items:start;}
.rf-compare-col{background:#fff; border:1px solid #e2e8f0; border-radius:16px; overflow:hidden;}
.rf-compare-col img{width:100%; height:160px; object-fit:cover; display:block;}
.rf-compare-col .rf-c-body{padding:12px;}
.rf-compare-row{display:flex; justify-content:space-between; padding:8px 0; border-bottom:1px solid #f1f5f9; font-size:12.5px;}
.rf-compare-row b{color:#0f172a;}
.rf-compare-remove{width:100%; margin-top:8px; border:1px solid #fecaca; background:#fff1f2; color:#b91c1c; border-radius:10px; padding:8px; font-weight:700; cursor:pointer;}

/* ---------- FEATURE 7: Price Drop ---------- */
.rf-price-drop-badge{position:absolute; top:10px; right:10px; z-index:2; background:#ef4444; color:#fff; font-size:11px; font-weight:800; padding:5px 9px; border-radius:999px; display:flex; align-items:center; gap:4px; box-shadow:0 2px 8px rgba(239,68,68,.28);}
[dir="rtl"] .rf-price-drop-badge{right:auto; left:10px;}
.rf-price-drop-inline{display:flex; gap:6px; align-items:center; font-size:11.5px; margin-top:4px;}
.rf-price-drop-inline s{color:#94a3b8;}
.rf-price-drop-inline b{color:#b91c1c;}
.rf-price-drop-inline .rf-diff{color:#16a34a; font-weight:800;}

/* ---------- FEATURE 8: 360 Tour ---------- */
.rf-360-badge{position:absolute; bottom:10px; right:10px; z-index:2; background:rgba(15,23,42,.82); color:#fff; font-size:11px; font-weight:800; padding:5px 9px; border-radius:999px; display:flex; align-items:center; gap:5px; backdrop-filter:blur(8px); cursor:pointer;}
[dir="rtl"] .rf-360-badge{right:auto; left:10px;}
.rf-360-viewer{position:fixed; inset:0; background:#000; z-index:10080; display:none; flex-direction:column;}
.rf-360-viewer.rf-open{display:flex;}
.rf-360-viewer-head{height:56px; display:flex; align-items:center; justify-content:space-between; padding:0 16px; background:rgba(15,23,42,.6); color:#fff; backdrop-filter:blur(12px);}
.rf-360-pano{flex:1; position:relative; overflow:hidden; touch-action:none; background:#111; display:flex; align-items:center; justify-content:center;}
.rf-360-pano img{max-width:none; width:100%; height:100%; object-fit:cover; cursor:grab; user-select:none; -webkit-user-drag:none;}
.rf-360-pano:active img{cursor:grabbing;}

/* ---------- FEATURE 9: Micro-UX ---------- */
.rf-micro-badges{display:flex; gap:6px; flex-wrap:wrap; margin:6px 0;}
.rf-micro-badge{font-size:10.5px; font-weight:800; padding:4px 8px; border-radius:999px; display:inline-flex; align-items:center; gap:4px; border:1px solid;}
.rf-micro-new{background:#dcfce7; color:#166534; border-color:#86efac;}
.rf-micro-popular{background:#fee2e2; color:#b91c1c; border-color:#fecaca;}
.rf-micro-reduced{background:#fef3c7; color:#92400e; border-color:#fde68a;}
.rf-micro-360{background:#e0e7ff; color:#3730a3; border-color:#c7d2fe;}
.rf-micro-visit{background:#f0fdfa; color:#0f766e; border-color:#99f6e4;}
.rf-micro-distance{background:#f1f5f9; color:#334155; border-color:#e2e8f0;}

/* ---------- RTL helpers ---------- */
.rf-row{display:flex; gap:8px; align-items:center;}
.rf-actions{display:flex; gap:8px; margin-top:12px;}
.rf-actions button{flex:1; height:44px; border-radius:12px; border:none; font-weight:800; cursor:pointer;}
.rf-actions .rf-primary-btn{background:var(--rf-primary); color:#fff;}
.rf-actions .rf-ghost-btn{background:#f1f5f9; color:#334155; border:1px solid #e2e8f0;}
