/* ══════════════ سیستم طراحی — «ابزار حرفه‌ای مدرن»، نسخه‌ی دوم ══════════════
   همان جهانی که کاربر از بین سه نسخه‌ی رندرشده انتخاب کرد، با اجرای سخت‌گیرانه‌تر:
   - یک سطح، بی‌سایه: سایه فقط برای لایه‌های شناور (تولتیپ، منو، برگه‌ی «بیشتر»).
     کارت‌های هم‌اندازه با یک سایه‌ی خاکستری همان «کیتِ SaaS» بود.
   - یک خانواده آیکون (Lucide، /static/icons.svg) به‌جای ایموجی.
   - یک واژگانِ نشان: آیکون + برچسبِ کوتاه، سه لحن (خوب/هشدار/خنثی).
   - جسارت فقط در یک جا: «نوار قیمت» — امروز کجای بازه‌ی کفِ ماه تا مبناست.
   قرارداد رنگ: افت قیمت خبر خوب است و سبزِ یشمی می‌گیرد؛ قرمز فقط برای ناموجود و متوقف.
   رنگ‌های متن اندازه‌گیری شده‌اند نه چشمی: ink-3 روی سطح ≥۴٫۵. */

@font-face{font-family:V;src:url(/static/fonts/Vazirmatn-Regular.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:V;src:url(/static/fonts/Vazirmatn-Medium.woff2) format("woff2");font-weight:500 600;font-display:swap}
@font-face{font-family:V;src:url(/static/fonts/Vazirmatn-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:E;src:url(/static/fonts/Estedad-Medium.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:E;src:url(/static/fonts/Estedad-Bold.woff2) format("woff2");font-weight:700;font-display:swap}

:root{
  --bg:#f4f5f8; --card:#ffffff; --card-2:#f8f9fb; --sunk:#eef0f4;
  --line:#e2e4ea; --line-2:#eceef2;
  --ink:#15161c; --ink-2:#53566a; --ink-3:#6b6e80;
  --ac:#3d5afe; --ac-ink:#ffffff; --ac-soft:#eceffe; --ac-line:#c9d1fd;
  --up:#00794f; --up-soft:#e6f5ee; --up-line:#b7e2cd;
  --warn:#8a5a00; --warn-soft:#fbf1dc; --warn-line:#efd7a2;
  --bad:#b8123c; --bad-soft:#fdeaf0;
  --new:#6a24e0; --new-soft:#f1eaff;
  --float:0 10px 30px -8px rgba(21,22,40,.18),0 2px 6px rgba(21,22,40,.06);
  --r:12px; --r-sm:8px; --r-xs:6px;
  --u:4px; --side:236px;
  --sh:none;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg:#0d0e13; --card:#15161d; --card-2:#1a1b23; --sunk:#111218;
    --line:#262834; --line-2:#1f2029;
    --ink:#eceef5; --ink-2:#a9acbd; --ink-3:#8c90a3;
    --ac:#8394ff; --ac-ink:#0d0e13; --ac-soft:#1c2146; --ac-line:#35407d;
    --up:#3ad693; --up-soft:#0f2b21; --up-line:#1e5a43;
    --warn:#e6b86a; --warn-soft:#2a2113; --warn-line:#5b4520;
    --bad:#ff7093; --bad-soft:#2e1420;
    --new:#b491ff; --new-soft:#241a3d;
    --float:0 12px 34px -8px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.4);
  }
}
:root[data-theme="dark"]{
  --bg:#0d0e13; --card:#15161d; --card-2:#1a1b23; --sunk:#111218;
  --line:#262834; --line-2:#1f2029;
  --ink:#eceef5; --ink-2:#a9acbd; --ink-3:#8c90a3;
  --ac:#8394ff; --ac-ink:#0d0e13; --ac-soft:#1c2146; --ac-line:#35407d;
  --up:#3ad693; --up-soft:#0f2b21; --up-line:#1e5a43;
  --warn:#e6b86a; --warn-soft:#2a2113; --warn-line:#5b4520;
  --bad:#ff7093; --bad-soft:#2e1420;
  --new:#b491ff; --new-soft:#241a3d;
  --float:0 12px 34px -8px rgba(0,0,0,.6),0 2px 6px rgba(0,0,0,.4);
}

/* ── پایه ─────────────────────────────────────────────────── */
*{box-sizing:border-box}
html{color-scheme:light dark;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);direction:rtl;
     font-family:V,"Segoe UI",Tahoma,system-ui,sans-serif;font-size:14px;line-height:1.7;
     -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--ac-soft);color:var(--ink)}
body{caret-color:var(--ac)}
*{scrollbar-color:var(--line) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:11px;height:11px}
::-webkit-scrollbar-thumb{background:var(--line);border:3px solid var(--bg);border-radius:8px;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:var(--ink-3);background-clip:content-box}
::-webkit-scrollbar-track{background:transparent}
a{color:var(--ac);text-underline-offset:3px}
:focus-visible{outline:2px solid var(--ac);outline-offset:2px;border-radius:var(--r-xs)}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
h1,h2,h3{font-family:E,V,sans-serif;font-weight:700;letter-spacing:-.012em;margin:0;text-wrap:balance}
.skip{position:absolute;inset-inline-start:8px;top:-60px;z-index:100;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 12px}
.skip:focus{top:8px}

/* آیکون: یک اندازه و یک ضخامت در همه‌جا. stroke از والد به درختِ <use> ارث می‌رسد. */
.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
    stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.ic-sm{width:13px;height:13px;vertical-align:-2px;stroke-width:2}
.ic-lg{width:20px;height:20px}

/* ── پوسته: نوارِ کناری روی دسکتاپ، نوارِ پایین روی موبایل و تبلت ───── */
.side{position:fixed;inset-block:0;inset-inline-start:0;width:var(--side);z-index:30;
  background:var(--card);border-inline-end:1px solid var(--line);display:flex;flex-direction:column;
  padding:calc(var(--u)*5) calc(var(--u)*3.5);gap:calc(var(--u)*5);view-transition-name:side}
.logo{font-family:E,V,sans-serif;font-weight:700;font-size:16px;display:flex;align-items:center;
  gap:calc(var(--u)*2.5);white-space:nowrap;color:var(--ink);text-decoration:none;padding-inline:calc(var(--u)*2)}
.logo i{width:30px;height:30px;border-radius:var(--r-sm);background:var(--ac);display:grid;place-items:center;
  color:var(--ac-ink);font-style:normal}
.logo i .ic{width:17px;height:17px;stroke-width:2.2}
.snav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.snav-h{margin:calc(var(--u)*4) 0 calc(var(--u)*1.5);padding-inline:calc(var(--u)*3);font-size:12px;color:var(--ink-3);font-weight:500}
.snav-h:first-child{margin-top:0}
.snav a{display:flex;align-items:center;gap:calc(var(--u)*3);padding:calc(var(--u)*2.25) calc(var(--u)*3);
  border-radius:var(--r-sm);color:var(--ink-2);text-decoration:none;font-size:13.5px;font-weight:500;position:relative}
.snav a:hover{background:var(--card-2);color:var(--ink)}
.snav a.on{background:var(--ac-soft);color:var(--ac)}
.snav a.on .ic{stroke-width:2.1}
.snav .dot,.tabbar .dot{width:7px;height:7px;border-radius:50%;background:var(--new);margin-inline-start:auto}
.side-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:calc(var(--u)*3) calc(var(--u)*2) 0;
  border-top:1px solid var(--line-2)}
.who{color:var(--ink-3);font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.main{margin-inline-start:var(--side);min-height:100dvh}
.wrap{max-width:1180px;margin:0 auto;padding:calc(var(--u)*8) calc(var(--u)*8) calc(var(--u)*18)}

.tabbar,.sheet{display:none}
@media (max-width:900px){
  .side{display:none}
  .main{margin-inline-start:0;padding-bottom:calc(64px + env(safe-area-inset-bottom))}
  .tabbar{display:grid;grid-template-columns:repeat(5,1fr);position:fixed;inset-inline:0;bottom:0;z-index:40;
    background:color-mix(in srgb,var(--card) 92%,transparent);backdrop-filter:saturate(1.4) blur(12px);
    -webkit-backdrop-filter:saturate(1.4) blur(12px);border-top:1px solid var(--line);
    padding:4px 4px calc(4px + env(safe-area-inset-bottom));view-transition-name:tabbar}
  .tabbar a,.tabbar button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
    min-height:52px;padding:4px 2px;border:0;background:none;border-radius:var(--r-sm);color:var(--ink-3);
    font:inherit;font-size:11px;font-weight:500;text-decoration:none;position:relative;cursor:pointer}
  .tabbar .ic{width:21px;height:21px;stroke-width:1.7}
  .tabbar .on{color:var(--ac)}
  .tabbar .on .ic{stroke-width:2.1}
  .tabbar .dot{position:absolute;top:7px;inset-inline-start:calc(50% + 6px);margin:0;width:6px;height:6px}
  .wrap{padding:calc(var(--u)*5) calc(var(--u)*4) calc(var(--u)*10)}
}

/* ۹۰۱ تا ۱۲۷۹ پیکسل: نوارِ کناری آیکونی می‌شود. با ۲۳۶ پیکسلِ نوارِ کامل، جدولِ «کف ماه» روی
   لپ‌تاپِ ۱۲۸۰ پیکسلی ۱۳۴ و روی ۱۰۲۴ پیکسلی ۳۹۰ پیکسل بیرون می‌زد. */
@media (min-width:901px) and (max-width:1279px){
  :root{--side:68px}
  .side{padding-inline:calc(var(--u)*2.5);align-items:stretch}
  .logo{justify-content:center;padding:0}
  .logo span,.snav a span,.snav-h,.who,.side-foot button span{display:none}
  .snav{gap:4px}
  .snav a{justify-content:center;padding:calc(var(--u)*2.75) 0}
  .snav a .ic{width:19px;height:19px}
  .snav .dot{position:absolute;top:8px;inset-inline-end:10px;margin:0}
  .snav-h + a{margin-top:calc(var(--u)*3)}
  .side-foot{justify-content:center;padding-inline:0}
}
/* ستون‌های درجه‌سه (فروشنده، سابقه، زمانِ بررسی) فقط روی صفحه‌ی پهن */
@media (max-width:1366px){.xl{display:none}}
/* برگه‌ی «بیشتر»: popover بومی — نه جاوااسکریپت، نه مدال */
.sheet[popover]{display:none}
.sheet[popover]:popover-open{display:flex;flex-direction:column;gap:2px;position:fixed;inset:auto 8px calc(70px + env(safe-area-inset-bottom)) 8px;
  margin:0;width:auto;max-width:none;padding:8px;border:1px solid var(--line);border-radius:var(--r);
  background:var(--card);color:var(--ink);box-shadow:var(--float)}
.sheet::backdrop{background:rgba(10,12,20,.28)}
.sheet a,.sheet button{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-sm);
  color:var(--ink);text-decoration:none;font:inherit;font-size:14px;font-weight:500;border:0;background:none;width:100%;cursor:pointer;
  justify-content:flex-start}
.sheet a:hover,.sheet button:hover{background:var(--card-2)}
.sheet a.on{color:var(--ac);background:var(--ac-soft)}
.sheet hr{border:0;border-top:1px solid var(--line-2);margin:4px 0}
.sheet .who{padding:8px 14px 2px}
@media (prefers-reduced-motion:no-preference){
  .sheet[popover]:popover-open{animation:sheet-in .18s cubic-bezier(.2,.8,.2,1)}
  @keyframes sheet-in{from{opacity:0;transform:translateY(8px)}}
}

/* نوار بارگذاری: صفحه‌ی افت ۰٫۹ ثانیه طول می‌کشد و تا امروز هیچ نشانی نمی‌داد که کلیک گرفته شد */
.loadbar{position:fixed;top:0;inset-inline:0;height:2px;z-index:90;pointer-events:none;opacity:0;
  background:linear-gradient(90deg,transparent,var(--ac) 30%,var(--ac) 70%,transparent);background-size:200% 100%}
html.is-loading .loadbar{opacity:1;animation:load 1.1s linear infinite}
@keyframes load{from{background-position:100% 0}to{background-position:-100% 0}}
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}

/* ── سرِ صفحه ───────────────────────────────────────────────── */
h1.page{font-size:24px;line-height:1.35;margin-bottom:calc(var(--u)*1.5)}
p.lede{text-wrap:pretty;color:var(--ink-3);font-size:13.5px;margin:0 0 calc(var(--u)*6);max-width:72ch;line-height:1.8}

/* ── نوارِ آمار: یک نوار با خط‌های مویی، نه چهار کارتِ هم‌اندازه ──── */
.kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-bottom:calc(var(--u)*6)}
.k{background:var(--card);padding:calc(var(--u)*3.5) calc(var(--u)*4.5);text-decoration:none;color:inherit;display:block;min-width:0}
a.k:hover{background:var(--card-2)}
a.k:hover span{color:var(--ac)}
/* عددِ درشت با Vazirmatn و ارقامِ متناسب. Estedad با tnum ارقام را از هم باز می‌کرد —
   «۳۸۱٬۴۱۰٬۰۰۰» ۲۱۸ پیکسل در برابرِ ۱۳۴ — و همین پهنا صفحه‌ی کالا را روی موبایل بیرون می‌زد. */
.k b{display:block;font-size:21px;font-weight:700;line-height:1.3;font-variant-numeric:normal;
  font-feature-settings:normal;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k span{color:var(--ink-3);font-size:12.5px}
.k.up b{color:var(--up)}

/* ── پنل ─────────────────────────────────────────────────── */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.panel + .panel{margin-top:calc(var(--u)*4)}
.ph{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*3);flex-wrap:wrap;
    padding:calc(var(--u)*4) calc(var(--u)*5);border-bottom:1px solid var(--line)}
.ph h2{font-size:15px}
.ph .count{color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums}

/* ── فرم‌ها ───────────────────────────────────────────────── */
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:calc(var(--u)*3);
         padding:calc(var(--u)*4) calc(var(--u)*5);align-items:end}
label{display:block;font-size:12px;color:var(--ink-3);margin-bottom:calc(var(--u)*1.5);font-weight:500}
/* برشمردنِ نوع‌ها یعنی هر <input> بی‌type از قلم می‌افتد و استایلِ خامِ مرورگر می‌گیرد
   (حاشیه‌ی inset، بدون گردی، Arial) — سرِ «جستجو» و «شهر» همین شد. نفیِ نوع‌های غیرمتنی
   به‌جای برشمردنِ متنی‌ها، این را برای همیشه می‌بندد. */
input:not([type=checkbox]):not([type=radio]):not([type=file]):not([type=hidden]):not([type=submit]):not([type=button]),
select{
  width:100%;padding:calc(var(--u)*2.25) calc(var(--u)*3);border:1px solid var(--line);
  border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;font-size:13.5px;line-height:1.6;
  transition:border-color .12s ease,box-shadow .12s ease}
input:not([type=checkbox]):not([type=radio]):hover,select:hover{border-color:var(--ink-3)}
/* کروم ارتفاعِ select را از متریکِ فونتِ گزینه‌ها می‌گیرد نه از line-height، و سه پیکسل
   کوتاه‌تر از input می‌ماند. کفِ ارتفاعِ مشترک ردیف را هموار می‌کند. */
.filters input,.filters select{min-height:42px}
input:focus,select:focus{outline:0;border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-soft)}
input::placeholder{color:var(--ink-3)}
.filters .wide{grid-column:span 2}
@media (max-width:640px){.filters .wide{grid-column:auto}}
.f-act{display:flex;gap:calc(var(--u)*2)}
.f-act .btn-p{flex:1}

button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:calc(var(--u)*1.5);
  padding:calc(var(--u)*2.25) calc(var(--u)*3.5);border:1px solid var(--line);border-radius:var(--r-sm);
  background:var(--card);color:var(--ink);font:inherit;font-size:13px;font-weight:500;cursor:pointer;
  text-decoration:none;transition:background .12s ease,border-color .12s ease,color .12s ease}
button:hover,.btn:hover{background:var(--card-2);border-color:var(--ink-3)}
button:active,.btn:active{transform:translateY(1px)}
.btn-p{background:var(--ac);color:var(--ac-ink);border-color:transparent;font-weight:600}
.btn-p:hover{background:var(--ac);filter:brightness(1.08);border-color:transparent}
.btn-sm{padding:calc(var(--u)*1.5) calc(var(--u)*2.75);font-size:12.5px}
.btn-q{border-color:transparent;background:transparent;color:var(--ink-3)}
.btn-q:hover{background:var(--card-2);color:var(--ink);border-color:transparent}
button[disabled]{opacity:.55;cursor:default}

/* ── جدول ─────────────────────────────────────────────────── */
.tscroll{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:right;padding:calc(var(--u)*2.5) calc(var(--u)*3.5);color:var(--ink-3);font-size:12px;
   font-weight:500;background:var(--card-2);border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:calc(var(--u)*3.5) calc(var(--u)*3.5);border-bottom:1px solid var(--line-2);
   vertical-align:middle;white-space:nowrap}
tbody tr:last-child td{border-bottom:0}
tbody tr{transition:background .12s ease}
tbody tr:hover td{background:var(--card-2)}
tbody tr.is-new td:first-child{box-shadow:inset -2px 0 0 var(--new)}

/* کالا: تصویر روی کاشیِ سفید (عکس‌های فروشگاه زمینه‌ی سفید دارند و روی تمِ تیره لکه می‌شدند) */
.it{display:flex;align-items:center;gap:calc(var(--u)*3);min-width:240px;white-space:normal}
td.c-act{padding-inline:calc(var(--u)*2.5)}
.it img,.it .ph-img{width:44px;height:44px;border-radius:var(--r-sm);object-fit:contain;
     background:#fff;padding:3px;flex:none;border:1px solid var(--line-2)}
.it .ph-img{background:var(--sunk);border-style:dashed}
.it b{display:block;font-weight:500;font-size:13.5px;line-height:1.55;color:var(--ink)}
.it a{color:var(--ink);text-decoration:none}
.it a:hover b{color:var(--ac)}
.it span{color:var(--ink-3);font-size:12px}
/* ستونِ اول (درصد + نشان‌ها) و زمان‌ها می‌شکنند: نشان‌های کنارِ درصد در یک خط ستونِ
   «افت» را ۴۱۷ پیکسل می‌کرد و جدول روی لپ‌تاپ ۲۱۶ پیکسل بیرون می‌زد. */
table.cards td:first-child{white-space:normal;max-width:210px;line-height:2.1}
table.cards td.muted{white-space:normal;min-width:72px}

/* ── عددها و نشان‌ها: یک واژگان ──────────────────────────────── */
.pill{display:inline-flex;align-items:center;gap:3px;background:var(--up-soft);color:var(--up);
      font-weight:700;padding:calc(var(--u)*1) calc(var(--u)*2.5);
      border-radius:var(--r-sm);font-size:13.5px;font-variant-numeric:tabular-nums;line-height:1.5}
.pill svg{width:7px;height:7px;fill:currentColor}
.np{font-weight:700;font-size:14.5px;font-variant-numeric:tabular-nums}
/* خطِ روی قیمتِ قبلی به‌صورتِ rule، نه text-decoration — روی ارقامِ فارسی ناخوانا بود */
.nr{color:var(--ink-3);font-variant-numeric:tabular-nums;position:relative;display:inline-block}
.nr::after{content:"";position:absolute;inset-inline:0;top:52%;border-top:1px solid var(--ink-3);opacity:.7}
.ns{color:var(--up);font-weight:600;font-variant-numeric:tabular-nums}
.muted{color:var(--ink-3);font-size:12.5px}

.badge,.tag{display:inline-flex;align-items:center;gap:4px;padding:1px calc(var(--u)*2);min-height:22px;
  border-radius:var(--r-xs);font-size:11.5px;line-height:1.5;font-weight:500;white-space:nowrap;
  vertical-align:middle;border:1px solid transparent;text-decoration:none}
.badge{margin-inline-start:4px}
.badge .ic,.tag .ic{width:13px;height:13px;stroke-width:2;vertical-align:0}
.badge-ok,.tag-up{background:var(--up-soft);color:var(--up)}
.badge-warn{background:var(--warn-soft);color:var(--warn)}
.badge-muted,.tag,.tag-q{background:var(--card);color:var(--ink-2);border-color:var(--line)}
.tag-bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.tag-new{background:var(--new-soft);color:var(--new);border-color:transparent}
a.badge:hover{filter:brightness(.97);text-decoration:underline}
.src{font-size:11.5px;color:var(--ink-3)}
.meta{display:flex;flex-wrap:wrap;gap:2px 12px;color:var(--ink-3);font-size:12px;margin-top:4px}
.meta span{display:inline-flex;align-items:center;gap:4px}
.meta .ic{width:13px;height:13px}
.meta .star{color:#c98f00}

/* ── نوارِ قیمت: امروز کجای «کفِ ماه ← مبنا» است ───────────────
   تنها جای جسورِ طراحی. سؤالِ واقعیِ این صفحه‌ها «واقعا ارزان است؟» است و درصد به‌تنهایی
   جوابش نیست: ۷۰٪ زیرِ مبنا با کفی که همین ماه پایین‌تر بوده یعنی صبر کن. شروعِ نوار
   (سمتِ راست) ارزان‌ترین است؛ خطِ عمودی کفِ ماه، نقطه امروز، و بخشِ پرشده فاصله تا مبنا. */
.pbar{display:block;position:relative;width:104px;height:6px;margin-top:7px;border-radius:99px;background:var(--sunk)}
.pb-fill{position:absolute;inset-block:0;inset-inline-end:0;border-radius:99px;background:var(--up-line)}
.pb-floor{position:absolute;top:-3px;bottom:-3px;width:2px;margin-inline-start:-1px;border-radius:2px;background:var(--ink-3)}
.pb-now{position:absolute;top:50%;width:11px;height:11px;margin-inline-start:-5.5px;margin-top:-5.5px;border-radius:50%;
  background:var(--up);box-shadow:0 0 0 2px var(--card)}
.pbar.is-above .pb-now{background:var(--warn)}
.pbar-lg{width:100%;max-width:420px;height:8px;margin-top:12px}
.pbar-lg .pb-now{width:14px;height:14px;margin-inline-start:-7px;margin-top:-7px}
.pbar-legend{display:flex;justify-content:space-between;max-width:420px;margin-top:6px;font-size:11.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums}

.empty{padding:calc(var(--u)*14) calc(var(--u)*5);text-align:center;color:var(--ink-3);font-size:14px;line-height:1.9}
.empty .ic{width:28px;height:28px;display:block;margin:0 auto 10px;color:var(--ink-3);stroke-width:1.5}
.pager{display:flex;gap:calc(var(--u)*2);align-items:center;justify-content:center;flex-wrap:wrap;
       padding:calc(var(--u)*4);border-top:1px solid var(--line);font-size:13px;color:var(--ink-3);
       font-variant-numeric:tabular-nums}
.note{color:var(--ink-3);font-size:12.5px;margin-top:calc(var(--u)*5);line-height:1.85;max-width:82ch}

/* ── خانه ─────────────────────────────────────────────────── */
.hero{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:calc(var(--u)*3);margin-bottom:calc(var(--u)*5)}
.spot{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:calc(var(--u)*4.5);
      text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:calc(var(--u)*3);
      transition:border-color .14s ease}
.spot:hover{border-color:var(--ac-line)}
.spot-top{display:flex;align-items:center;justify-content:space-between;gap:calc(var(--u)*2)}
.spot-lbl{font-size:12.5px;color:var(--ink-2);font-weight:500;display:inline-flex;align-items:center;gap:6px}
.spot-body{display:flex;gap:calc(var(--u)*3.5);align-items:center}
.spot-body img,.spot-body .ph-img{width:68px;height:68px;border-radius:var(--r-sm);object-fit:contain;
      background:#fff;padding:4px;flex:none;border:1px solid var(--line-2)}
.spot-body .ph-img{background:var(--sunk);border-style:dashed}
.spot-t{font-size:13.5px;font-weight:500;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;
        -webkit-box-orient:vertical;overflow:hidden}
.spot-p{display:flex;align-items:baseline;gap:calc(var(--u)*2);margin-top:calc(var(--u)*1)}
.spot-p b{font-size:17px;font-weight:700}
.rail{display:flex;gap:calc(var(--u)*3);overflow-x:auto;padding-bottom:calc(var(--u)*2);scroll-snap-type:x mandatory;
      scrollbar-width:none}
.rail::-webkit-scrollbar{display:none}
.rail > *{scroll-snap-align:start;flex:0 0 212px}
.card-min{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
          padding:calc(var(--u)*3);text-decoration:none;color:inherit;display:block;transition:border-color .14s ease}
.card-min:hover{border-color:var(--ac-line)}
.card-min img,.card-min .ph-img{width:100%;height:112px;object-fit:contain;background:#fff;
          border-radius:var(--r-sm);padding:8px;margin-bottom:calc(var(--u)*3);display:block}
.card-min .ph-img{background:var(--sunk)}
.card-min .t{font-size:12.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
             overflow:hidden;margin-bottom:calc(var(--u)*2);min-height:39px}
.sec-hd{display:flex;align-items:baseline;justify-content:space-between;gap:calc(var(--u)*3);
        margin:calc(var(--u)*9) 0 calc(var(--u)*3.5)}
.sec-hd h2{font-size:16px}
.sec-hd a{font-size:12.5px;text-decoration:none;display:inline-flex;align-items:center;gap:4px}
.dest{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);
  border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.dest a{display:flex;align-items:center;gap:calc(var(--u)*3.5);padding:calc(var(--u)*4);background:var(--card);
  text-decoration:none;color:var(--ink);transition:background .12s ease}
.dest a:hover{background:var(--card-2)}
.dest a > div{display:flex;flex-direction:column;min-width:0}
.dest b{font-size:14px;font-weight:600}
.dest span{color:var(--ink-3);font-size:12.5px;font-variant-numeric:tabular-nums}
/* نشانِ پلتفرم: حرفِ اول روی رنگِ خودش — تشخیص در یک نگاه، بدون لوگوی دزدیده‌شده */
.plat{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;
  font-family:E,V,sans-serif;font-weight:700;font-size:15px;color:#fff}
.plat .ic{width:19px;height:19px;stroke-width:2}
.plat-dk{background:#d8103a}.plat-sm{background:#e55f00}.plat-ok{background:#0b8048}
.plat-sf{background:#e0224b}.plat-fr{background:#6c35db}.plat-mb{background:#2459c8}

/* ── ورود ─────────────────────────────────────────────────── */
.gate{min-height:100dvh;display:grid;place-items:center;padding:calc(var(--u)*6)}
.gate-in{width:100%;max-width:372px}
.gate-hd{margin-bottom:calc(var(--u)*5)}
.gate-hd .logo{font-size:20px;margin-bottom:calc(var(--u)*2);padding:0}
.gate-hd p{color:var(--ink-3);font-size:13px;margin:0}
.gate-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:calc(var(--u)*6)}
.field{margin-bottom:calc(var(--u)*4)}
.notice{padding:calc(var(--u)*3) calc(var(--u)*3.5);border-radius:var(--r-sm);font-size:13.5px;
        margin-bottom:calc(var(--u)*4);background:var(--bad-soft);color:var(--bad)}

/* ── جزئیاتِ کالا ─────────────────────────────────────────── */
.two{display:grid;grid-template-columns:1.05fr 1fr;gap:calc(var(--u)*4);align-items:start}
.kv{display:grid;grid-template-columns:auto 1fr;gap:calc(var(--u)*2) calc(var(--u)*4);
  margin:calc(var(--u)*3) 0 0;font-size:13.5px}
.kv dt{color:var(--ink-3)}
.kv dd{margin:0;font-weight:500;font-variant-numeric:tabular-nums}
.verdict{display:flex;gap:calc(var(--u)*3);align-items:flex-start;padding:calc(var(--u)*3.5) calc(var(--u)*4);
         border-radius:var(--r);margin:0 0 calc(var(--u)*3);font-size:14px;line-height:1.7;border:1px solid transparent}
.verdict > .ic{width:20px;height:20px;margin-top:2px}
.crumb{display:inline-flex;align-items:center;gap:4px;color:var(--ink-3);text-decoration:none;font-size:13px;margin-bottom:calc(var(--u)*3)}
.crumb:hover{color:var(--ac)}
/* تصویر عمدا سقف‌دار است: thumb() بی‌کلاس عکسِ اندازه‌ی اصلیِ فروشگاه را بیش از هزار پیکسل
   بلند می‌کرد — آن‌قدر که عنوان را از کادر بیرون می‌انداخت. */
.phead{display:flex;gap:calc(var(--u)*6);align-items:flex-start;padding:calc(var(--u)*5);background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);margin-bottom:calc(var(--u)*4)}
.phead-img{width:148px;height:148px;flex:0 0 148px;object-fit:contain;background:#fff;border-radius:var(--r-sm);
  padding:8px;border:1px solid var(--line-2)}
.phead-body{min-width:0;flex:1}
.phead-body h1{margin:0 0 calc(var(--u)*1.5);font-size:19px;line-height:1.6;font-weight:700;color:var(--ink)}
.phead-body .muted{margin:0;font-size:13px;display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}
.phead-price{margin:calc(var(--u)*3) 0 0;display:flex;gap:8px;align-items:baseline}
.phead-price .num{font-size:28px;font-weight:700;color:var(--ink);font-variant-numeric:normal;letter-spacing:-.01em}
.phead-act{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:calc(var(--u)*4)}
.phead-act .btn-p{padding:calc(var(--u)*2.25) calc(var(--u)*4);font-size:13.5px}
@media (max-width:560px){
  .phead{flex-direction:column;gap:calc(var(--u)*4)}
  .phead-img{width:100%;height:200px;flex:none}
}

/* ── پنلِ اسکن ─────────────────────────────────────────────── */
.jobbar{flex:1 1 260px;display:flex;flex-direction:column;gap:calc(var(--u)*1.5)}
.locrow{display:flex;flex-wrap:wrap;gap:calc(var(--u)*2);align-items:center;margin:0}
.locrow input[name=name]{flex:0 1 150px}
.locrow input[name=point]{flex:1 1 240px}
.locadd{padding:calc(var(--u)*4) calc(var(--u)*5);border-top:1px solid var(--line)}
.scanbar{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*2.5);
  padding:calc(var(--u)*2.5) calc(var(--u)*5);border-bottom:1px solid var(--line);background:var(--card-2)}
.scanbar form{display:flex;gap:calc(var(--u)*2);margin:0}
.scanbar select{width:auto;min-height:0;padding:calc(var(--u)*1.25) calc(var(--u)*2.5);font-size:12.5px}
.scanbar .muted{font-size:12px}
.scanbox{padding:calc(var(--u)*4);background:var(--card-2);border:1px solid var(--line);border-radius:var(--r)}
.scanhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:calc(var(--u)*2.5)}
.scanhead b{font-size:15px}
.bar{height:6px;border-radius:99px;background:var(--line);overflow:hidden}
/* عرض روی فرزند می‌نشیند نه روی خودِ .bar — یک بار روی span گذاشتم و چون inline بود رندر نشد */
.bar>i{display:block;height:100%;border-radius:99px;background:var(--ac);transition:width .4s ease}
.it .spark{flex:0 0 72px;margin-inline-start:auto;opacity:.9}
.lastscan{padding:calc(var(--u)*4);background:var(--card-2);border:1px solid var(--line);
  border-radius:var(--r);display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
.ls-main b{font-size:16px}
.ls-meta{color:var(--ink-3);font-size:13px;display:flex;gap:6px;font-variant-numeric:tabular-nums}

/* ── نمودارِ روندِ قیمت (SVG سمتِ سرور) ─────────────────────── */
.seg{display:inline-flex;gap:2px;padding:2px;background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-sm)}
.seg a{padding:calc(var(--u)*1.25) calc(var(--u)*2.75);border-radius:var(--r-xs);font-size:12.5px;
  color:var(--ink-2);text-decoration:none;white-space:nowrap}
.seg a:hover{color:var(--ink)}
.seg a.on{background:var(--card);color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(20,20,40,.08)}
.chart{position:relative;padding:calc(var(--u)*3) calc(var(--u)*3.5) calc(var(--u)*1)}
/* direction:ltr فقط برای معنای مختصات؛ برچسب‌ها با RLM شروع می‌شوند تا «۶ تیر» وارونه نشود */
.chart svg{display:block;width:100%;height:auto;direction:ltr;overflow:visible;
  font-family:V,sans-serif;touch-action:pan-y;border-radius:var(--r-xs)}
.chart .ch-n{display:none}
.ch-grid{stroke:var(--line-2);stroke-width:1}
.ch-base{stroke:var(--line);stroke-width:1}
.ch-ax{fill:var(--ink-3);font-size:11px;font-variant-numeric:tabular-nums}
.ch-line{fill:none;stroke:var(--ac);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.ch-ref{stroke-width:1.2;stroke-dasharray:5 4}
line.ref-floor{stroke:var(--up)} line.ref-tgt{stroke:var(--ink-2)}
.ch-lab{fill:var(--ink);font-size:11.5px;font-weight:600;paint-order:stroke;stroke:var(--card);
  stroke-width:3.5px;stroke-linejoin:round}
text.ref-floor{fill:var(--up)} text.ref-tgt{fill:var(--ink-2)}
.ch-low{fill:var(--up);stroke:var(--card);stroke-width:2}
.ch-last{fill:var(--ac);stroke:var(--card);stroke-width:2}
.ch-cx{stroke:var(--ink-3);stroke-width:1}
.ch-cd{fill:var(--card);stroke:var(--ac);stroke-width:2}
.ch-hit{fill:transparent;cursor:crosshair}
.ch-tip{position:absolute;top:calc(var(--u)*2);pointer-events:none;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:var(--float);
  padding:calc(var(--u)*1.5) calc(var(--u)*2.5);font-size:12px;line-height:1.55;white-space:nowrap;z-index:2}
.ch-tip b{display:block;font-size:13.5px;font-weight:700}
.ch-tip span{color:var(--ink-3)}
.ch-table{border-top:1px solid var(--line)}
.ch-table summary{padding:calc(var(--u)*3) calc(var(--u)*5);cursor:pointer;color:var(--ink-2);font-size:13px}
.ch-table summary:hover{color:var(--ink)}
.ch-table td{padding-block:calc(var(--u)*2)}

/* ── چیپ‌ها: پلتفرم، دسته، زیردسته ─────────────────────────── */
.chips{display:flex;gap:calc(var(--u)*1.5);overflow-x:auto;scrollbar-width:none;padding:2px 0}
.chips::-webkit-scrollbar{display:none}
.chips-wrap{flex-wrap:wrap;overflow:visible}
.chip{display:inline-flex;align-items:center;gap:calc(var(--u)*1.5);white-space:nowrap;flex:none;
  padding:calc(var(--u)*1.25) calc(var(--u)*3);border:1px solid var(--line);border-radius:99px;
  background:var(--card);color:var(--ink-2);font-size:12.5px;text-decoration:none;transition:border-color .12s ease,color .12s ease}
.chip:hover{border-color:var(--ink-3);color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--card);font-weight:600}
.chip small{color:var(--ink-3);font-size:11.5px;font-variant-numeric:tabular-nums}
.chip.on small{color:color-mix(in srgb,var(--card) 72%,transparent)}
.facet{padding:calc(var(--u)*2.75) calc(var(--u)*5);border-bottom:1px solid var(--line-2);
  display:flex;align-items:center;gap:calc(var(--u)*3)}
.facet > b{font-size:12px;color:var(--ink-3);font-weight:500;flex:none;min-width:48px}

/* ── فیلترها روی موبایل جمع می‌شوند ────────────────────────── */
.fbox > summary{display:none}
@media (max-width:560px){
  .fbox > summary{display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:calc(var(--u)*3.5) calc(var(--u)*4);cursor:pointer;font-weight:600;font-size:13.5px;list-style:none}
  .fbox > summary::-webkit-details-marker{display:none}
  .fbox > summary::after{content:"";width:8px;height:8px;border:solid var(--ink-3);
    border-width:0 1.6px 1.6px 0;transform:rotate(45deg);margin-top:-4px;flex:none;transition:transform .15s ease}
  .fbox[open] > summary::after{transform:rotate(-135deg);margin-top:4px}
  .fbox > summary small{color:var(--ink-3);font-weight:400;font-size:12px;overflow:hidden;
    text-overflow:ellipsis;white-space:nowrap;flex:1;text-align:start}
  .fbox[open] > summary{border-bottom:1px solid var(--line)}
}

/* ── دیل‌ها: دو بخش، گروه به دسته یا رستوران ────────────────── */
.tabs{display:flex;gap:2px;padding:3px;margin:0 0 calc(var(--u)*4);background:var(--sunk);border:1px solid var(--line);
  border-radius:var(--r);width:fit-content}
.tabs a{display:inline-flex;align-items:center;gap:calc(var(--u)*2);padding:calc(var(--u)*2) calc(var(--u)*5);
  border-radius:9px;color:var(--ink-2);font-family:E,V,sans-serif;font-weight:700;font-size:14.5px;text-decoration:none}
.tabs a:hover{color:var(--ink)}
.tabs a.on{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(20,20,40,.1)}
.tabs .ic{width:18px;height:18px}
.tabs small{font-family:V,sans-serif;font-weight:500;font-size:12px;color:var(--ink-3)}
.crumbs{display:flex;flex-wrap:wrap;align-items:baseline;gap:calc(var(--u)*1.5)}
.crumbs a{color:var(--ink-2);text-decoration:none}
.crumbs a:hover{color:var(--ac)}
.crumbs span{color:var(--ink-3);font-weight:400}
.dgroup + .dgroup{border-top:1px solid var(--line)}
.dg-hd{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*2) calc(var(--u)*4);
  padding:calc(var(--u)*3.5) calc(var(--u)*5) calc(var(--u)*2.5);background:var(--card-2);border-bottom:1px solid var(--line-2)}
.dg-t{display:flex;align-items:baseline;gap:calc(var(--u)*2.5);flex-wrap:wrap}
.dg-t h3{font-size:14.5px}
.dg-t h3 a{color:var(--ink);text-decoration:none}
.dg-t h3 a:hover{color:var(--ac)}
.dg-perks{display:flex;flex-wrap:wrap;gap:4px;flex:1 1 280px}
.dg-perks .badge{margin:0}
.dg-more{margin-inline-start:auto;font-size:12.5px;text-decoration:none;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}
.dg-note{margin:0;padding:calc(var(--u)*3) calc(var(--u)*5);color:var(--ink-2);font-size:13px;
  border-bottom:1px solid var(--line-2);background:var(--card-2);display:flex;align-items:center;gap:8px}
/* بنرهای صفحه‌ی اولِ موبایل ۱۴۰: نوارِ افقی، ارتفاعِ ثابت، عرض از خودِ بنر */
.mbban{padding:calc(var(--u)*2.5) calc(var(--u)*5);border-bottom:1px solid var(--line)}
.mbban h3{font-size:13px;display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin:0 0 calc(var(--u)*2)}
.mbban h3 small{color:var(--ink-3);font-weight:400;font-size:12px}
.mbban-row{display:flex;gap:calc(var(--u)*2.5);overflow-x:auto;scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;padding-bottom:6px}
.mbban-row a{flex:0 0 auto;position:relative;scroll-snap-align:start;border-radius:var(--r-sm);
  overflow:hidden;border:1px solid var(--line-2);background:var(--sunk)}
.mbban-row img{display:block;height:88px;width:auto;max-width:none}
.mbban-row .badge{position:absolute;top:6px;inset-inline-start:6px;margin:0}
/* اسکنِ در حالِ اجرا: نوارِ باریک بالای پنل، دکمه‌ی اسکن پایینِ فهرست (ابزارِ ادمین، نه محتوا) */
.scanstrip{display:flex;align-items:center;gap:calc(var(--u)*2.5);padding:calc(var(--u)*2) calc(var(--u)*5);
  background:var(--ac-soft);border-bottom:1px solid var(--line);font-size:12.5px;color:var(--ink-2)}
.scanstrip .bar{flex:1 1 120px}
.scanstrip .scan-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.sfoot .scanbar{border-bottom:0;border-top:1px solid var(--line)}
.spin{animation:spin 1.2s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}
/* دسته‌ها روی دسکتاپ چندخطی (قبلا با ۱۱ دسته آخری «گو…» بریده می‌شد و هیچ نشانی از اسکرول نبود)؛
   روی موبایل یک خطِ اسکرولی با محوشدگیِ لبه‌ی چپ که فقط تا وقتی چیزی آن‌طرف مانده می‌ماند (ui.js) */
@media (min-width:901px){.facet .chips{flex-wrap:wrap;overflow:visible}}
.chips.can-scroll{-webkit-mask-image:linear-gradient(to left,#000 calc(100% - 44px),transparent);
  mask-image:linear-gradient(to left,#000 calc(100% - 44px),transparent)}
.tlink{display:inline-flex;align-items:center;gap:3px;margin-top:4px;font-size:11.5px;color:var(--ink-3);text-decoration:none}
.tlink:hover{color:var(--ac)}
.tcheck{display:inline-flex;align-items:center;gap:3px;margin-top:4px;margin-inline-start:6px;padding:1px 6px;
  font:inherit;font-size:11.5px;color:var(--ac);background:var(--ac-soft);border:1px solid var(--ac-line);border-radius:var(--r-xs);cursor:pointer}
.tcheck[hidden]{display:none}
.tcheck:hover{background:var(--ac-soft);border-color:var(--ac)}
.tcheck:disabled{cursor:progress;opacity:.75}
.badge-bad{background:var(--bad-soft);color:var(--bad)}
/* جزئیاتِ وضعیتِ کالای اپن‌باکس: دکمه با افزونه، و بعد از گرفتن همین‌جا می‌ماند */
.odet{margin-top:5px}
.odetail{display:inline-flex;align-items:center;gap:3px;padding:1px 6px;font:inherit;font-size:11.5px;color:var(--ac);
  background:var(--ac-soft);border:1px solid var(--ac-line);border-radius:var(--r-xs);cursor:pointer}
.odetail[hidden]{display:none}
.odetail:hover{background:var(--ac-soft);border-color:var(--ac)}
.odet-box summary{cursor:pointer;font-size:12px;color:var(--ac)}
.odet-box dl{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;margin:6px 0 0;font-size:12px}
.odet-box dt{color:var(--ink-3)}
.odet-box dd{margin:0}
.odet-box p{margin:4px 0 0;font-size:12px}
/* ستون‌ها در همه‌ی گروه‌ها هم‌تراز؛ سرستون فقط یک بار، بالای گروهِ اول */
table.dtab{table-layout:fixed}
table.dtab td.c-it .it{min-width:0}
table.nohead thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ── موبایل ───────────────────────────────────────────────── */
@media (pointer:coarse){
  button,.btn,.btn-sm{min-height:44px}
  .seg a,.chip{min-height:38px}
  .seg a{display:inline-flex;align-items:center}
}
@media (max-width:900px){
  .two{grid-template-columns:1fr}
  .kpi{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  h1.page{font-size:21px}
  /* جدول‌ها روی موبایل: هر ردیف یک کارت. حذفِ ستون‌های درجه‌دو کافی نبود: با چهار ستونِ
     عددی جدولِ «افت» ۷۶۲ پیکسل بود روی صفحه‌ی ۳۹۰ پیکسلی و قیمت بیرون از کادر. */
  .sec{display:none}
  .it{min-width:0}
  .it img,.it .ph-img{width:52px;height:52px}
  th,td{padding-inline:calc(var(--u)*2.5)}
  table.cards .pbar{width:88px}
  .chart .ch-w{display:none}
  .chart .ch-n{display:block}
  .facet{padding-inline:calc(var(--u)*4)}
  .k b{font-size:19px}
  .k{padding:calc(var(--u)*3) calc(var(--u)*3.5)}
  .tabs{width:100%}
  /* سه بخش با عدد در ۳۵۸ پیکسل جا نمی‌شد و صفحه ۲۵ پیکسل افقی اسکرول می‌خورد: عدد به خطِ دوم */
  .tabs a{flex:1 1 0;min-width:0;justify-content:center;flex-wrap:wrap;row-gap:0;column-gap:6px;
    padding-inline:calc(var(--u)*1.5);text-align:center;line-height:1.35}
  .tabs small{flex-basis:100%}
  .dg-hd{padding-inline:calc(var(--u)*4)}
  .mbban{padding-inline:calc(var(--u)*4)}
  .mbban-row img{height:68px}
  table.dtab{table-layout:auto}
  table.dtab col{width:auto!important}
  table.dtab td:first-child{flex:0 0 auto;align-self:flex-start}
  table.dtab td.c-it{flex:1 1 200px}
  /* فروشگاه و زمان در یک خطِ ریز، بی‌برچسب — کارتِ دیل ۲۵۰ پیکسل بود */
  table.dtab td.muted[data-l]{font-size:11.5px;flex:0 1 auto}
  table.dtab td.muted[data-l]::before{display:none}
  table.dtab td.muted br{display:none}
  table.dtab td.muted .tag{padding:0 calc(var(--u)*1.5);margin-inline-end:4px}
  table.dtab td.muted .badge{margin-inline-start:6px}
}

/* ── نوارِ فیلتر داخلِ پنلِ نتایج ───────────────────────────
   قبلا فیلترها پنلِ جدای خودشان را داشتند — دو ردیف فیلدِ تمام‌قد پیش از فهرست. حالا یک
   نوارِ فشرده زیرِ سرِ پنل؛ فیلدهای کم‌کاربرد در «فیلترهای بیشتر»، که اگر یکی‌شان فعال
   باشد باز می‌آید تا فیلترِ فعال هیچ‌وقت پنهان نماند. */
.fbox.tbar{border-bottom:1px solid var(--line-2);background:var(--card)}
.tbar .filters{display:flex;flex-wrap:wrap;gap:calc(var(--u)*2.5);align-items:flex-end;padding:calc(var(--u)*3.5) calc(var(--u)*5)}
.tbar .filters > div,.advf-in > div{flex:1 1 150px;max-width:230px}
.tbar .filters > .f-act{flex:0 0 auto;max-width:none}
.tbar .f-act .btn-p{flex:none}
.tbar label{margin-bottom:4px;font-size:11.5px}
.tbar .filters input,.tbar .filters select{min-height:38px;padding-block:calc(var(--u)*1.5)}
.advf{flex:1 1 100%}
.advf > summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;color:var(--ac);font-size:12.5px;
  font-weight:500;list-style:none;padding:2px 0;width:fit-content}
.advf > summary::-webkit-details-marker{display:none}
.advf[open] > summary{margin-bottom:calc(var(--u)*2.5)}
.advf-in{display:flex;flex-wrap:wrap;gap:calc(var(--u)*2.5);align-items:flex-end}
.scanbar .scan-msg{flex:1 1 220px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* راهنمای نوارِ قیمت، یک بار بالای جدول */
.pleg{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:calc(var(--u)*2) calc(var(--u)*5);
  font-size:11.5px;color:var(--ink-3);border-bottom:1px solid var(--line-2)}
.pleg i{display:inline-block;vertical-align:middle;margin-inline-end:5px}
.pleg .l-now{width:9px;height:9px;border-radius:50%;background:var(--up)}
.pleg .l-above{width:9px;height:9px;border-radius:50%;background:var(--warn)}
.pleg .l-floor{width:2px;height:11px;border-radius:2px;background:var(--ink-3)}
.pleg .l-fill{width:18px;height:5px;border-radius:99px;background:var(--up-line)}
@media (max-width:560px){.tbar .filters > div,.advf-in > div{max-width:none;flex-basis:100%}.pleg{padding-inline:calc(var(--u)*4)}}
/* جدول‌ها زیرِ ۱۱۰۰ پیکسل: هر ردیف یک کارت (همان حالتِ موبایل) */
@media (max-width:1100px){
  table.cards thead{display:none}
  table.cards,table.cards tbody{display:block}
  table.cards tr{display:flex;flex-wrap:wrap;align-items:flex-end;gap:calc(var(--u)*2.5) calc(var(--u)*4.5);
    padding:calc(var(--u)*4) calc(var(--u)*4);border-bottom:1px solid var(--line-2)}
  table.cards tbody tr:last-child{border-bottom:0}
  table.cards td{display:block;padding:0;border:0;white-space:normal;background:none!important}
  table.cards td:first-child,table.cards td.c-it{flex:1 1 100%;max-width:none}
  table.cards td.sec:not([data-l]){display:none}
  table.cards td.sec[data-l]{display:block}
  table.cards td[data-l]::before{content:attr(data-l);display:block;color:var(--ink-3);font-size:11px;
    font-weight:400;line-height:1.4;margin-bottom:1px}
  table.cards td.c-act{margin-inline-start:auto}
  table.cards tbody tr:hover{background:var(--card-2)}
  table.cards tbody tr.is-new{box-shadow:inset -3px 0 0 var(--new)}
  table.cards tbody tr.is-new td:first-child{box-shadow:none}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important}
  @view-transition{navigation:none}
}

/* ── اسپرد تتر ────────────────────────────────────────────── */
.arb-v{margin-bottom:calc(var(--u)*4);align-items:flex-start}
.arb-v p{margin:calc(var(--u)*1) 0 0;color:var(--ink-2);line-height:1.95}
.arb-v p b{color:var(--ink);font-weight:600}
.arb-up{background:var(--up-soft);color:var(--up)}
.arb-warn{background:var(--warn-soft);color:var(--warn)}
.arb-mute{background:var(--card);border-color:var(--line);color:var(--ink)}
.arb-mute > .ic{color:var(--ink-3)}
.sp{font-weight:600;white-space:nowrap}
.sp-pos{color:var(--up)}
.sp-neg{color:var(--ink-3)}
.arb-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--u)*2.5) calc(var(--u)*3);margin:0 0 calc(var(--u)*4)}
.arb-ctl label{margin:0;font-size:12.5px;color:var(--ink-2)}
.arb-thr{display:inline-flex;align-items:center;gap:6px;color:var(--ink-3)}
.arb-thr input{width:84px!important;min-height:34px;padding-block:4px!important}
.arb-ctl > .muted{margin-inline-start:auto}
.arb-now{display:flex;gap:10px;align-items:flex-start;margin:0;padding:calc(var(--u)*3) calc(var(--u)*5);
  border-bottom:1px solid var(--line-2);background:var(--card-2);font-size:13.5px;line-height:1.9}
.arb-now .ic{color:var(--ac);margin-top:5px}
.arb-why{margin:0;padding:calc(var(--u)*3) calc(var(--u)*5);color:var(--ink-2);font-size:13px;line-height:1.9;
  border-bottom:1px solid var(--line-2);max-width:none}
.rt-path{display:flex;align-items:center;gap:6px;white-space:nowrap}
.rt-path .ic{color:var(--ink-3)}
tr.rt-good td{background:var(--up-soft)}
.rt-bar{display:inline-block;width:56px;height:6px;border-radius:99px;background:var(--sunk);vertical-align:middle;
  margin-inline-end:8px;overflow:hidden}
.rt-bar i{display:block;height:100%;background:var(--up);border-radius:99px}
@media (max-width:560px){.arb-ctl > .muted{margin-inline-start:0;flex-basis:100%}.arb-now,.arb-why{padding-inline:calc(var(--u)*4)}}
/* ریلِ «ارزنده‌ترین دیل‌ها»ی خانه: کارت div است تا حکمِ بازار (که خودش لینک است) تویِ لینکِ کالا نیفتد */
.card-min > a{display:block;color:inherit;text-decoration:none}
.card-min .src{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:calc(var(--u)*2)}
