/* ASHI-DEV v22 — لایه‌ی نهایی رابط کاربری (بعد از site/signature/portal بارگذاری می‌شود)
   ۱) پالت تازه‌ی تم روشن  ۲) دکمه‌ها  ۳) هدر پرتال (رفع باگ)  ۴) پرتال  ۵) دکمه‌های شناور و چت  ۶) صیقل سایت عمومی */

/* ============ ۱) تم روشن: کاغذی سرد + گرافیت + قرمز امضا (بدون رنگ‌های طلایی/قهوه‌ای قبلی) ============ */
:root[data-theme=light]{
  --paper:#f5f6f8;--c1:#232936;
  --c2:color-mix(in srgb,var(--b2,#c1121f) 94%,#000);
  --c3:color-mix(in srgb,var(--b3,#7a0c16) 92%,#000);
  --bg:#e8ebf0;--tx:#1c202a;--mu:#4f596b;
  --ln:rgba(28,32,42,.13);--fill:rgba(28,32,42,.04);
  --navbg:rgba(245,246,248,.78);--navbg2:rgba(245,246,248,.93);
  --card1:#f5f6f8;--card2:rgba(245,246,248,.8);--ringc:rgba(28,32,42,.3);
  --accent:#232936;--signature:var(--c2);--signature-deep:var(--c3);
  --surface-0:#e8ebf0;--surface-1:#f5f6f8;--surface-2:#f5f6f8;--surface-3:#dfe3ea;
  --text:#1c202a;--text-muted:#4f596b;--text-strong:#000;
  --line:rgba(28,32,42,.13);--line-strong:rgba(28,32,42,.22);
  --fill-soft:rgba(28,32,42,.04);--fill-hover:rgba(28,32,42,.07);
  --metal-text:linear-gradient(100deg,#0f1218 0%,#3a414f 55%,#161a22 100%);
}
:root[data-theme=light] body{background:radial-gradient(58rem 34rem at 88% -8%,rgba(193,18,31,.055),transparent 62%),radial-gradient(52rem 32rem at -6% 108%,rgba(35,41,54,.06),transparent 62%),var(--bg)}
:root[data-theme=light] .nebula{background:none}
:root[data-theme=light] .nebula i{opacity:.045}
:root[data-theme=light] .card,:root[data-theme=light] .pjc,:root[data-theme=light] .faq,:root[data-theme=light] .pd-card,:root[data-theme=light] .est,:root[data-theme=light] .tq{background:var(--paper);border-color:var(--ln);box-shadow:0 1px 2px rgba(28,32,42,.05),0 10px 30px -16px rgba(28,32,42,.18)}
:root[data-theme=light] .card:hover,:root[data-theme=light] .pjc:hover{border-color:var(--line-strong);box-shadow:0 2px 4px rgba(28,32,42,.06),0 22px 44px -20px rgba(28,32,42,.28)}
:root[data-theme=light] .card::after{background:none}
:root[data-theme=light] nav,:root[data-theme=light] .pth{box-shadow:0 1px 0 var(--ln)}
:root[data-theme=light] select option{background:var(--paper);color:#1c202a}
:root[data-theme=light] .tag{background:rgba(28,32,42,.04);border-color:var(--ln);color:var(--tx)}
:root[data-theme=light] .type{color:var(--c2)}
:root[data-theme=light] .ptm a:not(.btn):not(.fl):not(.prow){color:var(--c2)}
:root[data-theme=light] .term{background:var(--paper);color:#1c202a;border-color:var(--ln);box-shadow:0 18px 40px -18px rgba(28,32,42,.3)}
:root[data-theme=light] .term .tb{background:var(--fill);border-color:var(--ln)}
:root[data-theme=light] .term .pr,:root[data-theme=light] .term pre::after{color:var(--c2)}
:root[data-theme=light] .term .tx{color:#2a2f3a}
:root[data-theme=light] .me{background:radial-gradient(circle at 32% 26%,#fff,#e6e9f0);box-shadow:0 0 0 5px rgba(28,32,42,.06),0 10px 28px rgba(28,32,42,.22)}
:root[data-theme=light] #splash{background:radial-gradient(circle at 50% 40%,var(--paper),var(--bg) 70%)}
:root[data-theme=light] .st-new{color:#a15c07}:root[data-theme=light] .st-discussing,:root[data-theme=light] .st-offered{color:#1d4ed8}
:root[data-theme=light] .st-accepted{color:#b45309}:root[data-theme=light] .st-active,:root[data-theme=light] .st-done{color:#15803d}
:root[data-theme=light] .st-delivered{color:#0369a1}:root[data-theme=light] .st-rejected,:root[data-theme=light] .st-declined{color:#b91c1c}
:root[data-theme=light] .fl2.ok{color:#15803d;border-color:#15803d}:root[data-theme=light] .fl2.err{color:#b91c1c;border-color:#b91c1c}

/* ============ ۲) دکمه‌ها: یک زبان واحد برای سایت و پرتال ============ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:var(--r-pill,999px);padding:11px 26px;font-weight:700;font-size:14.5px;line-height:1.6;letter-spacing:0;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,background .2s,border-color .2s,color .2s}
.btn.sm{padding:7px 18px;font-size:13.5px}
.btn svg{width:16px;height:16px;flex:none}
.btn.b1,:root[data-theme=light] .btn.b1{background:linear-gradient(180deg,color-mix(in srgb,var(--c2) 100%,#fff 10%),color-mix(in srgb,var(--c2) 78%,#000));color:#fff;border:1px solid color-mix(in srgb,var(--c2) 70%,#000);box-shadow:0 1px 0 rgba(255,255,255,.22) inset,0 10px 24px -10px color-mix(in srgb,var(--c2) 80%,transparent)}
.btn.b1:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.26) inset,0 16px 32px -12px color-mix(in srgb,var(--c2) 90%,transparent)}
.btn.b2{background:var(--fill);border:1px solid var(--line-strong,var(--ln));color:var(--tx)}
.btn.b2:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--c2) 10%,transparent);border-color:color-mix(in srgb,var(--c2) 55%,transparent);box-shadow:none}
.btn:active{transform:translateY(0)}
.btn:focus-visible,.ib:focus-visible,#cb:focus-visible,#up:focus-visible,.pth-nav a:focus-visible,.pth-tabs a:focus-visible{outline:2px solid color-mix(in srgb,var(--c2) 75%,#fff);outline-offset:3px}
input:focus,textarea:focus,select:focus{border-color:color-mix(in srgb,var(--c2) 65%,var(--ln))!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--c2) 16%,transparent)}
.ib{border-radius:var(--r-pill,999px);transition:background .2s,border-color .2s,color .2s,transform .3s}
.ib:hover{transform:none;background:var(--fill);border-color:var(--line-strong,var(--ln));color:var(--tx)}

/* ============ ۳) هدر پرتال ============
   علت باگ قبلی: عنصر <nav> داخل هدر، قاعده‌ی سراسری nav{position:fixed} سایت را می‌گرفت و روی هدر می‌افتاد.
   اکنون هدر با کلاس‌های اختصاصی (pth-*) و بدون تگ nav ساخته شده است. */
.pth{position:sticky;top:0;z-index:30;background:var(--navbg2);-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px);border-bottom:1px solid var(--ln)}
.pth-in{max-width:1180px;margin:0 auto;padding:0 clamp(14px,3vw,28px);height:66px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px}
.pth-logo{display:flex;align-items:center;gap:10px;color:var(--tx);text-decoration:none;font-weight:800;font-size:14px;letter-spacing:.16em;white-space:nowrap}
.pth-logo img{width:34px;height:34px;border-radius:50%;object-fit:cover;border:1px solid var(--ln);display:block}
.pth-nav{display:flex;justify-content:center;gap:4px;min-width:0}
.pth-nav a,.pth-tabs a{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--r-pill,999px);color:var(--mu);font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap;transition:color .2s,background .2s}
.pth-nav a:hover,.pth-tabs a:hover{color:var(--tx);background:var(--fill)}
.pth-nav a.on,.pth-tabs a.on{color:var(--tx);background:var(--fill-hover,var(--fill));font-weight:700}
.pth-nav a.on::after{content:"";position:absolute;bottom:-13px;inset-inline:22%;height:2px;border-radius:2px;background:var(--c2)}
.pth-tools{display:flex;align-items:center;gap:8px}
.pth-tools form{margin:0;display:block}
.pth-tools .ib{height:36px;min-height:36px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center}
.pth-tools #th{width:36px;padding:0;font-size:16px}
.pth-tabs{display:none}
em.nb{font-style:normal;display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:var(--c2);color:#fff;font-size:11px;font-weight:700;line-height:1}
@media(max-width:820px){
  .pth-in{grid-template-columns:1fr auto;height:58px;gap:10px}
  .pth-nav{display:none}
  .pth-tabs{display:flex;gap:6px;overflow-x:auto;padding:0 14px 10px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pth-tabs::-webkit-scrollbar{display:none}
  .pth-tabs a{border:1px solid var(--ln);padding:6px 14px;font-size:13px}
  .pth-tabs a.on{background:color-mix(in srgb,var(--c2) 14%,transparent);border-color:color-mix(in srgb,var(--c2) 45%,transparent)}
}

/* ============ ۴) پرتال کارفرما ============ */
.ptm{max-width:1120px;padding:clamp(22px,4vw,40px) clamp(14px,3vw,24px) 120px}
.dh{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:26px}
.dh-eb{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--c2);margin-bottom:6px}
.dh h1{font-size:clamp(1.55rem,1.15rem + 1.6vw,2.15rem);line-height:1.35;margin:0}
.dh p{margin:4px 0 0}
.kp4{gap:14px;margin:0 0 22px}
.kp4>div{position:relative;padding:18px 20px;border-radius:var(--r-lg,20px);border:1px solid var(--ln);background:linear-gradient(160deg,var(--card1),var(--card2));overflow:hidden}
.kp4>div::before{content:"";position:absolute;inset-inline-start:0;top:16px;bottom:16px;width:3px;border-radius:3px;background:var(--c2);opacity:.85}
.kp4 small{display:block;font-size:12.5px;color:var(--mu)}
.kp4 b{display:block;font-size:1.7rem;font-weight:800;line-height:1.4;margin-top:2px}
.prow.card{border-radius:var(--r-lg,20px);padding:16px 22px;transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .2s,box-shadow .3s}
.prow.card:hover{transform:translateY(-2px)}
.prow b{font-size:15.5px}
.prow small[dir=ltr]{color:var(--mu);letter-spacing:.06em;font-size:12px}
.bd{background:color-mix(in srgb,currentColor 9%,transparent);border-color:color-mix(in srgb,currentColor 34%,transparent)!important;font-weight:600;font-size:12px;padding:3px 14px}
.empty{display:grid;justify-items:center;gap:6px;text-align:center;padding:clamp(36px,7vw,64px) 24px!important}
.empty-ic{display:grid;place-items:center;width:74px;height:74px;border-radius:24px;margin-bottom:10px;color:var(--c2);background:color-mix(in srgb,var(--c2) 11%,transparent);border:1px solid color-mix(in srgb,var(--c2) 28%,transparent)}
.empty-ic svg{width:34px;height:34px}
.empty h2{font-size:18px;margin:0}.empty p{max-width:36ch;margin:0 0 14px}
.au.card,.au.wide{padding:clamp(22px,4vw,34px)}
.au h1{font-size:1.6rem}
.stp li.dn i{background:var(--c2);color:#fff;border-color:var(--c2)}
.stp li.on i{border-color:var(--c2);color:var(--c2)}
.fl2{border-radius:14px}
.pgb i{background:linear-gradient(90deg,var(--c3),var(--c2))}
.pgb span{color:var(--tx)}
@media(max-width:600px){.dh .btn{width:100%}.kp4{grid-template-columns:1fr 1fr}.prow.card{padding:14px 16px}}

/* ============ ۵) دکمه‌های شناور (چت و بازگشت به بالا) + چت پشتیبانی ============
   همیشه و در هر نقطه‌ی صفحه نمایش داده می‌شوند: چت در یک گوشه، «بالا» در گوشه‌ی مقابل. */
:root{--fab-gap:clamp(14px,2.4vw,24px)}
#cb,#up{position:fixed;bottom:calc(var(--fab-gap) + env(safe-area-inset-bottom,0px));z-index:60;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit}
#cb{inset-inline-start:calc(var(--fab-gap) + env(safe-area-inset-left,0px));height:56px;min-width:56px;padding:0 22px 0 20px;gap:10px;border-radius:99px;border:1px solid color-mix(in srgb,var(--c2) 65%,#000);color:#fff;font-size:14.5px;font-weight:700;background:linear-gradient(180deg,color-mix(in srgb,var(--c2) 100%,#fff 12%),color-mix(in srgb,var(--c2) 76%,#000));box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 14px 34px -10px color-mix(in srgb,var(--c2) 85%,transparent),0 4px 12px rgba(0,0,0,.25);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
html[dir=rtl] #cb{padding:0 20px 0 22px}
#cb:hover{transform:translateY(-3px)}
#cb svg{width:23px;height:23px;flex:none}
#cb .cb-x{display:none}#cb.on .cb-c{display:none}#cb.on .cb-x{display:block}
#cb.on .cb-lb{display:none}#cb.on{padding:0;width:56px}
#cb::before{content:"";position:absolute;inset:-1px;border-radius:inherit;border:2px solid color-mix(in srgb,var(--c2) 60%,transparent);opacity:0;animation:cbp 3.4s ease-out 1.2s 3;pointer-events:none}
@keyframes cbp{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.35,1.6)}}
#cb i{position:absolute;top:-5px;inset-inline-end:-3px;min-width:21px;height:21px;border-radius:99px;background:#fff;color:var(--c2);border:2px solid var(--c2);font:800 11.5px/17px Vazirmatn,sans-serif;font-style:normal;padding:0 4px;text-align:center}

#up{inset-inline-end:calc(var(--fab-gap) + env(safe-area-inset-right,0px));width:52px;height:52px;padding:0;border-radius:50%;border:0;color:var(--tx);background:conic-gradient(var(--c2) var(--p,0deg),var(--ln) 0);opacity:1;pointer-events:auto;box-shadow:0 10px 26px -10px rgba(0,0,0,.55);transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .3s}
#up::before{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--navbg2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
#up svg{position:relative;width:20px;height:20px;transition:transform .3s}
#up:hover{transform:translateY(-3px)}#up:hover svg{transform:translateY(-2px)}
#up[data-top="1"]{opacity:.62}#up[data-top="1"]:hover{opacity:1}
:root[data-theme=light] #up::before{background:var(--paper)}
#mu{bottom:calc(var(--fab-gap) + 72px + env(safe-area-inset-bottom,0px))!important;inset-inline-start:calc(var(--fab-gap) + 4px)!important;z-index:59;width:48px!important;height:48px!important}

#cp{position:fixed;z-index:61;inset-inline-start:calc(var(--fab-gap) + env(safe-area-inset-left,0px));bottom:calc(var(--fab-gap) + 70px + env(safe-area-inset-bottom,0px));width:min(388px,calc(100vw - 2*var(--fab-gap)));max-height:min(620px,calc(100dvh - 120px));border-radius:24px;background:var(--bg);border:1px solid var(--line-strong,var(--ln));box-shadow:0 30px 80px -20px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.02) inset;transform-origin:bottom left;animation:cpin .32s cubic-bezier(.2,.8,.2,1)}
html[dir=rtl] #cp{transform-origin:bottom right}
:root[data-theme=light] #cp{background:var(--paper);box-shadow:0 30px 70px -24px rgba(28,32,42,.4)}
@keyframes cpin{from{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}
#cp .chd{display:flex;align-items:center;gap:12px;padding:16px 18px;background:linear-gradient(125deg,#15090c 0%,color-mix(in srgb,var(--c3) 92%,#000) 100%);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
#cp .chd-av{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);overflow:hidden;flex:none}
#cp .chd-av img{width:100%;height:100%;object-fit:cover}#cp .chd-av svg{width:20px;height:20px}
#cp .chd b{font-size:15.5px;font-weight:700;flex:1;min-width:0}
#cp .chd button{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;border:0;cursor:pointer;transition:background .2s}
#cp .chd button:hover{background:rgba(255,255,255,.2)}#cp .chd button svg{width:16px;height:16px}
#cp .cbody{gap:11px;padding:18px}
#cp .cbody>p{color:var(--mu);font-size:13.5px;line-height:1.85;margin:0 0 2px;padding:12px 14px;border-radius:14px 14px 14px 4px;background:var(--fill);border:1px solid var(--ln)}
html[dir=rtl] #cp .cbody>p{border-radius:14px 14px 4px 14px}
#cp input,#cp textarea,#cp select{border-radius:12px;padding:11px 14px;font-size:14px;background:var(--fill);border:1px solid var(--ln)}
#cp .btn{width:100%;padding:12px 20px;font-size:14.5px}
#cp .cerr{color:#ef5360;font-size:13px}
#cv{min-height:0}
#cv .clst{height:318px;padding:16px 16px 8px;gap:10px;background:linear-gradient(180deg,transparent,var(--fill))}
#cp .cbub{max-width:82%;padding:9px 13px;font-size:14px;line-height:1.75;border-radius:16px;border:0}
#cp .cbub.cmine{align-self:flex-start;background:linear-gradient(180deg,color-mix(in srgb,var(--c2) 100%,#fff 8%),color-mix(in srgb,var(--c2) 80%,#000));color:#fff;border-end-start-radius:5px}
#cp .cbub.cmine small{color:rgba(255,255,255,.72)}
#cp .cbub.cadm{align-self:flex-end;background:var(--fill-hover,var(--fill));border:1px solid var(--ln);color:var(--tx);border-end-end-radius:5px}
#cp .cbub small{font-size:11px;opacity:.85}
#cp .cbub small:first-child:not(.ctm){font-weight:700;color:var(--c2);opacity:1;margin-bottom:1px}
:root:not([data-theme=light]) #cp .cbub.cadm small:first-child:not(.ctm){color:var(--accent,var(--c1))}
#cv .cwait{padding:0 18px 10px;font-size:12px;color:var(--mu);text-align:center}
#cr{display:flex;align-items:flex-end;gap:8px;padding:12px 14px 14px;border-top:1px solid var(--ln);background:var(--card1)}
#cr textarea{flex:1;min-height:44px;max-height:110px;padding:11px 16px;border-radius:22px;line-height:1.6;resize:none}
#cr .btn{flex:none;width:44px;height:44px;padding:0;border-radius:50%}
#cr .btn svg{width:19px;height:19px}
html[dir=rtl] #cr .btn svg{transform:scaleX(-1)}
#cc{padding:14px 18px 18px;text-align:center}#cc p{margin:0 0 10px;color:var(--mu);font-size:13.5px}
@media(max-width:560px){
  #cb .cb-lb{display:none}#cb{padding:0;width:56px}
  #cp{inset-inline:12px;width:auto;bottom:calc(var(--fab-gap) + 68px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - 96px - env(safe-area-inset-bottom,0px))}
  #cv .clst{height:min(318px,42dvh)}
}
@media(prefers-reduced-motion:reduce){#cb::before,#cp{animation:none}#cb,#up,#up svg{transition:none}}

/* ============ ۶) صیقل سایت عمومی ============ */
nav{-webkit-backdrop-filter:saturate(1.5) blur(16px);backdrop-filter:saturate(1.5) blur(16px)}
.nav-cta,.cta-nav{border-radius:99px;font-weight:700}
.card{border-radius:var(--r-lg,20px)}
.pjc,.svc,.tq,.faq{transition:transform .4s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .4s}
section{scroll-margin-top:80px}
h2{letter-spacing:-.015em}
.d,.card p{line-height:1.95}
footer{border-top:1px solid var(--ln)}
::selection{background:color-mix(in srgb,var(--c2) 80%,#000);color:#fff}
@supports(height:100dvh){.hero{min-height:min(92dvh,980px)}}
@media(max-width:780px){.card{padding:20px}section{scroll-margin-top:68px}}

/* ============ ۷) ریتم، تایپوگرافی و حرکت سایت عمومی (ممیزی v22) ============
   یافته‌ها: ورود بخش‌ها با ۴۶px جابه‌جایی و ۱.۱ثانیه (سنگین و تکراری)، فاصله‌ی بخش‌ها ثابت و بدون تناسب با صفحه،
   طول خط متن‌ها نامحدود، تراشه‌های شناور هیرو در تبلت شلوغ، اهداف لمسی کوچک، رنگ فوکوس نامشخص. */
html{scroll-padding-top:84px}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.rv{transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}
.rv.on{transform:none}
section{padding:clamp(64px,9vw,112px) 0}
h2{font-size:clamp(1.55rem,1.2rem + 1.3vw,2.1rem);line-height:1.35;margin-bottom:clamp(24px,4vw,40px);text-wrap:balance}
h2::after{opacity:.55}
h1{text-wrap:balance}
.d,.about-text p,.card p,.svc p,.pj p{max-width:64ch}
.stats b{font-variant-numeric:tabular-nums;font-weight:800}
.stats .card{border-radius:16px;padding:22px 16px}
.card{padding:clamp(20px,2.4vw,28px)}
.card:hover,.pjc:hover{transform:translateY(-3px)}

/* ناوبری عمومی */
.nl a{position:relative;padding:6px 2px;color:var(--mu);transition:color .2s}
.nl a::after{content:"";position:absolute;inset-inline:0;bottom:-2px;height:2px;border-radius:2px;background:var(--c2);transform:scaleX(0);transition:transform .3s cubic-bezier(.2,.8,.2,1)}
.nl a:hover,.nl a.on,.nl a[aria-current]{color:var(--tx)}
.nl a:hover::after,.nl a.on::after,.nl a[aria-current]::after{transform:scaleX(1)}
nav .wrap{max-width:1180px}
#mm a:not(.btn){font-size:17px;padding:15px 18px}

/* هیرو: سلسله‌مراتب و آرامش */
.hero .wrap{max-width:1180px}
.hero h1{line-height:1.25;letter-spacing:-.02em}
.hero .d{font-size:clamp(1rem,.95rem + .3vw,1.125rem);line-height:1.95;color:var(--mu)}
.hero .btn{padding:13px 30px}
@media(max-width:1100px){.fc{display:none}.f2,.f3{display:none}}
@media(min-width:781px) and (max-width:1024px){.hero .wrap{gap:12px}.orbit{width:min(340px,40vw)}}

/* فرم‌ها و لیست‌ها */
label,.lbl{font-weight:500}
input,textarea,select{min-height:46px}
textarea{min-height:120px}
.faq{border-radius:16px}
.faq summary,.faq button{min-height:48px}
footer{padding:clamp(36px,6vw,56px) 20px}
.fg{gap:clamp(20px,4vw,40px)}

/* دسترس‌پذیری: فوکوس کیبورد دیده شود، اهداف لمسی ≥۴۴px، رنگ پیش‌فرض لینک */
a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:2px solid color-mix(in srgb,var(--c2) 75%,#fff);outline-offset:3px;border-radius:8px}
.skip{background:var(--c2);color:#fff}
@media(pointer:coarse){.ib,.flt button,.lang a{min-height:44px}#th,#fx,#mb{width:44px}.nl a{padding:10px 2px}}
@media(max-width:480px){h2::after{display:none}.hero .btn{width:100%;margin-inline-end:0}.stats{grid-template-columns:1fr 1fr}}
@media print{#cb,#up,#mu,nav,.nebula{display:none!important}}

/* ============ ۸) نسخه‌ی نهایی: آیکن چت ساده، هدر/دکمه‌های همراه کاربر، تم کدنویسی ============ */
/* دکمه‌ی چت: فقط یک آیکن گرد، با همان ترکیب رنگی اصلی (نقره‌ای → قرمز تیره) */
#cb,html[dir=rtl] #cb{width:58px;height:58px;min-width:58px;padding:0;gap:0;border:0;color:#0b0a0a;background:linear-gradient(135deg,var(--c1),var(--c3));box-shadow:0 12px 30px -10px color-mix(in srgb,var(--c3) 85%,transparent),0 2px 8px rgba(0,0,0,.3)}
#cb .cb-lb,#cb::before{display:none}
#cb svg{width:26px;height:26px}
#cb.on{width:58px}
:root[data-theme=light] #cb{color:#fff}
#cb:hover{transform:translateY(-3px) scale(1.04)}
/* همراه کاربر: همیشه fixed و بدون وابستگی به والد (fab.js آن‌ها را به body منتقل می‌کند) */
#cb,#up,#cp{position:fixed;will-change:transform}
html.ft #cb,html.ft #up{transform:translateY(-6px)}
/* هدر همراه کاربر: ثابت؛ با اسکرول کم‌ارتفاع‌تر و پررنگ‌تر می‌شود */
nav{position:fixed;top:0;inset-inline:0;transition:background .3s,box-shadow .3s,padding .3s,height .3s}
html.sc nav{background:var(--navbg2);box-shadow:0 10px 30px -18px rgba(0,0,0,.65)}
html.sc .pth-in{height:54px}.pth-in{transition:height .25s}
html.sc .pth{box-shadow:0 10px 30px -20px rgba(0,0,0,.6)}
/* پس‌زمینه‌ی کدنویسی: بوم‌های قدیمی بارش شهابی/ترِیل مخفی */
#tr{display:none!important}
#gl,#stars{opacity:1}
/* کلید بهینه‌سازی گرافیک */
.fxb{display:inline-flex;align-items:center;gap:7px;padding:0 13px;font-size:12.5px;font-weight:600}
.fxb svg{width:16px;height:16px;flex:none}
.fxb .sw{display:none}
.fxb[aria-checked=true]{color:#fff;background:color-mix(in srgb,var(--c2) 85%,#000);border-color:var(--c2);opacity:1}
[data-fx=lite] #fx{opacity:1}
@media(max-width:700px){.fx-lb{display:none}.fxb{padding:0;width:38px;justify-content:center}}
/* حالت بهینه: همه‌ی سنگین‌ترین جلوه‌ها خاموش */
[data-fx=lite] *,[data-fx=lite] *::before,[data-fx=lite] *::after{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
[data-fx=lite] .rv{transform:none!important;transition:opacity .3s!important}
[data-fx=lite] .techband .tb-track{animation:none}
[data-fx=lite] #cb::before{display:none}
/* عناصر اینترنتی/کدنویسی */
h2::before{content:"//";font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600;color:var(--c2);margin-inline-end:.45em;opacity:.85;direction:ltr;display:inline-block}
.techband{overflow:hidden;border-block:1px solid var(--ln);background:linear-gradient(90deg,transparent,var(--fill),transparent);padding:13px 0;direction:ltr}
.tb-track{display:flex;gap:34px;width:max-content;animation:tbm 46s linear infinite}
.techband:hover .tb-track{animation-play-state:paused}
.techband span{display:inline-flex;align-items:center;gap:9px;font:600 13px/1 ui-monospace,Menlo,Consolas,monospace;color:var(--mu);letter-spacing:.02em;white-space:nowrap}
.techband span i{font-style:normal;color:var(--c2);opacity:.9}
@keyframes tbm{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.tb-track{animation:none}}
.foot-term{margin-top:22px;font:500 13px/1.7 ui-monospace,Menlo,Consolas,monospace;color:var(--mu);text-align:center}
.foot-term b{color:var(--c2)}.foot-term em{font-style:normal;opacity:.7}
/* تم روشن: بهینه‌تر */
:root[data-theme=light] .techband{background:linear-gradient(90deg,transparent,rgba(28,32,42,.035),transparent)}
:root[data-theme=light] nav{background:var(--navbg2)}
:root[data-theme=light] .hero h1,:root[data-theme=light] h2{color:var(--tx)}
:root[data-theme=light] .d,:root[data-theme=light] .mu{color:#475163}
:root[data-theme=light] .btn.b2{background:var(--paper);border-color:rgba(28,32,42,.2)}
:root[data-theme=light] .fc{background:var(--paper);border-color:var(--ln);color:var(--tx);box-shadow:0 10px 28px -14px rgba(28,32,42,.3)}
:root[data-theme=light] .ib{background:var(--paper);color:var(--tx)}
:root[data-theme=light] input,:root[data-theme=light] textarea,:root[data-theme=light] select{background:var(--paper);color:var(--tx);border-color:rgba(28,32,42,.16)}
:root[data-theme=light] footer{background:var(--paper)}

/* ============ ۹) رفع باگ «دکمه‌ها ته صفحه می‌مانند» + حرکت همراه اسکرول + انیمیشن‌های ظریف ============
   علت باگ: انیمیشن ورودی body با fill-mode:both و transform، body را «والد» عناصر fixed می‌کرد؛ پس چت/بالا نسبت به
   انتهای سند جای می‌گرفتند نه صفحه‌ی نمایش. اکنون ورودی فقط opacity است و بعد از پایان هیچ اثری روی body نمی‌ماند. */
@keyframes pgin{from{opacity:0}to{opacity:1}}
body{animation:pgin .4s ease backwards}
html,body{transform:none!important;filter:none!important;perspective:none!important}
:root{--fy:0px}
#cb,#up{translate:0 var(--fy,0px);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,opacity .3s}
html.ft #cb,html.ft #up{transform:none;translate:0 calc(var(--fy,0px) - 8px)}
#cb svg{animation:fbob 3.6s ease-in-out infinite}
@keyframes fbob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-2px) rotate(-4deg)}}
#up svg{animation:fnudge 2.8s ease-in-out infinite}
#up:hover svg{animation:none}
@keyframes fnudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
html[data-fx=lite] #cb svg,html[data-fx=lite] #up svg{animation:none}
@media(prefers-reduced-motion:reduce){#cb svg,#up svg{animation:none}#cb,#up{translate:none}}
/* ورود پلکانی عناصر شبکه‌ها */
.rv{transition-delay:var(--d,0s)}
/* درخشش نشانگر روی کارت‌ها (فقط با ماوس) */
@media(hover:hover) and (pointer:fine){
 .card:not(.tl .card){isolation:isolate}
 .card:not(.tl .card)::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .35s;background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--c2) 13%,transparent),transparent 62%)}
 .card:not(.tl .card):hover::before{opacity:1}
 .btn.b1{position:relative;overflow:hidden}
 .btn.b1::after{content:"";position:absolute;inset-block:0;width:46%;inset-inline-start:-60%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.28),transparent);transform:skewX(-18deg);transition:inset-inline-start .7s cubic-bezier(.2,.8,.2,1);pointer-events:none}
 .btn.b1:hover::after{inset-inline-start:130%}
}
[data-fx=lite] .card::before,[data-fx=lite] .btn.b1::after{display:none}
