/* ============================================================
   RedFly — صفحهٔ نتایج پرواز (نسخهٔ ۲، متراکم)
   الگوی چیدمان از رایج‌ترین نتایج‌های صنعت گرفته شده: نوار جستجوی باریک،
   ریل قیمت روزها، تب‌های مرتب‌سازی با نرخ، و سطرهای فشردهٔ نتیجه.
   هیچ رنگ/شعاع/سایهٔ تازه‌ای اینجا نیست؛ همه از tokens.css.
   ============================================================ */

/* ---------- نوار جستجو (باریک) ---------- */
.rs-band{position:sticky;top:var(--header-h-mobile);z-index:calc(var(--z-header) - 1);background:var(--surface);border-bottom:1px solid var(--hairline)}
@media(min-width:1024px){.rs-band{top:var(--header-h-desktop)}}
.rs-band__in{max-width:var(--container);margin:0 auto;padding:8px var(--gutter-mobile)}
@media(min-width:768px){.rs-band__in{padding-inline:var(--gutter)}}
.rs-sum{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;background:var(--surface-soft);border:1px solid var(--hairline);border-radius:var(--r-control);padding:0 12px;font-family:inherit;cursor:pointer;text-align:start}
.rs-sum:hover{border-color:var(--hairline-strong)}
.rs-sum>.material-symbols-outlined{font-size:20px;color:var(--primary);flex:none}
.rs-sum__t{min-width:0;display:flex;flex-direction:column;line-height:1.4}
.rs-sum__t b{font-size:14px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-sum__t small{font-size:11.5px;color:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-sum__e{margin-inline-start:auto;display:flex;align-items:center;gap:4px;flex:none;font-size:12.5px;font-weight:800;color:var(--action)}
.rs-edit{display:none;padding:8px 0 4px}
.rs-edit.is-open{display:block}
.rs-form{display:grid;grid-template-columns:minmax(0,1fr);gap:6px}
@media(min-width:900px){.rs-form{grid-template-columns:1fr 36px 1fr 170px 170px 116px;align-items:center}}
.rs-cell{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 12px;border-radius:var(--r-control);background:var(--surface);border:1px solid var(--hairline-strong);color:var(--ink);font-family:inherit;cursor:pointer;text-align:start;min-width:0}
.rs-cell:hover{border-color:var(--primary)}
.rs-cell>.material-symbols-outlined{font-size:19px;color:var(--label);flex:none}
.rs-cell__b{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.rs-cell__b small{font-size:10.5px;font-weight:700;color:var(--label)}
.rs-cell__b b{font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-swap{display:grid;place-items:center;width:36px;height:36px;justify-self:center;border-radius:999px;background:var(--surface-soft);border:1px solid var(--hairline);color:var(--ink-soft);cursor:pointer}
.rs-swap:hover{background:var(--primary);border-color:var(--primary);color:#fff}
@media(max-width:899px){.rs-swap{transform:rotate(90deg);justify-self:start}}

/* ---------- ریل قیمت روزها ---------- */
.rs-days{display:flex;align-items:stretch;gap:4px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-control);padding:4px}
.rs-days__track{flex:1;display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:none}
.rs-days__track::-webkit-scrollbar{display:none}
@media(min-width:900px){.rs-days__track{overflow:visible}.rs-days__track>*{flex:1}}
.rs-day{flex:0 0 82px;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:58px;padding:6px 4px;border-radius:10px;background:transparent;border:1px solid transparent;font-family:inherit;cursor:pointer;transition:background var(--dur-fast) var(--ease)}
.rs-day:hover{background:var(--surface-soft)}
.rs-day__d{font-size:11px;font-weight:700;color:var(--label)}
.rs-day__n{font-size:13px;font-weight:800;color:var(--ink);white-space:nowrap}
.rs-day__p{font-size:11.5px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.rs-day.is-cheap{background:var(--success-tint)}
.rs-day.is-cheap .rs-day__p{color:var(--success)}
.rs-day.is-cur{background:var(--primary);border-color:var(--primary)}
.rs-day.is-cur .rs-day__d,.rs-day.is-cur .rs-day__n,.rs-day.is-cur .rs-day__p{color:#fff}
.rs-days__nav{display:none;place-items:center;width:34px;border-radius:10px;background:transparent;border:0;color:var(--label);cursor:pointer;flex:none}
.rs-days__nav:hover{background:var(--surface-soft);color:var(--primary)}
@media(min-width:900px){.rs-days__nav{display:grid}}

/* ---------- چیدمان ---------- */
.rs-wrap{max-width:var(--container);margin:0 auto;padding:12px var(--gutter-mobile) 96px}
@media(min-width:768px){.rs-wrap{padding-inline:var(--gutter)}}
@media(min-width:1024px){.rs-wrap{padding-bottom:48px}}
.rs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start;margin-top:12px}
@media(min-width:1024px){.rs-grid{grid-template-columns:252px minmax(0,1fr);gap:20px}}

/* ---------- تب‌های مرتب‌سازی (با نرخ هر گزینه) ---------- */
.rs-tabs{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-control);padding:4px}
.rs-tabs::-webkit-scrollbar{display:none}
.rs-tab{flex:1 0 auto;min-width:118px;display:flex;flex-direction:column;gap:1px;padding:8px 12px;border-radius:10px;background:transparent;border:1px solid transparent;font-family:inherit;text-align:start;cursor:pointer;transition:background var(--dur-fast) var(--ease)}
.rs-tab:hover{background:var(--surface-soft)}
.rs-tab__k{display:flex;align-items:center;gap:5px;font-size:12.5px;font-weight:800;color:var(--ink-soft)}
.rs-tab__k .material-symbols-outlined{font-size:16px;color:var(--label)}
.rs-tab__v{font-size:12px;font-weight:700;color:var(--label);font-variant-numeric:tabular-nums}
.rs-tab.is-on{background:var(--primary-tint);border-color:rgba(230,30,37,.3)}
.rs-tab.is-on .rs-tab__k,.rs-tab.is-on .rs-tab__k .material-symbols-outlined{color:var(--primary)}
.rs-tab.is-on .rs-tab__v{color:var(--ink)}

/* ---------- نوار ابزار موبایل ---------- */
.rs-mbar{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none}
.rs-mbar::-webkit-scrollbar{display:none}
@media(min-width:1024px){.rs-mbar{display:none}}
.rs-mchip{flex:none;display:inline-flex;align-items:center;gap:5px;min-height:38px;padding:0 12px;border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--hairline);color:var(--ink-soft);font-family:inherit;font-size:12.5px;font-weight:700;cursor:pointer}
.rs-mchip .material-symbols-outlined{font-size:17px}
.rs-mchip.is-on{background:var(--ink);border-color:var(--ink);color:#fff}
.rs-mchip__n{display:grid;place-items:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:var(--primary);color:#fff;font-size:11px;font-weight:800}

/* ---------- ستون فیلتر ---------- */
.rs-side{display:none}
@media(min-width:1024px){.rs-side{display:block;position:sticky;top:calc(var(--header-h-desktop) + 72px);max-height:calc(100vh - var(--header-h-desktop) - 90px);overflow-y:auto;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card);padding:4px 14px}}
.rs-fgroup{padding:12px 0;border-bottom:1px solid var(--hairline)}
.rs-fgroup:last-child{border-bottom:0}
.rs-fgroup__t{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:12.5px;font-weight:800;color:var(--ink)}
.rs-fgroup__t .material-symbols-outlined{font-size:17px;color:var(--primary)}
.rs-check{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 4px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--ink-soft)}
.rs-check:hover{background:var(--surface-soft);color:var(--ink)}
.rs-check input{width:16px;height:16px;accent-color:var(--primary);flex:none}
.rs-check__n{margin-inline-start:auto;font-size:11px;font-weight:700;color:var(--placeholder);font-variant-numeric:tabular-nums}
.rs-scroll{max-height:170px;overflow-y:auto}
.rs-side__head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:10px}
.rs-side__head b{font-size:13.5px;font-weight:800;color:var(--ink)}
@media(max-width:1023px){
  .rs-fgroup{padding:14px 0}
  .rs-check{min-height:44px;font-size:14px}
  .rs-fgroup__t{font-size:13.5px}
  .rs-scroll{max-height:none}
}

/* ---------- سطر نتیجه ---------- */
.fcard{background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card);overflow:hidden;transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
.fcard:hover{border-color:var(--hairline-strong);box-shadow:var(--shadow-card)}
/* .is-pinned — ظاهر کامل در بخش «کارت فروش ویژه» پایین همین فایل */
.fcard.is-flash{animation:flashRing 1s var(--ease) 2}
@keyframes flashRing{0%{box-shadow:0 0 0 0 rgba(230,30,37,.4)}100%{box-shadow:0 0 0 12px rgba(230,30,37,0)}}
.fcard__strip{display:flex;align-items:center;gap:5px;padding:4px 12px;font-size:11.5px;font-weight:800;color:#fff}
.fcard__strip .material-symbols-outlined{font-size:15px}
.fcard__strip--pin{background:var(--primary)}
.fcard__strip--cheap{background:var(--success)}
.fcard__strip--fast{background:var(--secondary)}
.fcard__strip--best{background:var(--ink-800)}

/* ساختار سطر: موبایل سه ردیف، دسکتاپ چهار ستون */
.fcard__row{position:relative;display:grid;grid-template-columns:1fr auto;gap:14px;padding:18px 14px}
/* نشان محو ایرلاین: نواری چسبیده به لبهٔ کارت، پشت لوگو، تا پیش از نام ایرلاین */
@media(min-width:1024px){.fcard__row{grid-template-columns:172px minmax(0,1fr) 190px;align-items:center;gap:20px;padding:26px 20px;min-height:132px}}
.fcard__air{display:flex;align-items:center;gap:12px;min-width:0}
.fcard__logo{width:44px;height:44px;border-radius:0;object-fit:contain;object-position:center;background:none;border:0;flex:none}
@media(min-width:1024px){.fcard__logo{width:52px;height:52px}}
.fcard__logo--txt{display:grid;place-items:center;font-size:12px;font-weight:800;color:var(--label);background:var(--surface-soft);border:1px solid var(--hairline);border-radius:10px}
.fcard__air b{display:block;font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fcard__air small{display:block;margin-top:2px;font-size:11px;font-weight:600;color:var(--label);letter-spacing:.3px;white-space:nowrap;font-variant-numeric:tabular-nums}
.fcard__mid{grid-column:1/-1;display:flex;align-items:center;gap:10px}
@media(min-width:1024px){.fcard__mid{grid-column:auto}}
.fcard__t{font-size:17px;font-weight:800;color:var(--ink);line-height:1.2;font-variant-numeric:tabular-nums}
.fcard__c{font-size:11px;font-weight:600;color:var(--label);white-space:nowrap}
.fcard__path{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;min-width:56px}
.fcard__dur{font-size:11px;font-weight:700;color:var(--label);white-space:nowrap}
.fcard__line{position:relative;width:100%;height:1px;background:var(--hairline-strong)}
.fcard__line::before,.fcard__line::after{content:'';position:absolute;top:-2px;width:5px;height:5px;border-radius:999px;background:var(--hairline-strong)}
.fcard__line::before{inset-inline-start:0}
.fcard__line::after{inset-inline-end:0}
.fcard__stop{position:absolute;inset-inline-start:50%;top:-3px;width:7px;height:7px;margin-inline-start:-3.5px;border-radius:999px;background:var(--warn)}
.fcard__meta{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:11.5px;font-weight:600;color:var(--label)}
.fcard__meta .fcard__link{margin-inline-start:auto}
@media(min-width:1024px){.fcard__meta{grid-column:1/3;grid-row:2;margin-top:-2px;gap:4px 12px}}
.fcard__meta i{font-style:normal;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.fcard__meta i .material-symbols-outlined{font-size:15px}
.fcard__meta .is-warn{color:var(--action);font-weight:800}
.fcard__meta .is-ok{color:var(--success);font-weight:700}
/* کلاس پرواز — بیزینس/فرست/پریمیوم پررنگ (روی موبایل هم نمایش داده می‌شود) */
.fcard__meta .is-cabin--up{color:#7c4a03;font-weight:800;background:#fdf3d8;border-radius:6px;padding-inline:5px}
.fcard__buy{display:flex;flex-direction:column;align-items:flex-end;gap:4px}

@media(max-width:1023px){
  .fcard__air{grid-column:1/-1}
  .fcard__buy{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:18px;padding-top:9px;border-top:1px solid var(--hairline)}
  .fcard__buy .fcard__price{grid-column:1;grid-row:1;justify-content:flex-start}
  .fcard__per{grid-column:1;grid-row:2;text-align:start}
  .fcard__cta{grid-column:2;grid-row:1/3;padding-inline:16px}
}
@media(min-width:1024px){.fcard__buy{grid-row:1/3;border-inline-start:1px solid var(--hairline);padding-inline-start:16px;min-width:186px;align-items:stretch;justify-content:center;row-gap:10px}}
.fcard__price{display:flex;align-items:baseline;gap:4px;justify-content:flex-end}
.fcard__price b{font-size:18px;font-weight:800;color:var(--ink);font-variant-numeric:tabular-nums}
.fcard__price small{font-size:11px;font-weight:700;color:var(--label)}
.fcard__per{font-size:10.5px;font-weight:600;color:var(--label);text-align:end;text-wrap:pretty}
/* «× ۳» کنار قیمت واحد — عدد درشت قیمت یک مسافر است، جمع کل زیرش می‌آید */
.fcard__x{font-size:18px;font-weight:800;color:var(--label);font-variant-numeric:tabular-nums;line-height:1.2}
.fcard--boarding .fcard__x{font-size:20px}
body[data-density="tight"] .fcard__x{font-size:16px}
@media(max-width:1023px){.fcard__per{max-width:100%}}

.fcard__cta{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:0 14px;border-radius:8px;background:var(--action);color:#fff;border:0;font-family:inherit;font-size:12.5px;font-weight:800;cursor:pointer;transition:background var(--dur-fast) var(--ease)}
.fcard__cta:hover{background:var(--action-hover)}
.fcard__cta:active{transform:scale(.98)}
@media(max-width:1023px){.fcard__cta{min-height:40px}}
.fcard__link{display:inline-flex;align-items:center;gap:3px;background:none;border:0;padding:4px 0;color:var(--action);font-family:inherit;font-size:12px;font-weight:800;cursor:pointer}
.fcard__link .material-symbols-outlined{font-size:16px;transition:transform var(--dur-fast) var(--ease)}
.fcard__link.is-open .material-symbols-outlined{transform:rotate(180deg)}
.fcard__cmp{margin-inline-start:auto;display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;color:var(--label);cursor:pointer}
.fcard__cmp input{width:15px;height:15px;accent-color:var(--primary)}
.fcard__det{display:none;border-top:1px solid var(--hairline);background:var(--surface-soft);padding:12px}
.fcard__det.is-open{display:block;animation:fadeIn .18s ease}
@media(min-width:1024px){.fcard__det{padding:14px 16px}}
.fdet{display:grid;gap:12px;grid-template-columns:minmax(0,1fr)}
@media(min-width:768px){.fdet{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}}
.fdet__seg{display:flex;gap:10px;padding:10px;border-radius:10px;background:var(--surface);border:1px solid var(--hairline)}
.fdet__seg+.fdet__seg{margin-top:8px}
.fdet__box{padding:10px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--hairline)}
.fdet__box h4{margin:0 0 6px;font-size:12.5px;font-weight:800;color:var(--ink)}
.fdet__row{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;color:var(--ink-soft);padding:3px 0}
.fdet__row b{color:var(--ink);font-weight:700;font-variant-numeric:tabular-nums}
.fdet__row.is-sum{border-top:1px dashed var(--hairline-strong);margin-top:4px;padding-top:6px;font-weight:800;color:var(--ink)}
.fdet__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:5px}
.fdet__list li{position:relative;padding-inline-start:14px;font-size:12px;line-height:1.8;color:var(--ink-soft)}
.fdet__list li::before{content:'';position:absolute;inset-inline-start:3px;top:8px;width:4px;height:4px;border-radius:999px;background:var(--label)}

/* ---------- برچسب‌های کوچک ---------- */
.rs-tagline{display:flex;flex-wrap:wrap;gap:5px}
.rs-tg{display:inline-flex;align-items:center;gap:3px;padding:2px 7px;border-radius:6px;background:var(--surface-soft);color:var(--ink-soft);font-size:11px;font-weight:700}
.rs-tg .material-symbols-outlined{font-size:13px}
.rs-tg--warn{background:var(--warn-tint);color:var(--warn)}
.rs-tg--ok{background:var(--success-tint);color:var(--success)}
.rs-tg--pri{background:var(--primary-tint);color:var(--primary)}

/* ---------- اسکلتون ---------- */
.sk{position:relative;overflow:hidden;background:var(--surface-sunken);border-radius:6px}
.sk::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);animation:skSh 1.3s infinite}
@keyframes skSh{100%{transform:translateX(100%)}}

/* ---------- بنر باریک ---------- */
.rs-note{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;font-size:12.5px;font-weight:700}
.rs-note--disc{background:var(--success-tint);color:var(--success)}
.rs-note--flash{background:var(--primary-tint);color:var(--primary)}
.rs-note b{font-weight:800}
.rs-note span{font-weight:600;color:var(--ink-soft)}
.rs-note__v{margin-inline-start:auto;font-variant-numeric:tabular-nums;font-weight:800}

/* ---------- شمارش نتایج ---------- */
.rs-count{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--label)}
.rs-count b{color:var(--ink);font-weight:800}
.rs-count button{background:none;border:0;color:var(--action);font-family:inherit;font-size:12.5px;font-weight:800;cursor:pointer}

/* ---------- لودر ---------- */
.rs-loader{position:fixed;inset:0;z-index:var(--z-sheet);display:none;align-items:center;justify-content:center;padding:16px;background:rgba(14,15,20,.94)}
.rs-loader.is-on{display:flex}
.rs-loader__card{display:flex;flex-direction:column;width:100%;max-width:620px;overflow:hidden;border-radius:var(--r-card-lg);background:var(--ink-field);border:1px solid rgba(255,255,255,.12);box-shadow:var(--shadow-pop)}
@media(min-width:640px){.rs-loader__card{flex-direction:row}}
.rs-loader__l{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 22px;text-align:center}
.rs-loader__ring{position:relative;display:grid;place-items:center;width:64px;height:64px}
.rs-loader__ring i{position:absolute;inset:0;border-radius:999px;border:3px solid rgba(255,255,255,.14)}
.rs-loader__ring i:nth-child(2){border-color:var(--primary);border-top-color:transparent;border-left-color:transparent;animation:spin 1.3s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.rs-loader__t{margin:0;font-size:16.5px;font-weight:800;color:#fff}
.rs-loader__s{margin:0;font-size:12px;line-height:1.85;color:var(--on-dark-soft)}
.rs-loader__bar{width:100%;height:6px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.rs-loader__bar i{display:block;height:100%;width:0;border-radius:999px;background:var(--primary);transition:width .35s var(--ease)}
.rs-loader__meta{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:11.5px;font-weight:700;color:var(--on-dark-soft)}
.rs-loader__r{width:100%;padding:20px;background:rgba(255,255,255,.04);border-top:1px solid rgba(255,255,255,.08)}
@media(min-width:640px){.rs-loader__r{width:210px;flex:none;border-top:0;border-inline-start:1px solid rgba(255,255,255,.08)}}
.rs-ad{position:relative;min-height:150px}
.rs-ad>figure{position:absolute;inset:0;margin:0;display:flex;flex-direction:column;gap:8px;opacity:0;transition:opacity .5s var(--ease)}
.rs-ad>figure.is-on{opacity:1}
.rs-ad img{width:100%;height:92px;object-fit:cover;border-radius:10px;border:1px solid rgba(255,255,255,.1)}
.rs-ad figcaption{font-size:11.5px;line-height:1.8;color:var(--on-dark-soft)}
.rs-ad figcaption b{color:#fff}
.rs-addots{display:flex;justify-content:center;gap:5px;margin-top:10px}
.rs-addots i{width:6px;height:6px;border-radius:999px;background:rgba(255,255,255,.25)}
.rs-addots i.is-on{background:var(--primary)}

/* ---------- نوار مقایسه ---------- */
.rs-cmp{position:fixed;inset-inline:0;bottom:0;z-index:var(--z-drawer);display:none;align-items:center;justify-content:space-between;gap:10px;background:var(--ink);color:#fff;padding:10px var(--gutter-mobile) calc(10px + env(safe-area-inset-bottom))}
.rs-cmp.is-on{display:flex}
@media(min-width:768px){.rs-cmp{inset-inline:auto;inset-inline-end:24px;bottom:24px;border-radius:var(--r-pill);padding:10px 16px;box-shadow:var(--shadow-pop)}}
.rs-cmp b{font-size:12.5px;font-weight:800}

/* ---------- شیت ---------- */
.rs-sheet{position:fixed;inset:0;z-index:var(--z-sheet);display:none;align-items:flex-end;justify-content:center;background:rgba(15,23,42,.5)}
.rs-sheet.is-on{display:flex}
@media(min-width:768px){.rs-sheet{align-items:center;padding:20px}}
.rs-sheet__in{display:flex;flex-direction:column;width:100%;max-width:640px;max-height:88vh;background:var(--surface);border-radius:var(--r-xl) var(--r-xl) 0 0;overflow:hidden;animation:sheetUp .26s var(--ease)}
@media(min-width:768px){.rs-sheet__in{border-radius:var(--r-card-lg)}}
.rs-sheet__h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid var(--hairline);flex:none}
.rs-sheet__h b{font-size:15px;font-weight:800;color:var(--ink)}
.rs-sheet__x{display:grid;place-items:center;width:34px;height:34px;border-radius:999px;background:var(--surface-soft);border:0;color:var(--ink-soft);cursor:pointer}
.rs-sheet__x:hover{background:var(--surface-sunken);color:var(--primary)}
.rs-sheet__b{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px}
.rs-sheet__f{flex:none;display:flex;gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--hairline)}
.rs-crow{width:100%;min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 4px;border:0;border-bottom:1px solid var(--hairline);background:none;font-family:inherit;text-align:start;cursor:pointer}
.rs-crow:hover{background:var(--primary-tint)}
.rs-crow b{display:block;font-size:13.5px;font-weight:800;color:var(--ink)}
.rs-crow small{font-size:11.5px;color:var(--label)}
.rs-crow code{font-family:ui-monospace,monospace;font-size:11px;padding:2px 6px;border-radius:6px;background:var(--surface-sunken);color:var(--ink-soft)}
.rs-crow.is-on{background:var(--primary-tint)}
.rs-cmptable{width:100%;border-collapse:collapse;font-size:12.5px}
.rs-cmptable th,.rs-cmptable td{padding:9px 10px;border-bottom:1px solid var(--hairline);text-align:start;vertical-align:top}
.rs-cmptable thead th{background:var(--surface-soft);font-size:11px;font-weight:800;color:var(--label);white-space:nowrap}
.rs-cmptable tbody th{font-size:11.5px;font-weight:700;color:var(--label);white-space:nowrap}
.rs-cmptable td b{font-weight:800;color:var(--ink)}

/* ---------- حالت‌ها (فشرده‌تر از نسخهٔ kit) ---------- */
.rs-state{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 20px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card)}
.rs-state__i{display:grid;place-items:center;width:58px;height:58px;border-radius:999px;background:var(--surface-soft);color:var(--primary)}
.rs-state__i .material-symbols-outlined{font-size:30px}
.rs-state--warn .rs-state__i{background:var(--warn-tint);color:var(--warn)}
.rs-state h2{margin:0;font-size:17px;font-weight:800;color:var(--ink)}
.rs-state p{margin:0;max-width:46ch;font-size:13px;line-height:1.9;color:var(--ink-soft);text-wrap:pretty}
.rs-state__a{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:4px}
.rs-alt{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));width:100%;margin-top:8px;text-align:start}
.rs-alt a{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface-soft);font-size:12.5px;font-weight:800;color:var(--ink)}
.rs-alt a:hover{border-color:var(--primary);background:var(--primary-tint);color:var(--ink)}
.rs-alt span{color:var(--primary);font-variant-numeric:tabular-nums}

/* خط مقایسهٔ قیمت زیر مبلغ */
.fcard__gap{font-size:10.5px;font-weight:700;color:var(--label);text-align:end}
.fcard__gap.is-cheap{color:var(--success)}
@media(max-width:1023px){.fcard__gap{grid-column:1;grid-row:3;text-align:start}}

/* ---------- لایهٔ رفت‌وبرگشت (RFRT) ---------- */
.rt-bar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-card);padding:6px}
.rt-tab{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:10px;background:transparent;border:1px solid transparent;font-family:inherit;text-align:start;cursor:pointer;min-width:0}
.rt-tab:disabled{cursor:not-allowed;opacity:.55}
.rt-tab.is-cur{background:var(--primary-tint);border-color:rgba(230,30,37,.28)}
.rt-tab.is-done{background:var(--success-tint)}
.rt-tab__n{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:var(--surface-sunken);color:var(--label);font-size:12px;font-weight:800}
.rt-tab.is-cur .rt-tab__n{background:var(--primary);color:#fff}
.rt-tab.is-done .rt-tab__n{background:var(--success);color:#fff}
.rt-tab__b{min-width:0;display:flex;flex-direction:column;line-height:1.4}
.rt-tab__b b{font-size:13px;font-weight:800;color:var(--ink)}
.rt-tab__b small{font-size:11px;color:var(--label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rt-total{position:fixed;inset-inline:0;bottom:0;z-index:var(--z-drawer);display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--surface);border-top:1px solid var(--hairline);box-shadow:0 -8px 30px rgba(16,24,40,.12);padding:10px var(--gutter-mobile) calc(10px + env(safe-area-inset-bottom))}
@media(min-width:768px){.rt-total{padding-inline:var(--gutter)}}
.rt-total__legs{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:12px;color:var(--ink-soft)}
.rt-total__legs b{color:var(--ink);font-weight:800}
.rt-total__act{display:flex;align-items:center;gap:10px;margin-inline-start:auto}
.rt-total__act .rf-stickybar__p{display:flex;flex-direction:column;line-height:1.3}
.rt-total__act .rf-stickybar__p small{font-size:10.5px;font-weight:700;color:var(--label)}
.rt-total__act .rf-stickybar__p b{font-size:15px;font-weight:800;color:var(--ink)}

/* ---------- نوار پرداخت قسطی (موبایل‌محور) ---------- */
.rs-bnpl{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;width:100%;padding:11px 12px;border:1.5px solid rgba(230,30,37,.28);border-radius:var(--r-card);background:var(--primary-tint);font-family:inherit;text-align:start;cursor:pointer}
.rs-bnpl:hover{border-color:var(--primary)}
.rs-bnpl__i{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--surface);color:var(--primary)}
.rs-bnpl__b{min-width:0;display:flex;flex-direction:column;gap:2px}
.rs-bnpl__b b{font-size:13px;font-weight:800;color:var(--ink)}
.rs-bnpl__b span{font-size:11.5px;color:var(--ink-soft)}
.rs-bnpl__b em{font-style:normal;font-weight:800;color:var(--primary);font-variant-numeric:tabular-nums}
.rs-bnpl__c{display:flex;align-items:center;gap:2px;font-size:12px;font-weight:800;color:var(--primary);white-space:nowrap}
@media(max-width:520px){
  .rs-bnpl{grid-template-columns:auto 1fr;row-gap:8px;padding:12px}
  .rs-bnpl__c{grid-column:1/-1;justify-content:center;min-height:40px;border-radius:10px;background:var(--surface);border:1px solid rgba(230,30,37,.3)}
}

/* ---------- سبک‌های کارت پرواز (قابل انتخاب از Tweaks) ---------- */
/* ب: ریل قیمت جداشده — ساختار رایج ایرانی */
.fcard--split .fcard__row{gap:12px}
@media(min-width:1024px){.fcard--split .fcard__row{grid-template-columns:minmax(0,1fr) 210px}
  .fcard--split .fcard__air{grid-column:1;grid-row:1}
  .fcard--split .fcard__mid{grid-column:1;grid-row:2}
  .fcard--split .fcard__meta{grid-column:1;grid-row:3}
  .fcard--split .fcard__buy{grid-column:2;grid-row:1/4;background:var(--surface-soft);margin-block:-14px;margin-inline-start:0;margin-inline-end:-16px;padding:14px 16px;border-inline-start:1px solid var(--hairline)}}
.fcard--split .fcard__t{font-size:19px}
/* ج: موبایل‌فرست — ساعت‌ها درشت، قیمت در نوار پایین */
.fcard--stacked .fcard__row{grid-template-columns:minmax(0,1fr)}
.fcard--stacked .fcard__air{border-bottom:1px solid var(--hairline);padding-bottom:10px}
.fcard--stacked .fcard__mid{padding-block:2px}
.fcard--stacked .fcard__t{font-size:22px}
.fcard--stacked .fcard__buy{grid-column:1;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;padding-top:10px;border-top:1px solid var(--hairline);border-inline-start:0;margin:0;min-width:0}
.fcard--stacked .fcard__buy .fcard__price{grid-column:1;grid-row:1;justify-content:flex-start}
.fcard--stacked .fcard__per,.fcard--stacked .fcard__gap{grid-column:1;text-align:start}
.fcard--stacked .fcard__cta{grid-column:2;grid-row:1/4;padding-inline:20px;min-height:40px}
/* د: کارت پرواز (boarding pass) — ستون قیمت مثل ته‌بلیط با خط پرفراژ جدا می‌شود.
   نیم‌دایره‌ها با overflow:hidden کارت بریده می‌شوند، پس رنگشان رنگ پس‌زمینهٔ صفحه است. */
.fcard--boarding{border-radius:14px;box-shadow:0 1px 2px rgba(16,24,40,.05)}
.fcard--boarding .fcard__row{position:relative;gap:10px 14px}
.fcard--boarding .fcard__air b{letter-spacing:.1px}
.fcard--boarding .fcard__air small{font-variant-numeric:tabular-nums;letter-spacing:.6px;text-transform:uppercase}
.fcard--boarding .fcard__t{font-size:20px;letter-spacing:-.2px}
.fcard--boarding .fcard__c{text-transform:uppercase;letter-spacing:.5px;font-weight:700}
.fcard--boarding .fcard__line{background:repeating-linear-gradient(to right,var(--hairline-strong) 0 4px,transparent 4px 8px)}
.fcard--boarding .fcard__price b{font-size:20px}
.fcard--boarding .fcard__buy{position:relative}
.fcard--boarding .fcard__buy::before,.fcard--boarding .fcard__buy::after{content:'';position:absolute;width:13px;height:13px;border-radius:999px;background:var(--bg);border:1px solid var(--hairline)}
@media(min-width:1024px){
  .fcard--boarding .fcard__row{grid-template-columns:150px minmax(0,1fr) 196px}
  .fcard--boarding .fcard__buy{border-inline-start:1.5px dashed var(--hairline-strong);margin-block:-14px;padding-block:14px;padding-inline-start:18px}
  .fcard--boarding .fcard__buy::before{top:-7px;inset-inline-start:-7px}
  .fcard--boarding .fcard__buy::after{bottom:-7px;inset-inline-start:-7px}
}
@media(max-width:1023px){
  .fcard--boarding .fcard__buy{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:12px;border-top:1.5px dashed var(--hairline-strong);margin-inline:-12px;padding:12px 12px 0}
  .fcard--boarding .fcard__buy::before{top:-7px;inset-inline-start:-7px}
  .fcard--boarding .fcard__buy::after{top:-7px;inset-inline-end:-7px}
  .fcard--boarding .fcard__price{grid-column:1;grid-row:1;justify-content:flex-start}
  .fcard--boarding .fcard__was,.fcard--boarding .fcard__save,.fcard--boarding .fcard__per{grid-column:1;text-align:start}
  .fcard--boarding .fcard__cta{grid-column:2;grid-row:1/5;padding-inline:20px}
}

/* ============================================================
   تنظیم‌های رفتاری (Tweaks) — همه ریسپانسیو
   مبنا: تم برند؛ قرمز = اقدام/فوریت، سبز = اطمینان،
   سرمه‌ای = آرامش/اعتبار. فقط رنگ دکمهٔ اقدام جابه‌جا می‌شود؛
   بقیهٔ پالت دست‌نخورده می‌ماند تا هویت بصری نشکند.
   ============================================================ */
/* تراکم */
body[data-density="comfy"] .fcard__row{padding:16px}
body[data-density="comfy"] .fcard__meta{gap:6px 14px}
body[data-density="comfy"] #flight-list{gap:14px}
body[data-density="tight"] .fcard__row{padding:9px 12px;gap:8px 10px}
body[data-density="tight"] .fcard__t{font-size:16px}
body[data-density="tight"] #flight-list{gap:7px}
@media(min-width:1024px){body[data-density="tight"] .fcard__row{padding:10px 14px}}

/* لنگر قیمت — نرخ اصلیِ خط‌خورده + «٪ تخفیف» + میزان صرفه‌جویی.
   فقط وقتی سرور ListPrice/DiscountPct بدهد (تخفیف واقعی ≥ ۱٪). */
.fcard__wasrow{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}
.fcard__was{display:inline;font-size:12.5px;font-weight:700;color:var(--label);font-variant-numeric:tabular-nums;
  text-decoration:line-through;text-decoration-thickness:1.5px;text-decoration-color:rgba(230,30,37,.75)}
.fcard__off{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:900;line-height:1.55;
  background:var(--primary);color:#fff}
/* ⚠ رنگ صرفه‌جویی #0b7f47 است، نه var(--success): سبز توکن (#0f9d58) روی سفید
     ۳٫۵۱ است و برای متن ۱۱ پیکسلی زیر حد AA (۴٫۵). #0b7f47 = ۵٫۰۷. */
.fcard__save{display:inline-flex;align-items:center;justify-content:flex-end;gap:3px;font-size:11.5px;font-weight:800;color:#0b7f47}
@media(min-width:1024px){.fcard__wasrow{margin-bottom:-6px}}
@media(max-width:1023px){
  .fcard--compact .fcard__was,.fcard--compact .fcard__save{grid-column:1;text-align:start}
  .fcard--compact .fcard__wasrow{grid-column:1;justify-content:flex-start}
}

/* تأیید اجتماعی */
.fcard__social{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--secondary)}
.fcard__social .material-symbols-outlined{font-size:14px}

/* فوریت قوی */
.fcard__meta i.is-urgent{color:var(--action);font-weight:800}
@media(prefers-reduced-motion:no-preference){
  .fcard__meta i.is-urgent.is-pulse{animation:urgPulse 2s ease-in-out infinite}
  @keyframes urgPulse{0%,100%{opacity:1}50%{opacity:.55}}
}

/* نشان برنده‌ها به‌شکل برچسب کوتاه */
.fcard__chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;color:#fff}
.fcard__chip--cheap{background:var(--success)}
.fcard__chip--fast{background:var(--secondary)}
.fcard__chip--best{background:var(--ink-800)}

/* اقساط داخل کارت */
.fcard__bnpl{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:700;color:var(--primary)}
.fcard__bnpl .material-symbols-outlined{font-size:14px}

/* ══════════════════════════════════════════════════════════════════
   افزوده‌های نسخهٔ Blade — چیزهایی که در نمونهٔ استاتیک جایی نداشتند
   ولی صفحهٔ نتایج فعلی دارد و نباید از دست بروند.
   ══════════════════════════════════════════════════════════════════ */

/* ══ کارت فروش ویژه (پرواز پین‌شده) ═══════════════════════════════════
   رنگ از چهار متغیر می‌آید تا نوار، حاشیه، قیمت و دکمه همه یک رنگ
   باشند. هر رنگ پنل ادمین (قرمز/طلایی/سبز/آبی) فقط همین متغیرها را
   عوض می‌کند.
     --rib-a / --rib-b  دو سر گرادیان نوار و دکمه
     --pin-ink          رنگ متن روی نوار و دکمه
     --pin-deep         رنگ عدد قیمت روی زمینهٔ سفید
     --pin-glow         سایه و هالهٔ دور کارت
   ⚠⚠ کنتراست‌ها با فرمول WCAG محاسبه شده‌اند (AA متن کوچک ≥ ۴٫۵)؛
      بدترین نقطهٔ هر گرادیان:
        قرمز  سفید روی #e61e25 = ۴٫۵۹     طلایی #2a1d00 روی #c99b2f = ۶٫۴۵
        سبز  سفید روی #0b7f47 = ۵٫۰۷     آبی  سفید روی #2a4d82 = ۸٫۴۶
      قیمت روی سفید: قرمز ۶٫۸۹ · طلایی ۵٫۲۶ · سبز ۵٫۰۷ · آبی ۱۱٫۳۹
      رنگ‌های قبلی رد می‌شدند: سبز سفید روی #0f9d58 = ۳٫۵۱، طلایی
      #1a1400 روی #9a7620 = ۴٫۳۶. اگر رنگی را عوض کردید، دوباره حساب کنید.
      عدد قیمت از --pin-deep است، نه --rib-a: طلایی روشن روی سفید
      تقریباً ناخواناست. */
.pin--red,  .fcard__pin--red  {--rib-a:#e61e25;--rib-b:#a8141a;--pin-ink:#fff;   --pin-deep:#b3161c;--pin-glow:rgba(230,30,37,.28)}
.pin--gold, .fcard__pin--gold {--rib-a:#f2d27a;--rib-b:#c99b2f;--pin-ink:#2a1d00;--pin-deep:#8a6614;--pin-glow:rgba(201,155,47,.38)}
.pin--green,.fcard__pin--green{--rib-a:#0b7f47;--rib-b:#075c33;--pin-ink:#fff;   --pin-deep:#0b7f47;--pin-glow:rgba(11,127,71,.28)}
.pin--blue, .fcard__pin--blue {--rib-a:#2a4d82;--rib-b:#142642;--pin-ink:#fff;   --pin-deep:#1f3a63;--pin-glow:rgba(31,58,99,.28)}

/* ── خودِ کارت: حاشیهٔ پررنگ، هالهٔ رنگی، زمینهٔ کمی گرم ── */
.fcard.is-pinned{
  border:2px solid var(--rib-b);
  box-shadow:0 12px 30px -14px var(--pin-glow),0 0 0 4px color-mix(in srgb,var(--rib-b) 10%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--rib-a) 7%,var(--surface)) 0,var(--surface) 60%);
}
.fcard.is-pinned:hover{border-color:var(--rib-b);box-shadow:0 16px 36px -14px var(--pin-glow),0 0 0 4px color-mix(in srgb,var(--rib-b) 14%,transparent)}
/* ⚠ مرورگرهای قدیمی color-mix ندارند؛ آن‌جا هاله و زمینه حذف می‌شود ولی
     حاشیهٔ ۲ پیکسلی و سایه می‌مانند — کارت همچنان متمایز است. */
@supports not (color: color-mix(in srgb, red 50%, blue)){
  .fcard.is-pinned{box-shadow:0 12px 30px -14px var(--pin-glow);background:var(--surface)}
}

/* ── نوار بالای کارت ── */
.fcard__pin{position:relative;overflow:hidden;display:flex;align-items:center;gap:9px;padding:9px 16px;
  font-size:13.5px;font-weight:900;letter-spacing:-.1px;line-height:1.3;
  color:var(--pin-ink,#fff);background:linear-gradient(90deg,var(--rib-a,#e61e25),var(--rib-b,#a8141a))}
.fcard__pin b{font-weight:900;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fcard__pin-ic{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;flex:none;
  background:color-mix(in srgb,var(--pin-ink,#fff) 20%,transparent)}
.fcard__pin-tag{margin-inline-start:auto;display:inline-flex;align-items:center;gap:3px;flex:none;
  padding:3px 10px;border-radius:999px;font-size:10.5px;font-weight:800;white-space:nowrap;
  background:color-mix(in srgb,var(--pin-ink,#fff) 16%,transparent)}
/* برق عبوری — آرام، هر ~۴ ثانیه یک‌بار. چشم را می‌گیرد بی‌آنکه مزاحم خواندن باشد. */
.fcard__pin::after{content:"";position:absolute;top:0;bottom:0;left:-45%;width:32%;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);
  transform:skewX(-20deg);animation:pinShine 4s ease-in-out infinite}
@keyframes pinShine{0%,60%{transform:skewX(-20deg) translateX(0)}100%{transform:skewX(-20deg) translateX(480%)}}
@media (max-width:380px){.fcard__pin-tag{display:none}}

/* ── داخل کارت: نام ایرلاین، قیمت و دکمه به رنگ فروش ویژه ── */
.fcard.is-pinned .fcard__air b{font-size:15px;font-weight:900}
.fcard.is-pinned .fcard__price b{font-size:23px;font-weight:900;color:var(--pin-deep)}
.fcard.is-pinned .fcard__cta{
  background:linear-gradient(90deg,var(--rib-a),var(--rib-b));color:var(--pin-ink);
  min-height:42px;font-size:14px;font-weight:900;box-shadow:0 8px 18px -8px var(--pin-glow)}
.fcard.is-pinned .fcard__cta:hover{background:linear-gradient(90deg,var(--rib-a),var(--rib-b));filter:brightness(1.07)}
@media (min-width:1024px){.fcard.is-pinned .fcard__buy{border-inline-start-color:color-mix(in srgb,var(--rib-b) 30%,transparent)}}

/* ── تخفیف روی کارت فروش ویژه: هم در نوار، هم کنار قیمت، به رنگ همان پین ──
   ⚠ نشان نوار زمینهٔ سفید و متن --pin-deep دارد (کنتراست‌ها بالاتر حساب شده:
     قرمز ۶٫۸۹ · طلایی ۵٫۲۶ · سبز ۵٫۰۷ · آبی ۱۱٫۳۹). */
.fcard__pin-off{display:inline-flex;align-items:center;flex:none;padding:3px 10px;border-radius:999px;
  background:#fff;color:var(--pin-deep,#b3161c);font-size:11.5px;font-weight:900;line-height:1.4;
  box-shadow:0 2px 6px -2px rgba(0,0,0,.25)}
.fcard.is-pinned .fcard__off{background:linear-gradient(90deg,var(--rib-a),var(--rib-b));color:var(--pin-ink)}
.fcard.is-pinned .fcard__was{font-size:13px}

/* ⚠ حرکت برای کسی که در سیستم‌عامل «کاهش حرکت» را روشن کرده، حذف. */
@media (prefers-reduced-motion:reduce){.fcard__pin::after{animation:none;display:none}}

/* ── مقایسه و علاقه‌مندی ──────────────────────────────────────────
   ⚠⚠ اینها **شناور نیستند**. نسخهٔ اول position:absolute با
      inset-inline-start:8px بود که در قالب راست‌به‌چپ یعنی لبهٔ راستِ
      کارت — همان‌جا که .fcard__air لوگوی ایرلاین را می‌گذارد، پس دو
      آیکن روی لوگو می‌افتادند.
      هر مختصات ثابتی روی کارت بالاخره روی چیزی می‌نشیند (سمت چپ هم
      قیمت و دکمهٔ خرید است)، پس به‌جای جابه‌جا کردنشان، از جریان
      شناور بیرون آمدند و ته ردیفِ چیپ‌ها نشستند. */
.fcard{position:relative}
.fcard__tools{display:inline-flex;align-items:center;gap:4px;flex:none}
.fcard__cmp,.fcard__fav{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--hairline);
  border-radius:8px;background:var(--surface);color:var(--label);cursor:pointer;transition:color .15s,border-color .15s}
.fcard__cmp:hover,.fcard__fav:hover{color:var(--action);border-color:var(--action)}
.fcard__cmp input{position:absolute;opacity:0;width:0;height:0}
.fcard__cmp:has(input:checked){color:#fff;background:var(--action);border-color:var(--action)}
.fcard__fav.is-on{color:var(--primary);border-color:var(--primary)}

/* ⚠ چیپ‌های فقط-ادمین عمداً خاکستریِ تیره‌اند تا در یک نگاه از
   اطلاعات مشتری جدا باشند و اپراتور اشتباهی آن‌ها را برای مسافر نخواند. */
.fcard__admin{background:#1e293b!important;color:#cbd5e1!important;border-color:#334155!important;font-variant-numeric:tabular-nums}
.fcard__admin.is-ok{color:#4ade80!important}
.fcard__admin.is-urgent{color:#f87171!important}

/* ── نوار مقایسه ── */
.rs-cmpbar{position:sticky;bottom:12px;z-index:30;display:flex;align-items:center;gap:12px;
  background:#0f172a;color:#fff;border-radius:16px;padding:12px 16px;box-shadow:0 12px 30px -12px rgba(15,23,42,.6)}
.rs-cmpbar b{font-size:13px;font-weight:800}
.rs-cmpbar button{font-family:inherit;font-weight:800;font-size:12.5px;cursor:pointer;border:0;border-radius:10px;padding:9px 16px}
.rs-cmpbar .is-go{background:var(--action);color:#fff}
.rs-cmpbar .is-go:disabled{opacity:.45;cursor:not-allowed}
.rs-cmpbar .is-clear{background:none;color:#cbd5e1}
/* ⚠ جدول مقایسه از کلاس .rs-cmptable استفاده می‌کند که بالاتر در همین
   فایل تعریف شده. کلاس .rs-cmp نوارِ ثابتِ پایین صفحه است و
   display:none دارد — بازتعریفش اینجا آن نوار را خراب می‌کرد. */
.rs-cmptable{min-width:420px}
.rs-cmptable td{text-align:center;border-inline-start:1px solid var(--hairline)}
.rs-cmptable .is-cheap{color:#0f9d58}

/* ── بنرهای بالای فهرست ── */
.rs-disc,.rs-flash{display:flex;align-items:center;gap:10px;border-radius:14px;padding:11px 14px;font-size:12.5px}
.rs-disc{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}
.rs-flash{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}
.rs-disc b,.rs-flash b{display:block;font-weight:800;font-size:13px}
.rs-disc small,.rs-flash small{display:block;opacity:.85;margin-top:2px}
.rs-flash__cd{margin-inline-start:auto;font-weight:800;background:#9a3412;color:#fff;border-radius:8px;padding:5px 10px}
.rs-trend{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:800;border-radius:8px;padding:4px 9px}
.rs-trend.is-good{background:#eff6ff;color:#1d4ed8}
.rs-trend.is-warn{background:#fffbeb;color:#b45309}

/* ── روز گذشته در ریل قیمت: کلیک‌ناپذیر و کم‌رنگ ──
   ⚠ بدون این، روز گذشته مثل بقیه دیده می‌شد و کاربر را به جستجویی
     می‌برد که هرگز نتیجه ندارد. */
.rs-day.is-past{opacity:.4;filter:grayscale(1);cursor:not-allowed}

/* ── لیست انتظار صندلی ── */
.rs-wl{margin-top:18px;border:1px dashed var(--hairline);border-radius:14px;padding:14px;text-align:start}
.rs-wl b{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:800;color:var(--ink)}
.rs-wl p{font-size:12px;color:var(--label);margin-top:4px}
.rs-wl__f{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.rs-wl__f .rf-input{flex:1;min-width:150px}

/* ── جزئیات: توقف و قوانین ایرلاین ── */
.fdet__layover{display:flex;align-items:center;gap:6px;margin:6px 0 6px 52px;padding:6px 10px;
  background:var(--surface-2,#f8fafc);border-radius:8px;font-size:11.5px;font-weight:700;color:var(--label)}
.fdet__rules{margin-top:10px;padding-top:10px;border-top:1px dashed var(--hairline)}
.fdet__rules b{display:block;font-size:12px;font-weight:800;color:var(--ink);margin-bottom:4px}
.fdet__rules p{font-size:11.5px;line-height:2;color:var(--label)}

/* ── تقویم قیمت ماه ── */
.rs-cal__h{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.rs-cal__h b{font-size:14px;font-weight:800;color:var(--ink)}
.rs-cal__h button{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--hairline);
  border-radius:9px;background:var(--surface);color:var(--ink);cursor:pointer}
.rs-cal__w,.rs-cal__g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rs-cal__w span{text-align:center;font-size:10.5px;font-weight:800;color:var(--label);padding-bottom:4px}
.rs-cal__pad{display:block}
.rs-cal__d{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;border:1px solid var(--hairline);
  border-radius:9px;background:var(--surface);cursor:pointer;font-family:inherit}
.rs-cal__d b{font-size:12.5px;font-weight:800;color:var(--ink)}
.rs-cal__d small{font-size:9px;color:var(--label);font-variant-numeric:tabular-nums}
.rs-cal__d.is-cheap{border-color:#0f9d58;background:#ecfdf5}
.rs-cal__d.is-cheap small{color:#0f9d58;font-weight:800}
.rs-cal__d.is-past{opacity:.35;cursor:not-allowed}
.rs-cal__d:not(.is-past):hover{border-color:var(--action)}

.rf-mini-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ⚠ .fcard__gap و .fcard.is-flash بالاتر در همین فایل تعریف شده‌اند؛
   تعریف دوم فقط سردرگمی می‌ساخت. فقط چیزی که واقعاً تازه است می‌ماند: */
[data-sort] .rs-tab__v{border-radius:6px;transition:background .15s}
[data-sort] .rs-tab__v:hover{background:rgba(230,30,37,.1)}

/* ══════════════════════════════════════════════════════════════════
   نوار خلاصه روی موبایل: مبدا و مقصد باید دیده شوند
   ══════════════════════════════════════════════════════════════════
   ⚠⚠ قبلاً فقط یک خط «تهران → مشهد» بود با white-space:nowrap و
      ellipsis. روی صفحهٔ باریک، دکمهٔ «تغییر» و آیکن هواپیما جا را
      می‌گرفتند و مقصد با «…» بریده می‌شد — یعنی کاربر روی صفحهٔ نتایج
      نمی‌دید دارد به کجا می‌رود.
      حالا روی موبایل کدهای سه‌حرفی فرودگاه (که همیشه جا می‌شوند) بالا
      می‌آیند و نام کامل شهرها پنهان می‌شود؛ از ۷۰۰px به بالا برعکس. */
.rs-sum__route{display:flex;align-items:center;gap:6px;min-width:0}
.rs-sum__route b{font-size:15px;font-weight:900;color:var(--ink);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.rs-sum__arw{font-size:16px;color:var(--primary);flex:none}
@media(min-width:700px){
  .rs-sum__route{display:none}
}
@media(max-width:699px){
  /* نام کامل شهرها جایش را به کدها می‌دهد؛ تاریخ و تعداد مسافر می‌ماند */
  #ss-route{display:none}
  .rs-sum__t small{font-size:11px}
}

/* ── تبلیغ صفحهٔ انتظار: نشان و لینک ── */
.rs-ad__badge{display:inline-block;background:var(--primary);color:#fff;font-size:9.5px;font-weight:800;
  border-radius:5px;padding:2px 6px;margin-inline-end:5px;vertical-align:middle}
.rs-ad__link{display:inline-block;margin-top:6px;font-size:11px;font-weight:800;color:#fff;
  background:rgba(255,255,255,.16);border-radius:7px;padding:4px 10px;text-decoration:none}
.rs-ad__link:hover{background:rgba(255,255,255,.28)}

/* ── فاصلهٔ ریل تاریخ از نوار چسبانِ بالا ──
   ⚠ نوار خلاصه sticky است و هنگام اسکرول روی محتوا می‌نشیند. بدون این
     فاصله، اولین چیزِ زیرش (ریل تاریخ) درست پشتش گیر می‌کرد و نیمه‌دیده
     می‌ماند. مقدار --header-h-* در زمان اجرا از هدر واقعی خوانده می‌شود
     (اسکریپت داخل results-v2.blade.php)، نه از عدد ثابت tokens.css. */
.rs-days{scroll-margin-top:calc(var(--header-h-mobile) + 84px);position:relative;z-index:0}
.rs-band{z-index:calc(var(--z-header) - 1)}

/* ══════════════════════════════════════════════════════════════════
   فرم جستجو: تغییرِ اعمال‌نشده
   ══════════════════════════════════════════════════════════════════
   ⚠⚠ حالا انتخاب مبدا/مقصد/تاریخ/مسافر بلافاصله جستجو نمی‌کند. این یعنی
      یک لحظه‌ای وجود دارد که فیلدهای فرم عوض شده‌اند ولی فهرست پایین
      هنوز نتیجهٔ جستجوی قبلی است. بدون نشانهٔ دیداری، کاربر فکر می‌کند
      این نتایجِ انتخاب تازه‌اش است و پرواز اشتباه می‌خرد.
      پس دکمهٔ جستجو نبض می‌زند و خانه‌های تغییرکرده حاشیهٔ رنگی می‌گیرند. */
.rs-edit.is-dirty .fcard__cta{animation:rsPulse 1.8s ease-in-out infinite}
@keyframes rsPulse{0%,100%{box-shadow:0 0 0 0 rgba(230,30,37,.45)}50%{box-shadow:0 0 0 5px rgba(230,30,37,0)}}
.rs-edit.is-dirty::before{
  content:'تغییرها هنوز اعمال نشده — دکمهٔ جستجو را بزنید';
  display:block;margin-bottom:6px;font-size:11px;font-weight:800;color:var(--primary)
}

/* ابزارها بلافاصله بعد از لینک «جزئیات» و در همان انتهای ردیف */
.fcard__meta .fcard__tools{margin-inline-start:8px}
@media(max-width:520px){
  /* روی صفحهٔ باریک ردیف چیپ‌ها می‌شکند؛ ابزارها ته خط خودشان بمانند */
  .fcard__meta .fcard__tools{margin-inline-start:auto}
}

/* ══════════════════════════════════════════════════════════════════
   فرم جستجو روی موبایل
   ══════════════════════════════════════════════════════════════════
   ⚠⚠ پایهٔ .rs-form یک grid است. روی صفحهٔ باریک، grid با جای‌گذاری
      خودکار می‌تواند دکمهٔ جستجو را کنارِ خانه‌ها بیندازد به‌جای زیرشان —
      همان چیزی که روی موبایل دیده می‌شد: یک دکمهٔ قرمزِ کشیده در چپ و
      خانه‌ها فشرده در راست.
      به‌جای وصله‌زدن به ستون‌های grid، اینجا کلاً از grid خارج می‌شویم و
      flex ستونی می‌گذاریم: هر خانه یک ردیف کامل، دکمه آخر و تمام‌عرض.
      این چیدمان به تعداد یا ترتیب فرزندها وابسته نیست، پس اگر روزی
      فیلدی اضافه شد، نمی‌شکند. */
@media(max-width:899px){
  .rs-edit{padding:10px 0 6px}

  .rs-edit .rs-form{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  /* هیچ فرزندی نباید کنار بقیه بنشیند */
  .rs-edit .rs-form > *{width:100%;flex:none}

  /* هدف لمسی بزرگ‌تر — ۴۸ پیکسل کمینهٔ قابل قبول روی موبایل است */
  .rs-edit .rs-cell{min-height:54px;padding:0 14px;border-radius:14px}
  .rs-edit .rs-cell__b small{font-size:11px}
  .rs-edit .rs-cell__b b{font-size:14.5px}

  /* جابه‌جایی مبدا/مقصد: دایرهٔ کوچک بین دو خانه.
     ⚠ در ستون عمودی، پیکان افقی بی‌معنی است؛ ۹۰ درجه می‌چرخد تا
       بالا/پایین را نشان دهد. width را از قاعدهٔ بالا پس می‌گیریم
       وگرنه تمام‌عرض می‌شد. */
  .rs-edit .rs-swap{
    width:38px;height:38px;
    align-self:center;
    margin:-3px 0;
    transform:rotate(90deg);
    background:var(--surface);
    box-shadow:0 2px 6px rgba(15,23,42,.12);
    position:relative;z-index:1;
  }

  /* دکمهٔ جستجو: تمام‌عرض، آخر فرم، بلندتر از خانه‌ها تا واضح باشد
     که قدم پایانی است */
  .rs-edit #do-search{
    width:100%;
    min-height:52px;
    margin-top:4px;
    border-radius:14px;
    font-size:14.5px;
  }

  /* هشدار «اعمال‌نشده» بالای فرم، نه چسبیده به دکمه */
  .rs-edit.is-dirty::before{
    margin-bottom:8px;line-height:1.7;
    background:rgba(230,30,37,.08);
    border-radius:10px;padding:7px 10px;
  }
}

/* ── کد فرودگاه کنار نام شهر (شهرهای چندفرودگاهی: THR / IKA) ── */
.fcard__ap{display:inline-block;margin-inline-start:3px;font-size:9.5px;font-weight:800;
  color:var(--label);background:var(--surface-soft);border-radius:4px;padding:0 3px;vertical-align:middle}
/* ── تاریخ پرواز زیر نام ایرلاین ── */
.fcard__date{display:block;margin-top:1px;font-size:10.5px;font-weight:700;color:var(--label)}
/* ── دکمهٔ «امروز» در تقویم ماه ── */
.rs-cal__today{margin-inline-start:auto;margin-inline-end:6px;background:none;border:0;
  font-family:inherit;font-size:11.5px;font-weight:800;color:var(--action);cursor:pointer;
  padding:4px 8px;border-radius:8px}
.rs-cal__today:hover{background:rgba(230,30,37,.1)}

/* ══ اصلاح تداخل‌های ناشی از افزودن تدریجی قواعد ═══════════════════ */

/* ⚠ .rs-cal__h button (۰,۱,۱) بر .rs-cal__today (۰,۱,۰) مقدم بود و
   دکمهٔ «امروز» را در یک مربع ۳۲ پیکسلیِ آیکونی می‌چپاند تا متن فارسی‌اش
   بریده شود. با افزودن والد، وزن برابر و ترتیب تعیین‌کننده می‌شود. */
.rs-cal__h button.rs-cal__today{
  width:auto;height:auto;display:inline-flex;align-items:center;
  border:0;background:none;border-radius:8px;padding:5px 9px;
  font-size:11.5px;font-weight:800;color:var(--action)
}
.rs-cal__h button.rs-cal__today:hover{background:rgba(230,30,37,.1)}

/* ⚠ .fcard__cmp قبلاً margin-inline-start:auto داشت (از زمانی که تنها
   ابزار گوشهٔ کارت بود). حالا داخل .fcard__tools است و آن auto با
   فاصله‌گذاری ردیف ابزارها می‌جنگید. */
.fcard__tools .fcard__cmp{margin-inline-start:0}

/* ⚠ دکمه‌های «روز قبل/بعد» و «تقویم ماه» روی موبایل هم لازم‌اند.
   .rs-days__nav تا ۹۰۰px مخفی است چون فلش‌های هفته روی موبایل جای
   ریل را می‌گرفتند — ولی این سه، روی موبایل کاربردی‌ترند نه کمتر. */
@media(max-width:899px){
  .rs-days__nav#day-prev,
  .rs-days__nav#day-next,
  .rs-days__nav#open-month{display:grid;width:30px}
}

/* ── امتیاز ایرلاین از مسافران خودمان ── */
.fcard__rate{color:#b45309!important;font-weight:800}
.fcard__rate .material-symbols-outlined{color:#f59e0b}

/* ══ فیلتر ایرلاین: لوگو + ارزان‌ترین نرخ ══════════════════════════════
   ⚠ فهرست نام‌های خالی به مسافر نمی‌گوید کدام را تیک بزند. لوگو برای
     شناخت سریع و «از ۴۳۲٬۰۰۰ تومان» برای تصمیم — همان دو چیزی که
     واقعاً بر اساسشان انتخاب می‌کند. */
.rs-air{display:flex;align-items:center;gap:9px;min-height:44px;padding:4px 6px;border-radius:10px;cursor:pointer}
.rs-air:hover{background:var(--surface-soft)}
.rs-air input{width:16px;height:16px;accent-color:var(--primary);flex:none}
.rs-air__logo{width:26px;height:26px;object-fit:contain;flex:none;border-radius:6px;background:#fff}
/* جایگزین متنی وقتی لوگو نیست — هرگز کادر خالی نشان نمی‌دهیم */
.rs-air__logo--txt{display:grid;place-items:center;font-size:9.5px;font-weight:800;color:var(--ink-soft);background:var(--surface-soft)}
.rs-air__body{min-width:0;flex:1}
.rs-air__name{display:block;font-size:12.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-air__from{display:block;font-size:11px;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums;margin-top:1px}
.rs-air__n{font-size:11px;font-weight:700;color:var(--placeholder);font-variant-numeric:tabular-nums;flex:none}

/* ══ اسلایدر دو-دستگیره (بازهٔ ساعت) ═══════════════════════════════════
   ⚠⚠ دو <input type=range> روی هم. هر دو شفافند و فقط دستگیره‌هایشان
      دیده می‌شود؛ ریل و بخش پرشده را خودمان می‌کشیم.
   ⚠ pointer-events روی خودِ input خاموش است و فقط روی دستگیره روشن —
      وگرنه ورودی بالایی کل سطح را می‌گیرد و دستگیرهٔ پایینی هرگز
      قابل گرفتن نیست. */
.rs-time__head{display:flex;align-items:center;justify-content:space-between;font-size:11.5px;font-weight:700;color:var(--ink-soft);margin-bottom:10px}
.rs-dual{position:relative;height:26px}
.rs-dual__track{position:absolute;inset-inline:0;top:11px;height:4px;border-radius:999px;background:var(--hairline-strong,#e5e7eb)}
.rs-dual__fill{position:absolute;top:11px;height:4px;border-radius:999px;background:var(--primary)}
.rs-dual input[type=range]{position:absolute;inset-inline:0;top:0;width:100%;height:26px;margin:0;background:none;-webkit-appearance:none;appearance:none;pointer-events:none}
.rs-dual input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;pointer-events:auto;width:18px;height:18px;border-radius:999px;background:var(--primary);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.28);cursor:grab}
.rs-dual input[type=range]::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:999px;background:var(--primary);border:3px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.28);cursor:grab}
.rs-dual input[type=range]::-moz-range-track{background:none;border:0}

/* ══ نرخ‌های دیگرِ همان پرواز (ادغام تکراری‌ها) ═════════════════════════
   ⚠ کارت بسته ارزان‌ترین گزینه را نشان می‌دهد؛ این بخش بقیه را باز
     می‌کند. هر ردیف دکمهٔ انتخاب **خودش** را دارد — کلیک روی آن باید
     همان نرخ را رزرو کند، نه نرخ کارت. */
.fcard__more{display:flex;align-items:center;justify-content:center;gap:4px;width:100%;margin-top:6px;padding:7px 10px;border:1px solid var(--hairline);border-radius:10px;background:var(--surface);color:var(--ink-soft);font-family:inherit;font-size:11.5px;font-weight:800;cursor:pointer;transition:background .15s,color .15s}
.fcard__more:hover{background:var(--surface-soft);color:var(--ink)}
.fcard__more .material-symbols-outlined{transition:transform .2s}
.fcard__more.is-open .material-symbols-outlined{transform:rotate(180deg)}

.falt__wrap{border-top:1px dashed var(--hairline);background:var(--surface-soft)}
.falt{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--hairline)}
.falt:last-child{border-bottom:0}
/* ارزان‌ترین گزینه — همان که روی کارت بسته دیده می‌شود */
.falt.is-best{background:color-mix(in srgb,var(--primary) 5%,transparent)}
.falt__meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:11.5px;font-weight:700;color:var(--ink-soft);min-width:0}
.falt__meta i{display:inline-flex;align-items:center;gap:3px;font-style:normal}
.falt__meta .material-symbols-outlined{font-size:14px;color:var(--placeholder)}
/* فقط برای کارمند — مشتری عادی نباید نام تامین‌کننده را ببیند */
.falt__prov{color:var(--primary)!important}
/* چیپ‌های فقط-ادمین داخل ردیف بازشو.
   ⚠ flex-basis:100% لازم است: .falt یک flex با wrap است و بدون این،
     چیپ‌ها کنار دکمهٔ «انتخاب» فشرده می‌شوند و ارقام قیمت خرید
     شکسته و ناخوانا می‌شوند — دقیقاً عددهایی که باید سریع خوانده شوند. */
.falt__admin{flex-basis:100%;margin-top:6px;gap:4px 8px!important;font-size:10.5px!important}
.falt__admin i{padding:2px 6px;border-radius:6px;border:1px solid transparent}
.falt__buy{display:flex;align-items:center;gap:8px;margin-inline-start:auto}
.falt__buy b{font-size:14px;font-weight:900;color:var(--ink)}
.falt__buy small{font-size:10.5px;color:var(--ink-soft)}
.falt__cta{padding:7px 14px;border:0;border-radius:9px;background:var(--primary);color:#fff;font-family:inherit;font-size:11.5px;font-weight:800;cursor:pointer}
.falt__cta:hover{background:var(--primary-hover,#c4161c)}
@media (max-width:560px){
  .falt{padding:10px 12px}
  .falt__buy{width:100%;justify-content:space-between}
}
.falt__time{font-weight:800!important;color:var(--ink)!important}
/* ⚠ فرودگاه متفاوت در یک گروه — رنگ هشدار عمدی است. THR و IKA یک ساعت
   رانندگی فاصله دارند و این چیپ تنها چیزی است که جلوی رفتن به فرودگاه
   اشتباه را می‌گیرد. */
.falt__port{font-weight:800!important;color:var(--action)!important}
