/* عبدی‌پلاس — مشتری: «سفید اپلی» (روشن/تیره خودکار) · مدیر: «صنعتی زرد».
   فقط transform و opacity متحرک می‌شوند تا روی گوشی ارزان هم لگ نزند. */
:root{
  --bg:#f2f2f7; --card:#fff; --card2:#f7f7fa; --text:#1c1c1e; --muted:#6e6e73; --hint:#8e8e93;
  --sep:#e3e3e8; --fill:#e6e6eb; --accent:#c2410c; --on-accent:#fff; --accent-soft:#fff1e6;
  --brand:#ff7a1a; --ok:#1f7a3a; --ok-soft:#e5f4ea; --bad:#b3261e; --bad-soft:#fdeceb;
  --bar:rgba(249,249,251,.86); --shadow:0 1px 2px rgba(0,0,0,.04),0 6px 20px rgba(0,0,0,.05);
  --ios:cubic-bezier(.32,.72,0,1); --spring:cubic-bezier(.34,1.4,.64,1);
  --safe-b:env(safe-area-inset-bottom,0px);
  --font:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Arabic",Vazirmatn,system-ui,sans-serif;
}
:root[data-theme="dark"]{
  --bg:#000; --card:#1c1c1e; --card2:#232326; --text:#f2f2f7; --muted:#98989f; --hint:#7c7c83;
  --sep:#2c2c2e; --fill:#2c2c2e; --accent:#ff8a3d; --on-accent:#1a0f0a; --accent-soft:#3a2214;
  --brand:#ff8a3d; --ok:#5fd28a; --ok-soft:#12301d; --bad:#ff6b61; --bad-soft:#3a1614;
  --bar:rgba(22,22,24,.86); --shadow:none;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:var(--font);
  -webkit-font-smoothing:antialiased;overflow:hidden;overscroll-behavior:none}
button,input,textarea,select{font:inherit;color:inherit}
button{cursor:pointer}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}

/* ── صحنه و صفحه‌ها (پشته با حرکت iOS) ── */
.stage{position:fixed;inset:0;bottom:calc(64px + var(--safe-b));overflow:hidden}
.screen{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
  background:var(--bg);padding:0 16px 28px;contain:layout paint}
.screen.hidden{visibility:hidden}
.screen.in-push{animation:inPush .42s var(--ios) both}
.screen.out-push{animation:outPush .42s var(--ios) both}
.screen.in-pop{animation:inPop .42s var(--ios) both}
.screen.out-pop{animation:outPop .42s var(--ios) both;z-index:2}
.screen.in-fade{animation:fadeIn .2s ease-out both}
@keyframes inPush{from{transform:translateX(-100%)}to{transform:none}}
@keyframes outPush{to{transform:translateX(30%);opacity:.6}}
@keyframes inPop{from{transform:translateX(30%);opacity:.6}to{transform:none;opacity:1}}
@keyframes outPop{to{transform:translateX(-100%)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes pop{0%{opacity:0;transform:scale(.9)}100%{opacity:1;transform:none}}
.rise{animation:rise .5s var(--ios) both}
.screen.quiet .rise,.screen.quiet .pop,.screen.quiet .large .w,.screen.quiet .meter i{animation:none}
.brandmark{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:900;letter-spacing:-.3px}
.brandmark i{width:26px;height:26px;border-radius:8px;background:linear-gradient(135deg,#ff9a3d,#e0550f);color:#fff;font-style:normal;
  font-size:19px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 3px 10px rgba(224,85,15,.35);
  animation:markIn .7s var(--spring) both}
@keyframes markIn{from{transform:rotate(-90deg) scale(.4);opacity:0}}
.pop{animation:pop .4s var(--spring) both}

/* نوار بالا: عنوان کوچک وقتی عنوان بزرگ از دید رفت */
.nav{position:sticky;top:0;z-index:5;margin:0 -16px;height:44px;display:flex;align-items:center;justify-content:center;
  background:transparent;transition:background .2s}
.nav b{font-size:16px;font-weight:700;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}
.nav.stuck{background:var(--bar);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);
  box-shadow:0 .5px 0 var(--sep)}
.nav.stuck b{opacity:1;transform:none}
.nav .end{position:absolute;left:12px;display:flex;gap:8px}
.large{margin:2px 0 14px;font-size:32px;line-height:1.2;font-weight:800;letter-spacing:-.4px}
.large .w{display:inline-block;animation:rise .55s var(--ios) both}
.sub{font-size:15px;color:var(--muted);margin-top:4px}

/* ── اجزا ── */
.card{background:var(--card);border-radius:16px;box-shadow:var(--shadow)}
.group{background:var(--card);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.row{width:100%;min-height:52px;display:flex;align-items:center;gap:12px;padding:10px 14px;border:0;background:transparent;
  text-align:right;position:relative}
.row+.row::before,.row+.line::before,.line+.row::before,.line+.line::before{content:"";position:absolute;top:0;left:0;right:56px;height:.5px;background:var(--sep)}
.row:active{background:var(--card2)}
.row .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row .t b{font-size:16px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .t small{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row .chev{width:16px;height:16px;color:var(--hint)}
.ico{width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}
.ico svg{width:19px;height:19px}
.thumb{width:48px;height:48px;border-radius:12px;background:var(--fill);display:flex;align-items:center;justify-content:center;
  overflow:hidden;flex-shrink:0;color:var(--muted)}
.thumb img{width:100%;height:100%;object-fit:cover}
.price{font-size:15px;font-weight:700;white-space:nowrap;color:var(--text)}
.price.none{color:var(--hint);font-weight:500;font-size:13px}
.h2{display:flex;justify-content:space-between;align-items:baseline;margin:22px 2px 10px;font-size:20px;font-weight:800}
.h2 small,.h2 button{font-size:14px;font-weight:500;color:var(--accent);background:none;border:0;padding:0}
.h2 small{color:var(--muted)}
.note{font-size:13px;color:var(--muted);line-height:1.7}
.empty{padding:40px 16px;text-align:center;color:var(--muted);line-height:1.9;font-size:15px}
.stack{display:flex;flex-direction:column;gap:12px}
.cta{width:100%;height:52px;border:0;border-radius:14px;background:var(--accent);color:var(--on-accent);font-size:17px;font-weight:700;
  display:flex;align-items:center;justify-content:center;gap:8px;transition:transform .12s,opacity .12s}
.cta.soft{background:var(--accent-soft);color:var(--accent)}
.cta.ghost{background:var(--fill);color:var(--text)}
.cta:active,.press:active{transform:scale(.97);opacity:.85}
.cta[disabled]{opacity:.5}
.pill{height:34px;padding:0 14px;border-radius:17px;border:0;background:var(--card);color:var(--text);font-size:14px;font-weight:600;
  white-space:nowrap;box-shadow:var(--shadow)}
.pill.on{background:var(--text);color:var(--bg)}
.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 6px;margin:0 -16px;padding-inline:16px;scrollbar-width:none}
.chips::-webkit-scrollbar{display:none}
.skel{height:64px;border-radius:14px;background:linear-gradient(90deg,var(--card) 25%,var(--card2) 50%,var(--card) 75%);
  background-size:200% 100%;animation:shimmer 1.2s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}

/* جستجو با راهنمای چرخان */
.search{height:40px;border-radius:12px;background:var(--fill);display:flex;align-items:center;gap:8px;padding:0 12px;color:var(--hint);
  border:0;width:100%;font-size:16px;text-align:right}
.search svg{width:18px;height:18px}
.search input{flex:1;border:0;background:transparent;outline:0;font-size:16px;color:var(--text);min-width:0}
.search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none}
.search .clear{border:0;background:var(--hint);color:var(--bg);width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0}
.search .clear svg{width:11px;height:11px;stroke-width:3}
.hints{height:22px;overflow:hidden}
.hints span{display:block;height:22px;line-height:22px;animation:hints 9s var(--ios) infinite}
@keyframes hints{0%,28%{transform:translateY(0)}33%,61%{transform:translateY(-22px)}66%,94%{transform:translateY(-44px)}100%{transform:translateY(0)}}

/* خانه */
.topline{display:flex;justify-content:space-between;align-items:center;min-height:44px;padding-top:6px}
.hello{font-size:15px;color:var(--muted)}
.debt-chip{height:30px;padding:0 12px;border-radius:15px;border:0;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:700}
.debt-chip.ok{background:var(--ok-soft);color:var(--ok)}
.banner{border-radius:16px;padding:14px 16px;background:linear-gradient(135deg,#ff7a1a,#c2410c);color:#fff;font-weight:700;font-size:15px;line-height:1.7}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{height:100px;border:0;border-radius:16px;background:var(--card);box-shadow:var(--shadow);display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:8px;position:relative;overflow:hidden;padding:8px}
.tile span{font-size:14px;font-weight:600;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .ico{width:40px;height:40px;border-radius:11px}
.tile .ico svg{width:22px;height:22px}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tile.photo span{position:absolute;bottom:0;left:0;right:0;padding:18px 8px 8px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.6))}
.tile.photo .ico{display:none}
.hscroll{display:flex;gap:10px;overflow-x:auto;margin:0 -16px;padding:2px 16px 8px;scroll-snap-type:x mandatory;scrollbar-width:none}
.hscroll::-webkit-scrollbar{display:none}
.pcard{flex:0 0 150px;scroll-snap-align:start;border:0;border-radius:16px;background:var(--card);box-shadow:var(--shadow);padding:8px;
  display:flex;flex-direction:column;gap:6px;text-align:right}
.pcard .ph{height:110px;border-radius:12px;background:var(--fill);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted)}
.pcard .ph img{width:100%;height:100%;object-fit:cover}
.pcard b{font-size:14px;font-weight:600;height:40px;overflow:hidden;line-height:20px}
.pcard .price{font-size:14px}
.promo{display:flex;align-items:center;gap:12px;padding:14px}
.promo .t{flex:1;display:flex;flex-direction:column;gap:2px}
.promo .t b{font-size:15px}
.promo .t small{font-size:13px;color:var(--muted)}
.mini{height:36px;padding:0 14px;border:0;border-radius:18px;background:var(--accent);color:var(--on-accent);font-weight:700;font-size:14px;white-space:nowrap}
.meter{height:8px;border-radius:4px;background:var(--fill);overflow:hidden}
.meter i{display:block;height:100%;border-radius:4px;background:var(--brand);transform-origin:right;animation:grow 1s var(--ios) .3s both}
@keyframes grow{from{transform:scaleX(0)}}
.links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;direction:ltr;unicode-bidi:isolate}
.signature{margin:26px 0 6px;text-align:center;font-size:12px;font-weight:700;color:var(--hint);letter-spacing:.2px}
.h2ico{width:22px;height:22px;color:var(--brand);margin-inline-end:6px;vertical-align:-4px}
/* نشان‌ها و قیمت قبلی */
.tag{display:inline-block;font-style:normal;font-size:11px;font-weight:800;line-height:18px;padding:0 7px;border-radius:7px;margin-inline-end:6px;vertical-align:1px}
.tag.new{background:#e5f0ff;color:#0a5bc4}.tag.drop{background:var(--ok-soft);color:var(--ok)}.tag.hot{background:var(--accent-soft);color:var(--accent)}
:root[data-theme="dark"] .tag.new{background:#0f2a4a;color:#7ab8ff}
.price s,.big-price s{display:block;font-size:12px;font-weight:500;color:var(--hint);text-decoration-thickness:1.5px}
.big-price{font-size:18px}
.corner{position:absolute;top:6px;right:6px;display:flex}
.corner .tag{margin:0;box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pcard .ph,.sheet .photo{position:relative}
.cd{display:inline-flex;align-items:center;gap:4px;align-self:flex-start;font-size:11px;font-weight:800;color:var(--accent);background:var(--accent-soft);padding:2px 8px 2px 7px;border-radius:8px;white-space:nowrap}
.cd svg{width:13px;height:13px;stroke-width:2.2}
.pcard.offer{position:relative;overflow:hidden}
.pcard.offer::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.55) 50%,transparent 62%);transform:translateX(130%);animation:shine 1.6s var(--ios) 1.1s 1 both}
:root[data-theme="dark"] .pcard.offer::after{background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.12) 50%,transparent 62%)}
@keyframes shine{to{transform:translateX(-130%)}}
/* «قیمت‌ها زنده» */
.live{display:flex;align-items:center;gap:8px;margin:10px 2px 0;font-size:12px;font-weight:600;color:var(--muted)}
.live i{position:relative;width:8px;height:8px;border-radius:4px;background:#34c759;flex-shrink:0}
.live i::after{content:"";position:absolute;inset:0;border-radius:inherit;background:inherit;animation:ping 2.2s var(--ios) infinite}
@keyframes ping{from{transform:scale(1);opacity:.7}to{transform:scale(2.8);opacity:0}}
.banner.season{background:linear-gradient(135deg,#30b0c7,#1f7a5a)}
.tip{display:flex;gap:12px;padding:14px;align-items:flex-start}
.tip .t{display:flex;flex-direction:column;gap:4px;flex:1}
.tip .t b{font-size:15px}.tip .t small{font-size:14px;color:var(--muted);line-height:1.8}
.hint{display:flex;gap:10px;align-items:center;padding:12px 14px;margin-bottom:12px;font-size:14px;line-height:1.7}
.hint svg{color:var(--accent);width:20px;height:20px}
/* برگهٔ ثبت سفارش */
.opts{display:flex;flex-direction:column;gap:8px}
.opt{display:flex;align-items:center;gap:10px;min-height:50px;padding:0 14px;border-radius:14px;border:2px solid transparent;background:var(--fill);text-align:right;font-size:15px;font-weight:600;transition:border-color .2s,background .2s}
.opt span{flex:1}.opt svg{color:var(--muted)}
.opt .radio{width:20px;height:20px;border-radius:10px;border:2px solid var(--hint);flex-shrink:0;transition:border .2s}
.opt.on{border-color:var(--accent);background:var(--accent-soft)}
.opt.on svg{color:var(--accent)}.opt.on .radio{border:6px solid var(--accent)}
.inp{width:100%;border:0;border-radius:12px;background:var(--fill);padding:12px 14px;font-size:16px;color:var(--text);outline:0;resize:none;line-height:1.6}
.inp:focus{box-shadow:0 0 0 2px var(--accent)}
.inp[hidden]{display:none}
.coderow{display:flex;gap:8px;align-items:center}
.coderow .inp{flex:1;text-align:left}
.ok-t{color:var(--ok)!important;font-weight:700}.bad-t{color:var(--bad)!important;font-weight:700}
.done{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:10px 0 4px}
.done .check{width:68px;height:68px;border-radius:34px;background:var(--ok);color:#fff;display:flex;align-items:center;justify-content:center;animation:pop .55s var(--spring) both}
.done .check svg{width:36px;height:36px;stroke-width:2.6}
.done h3{margin:6px 0 0}.done .num{font-family:"JetBrains Mono",monospace;font-size:15px}
/* کانفتی پیکسلی (مثل صحنهٔ ورود) */
.confetti{position:fixed;left:50%;bottom:32%;z-index:75;pointer-events:none}
.confetti i{position:absolute;left:0;top:0;animation:conf 1.6s cubic-bezier(.2,.75,.3,1) both}
@keyframes conf{0%{transform:translate(0,0) rotate(0);opacity:1}
  55%{transform:translate(var(--x),var(--y)) rotate(var(--r));opacity:1}
  100%{transform:translate(var(--x),calc(var(--y) + 46vh)) rotate(calc(var(--r) * 1.6));opacity:0}}
/* کارت عضویت */
.mcard{border-radius:20px;padding:18px;color:#fff;display:flex;flex-direction:column;align-items:center;gap:12px;position:relative;overflow:hidden;
  background:radial-gradient(120% 90% at 100% 0,#ffb26b 0,#e0550f 45%,#7c2d12 100%);box-shadow:0 10px 30px rgba(224,85,15,.35)}
.mcard::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.06) 0 8px,transparent 8px 16px);pointer-events:none}
.mcard .brandmark{align-self:flex-start;color:#fff;position:relative}
.mcard .brandmark i{background:#fff;color:#c2410c;box-shadow:none}
.mcard .qr{width:210px;height:210px;background:#fff;border-radius:14px;padding:8px;position:relative}
.mcard .qr img{width:100%;height:100%;display:block;image-rendering:pixelated}
.mcard b{font-size:16px;position:relative}.mcard .mono{font-size:14px;opacity:.9;position:relative;letter-spacing:1px}
.iconbtn.sm{width:32px;height:32px;border-radius:16px}.iconbtn.sm svg{width:16px;height:16px}
.thumb.sm{width:34px;height:34px;border-radius:9px}.thumb.sm svg{width:18px;height:18px}

/* برگهٔ کالا (bottom sheet) */
.scrim{position:fixed;inset:0;z-index:30;border:0;background:rgba(0,0,0,.35);animation:fadeIn .25s ease-out both}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:31;max-height:88vh;overflow-y:auto;background:var(--card);border-radius:18px 18px 0 0;
  padding:8px 16px calc(18px + var(--safe-b));display:flex;flex-direction:column;gap:14px;animation:sheetIn .45s var(--ios) both}
.sheet.out{animation:sheetOut .25s ease-in both}.scrim.out{animation:fadeOut .25s ease-in both}
@keyframes sheetIn{from{transform:translateY(100%)}}
@keyframes sheetOut{to{transform:translateY(100%)}}
@keyframes fadeOut{to{opacity:0}}
.grab{width:36px;height:5px;border-radius:3px;background:var(--sep);align-self:center}
.sheet .photo{height:210px;border-radius:14px;background:var(--fill);display:flex;align-items:center;justify-content:center;overflow:hidden;color:var(--muted)}
.sheet .photo img{width:100%;height:100%;object-fit:cover}
.sheet .photo svg{width:56px;height:56px}
.sheet h3{margin:0;font-size:22px;font-weight:800;line-height:1.35}
.qty{display:flex;gap:8px}
.qty button{flex:1;height:44px;border-radius:12px;border:0;background:var(--fill);font-weight:700;font-size:16px}
.qty button.on{background:var(--text);color:var(--bg)}
.stepper{display:flex;align-items:center;gap:4px;background:var(--fill);border-radius:12px;padding:3px}
.stepper button{width:36px;height:36px;border:0;border-radius:9px;background:var(--card);font-size:20px;font-weight:600;display:flex;align-items:center;justify-content:center}
.stepper span{min-width:34px;text-align:center;font-weight:700;font-size:16px}
.fav.on{color:var(--brand)}
.iconbtn{width:40px;height:40px;border-radius:20px;border:0;background:var(--fill);display:flex;align-items:center;justify-content:center;color:var(--text)}

/* سبد */
.line{display:flex;align-items:center;gap:12px;padding:12px 14px;position:relative;background:var(--card);transition:transform .25s var(--ios),opacity .25s}
.line .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.line .t b{font-size:15px;font-weight:600}
.line .t small{font-size:13px;color:var(--muted)}
.line.gone{opacity:.5}
.sum{display:flex;justify-content:space-between;align-items:center;padding:10px 0;font-size:15px}
.sum b{font-size:20px;font-weight:800}

/* حساب */
.hero{padding:18px;display:flex;flex-direction:column;gap:6px}
.hero small{font-size:13px;color:var(--muted)}
.hero .big{font-size:30px;font-weight:800;letter-spacing:-.4px}
.hero .big.bad{color:var(--bad)}.hero .big.ok{color:var(--ok)}
.seg{display:flex;background:var(--fill);border-radius:10px;padding:2px;position:relative;margin:16px 0 12px}
.seg button{flex:1;height:32px;border:0;background:transparent;font-size:13px;font-weight:600;border-radius:8px;position:relative;z-index:1;transition:color .2s}
.seg .knob{position:absolute;left:0;top:2px;bottom:2px;border-radius:8px;background:var(--card);box-shadow:0 2px 6px rgba(0,0,0,.12);
  transition:transform .35s var(--ios),width .35s var(--ios)}
.amt-d{color:var(--bad);font-weight:700}.amt-c{color:var(--ok);font-weight:700}
.badge{min-width:22px;height:22px;padding:0 7px;border-radius:11px;background:#d70015;color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.status{font-size:12px;font-weight:700;padding:3px 9px;border-radius:8px;background:var(--fill);color:var(--muted);white-space:nowrap}
.timeline{display:flex;flex-direction:column;padding:6px 14px}
.timeline div{display:flex;gap:12px;align-items:flex-start;padding:6px 0}
.timeline i{width:10px;height:10px;border-radius:5px;background:var(--accent);margin-top:6px;box-shadow:0 0 0 4px var(--accent-soft)}
.tour{position:fixed;inset:0;z-index:40;background:var(--bg);display:flex;flex-direction:column;padding:40px 24px calc(24px + var(--safe-b));gap:18px;animation:fadeIn .3s ease-out both}
.tour .slides{flex:1;display:flex;overflow:hidden}
.tour .slide{flex:0 0 100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;transition:transform .45s var(--ios)}
.tour .slide .ico{width:88px;height:88px;border-radius:24px}
.tour .slide .ico svg{width:44px;height:44px}
.tour .slide h2{margin:0;font-size:26px;font-weight:800}
.tour .slide p{margin:0;font-size:16px;color:var(--muted);line-height:1.9}
.dots{display:flex;justify-content:center;gap:6px}
.dots i{width:7px;height:7px;border-radius:4px;background:var(--sep);transition:width .3s var(--ios),background .3s}
.dots i.on{width:20px;background:var(--accent)}

/* تب‌ها */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:20;height:calc(64px + var(--safe-b));padding-bottom:var(--safe-b);display:flex;
  background:var(--bar);-webkit-backdrop-filter:saturate(1.6) blur(18px);backdrop-filter:saturate(1.6) blur(18px);box-shadow:0 -.5px 0 var(--sep)}
.tab{flex:1;border:0;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--hint);
  font-size:11px;font-weight:600;position:relative}
.tab svg{width:26px;height:26px;transition:transform .3s var(--spring)}
.tab.on{color:var(--accent)}
.tab.on svg{transform:translateY(-1px) scale(1.06)}
.tab em{position:absolute;top:6px;left:calc(50% - 22px);min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:#d70015;color:#fff;
  font-size:11px;font-style:normal;font-weight:700;display:flex;align-items:center;justify-content:center}
.tab em[hidden]{display:none}
.tab em.bump{animation:pop .4s var(--spring)}
body.admin-mode .tabs{background:rgba(10,10,11,.9);box-shadow:0 -1px 0 #26282b}
body.admin-mode .tab{color:#7d8085}body.admin-mode .tab.on{color:#ffd400}

.toast{position:fixed;left:50%;bottom:calc(76px + var(--safe-b));z-index:60;transform:translate(-50%,20px);opacity:0;pointer-events:none;
  max-width:88vw;padding:10px 16px;border-radius:14px;background:rgba(30,30,32,.94);color:#fff;font-size:14px;font-weight:600;
  transition:transform .35s var(--ios),opacity .35s}
.toast.show{transform:translate(-50%,0);opacity:1}
.fly{position:fixed;z-index:70;width:14px;height:14px;border-radius:4px;background:var(--brand);pointer-events:none;
  transition:transform .6s var(--ios),opacity .6s}

/* ═════ پنل مدیر: «صنعتی زرد» ═════ */
.adm{--a-bg:#121314;--a-card:#1d1e20;--a-line:#2c2e31;--a-text:#f4f4ef;--a-muted:#9a9ca0;--y:#ffd400;--o:#ff5a1f;--g:#7ee07e;
  background:var(--a-bg)!important;color:var(--a-text)}
.adm .mono{font-family:"JetBrains Mono",ui-monospace,monospace;direction:ltr;unicode-bidi:isolate}
.adm .nav.stuck{background:rgba(18,19,20,.92);box-shadow:0 1px 0 var(--a-line)}
.adm .hz{height:5px;margin:0 -16px 10px;background:repeating-linear-gradient(-45deg,var(--y) 0 7px,#141415 7px 14px)}
.adm .large{font-weight:900}
.adm .note,.adm .sub{color:var(--a-muted)}
.adm .kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.adm .kpi{background:var(--a-card);padding:12px;display:flex;flex-direction:column;gap:4px}
.adm .kpi small{font-size:12px;color:var(--a-muted)}
.adm .kpi b{font-size:21px;font-weight:800}
.adm .kpi b.up{color:var(--g)}.adm .kpi b.down{color:var(--o)}
.adm .cats{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}
.adm .cat{height:84px;border:0;background:var(--a-card);color:var(--a-text);display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:8px;padding:6px 4px;text-align:center;position:relative}
.adm .cat svg{color:var(--y);width:24px;height:24px}
.adm .cat span{font-size:13px;font-weight:800;line-height:1.35}
.adm .cat em{position:absolute;top:6px;left:6px;font-style:normal;background:var(--o);color:#111;font-size:12px;font-weight:800;padding:1px 7px;font-family:"JetBrains Mono",monospace}
.adm .cat:active{background:#26282b}
.adm .group,.adm .card{background:var(--a-card);border-radius:0;box-shadow:none}
.adm .row .t small,.adm .line .t small{color:var(--a-muted)}
.adm .row:active{background:#26282b}
.adm .row+.row::before,.adm .line+.line::before{background:var(--a-line);right:14px}
.adm .line{background:var(--a-card)}
.adm .h2{color:var(--a-text)}.adm .h2 button{color:var(--y)}
.adm .pill{background:var(--a-card);color:var(--a-text);box-shadow:none;border-radius:0}
.adm .pill.on{background:var(--y);color:#111}
.adm .search{background:var(--a-card);border:2px solid var(--a-line);border-radius:0;height:46px}
.adm .search input{color:var(--a-text)}
.adm .price{color:var(--a-text)}
.adm .status{background:#26282b;color:var(--a-muted);border-radius:0}
.adm .status.y{background:var(--y);color:#111}
.adm .status.o{background:var(--o);color:#111}
.adm .status.g{background:#1f3a22;color:var(--g)}
.adm .acts{display:flex;gap:6px;flex-wrap:wrap}
.adm .btn{min-width:30%;height:46px;border:0;background:var(--y);color:#111;font-weight:900;font-size:15px}
.adm .acts .btn{flex:1}
.adm .btn.line2{background:transparent;border:2px solid #34363a;color:var(--a-text)}
.adm .btn.bad{background:transparent;border:2px solid var(--o);color:var(--o)}
.adm .btn:active{opacity:.8;transform:scale(.98)}
.adm .btn[disabled]{opacity:.4}
.adm input.f,.adm textarea.f,.adm select.f{width:100%;background:#0d0d0e;border:2px solid var(--a-line);color:var(--a-text);padding:10px 12px;font-size:16px;border-radius:0;outline:0}
.adm input.f:focus,.adm textarea.f:focus,.adm select.f:focus{border-color:var(--y)}
.adm textarea.f{min-height:110px;line-height:1.8;resize:vertical}
.adm .field{display:flex;flex-direction:column;gap:6px}
.adm .field label{font-size:13px;color:var(--a-muted);font-weight:700}
.adm .prow{display:flex;flex-direction:column;gap:8px;padding:12px 14px;background:var(--a-card)}
.adm .prow+.prow{border-top:1px solid var(--a-line)}
.adm .prow .top{display:flex;align-items:center;gap:8px}
.adm .prow .top b{flex:1;font-size:15px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm .prow .ctl{display:flex;gap:6px;align-items:center}
.adm .prow input.f{height:42px;padding:0 10px;font-family:"JetBrains Mono",monospace;direction:ltr;text-align:left}
.adm .seg3{display:flex;gap:2px}
.adm .seg3 button{height:42px;padding:0 8px;border:0;background:#26282b;color:var(--a-muted);font-size:12px;font-weight:800}
.adm .seg3 button.on{background:var(--y);color:#111}
.adm .save{height:42px;padding:0 14px;border:0;background:var(--y);color:#111;font-weight:900}
.adm .save.done{background:var(--g)}
.adm .receipt{width:100%;max-height:320px;object-fit:contain;background:#0d0d0e}
.adm .bubble{padding:10px 12px;max-width:85%;line-height:1.8;font-size:14px;background:#26282b}
.adm .bubble.me{align-self:flex-start;background:#3a3200;color:#fff5b3}
.adm .thread{display:flex;flex-direction:column;gap:6px}
.adm .empty{color:var(--a-muted)}
.adm .skel{background:linear-gradient(90deg,#1d1e20 25%,#26282b 50%,#1d1e20 75%);background-size:200% 100%;border-radius:0}

/* پنل: قفل رمز */
.adm .pin{display:flex;flex-direction:column;align-items:center;gap:8px;padding:26px 0 10px;text-align:center}
.adm .pin .lockico{width:64px;height:64px;background:var(--y);color:#111;display:flex;align-items:center;justify-content:center;animation:pop .45s var(--spring) both}
.adm .pin .lockico svg{width:32px;height:32px;stroke-width:2.2}
.adm .pin h2{margin:8px 0 0;font-size:22px;font-weight:900}
.adm .pin>.note{max-width:300px;margin:0}
.adm .pdots{display:flex;gap:12px;margin:16px 0 2px;direction:ltr}
.adm .pdots i{width:14px;height:14px;border:2px solid #5a5d62;transition:transform .15s var(--spring),background .15s,border-color .15s}
.adm .pdots i.on{background:var(--y);border-color:var(--y);transform:scale(1.15)}
.adm .pin.shake .pdots{animation:shake .42s}
@keyframes shake{20%,60%{transform:translateX(-9px)}40%,80%{transform:translateX(9px)}}
.adm .pinmsg{min-height:22px;margin:0;color:var(--o);font-size:13px;font-weight:700}
.adm .keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:100%;max-width:330px;direction:ltr}
.adm .keys button{height:62px;border:0;background:var(--a-card);color:var(--a-text);font-size:25px;font-weight:800;transition:transform .1s,background .1s}
.adm .keys button:active{background:#2a2c30;transform:scale(.96)}
.adm .keys .ok{background:var(--y);color:#111;font-size:17px;font-weight:900}
.adm .keys button[disabled]{opacity:.35}
.adm .forgot{margin-top:10px;max-width:300px}
/* پنل: نمودارها (رنگ سری‌ها فقط روی خط/میله؛ متن همیشه جوهر متن) */
.adm .charts{transition:opacity .2s}
.adm .charts.dim{opacity:.45}
.adm .stat3{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:14px}
.adm .stat3 .kpi b{font-size:17px}
.adm .chart{position:relative;background:var(--a-card);padding:12px}
.adm .legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;font-size:12px;font-weight:700;color:var(--a-text);margin-bottom:6px}
.adm .legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-inline-end:6px;vertical-align:-1px}
.adm .legend em{font-style:normal;color:var(--a-muted);font-weight:500;margin-inline-start:auto}
.adm .chart svg{display:block;width:100%;height:auto;overflow:visible;direction:ltr;touch-action:pan-y;outline:0;stroke:none;fill:none}
.adm .chart svg:focus-visible{outline:2px solid var(--y);outline-offset:2px}
.adm .chart .grid{stroke:#2c2e31;stroke-width:1}
.adm .chart .base{stroke:#4a4d52;stroke-width:1}
.adm .chart .tick{fill:#9a9ca0;font-size:10px;font-family:Vazirmatn,sans-serif;font-variant-numeric:tabular-nums}
.adm .chart .ln{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.adm .chart .ring{stroke:#1d1e20;stroke-width:2}
.adm .chart .elab{fill:#f4f4ef;font-size:11px;font-weight:700;font-family:Vazirmatn,sans-serif}
.adm .chart .xl{stroke:#7d8085;stroke-width:1}
.adm .chart .reveal{transform-box:fill-box;transform-origin:right;animation:reveal .9s var(--ios) both}
@keyframes reveal{from{transform:scaleX(0)}}
.adm .ctip{position:absolute;top:34px;left:0;z-index:2;min-width:170px;padding:8px 10px;background:#0d0d0e;border:1px solid #3a3c40;
  display:flex;flex-direction:column;gap:4px;font-size:12px;pointer-events:none;opacity:0;transition:opacity .12s}
.adm .ctip.on{opacity:1}
.adm .ctip b{font-size:12px;color:var(--a-muted)}
.adm .ctip span{display:flex;align-items:center;gap:6px;color:var(--a-text)}
.adm .ctip span i{width:8px;height:8px;border-radius:2px}
.adm .ctip em{font-style:normal;margin-inline-start:auto;font-weight:800;font-variant-numeric:tabular-nums}
.adm .tbtn{margin-top:8px}
.adm .ltable{margin-top:6px;background:var(--a-card);padding:4px 12px;max-height:320px;overflow:auto}
.adm .tbl{width:100%;border-collapse:collapse;font-size:12px}
.adm .tbl th{color:var(--a-muted);font-weight:700;text-align:right;padding:8px 4px;border-bottom:1px solid var(--a-line)}
.adm .tbl td{padding:7px 4px;border-bottom:1px solid #26282b}
.adm .tbl td.n{text-align:left;direction:ltr;font-variant-numeric:tabular-nums}
.adm .bars{padding:6px 12px}
.adm .brow{display:flex;flex-direction:column;gap:5px;padding:8px 0}
.adm .brow+.brow{border-top:1px solid #26282b}
.adm .blab{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.adm .blab span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm .blab b{font-weight:800;white-space:nowrap}
.adm .btrack{height:14px}
.adm .bar{display:block;height:14px;background:#c98500;border-radius:4px 0 0 4px;transform-origin:right;animation:grow .8s var(--ios) both}
.adm .brow small{font-size:11px;color:var(--a-muted)}
/* پنل: فرم‌ها و کلیدها */
.adm .btn.wide{width:100%;flex:none}
.adm .btn.big{height:54px;font-size:16px}
.adm .btn svg{width:18px;height:18px;vertical-align:-4px;margin-inline-end:4px}
.adm .btn.file{display:flex;align-items:center;justify-content:center;gap:6px;cursor:pointer}
.adm .two{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.adm .phedit{display:flex;gap:12px;align-items:center}
.adm .phedit .ph{width:84px;height:84px;background:#0d0d0e;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--a-muted);transition:opacity .2s}
.adm .phedit .ph img{width:100%;height:100%;object-fit:cover}
.adm .phedit .ph.busy{opacity:.4}
.adm .phedit .btn{flex:1}
.adm .srow{display:flex;align-items:center;gap:10px}
.adm .srow .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.adm .srow .t small{font-size:12px;color:var(--a-muted);overflow:hidden;text-overflow:ellipsis}
.adm .sw{width:50px;height:30px;border:0;background:#3a3c40;position:relative;flex-shrink:0;padding:0;transition:background .2s}
.adm .sw::after{content:"";position:absolute;top:4px;right:4px;width:22px;height:22px;background:#9a9ca0;transition:transform .25s var(--spring),background .2s}
.adm .sw.on{background:var(--y)}
.adm .sw.on::after{transform:translateX(-20px);background:#111}
.adm .seg3.wide{display:flex}.adm .seg3.wide button{flex:1}
.adm .ctl{display:flex;gap:6px;align-items:center}
.adm .ctl input.f{flex:1;min-width:0}
.adm input.f.sm{width:150px;height:38px;padding:0 10px;text-align:left}
.adm .pcust{display:flex;align-items:center;gap:10px;padding:12px}
.adm .pcust .t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.adm .pcust .t small{color:var(--a-muted);font-size:12px}
.adm .pcust .acts{width:100%}
.adm .posl{display:flex;flex-direction:column;gap:8px;padding:10px 12px;background:var(--a-card)}
.adm .posl+.posl{border-top:1px solid var(--a-line)}
.adm .posl .top{display:flex;align-items:center;gap:8px}.adm .posl .top b{flex:1;font-size:14px}
.adm .posl .ctl{display:flex;align-items:center;gap:8px}
.adm .posl input.f{height:40px;padding:0 8px;font-size:15px;text-align:left}
.adm .posl .lt{min-width:64px;text-align:left;color:#ffd400;font-size:13px}
.adm .stepper.dark{background:#0d0d0e;border-radius:0}
.adm .stepper.dark button{background:#26282b;color:var(--a-text);border-radius:0}
.adm .sum input.f{margin:0}
.adm .step{display:flex;gap:12px;padding:14px;margin-top:8px}
.adm .step em{font-style:normal;width:30px;height:30px;background:var(--y);color:#111;font-weight:900;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.adm .step>div{display:flex;flex-direction:column;gap:8px;flex:1}
.adm .cd{color:#111;background:var(--y);border-radius:0}
.adm .iconbtn{background:#26282b;color:var(--a-text);border-radius:0}
.adm .thumb{background:#0d0d0e;border-radius:0}
.adm .done .check{background:var(--y);color:#111;border-radius:0}
.sheet.adm{border-radius:0;box-shadow:0 -1px 0 #3a3c40}
.sheet.adm .grab{background:#3a3c40}
.sheet.adm h3{font-weight:900}

/* ── ورود پیکسلی: صحنهٔ canvas در splash.js ── */
.splash{position:fixed;inset:0;z-index:80;background:#120f17;overflow:hidden;--exit:0;
  --brandc:#ffc78a;--emberc:#ff8a2a}
.px-canvas{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges}
.splash-text{position:absolute;left:0;right:0;top:31%;display:flex;flex-direction:column;align-items:center;gap:10px;
  opacity:calc(1 - var(--exit));transform:translateY(calc(var(--exit) * -12px))}
.splash-title{font-family:Vazirmatn,sans-serif;font-weight:900;font-size:44px;line-height:1;color:var(--brandc);
  text-shadow:0 3px 0 #c45a16,0 0 24px rgba(255,138,42,.35);animation:rise .7s var(--ios) 1.6s both}
.splash-sub{font-size:14px;font-weight:700;color:#e7d9cf;animation:rise .6s var(--ios) 1.75s both}
.splash-load{display:flex;align-items:center;gap:10px;margin-top:8px;animation:rise .5s var(--ios) .3s both}
.splash-bar{width:168px;height:12px;padding:2px;background:#1b151f;border:2px solid #4a3a44;box-shadow:0 0 0 2px #120f17,inset 0 0 0 1px #000}
.splash-bar span{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--emberc) 0 6px,var(--brandc) 6px 8px);
  box-shadow:0 0 10px rgba(255,138,42,.45);transition:width .08s linear}
.splash-pct{font-family:"Press Start 2P",monospace;font-size:10px;color:var(--brandc);min-width:44px}
.splash-tip{font-size:13px;color:#b3a7b0;min-height:20px;animation:rise .5s var(--ios) .4s both}
.splash-tip.swap{animation:rise .45s var(--ios) both}
.splash.quick .splash-title,.splash.quick .splash-sub{animation-delay:.1s}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
