/* ============================================================================
   NEBULA PRO — لایهٔ گرافیک و تایپوگرافی (nebula-gfx.css)
   ---------------------------------------------------------------------------
   این فایل صرفاً «افزوده» می‌شود و هیچ فایل موجودی را تغییر نمی‌دهد.
   برای بازگشت کامل: حذفِ دو خطِ {include} در header.tpl و common.tpl
   و پاک‌کردن این فایل (و فونت Vazirmatn-VF.woff2) — همین.
   ترتيب بارگذاری: nebula.css  ←  nebula-3d.css  ←  این فایل
   ========================================================================== */

/* ============================================================================
   ۱) فونت‌ها — همه محلی، بدون وابستگی به شبکه
   ----------------------------------------------------------------------------
   دو نقش واقعی، نه یک فونت برای همه‌چیز:
     • Estedad-VF-FD  → فونت «نمایشی» (عنوان‌ها، عددهای بزرگ، برند)
       محور wght در فایل وجود دارد (gvar) ولی پیش‌فرضش ۹۰۰/Black است و
       بازه‌اش نرم است؛ پس آن را فقط جایِ نمایشی می‌نشینیم.
     • Vazirmatn-VF   → فونت «رابط کاربری و متن» با محور ۱۰۰ تا ۹۰۰
       (پیش‌فرض ۴۰۰) — همان‌که ۸ وزنِ متمایز می‌دهد.
   پیش از این، Vazirmatn فقط از fonts.googleapis.com می‌آمد و در صورت
   مسدود‌بودنِ Google، پنل بی‌صدا به Tahoma می‌افتاد. این‌طور نمی‌شود.
   ========================================================================== */
@font-face{
  font-family:'NBL UI';
  src:url('Vazirmatn-VF.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'NBL Display';
  src:url('Estedad-VF-FD.woff2') format('woff2');
  font-weight:100 900; font-style:normal; font-display:swap;
}

/* ============================================================================
   ۲) توکن‌ها — مقیاسِ شعاع، فاصله، سایه، گرادیان
   ----------------------------------------------------------------------------
   در nebula.css فقط ۱۰ توکنِ رنگ وجود داشت و هیچ مقیاسِ شعاع/فاصله/سایه‌ای
   نبود؛ این‌جا همان‌ها اضافه می‌شوند تا باقیِ کار از «متغیر» تغذیه کند.
   ========================================================================== */
:root{
  /* — فونت — */
  --nbl-ui:'NBL UI','Vazirmatn','Estedad',Tahoma,sans-serif;
  --nbl-display:'NBL Display','Estedad','NBL UI',Tahoma,sans-serif;

  /* — شعاع — */
  --r-1:4px; --r-2:8px; --r-3:12px; --r-4:16px; --r-5:20px; --r-6:26px; --r-full:999px;

  /* — فاصله (پایه ۴) — */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:20px; --s-6:24px;
  --s-7:32px; --s-8:40px; --s-9:56px;

  /* — رویه (procedure) — */
  --ink:#14141C; --ink-2:#5A5A72; --ink-3:#8A8AA3;
  --line-2:#EDEFF7;
  --wash:#F7F8FD;   /* زیرِ سطحِ --bg؛ برای ردیف/فاصلِ خوانا روی سفید */
  --wash-2:#EFF1F9;

  /* — گرادیان برند (عمق‌دار، نه پاستلِ تم تیره) — */
  --grad-brand:linear-gradient(135deg,#7C3AED 0%,#0891B2 100%);
  --grad-brand-soft:linear-gradient(135deg,#8B5CF6 0%,#22D3EE 100%);
  --grad-ink:linear-gradient(180deg,#1B1B2A 0%,#4C1D95 100%);

  /* — ارتفاع (elevation) — دو لایه: تماسِ نزدیک + پخشِ دور — */
  --el-1:0 1px 1px rgba(20,20,40,.04), 0 2px 6px rgba(20,20,40,.05);
  --el-2:0 1px 2px rgba(20,20,40,.04), 0 6px 16px -6px rgba(20,20,40,.10);
  --el-3:0 2px 4px rgba(20,20,40,.04), 0 14px 30px -12px rgba(20,20,40,.16);
  --el-4:0 4px 8px rgba(20,20,40,.05), 0 24px 48px -16px rgba(20,20,40,.22);
  --el-violet:0 10px 28px -12px rgba(124,58,237,.45);
  --el-cyan:0 10px 28px -12px rgba(8,145,178,.40);
  --ring:0 0 0 3px rgba(124,58,237,.20);

  /* — سایه‌هایِ عمومیِ nebula.css را به این مقیاس می‌آوریم — */
  --shadow:var(--el-2);
  --aside-bg:#FFFFFF;
  --input-bg:#FFFFFF;
}

/* ==========================================================================
   ۳) برنده‌شدن در جنگِ !important با all.min.css
   --------------------------------------------------------------------------
   all.min.css فونت Estedad را با !important روی بدنه می‌نشاند و nebula.css
   با همان طولِ فهرستِ عناصر خنثی‌اش می‌کند. ما فهرست را «پوششی‌تر» می‌کنیم:
   عناصری که هیچ‌جا font-family نمی‌گرفتند و از والدِ اشتباه ارث می‌بردند
   (textarea/label/جدول/عناصر درون‌خطی) اضافه می‌شوند.

   عمداً این‌ها را فهرست نکردیم، وگرنه خراب می‌شد:
     • <i> و <em>  — آیکون‌های FontAwesome در WHMCS همان <i class="fas">
        هستند؛ !important روی آن‌ها همهٔ آیکون‌ها را به مربع تبدیل می‌کند.
     • <span> و <b> و <strong> — FontAwesome روی این تگ‌ها هم سوار می‌شود:
        در همین قالب «chevron»های store/xovinow روی <span class="fas">،
        و سبدخریدِ orderforms/nebula/domainoptions.tpl روی
        <span class="far"> و <b class="far fa-shopping-cart"> است. اگر این
        سه تگ هم !important بگیرند، همان آیکن‌ها می‌شکنند.
     • <code>/<pre>/<kbd>/<samp>/<var> — مونواسپیس می‌خواهند (بندِ ۳-ب).
   همهٔ این تگ‌ها «ظرفِ» متن‌اند؛ چون خودِ all.min.css آن‌ها را هدف
   نگرفته، از بدنه (Vazirmatn) ارث می‌برند — پس حذفشان برای متن هیچ
   چیزی کم نمی‌کند و فقط آیکن‌ها را نجات می‌دهد.
   (نکته: قاعدهٔ .fas مستقیماً روی خودِ <i>/<span>/<b> است، پس حتی نبودنِ
   آن‌ها در این فهرست، فونتِ آیکن را از <div> والد ارث نمی‌برد.)
   ========================================================================== */
body.nebula-body,
body.nebula-body input, body.nebula-body button, body.nebula-body select,
body.nebula-body option, body.nebula-body textarea, body.nebula-body label,
body.nebula-body legend, body.nebula-body fieldset, body.nebula-body summary,
body.nebula-body output, body.nebula-body a, body.nebula-body p,
body.nebula-body ul, body.nebula-body ol, body.nebula-body li,
body.nebula-body h1, body.nebula-body h2, body.nebula-body h3,
body.nebula-body h4, body.nebula-body h5, body.nebula-body h6,
body.nebula-body td, body.nebula-body th, body.nebula-body tr,
body.nebula-body table, body.nebula-body div, body.nebula-body small,
body.nebula-body blockquote, body.nebula-body address, body.nebula-body caption{
  font-family:var(--nbl-ui) !important;
}

/* فونت‌هایِ متنیِWHMCS/بوت‌استرپ که از والد (Twenty-One) ارث می‌رسند */
body.nebula-body{
  font-family:var(--nbl-ui) !important;
  font-size:13px; line-height:1.75;
  letter-spacing:0;
  font-feature-settings:'ss02' 1;   /* ارقامِ فارسیِ هم‌تراز در Vazirmatn */
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

/* ============================================================================
   ۴) نقشِ نمایشی (Estedad) + مقیاسِ تایپوگرافی
   ----------------------------------------------------------------------------
   اختصاصیتِ دو-کلاسه (body.nebula-body.nebula-body) از فهرستِ بندِ ۳ بالاتر
   است، پس بدونِ نیاز به !importantِ جدید برنده می‌شود.
   ========================================================================== */
body.nebula-body.nebula-body .topbar h1,
body.nebula-body.nebula-body .dc-hero h1,
body.nebula-body.nebula-body .hp-hero h1,
body.nebula-body.nebula-body .hp-cta h2{
  font-family:var(--nbl-display);
  font-weight:800;
  font-variation-settings:'wght' 800;
  letter-spacing:0;
  line-height:1.25;
  text-wrap:balance;
}
body.nebula-body.nebula-body .section-title{
  font-family:var(--nbl-display);
  font-weight:800;
  font-variation-settings:'wght' 750;
  font-size:15.5px;
  letter-spacing:0;
  margin:34px 0 14px;
  padding-inline-start:13px;
  line-height:2.1;
}
/* خطِ عمودیِ آرام کنارِ عنوانِ بخش — جایِ «بجِ رنگی».
   عمداً display:flex نگذاشتیم: محتوایِ این عنوان در عمل «آیکون + متن»
   است (مثلِ .tk-section-title) و flex گرهٔ متنی را به یک آیتمِ فلکس
   تبدیل می‌کند که ارتفاعش line-heightِ والد است — یعنی بریدگی. */
body.nebula-body .section-title::before{
  content:''; position:absolute; inset-inline-start:0; top:50%; translate:0 -50%;
  width:3px; height:15px; border-radius:var(--r-full);
  background:var(--grad-brand); box-shadow:var(--el-violet);
}
body.nebula-body .section-title{position:relative;}
/* همان نشانِ کنار، برای عنوانِ بخش‌هایِ تیکت و دامنه که در قالب‌ها واقعی‌اند */
body.nebula-body .tk-section-title{padding-inline-start:13px; position:relative;}
body.nebula-body .tk-section-title::before{
  content:''; position:absolute; inset-inline-start:0; top:50%; translate:0 -50%;
  width:3px; height:14px; border-radius:var(--r-full); background:var(--grad-brand);
}
body.nebula-body.nebula-body .tk-section-title{
  font-family:var(--nbl-display); font-variation-settings:'wght' 750;
}
body.nebula-body.nebula-body .stat-card .sn,
body.nebula-body.nebula-body .dc-stat-p b,
body.nebula-body.nebula-body .tk-stat .tk-stat-num,
body.nebula-body.nebula-body .wallet-card .wn,
body.nebula-body.nebula-body .uptime-card .n,
body.nebula-body.nebula-body .brand .name{
  font-family:var(--nbl-display);
  font-variation-settings:'wght' 800;
  font-variant-numeric:tabular-nums;
}
/* عددها همیشه هم‌عرض و قابل‌مقایسه */
body.nebula-body .tbl td, body.nebula-body .svc-meta .v,
body.nebula-body .pager a, body.nebula-body .cal-grid .dd{font-variant-numeric:tabular-nums;}

/* ردهٔ حروفِ بدنه */
body.nebula-body.nebula-body .topbar h1{font-size:24px;}
body.nebula-body.nebula-body .card h3{font-size:14px; font-weight:700; letter-spacing:-.2px;}
body.nebula-body.nebula-body .tbl th{
  font-size:10.5px; font-weight:700; letter-spacing:.3px;
  color:var(--ink-2); text-transform:none;
}
body.nebula-body .nav-group-label{
  font-size:9.5px !important; font-weight:800; letter-spacing:.9px;
  color:#9C9CB4 !important; opacity:1;
}

/* ============================================================================
   ۵) اصلاحِ کاسکید — باکس‌هایی که !importantِ تمِ تیره، وصلهٔ تمِ روشن را
        می‌بُرد (nebula.css: ۲۷۲-۲۸۸ در برابر ۱۳۹۴-۱۳۹۹)
   ----------------------------------------------------------------------------
   رنگِ متن از !important آزاد می‌شود تا وصله‌هایِ روشن (بندِ ۹۱۹ به بعد)
   برنده شوند؛ پس‌زمینه‌ها همان tintِ کم‌اشباع می‌مانند که روی سفید درست است.
   ========================================================================== */

/* ۵-الف) بج و لیبلِ وضعیت */
body.nebula-body .badge.green, body.nebula-body .badge.open{color:#047857 !important;}
body.nebula-body .badge.amber, body.nebula-body .badge.pending{color:#B45309 !important;}
body.nebula-body .badge.red{color:#BE123C !important;}
body.nebula-body .badge.violet{color:#5B21B6 !important;}
body.nebula-body .badge.grey, body.nebula-body .badge.closed{color:#5A5A72 !important;}

body.nebula-body .label-success{color:#047857 !important;}
body.nebula-body .label-info{color:#5B21B6 !important;}
body.nebula-body .label-warning{color:#B45309 !important;}
body.nebula-body .label-danger{color:#BE123C !important;}
body.nebula-body .label-placeholder,
body.nebula-body .label-default{color:#5A5A72 !important;}
/* پس‌زمینهٔ نیمه‌سفیدِ این دو، روی کارتِ سفید ناپدید می‌شد */
body.nebula-body .label-placeholder,
body.nebula-body .label-default{background:var(--wash-2) !important;}
body.nebula-body .badge.grey,
body.nebula-body .badge.closed{background:var(--wash-2) !important;}
body.nebula-body .neb-panel-link .sidebar-menu-item-badge .badge{color:#5B21B6 !important;}

/* ۵-ب) متنِ روی کارتِ سفید که با رنگِ تمِ تیره نوشته شده بود */
body.nebula-body .svc-due{color:#047857 !important;}
body.nebula-body .svc-due.is-soon{color:#B45309 !important;}
body.nebula-body .svc-due.is-over{color:#BE123C !important;}
body.nebula-body .uptime-card .top .badge-up{color:#047857 !important;}
body.nebula-body .renewal .t{color:#B45309 !important;}
body.nebula-body .cal-grid .dd.event{color:#92400E !important;}
body.nebula-body .pb.hi span{color:#B45309 !important;}

/* ۵-پ) کارت‌های آماری: عددِ رنگی روی tintِ همان رنگ ≈ ۱.۵:1 بود */
body.nebula-body .stat-card.sc-green .sl,
body.nebula-body .stat-card.sc-green .sn{color:#047857;}
body.nebula-body .stat-card.sc-amber .sl,
body.nebula-body .stat-card.sc-amber .sn{color:#92400E;}
body.nebula-body .stat-card.sc-red .sl,
body.nebula-body .stat-card.sc-red .sn{color:#BE123C;}
body.nebula-body .stat-card.sc-violet .sl,
body.nebula-body .stat-card.sc-violet .sn{color:#5B21B6;}
body.nebula-body .stat-card.sc-cyan .sl,
body.nebula-body .stat-card.sc-cyan .sn{color:#0E7490;}
/* tintِ پس‌زمینه هم کمی سردتر و «منتخب» می‌شود */
body.nebula-body .stat-card.sc-green{background:linear-gradient(135deg,rgba(4,120,87,.10),rgba(4,120,87,.02)); border-color:rgba(4,120,87,.22);}
body.nebula-body .stat-card.sc-amber{background:linear-gradient(135deg,rgba(146,64,14,.10),rgba(146,64,14,.02)); border-color:rgba(146,64,14,.22);}
body.nebula-body .stat-card.sc-red{background:linear-gradient(135deg,rgba(190,18,60,.09),rgba(190,18,60,.02)); border-color:rgba(190,18,60,.20);}
body.nebula-body .stat-card.sc-violet{background:linear-gradient(135deg,rgba(91,33,182,.10),rgba(91,33,182,.02)); border-color:rgba(91,33,182,.22);}
body.nebula-body .stat-card.sc-cyan{background:linear-gradient(135deg,rgba(14,116,144,.10),rgba(14,116,144,.02)); border-color:rgba(14,116,144,.22);}

/* ۵-ت) دکمهٔ گرادیانی: جوهرِ #06060A برایِ تمِ مشکی بود */
body.nebula-body.nebula-body .btn-grad{color:#fff;}
body.nebula-body .btn-grad{
  background-image:linear-gradient(135deg,#6D28D9 0%,#7C3AED 42%,#0E7490 100%) !important;
  box-shadow:var(--el-violet);
  border:0;
}
body.nebula-body .btn-grad:hover{
  box-shadow:0 14px 30px -12px rgba(124,58,237,.55);
  filter:none;
  transform:translateY(-1px);
}
body.nebula-body .btn-grad:active{transform:translateY(0) scale(.985);}
/* رویکهِٔ نورِ دکمه از گوشه می‌آید نه از وسط */
body.nebula-body .btn-grad::after{
  background:linear-gradient(120deg,transparent 25%,rgba(255,255,255,.30) 48%,transparent 72%) !important;
}
/* هرچیز دیگری که «همان گرادیانِ بنفش→فیروزه + جوهرِ مشکیِ تمِ تیره» را داشت.
   جوهرِ سفید به‌تنهایی روی انتهایِ فیروزه‌ای (0891B2) فقط ۳.۳:1 می‌دهد، پس
   گرادیانِ این مجموعه هم یک پله تیره‌تر می‌شود تا AA رد شود. */
body.nebula-body.nebula-body .module-client-area .btn-primary,
body.nebula-body.nebula-body .module-client-area input[type="submit"],
body.nebula-body.nebula-body .btn-info,
body.nebula-body.nebula-body .cal-grid .dd.today,
body.nebula-body.nebula-body .pricing-card .tag,
body.nebula-body.nebula-body .pay-method .pm-ic,
body.nebula-body.nebula-body .hero-content .txt .btn,
body.nebula-body.nebula-body .mobile-topbar-brand .mark{color:#fff;}
body.nebula-body .module-client-area .btn-primary,
body.nebula-body .module-client-area input[type="submit"],
body.nebula-body .btn-info,
body.nebula-body .cal-grid .dd.today,
body.nebula-body .pricing-card .tag,
body.nebula-body .pay-method .pm-ic,
body.nebula-body .hero-content .txt .btn,
body.nebula-body .mobile-topbar-brand .mark{
  background-image:linear-gradient(135deg,#6D28D9 0%,#7C3AED 42%,#0E7490 100%) !important;
}
/* جوهرِ تیره روی کهرباییِ کم‌نورتر، سفید روی کهرباییِ غلیظ */
body.nebula-body.nebula-body .btn-warning{color:#fff;}
body.nebula-body .btn-warning{background-image:linear-gradient(135deg,#B45309,#92400E) !important;}

/* ۵-ث) کنترل‌های بی‌اثر روی سفید */
body.nebula-body .toggle{background:var(--wash-2); border-color:var(--line);}
body.nebula-body .toggle::after{background:#fff; box-shadow:var(--el-2);}
body.nebula-body .toggle.on{background-image:var(--grad-brand); border-color:transparent;}
body.nebula-body .pill-opt{background:var(--wash); color:var(--ink-2);}
body.nebula-body .chip{background:var(--wash); color:var(--ink-2);}
body.nebula-body .chip.sel,
body.nebula-body .pill-opt.sel{color:#fff !important;}
body.nebula-body .quick-grid a{background:var(--wash);}
body.nebula-body .quick-grid a:hover{background:#fff;}
body.nebula-body.nebula-body .countdown .box{background:rgba(20,20,40,.05);}
body.nebula-body .dots i{background:rgba(20,20,40,.16);}
body.nebula-body .dots i:hover, body.nebula-body .dots i.on{background:var(--v);}
body.nebula-body .form-control,
body.nebula-body .input, body.nebula-body select.input, body.nebula-body textarea.input{background:#fff;}
body.nebula-body .module-client-area select,
body.nebula-body .module-client-area input[type="text"],
body.nebula-body .module-client-area input[type="password"]{background:#fff;}

/* ۵-ج) گرادیانِ متنِ اعداد: دو هگزِ تمِ تیره روی سفید ≈ ۲:1 */
body.nebula-body .uptime-card .n{background:linear-gradient(92deg,#5B21B6,#0E7490) !important;}
body.nebula-body .wallet-card .wn{background:linear-gradient(92deg,#5B21B6,#0E7490) !important;}
/* نقطهٔ «آنلاین» — جنبهٔ وضعیت دارد، نه متن؛ فقط کمی غلیظ‌تر.
   سه حالت: فعال / در انتظار / معلق. nebula.css:839-840 و :1177 هر سه را
   با پاستلِ تمِ تیره و !important می‌دهند (#34D399 / #FBBF24 / #FB7185)؛
   روی سفید، هالهٔ رنگی‌شان هم باید هم‌نامِ خودِ نقطه شود وگرنه
   «حلقه» سبزِ کم‌رنگ زیر نقطهٔ سرمه‌ای می‌ماند. */
body.nebula-body .server-row .live{background:#059669 !important; box-shadow:0 0 0 3px rgba(5,150,105,.16) !important;}
body.nebula-body .server-row .live.warn{background:#B45309 !important; box-shadow:0 0 0 3px rgba(180,83,9,.16) !important;}
body.nebula-body .server-row .live.down{background:#BE123C !important; box-shadow:0 0 0 3px rgba(190,18,60,.18) !important;}

/* ============================================================================
   ۶) سطح و لبه — کارت، دکمه، فرم، جدول، زبانه
   ----------------------------------------------------------------------------
   فقط از طریقِ توکن و بدونِ دست‌زدن به شعاعِ ۶۴۷ کلاس؛ لایهٔ سه‌بعدی
   (nebula-3d.css) دست‌نخورده می‌ماند.
   ========================================================================== */
body.nebula-body .card,
body.nebula-body .stat-card,
body.nebula-body .ring-card,
body.nebula-body .uptime-card,
body.nebula-body .dl-card,
body.nebula-body .svc-card,
body.nebula-body .tk-stat,
body.nebula-body .tk-dept-card,
body.nebula-body .dc-stat,
body.nebula-body .neb-panel,
body.nebula-body .auth-card{
  box-shadow:var(--el-1);
  transition:box-shadow .22s ease, transform .22s ease, border-color .22s ease;
}
body.nebula-body .card:hover,
body.nebula-body .stat-card:hover,
body.nebula-body .svc-card:hover,
body.nebula-body .dl-card:hover,
body.nebula-body .tk-stat:hover{box-shadow:var(--el-3);}
body.nebula-body .ring-card:hover{box-shadow:var(--el-2);}

/* هالهٔ پس‌زمینهٔ .main: قبل ۴۵٪ بود و روی سفید «خاکستری» می‌شد */
body.nebula-body .main::before,
body.nebula-body .main::after{opacity:.28 !important;}
body.nebula-body .main::before{background:radial-gradient(circle,rgba(124,58,237,.22),transparent 68%);}
body.nebula-body .main::after{background:radial-gradient(circle,rgba(8,145,178,.18),transparent 68%);}

/* نوارِ بالا */
body.nebula-body .topbar{margin-bottom:22px; gap:14px;}
body.nebula-body .topbar .date{font-size:11px; color:var(--ink-3); margin-top:5px; font-weight:500;}
body.nebula-body .search{
  background:#fff; border:1px solid var(--line); border-radius:var(--r-3);
  box-shadow:var(--el-1); width:210px; font-size:12.5px; padding:9px 13px;
  transition:box-shadow .2s, border-color .2s, width .24s ease;
}
body.nebula-body .search:focus{border-color:var(--v); box-shadow:var(--ring); width:250px;}
body.nebula-body .icon-btn{
  border-radius:var(--r-3); box-shadow:var(--el-1);
  transition:box-shadow .2s, border-color .2s, transform .2s;
}
body.nebula-body .icon-btn:hover{box-shadow:var(--el-2); border-color:rgba(124,58,237,.4); transform:translateY(-1px);}
body.nebula-body .icon-btn .dot{top:6px; left:8px; box-shadow:0 0 0 3px rgba(219,39,119,.18);}

/* فرم */
body.nebula-body .field{margin-bottom:18px;}
body.nebula-body .field label{font-size:12px; font-weight:600; color:var(--ink-2); margin-bottom:7px;}
body.nebula-body .form-control,
body.nebula-body .input, body.nebula-body select.input, body.nebula-body textarea.input{
  border-radius:var(--r-3); border:1px solid var(--line);
  box-shadow:var(--el-1); font-size:13px; color:var(--ink);
  transition:border-color .18s, box-shadow .18s, background .18s;
}
body.nebula-body .form-control:focus,
body.nebula-body .input:focus, body.nebula-body select.input:focus, body.nebula-body textarea.input:focus{
  border-color:var(--v); box-shadow:var(--ring), var(--el-1); background:#fff;
}
body.nebula-body .input-hint{font-size:10.5px; color:var(--ink-3);}
body.nebula-body textarea.input{min-height:108px; line-height:1.9;}

/* جدول */
body.nebula-body .tbl th{border-bottom:1px solid var(--line); background:var(--wash);}
body.nebula-body .tbl td{border-bottom:1px solid var(--line-2);}
/* هاورِ سطر: nebula.css:316 رنگِ هاور را روی «td» می‌نشاند
   (.tbl tr:hover td → rgba(255,255,255,.02)) و جعبهٔ td روی tr نقاشی
   می‌شود، پس هر هاورِ سطحِ tr عملاً دیده نمی‌شود. قاعده هم‌سطحِ td
   می‌نشینیم؛ و عمداً background-color نه background، تا گرادیانِ
   ردیفِ جمعِ کل (۹-۱۲) پاک نشود. */
body.nebula-body .tbl tbody tr:hover td{background-color:rgba(124,58,237,.045);}
body.nebula-body .tbl tr:last-child td{border-bottom:none;}

/* زبانه‌ها */
body.nebula-body .tabs{gap:2px; border-bottom:1px solid var(--line);}
body.nebula-body .tabs a{
  padding:10px 15px; font-size:12.5px; font-weight:600; border-radius:var(--r-2) var(--r-2) 0 0;
  color:var(--ink-2); transition:color .18s, background .18s;
}
body.nebula-body .tabs a:hover{color:var(--ink); background:var(--wash);}
body.nebula-body .tabs a.active{
  color:var(--v); font-weight:700;
  background:linear-gradient(180deg,rgba(124,58,237,.07),transparent);
  border-color:var(--v);
}

/* صفحه‌بندی */
body.nebula-body .pager a{border-radius:var(--r-2); box-shadow:var(--el-1); font-variant-numeric:tabular-nums;}
body.nebula-body .pager a:hover{border-color:rgba(124,58,237,.45); color:var(--v);}
body.nebula-body .pager a.active{
  background-image:var(--grad-brand) !important; box-shadow:var(--el-violet);
}

/* هشدارها */
body.nebula-body .notice{border-radius:var(--r-3); box-shadow:var(--el-1); padding:13px 15px;}
body.nebula-body .notice b{font-weight:800;}

/* ============================================================================
   ۷) سایدبار — برند، آیتمِ فعال، باکسِ کاربر
   ========================================================================== */
body.nebula-body .brand .mark{
  border-radius:var(--r-3);
  background-image:var(--grad-brand) !important;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.35);
}
body.nebula-body .brand .name{font-size:15.5px; font-weight:800; letter-spacing:-.2px;}
body.nebula-body .brand .name span{font-size:10.5px; font-weight:500; color:var(--ink-3); margin-top:3px;}
body.nebula-body .brand{margin-bottom:24px;}
body.nebula-body .layout .nav a{border-radius:var(--r-3); font-size:13px; padding:11px 13px;}
body.nebula-body .layout .nav a.active{
  background:linear-gradient(90deg,rgba(124,58,237,.13),rgba(8,145,178,.045)) !important;
  color:#4C1D95 !important; font-weight:700;
  box-shadow:inset 3px 0 0 var(--v), inset 0 0 0 1px rgba(124,58,237,.10) !important;
}
body.nebula-body .layout .nav a .l{font-weight:inherit;}
body.nebula-body .layout .nav a .pill{box-shadow:0 3px 10px -3px rgba(244,63,94,.6);}
body.nebula-body .user-box{
  background:#fff; border-color:var(--line); box-shadow:var(--el-1);
  border-radius:var(--r-4); padding:12px;
}
body.nebula-body .avatar{border-radius:var(--r-3); background-image:linear-gradient(135deg,#7C3AED,#DB2777);}
body.nebula-body .promo-card{border-radius:var(--r-4);}
body.nebula-body .promo-card a:hover{color:var(--c);}

/* ---------------------------------------------------------------------------
   ۷-ب) سایدبار — پاسِ کامل
   ----------------------------------------------------------------------------
   بندِ ۷ِ اول فقط برند/لینکِ فعال/باکسِ کاربر را لمس کرده بود و کلِ اسکلتِ
   آکاردئون (گروه‌ها، زیرمنو، caret، برچسبِ بخش، دکمهٔ خروج، پنل‌های WHMCS،
   اسکرول‌بار و کشوی موبایل) دست‌نخورده مانده بود — و همان‌ها چیزی است که
   کاربر هر بار دیدن می‌کند. همه چیز روی همان توکن‌های بندِ ۲ می‌نشیند.
   --------------------------------------------------------------------------- */

/* بدنهٔ سایدبار: سفیدِ مطلق → کاغذِ کمی سرد، با لبهٔ راستِ برند */
body.nebula-body .nebula-aside{
  background-image:linear-gradient(180deg,#FCFBFF 0%,#FFFFFF 34%,#F8F9FE 100%) !important;
  border-inline-end:1px solid rgba(124,58,237,.10) !important;
  box-shadow:inset -1px 0 0 rgba(124,58,237,.05), 1px 0 0 rgba(20,20,40,.02) !important;
}
/* هالهٔ بالای سایدبار (nebula.css:48 آن را با rgba بنفشِ تم تیره می‌دهد) */
body.nebula-body .nebula-aside::before{
  background:linear-gradient(180deg, rgba(124,58,237,.07), transparent) !important;
  height:230px;
}

/* اسکرول‌بارِ سایدبار — در ویندوز پیش‌فرض، خاکستریِ خام و بی‌ربط است */
body.nebula-body .nebula-aside{scrollbar-width:thin; scrollbar-color:rgba(124,58,237,.28) transparent;}
body.nebula-body .nebula-aside::-webkit-scrollbar{width:7px;}
body.nebula-body .nebula-aside::-webkit-scrollbar-track{background:transparent;}
body.nebula-body .nebula-aside::-webkit-scrollbar-thumb{
  background:rgba(124,58,237,.22); border-radius:var(--r-full);
  border:2px solid transparent; background-clip:padding-box;
}
body.nebula-body .nebula-aside::-webkit-scrollbar-thumb:hover{background:rgba(124,58,237,.42); background-clip:padding-box;}

/* برند: جداکنندهٔ بصریِ نرم زیر لوگو */
body.nebula-body .brand{padding-bottom:18px; border-bottom:1px solid var(--line-2);}
body.nebula-body .brand .mark{
  transform:perspective(420px) rotateX(9deg) rotateY(-11deg);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .brand:hover .mark{transform:perspective(420px) rotateX(0deg) rotateY(0deg) scale(1.05);}
body.nebula-body .brand .name{font-family:var(--nbl-display); font-variation-settings:'wght' 800;}
body.nebula-body .brand-logo{filter:drop-shadow(0 4px 10px rgba(124,58,237,.14));}

/* گروه‌های آکاردئون */
body.nebula-body .nav .nav-group{border-radius:var(--r-3);}
body.nebula-body .layout .nav .nav-toggle{border-radius:var(--r-3); transition:background .18s, color .18s, box-shadow .18s;}
body.nebula-body .layout .nav .nav-toggle:hover{box-shadow:inset 0 0 0 1px rgba(124,58,237,.09);}
body.nebula-body .layout .nav .nav-toggle:focus-visible{
  outline:none; box-shadow:var(--ring);
}
/* نوارِ عمودیِ گروهِ باز — نشانهٔ «اینجا باز است» به‌جای فقط پس‌زمینه */
body.nebula-body .layout .nav .nav-group.open > .nav-toggle{
  border-radius:var(--r-3) var(--r-3) 0 0;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.10);
}
body.nebula-body .layout .nav .nav-toggle .caret{
  width:18px; height:18px; display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--r-full); background:rgba(124,58,237,.06);
  color:var(--ink-3) !important; font-size:9px;
  transition:transform .28s cubic-bezier(.4,0,.2,1), background .2s, color .2s;
}
body.nebula-body .layout .nav .nav-group.open .nav-toggle .caret{
  background:rgba(124,58,237,.14); color:var(--v) !important;
}
body.nebula-body .layout .nav .nav-toggle:hover .caret{background:rgba(124,58,237,.12);}

/* زیرمنو: خطِ راهنمای عمودی + ورودِ پله‌ای */
body.nebula-body .nav .nav-sub{
  position:relative;
  border-inline-start:1px solid transparent;
}
body.nebula-body .nav .nav-group.open .nav-sub{
  border-inline-start-color:rgba(124,58,237,.16);
  margin-inline-start:19px; padding-inline-start:8px;
}
body.nebula-body .layout .nav .nav-sub a{border-radius:var(--r-2);}
body.nebula-body .layout .nav .nav-sub a.active{
  box-shadow:inset 2px 0 0 var(--v), inset 0 0 0 1px rgba(124,58,237,.10) !important;
}
/* آیکن‌های ریزِ زیرمنو کمی از متن جدا می‌شوند */
body.nebula-body .layout .nav .nav-sub a .l i{opacity:.72; transition:opacity .18s, transform .18s;}
body.nebula-body .layout .nav .nav-sub a:hover .l i{opacity:1; transform:scale(1.12);}

/* برچسبِ بخش («حساب کاربری» / «راهنما») — خطِ دو طرف */
body.nebula-body .layout .nav-group-label,
body.nebula-body .nav-group-label{
  display:flex; align-items:center; gap:9px;
  font-size:9.5px; color:var(--ink-3) !important; font-weight:700;
  letter-spacing:.7px; margin:18px 10px 8px;
}
body.nebula-body .nav-group-label::before,
body.nebula-body .nav-group-label::after{
  content:''; height:1px; flex:1; background:linear-gradient(90deg,transparent,var(--line-2));
}
body.nebula-body .nav-group-label::after{background:linear-gradient(90deg,var(--line-2),transparent);}

/* دکمهٔ خروج */
body.nebula-body .layout .nav .nav-logout{border-radius:var(--r-3); margin-inline:2px;}
body.nebula-body .layout .nav .nav-logout:hover{box-shadow:inset 0 0 0 1px rgba(225,29,72,.14);}
body.nebula-body .layout .nav .nav-logout .l i{transition:transform .2s;}
body.nebula-body .layout .nav .nav-logout:hover .l i{transform:translateX(-3px);}

/* شمارندهٔ قرمز: لبهٔ روشنِ داخلی تا روی زمینهٔ سفید «برجسته» بماند */
body.nebula-body .layout .nav .pill,
body.nebula-body .layout .nav .nav-toggle .pill{
  box-shadow:0 2px 8px rgba(244,63,94,.38), inset 0 1px 0 rgba(255,255,255,.35) !important;
}

/* باکس کاربر */
body.nebula-body .user-box{position:relative; overflow:hidden;}
body.nebula-body .user-box::before{
  content:''; position:absolute; inset:0 0 auto 0; height:2px;
  background:var(--grad-brand); opacity:.75;
}
body.nebula-body .user-box .u{font-family:var(--nbl-display); font-variation-settings:'wght' 650;}
body.nebula-body .user-box .u span{font-variant-numeric:tabular-nums; direction:ltr; text-align:start;}
/* نقطهٔ «آنلاین» روی آواتار: حلقهٔ سفیدِ تم تیره (#13102A) روی سفید ناپدید می‌شود */
body.nebula-body .avatar::after{border-color:#FFFFFF !important; background:#059669 !important; box-shadow:0 0 0 2px rgba(5,150,105,.18) !important;}

/* کارت پروموشن */
body.nebula-body .promo-card{
  background-image:linear-gradient(135deg,rgba(124,58,237,.10),rgba(8,145,178,.06)) !important;
  border-color:rgba(124,58,237,.20);
  box-shadow:var(--el-1), inset 0 1px 0 rgba(255,255,255,.8);
}
body.nebula-body .promo-card::before{background:rgba(124,58,237,.22) !important;}
body.nebula-body .promo-card .glow{
  position:absolute; width:120px; height:120px; border-radius:50%;
  bottom:-56px; right:-30px; pointer-events:none;
  background:radial-gradient(circle, rgba(8,145,178,.26), transparent 70%);
  filter:blur(26px);
}
body.nebula-body .promo-card p{color:var(--ink-2) !important;}
body.nebula-body .promo-card a{color:var(--v) !important;}

/* پنل‌های سایدبارِ WHMCS (.neb-sidebar-slot) */
body.nebula-body .neb-sidebar-slot{gap:var(--s-3);}
body.nebula-body .neb-panel{
  border-color:var(--line-2); border-radius:var(--r-4);
  box-shadow:var(--el-1); background:#fff;
}
body.nebula-body .neb-panel-head{
  background-image:linear-gradient(180deg,#FBFAFF,#fff);
  border-bottom-color:var(--line-2);
}
body.nebula-body .neb-panel-head h3{
  font-family:var(--nbl-display); font-variation-settings:'wght' 700; letter-spacing:-.15px;
}
body.nebula-body .neb-panel-link{border-bottom-color:var(--line-2); transition:background .16s, color .16s, box-shadow .16s;}
body.nebula-body .neb-panel-link:hover{background-image:linear-gradient(90deg,#F8F5FF,#fff);}
body.nebula-body .neb-panel-link.active{
  background-image:linear-gradient(90deg,rgba(124,58,237,.11),rgba(8,145,178,.03)) !important;
  color:var(--ink) !important;
  box-shadow:inset 3px 0 0 var(--v);
  font-weight:700;
}
body.nebula-body .neb-panel-foot{border-top-color:var(--line-2); background:#FCFCFE;}

/* کشوی موبایل: لبهٔ داخلی + دکمهٔ بستن */
@media (max-width:860px){
  body.nebula-body .nebula-aside{
    background-image:linear-gradient(180deg,#FFFFFF,#FAFAFE) !important;
    box-shadow:-22px 0 60px -18px rgba(28,20,70,.28), -1px 0 0 rgba(124,58,237,.14) !important;
  }
  .sidebar-close-btn{
    border-radius:var(--r-2) !important;
    background:#fff !important; border-color:var(--line-2) !important;
    box-shadow:var(--el-1); color:var(--ink-2) !important;
    transition:background .16s, color .16s, transform .16s;
  }
  .sidebar-close-btn:hover{background:var(--wash) !important; color:var(--ink) !important; transform:rotate(90deg);}
  .sidebar-close-btn:focus-visible{outline:none; box-shadow:var(--ring);}
}

/* ============================================================================
   ۸) پرداخت‌هایِ ریز که «حرفه‌ای» بودن را می‌سازند
   ========================================================================== */
::selection{background:rgba(124,58,237,.18); color:#14141C;}
body.nebula-body .avatar, body.nebula-body .svc-ic, body.nebula-body .qi,
body.nebula-body .stat-ic, body.nebula-body .brand .mark{-webkit-user-select:none; user-select:none;}

/* اسکرول‌بارِ باریک */
@supports (selector(:focus-visible)){
  *{scrollbar-width:thin; scrollbar-color:rgba(124,58,237,.35) transparent;}
  ::-webkit-scrollbar{width:9px; height:9px;}
  ::-webkit-scrollbar-track{background:transparent;}
  ::-webkit-scrollbar-thumb{background:rgba(20,20,40,.16); border-radius:var(--r-full); border:2px solid transparent; background-clip:padding-box;}
  ::-webkit-scrollbar-thumb:hover{background:rgba(124,58,237,.45); background-clip:padding-box;}
}

/* حلقهٔ فوکوسِ کیبورد — پیش‌فرضِ بوت‌استرپ حذف و جایِ آن نشانِ برند */
body.nebula-body a:focus-visible,
body.nebula-body button:focus-visible,
body.nebula-body .btn:focus-visible,
body.nebula-body .icon-btn:focus-visible,
body.nebula-body .nav-toggle:focus-visible,
body.nebula-body .chip:focus-visible,
body.nebula-body .pill-opt:focus-visible{
  outline:none; box-shadow:var(--ring) !important; border-radius:var(--r-2);
}
body.nebula-body .form-control:focus-visible,
body.nebula-body .input:focus-visible{outline:none;}

/* کراس‌اوِ .hero و .dc-hero با گرادیانِ تیره: عنوان‌هایِ نمایشی روی آن‌ها
   باید سفید بمانند (جوهرِ تیره فقط روی سطحِ سفید اعمال می‌شود) */
body.nebula-body.nebula-body .dc-hero h1,
body.nebula-body.nebula-body .hp-hero h1,
body.nebula-body.nebula-body .hp-cta h2{color:#fff;}

/* ============================================================================
   ۹) محیطِ داشبورد و بخش‌هایِ سایت
   ----------------------------------------------------------------------------
   این بند دقیقاً همان چیزی است که در نسخه‌هایِ اول جا ماند: «درست شدنِ
   کاسکید» با «ارتقایِ گرافیکِ محیط» یکی نیست. اینجا هر خانوادهٔ کامپوننتِ
   پنل (داشبورد، سرویس‌های من، دامنه‌ها، مالی/فاکتور، تیکت‌ها، ایجاد تیکت،
   پروفایل/امنیت، دانشنامه، دانلودها، صفحهٔ اصلی) سطحِ بصریِ خودش را
   می‌گیرد. همه‌چیز افزوده است؛ هیچ قانونِ موجودی حذف نشده.

   دو قاعدهٔ ایمنی که در کل بند رعایت شده:
     • فقط روی ::before/::afterهای خالی نوشته شده (تک‌تک بررسی شد: در
       nebula.css / nebula-3d.css / این فایل اشغال نبودند).
     • روی i، span، b، strong، em، cite هیچ font-family‌ای نگذاشتیم —
       FontAwesome روی همین تگ‌هاست و !important آیکن را به مربع می‌کند.
   ========================================================================== */

/* ۹-۰) ظرفِ مشترکِ «تیلتِ عمق» — nebula-3d.css فقط روی ۱۵ کلاسِ مشخص
        عمقِ ثابت می‌گذارد؛ بقیهٔ ظرف‌هایِ محتوا بی‌عمق می‌ماندند.
        :not(.n3d-tilt):not(:hover) همان قیدِ خودِ 3d.css است، پس تیلتِ
        ماوسیِ nebula-3d.js هرگز با این قاعده نمی‌جنگد. */
body.nebula-body :is(.traffic-card, .servers-card, .calendar-card, .ticket-list-card,
  .tk-form-section, .tk-form-footer, .tk-dept-card, .dc-mgmt-card, .dc-term,
  .dc-mod-card, .dc-blocked, .hp-prod-card, .hp-feat, .hp-help-card,
  .hp-acct-card, .svc-card, .notice):not(.n3d-tilt):not(:hover){
  transform:perspective(1200px) rotateX(.6deg);
}
@media (prefers-reduced-motion:reduce){
  body.nebula-body :is(.traffic-card, .servers-card, .calendar-card, .ticket-list-card,
    .tk-form-section, .tk-form-footer, .tk-dept-card, .dc-mgmt-card, .dc-term,
    .dc-mod-card, .dc-blocked, .hp-prod-card, .hp-feat, .hp-help-card,
    .hp-acct-card, .svc-card, .notice){transform:none !important;}
}

/* ۹-۱) تیترِ ویجت: خطِ زیرِ سراسری به «نشانِ برند» تبدیل می‌شود.
   !!! باگِ خودساخته که اینجا اصلاح می‌شود:
   .card h3 در nebula.css:246 و :1171 فیلفکسِ justify-content:space-between
   است. وقتی ::before (چیپِ برند) به‌عنوان فرزندِ اول اضافه می‌شود، سه
   فرزند می‌شود و با space-betweenِ دوتایی، «متنِ عنوان» به وسطِ سرِ دیگر
   می‌رود. در صفحه‌هایِ پروفایل که عنوان هیچ <a> ندارد، نتیجه: تیتر به
   لبهٔ چپ می‌چسبد (چپ‌چین شدنِ گزارش‌شده). راه‌حل: چیدمان به flex-start
   برمی‌گردد و لینکِ «مشاهده همه» با margin-inline-start:auto خودش را به
   انتهای خط می‌چسباند — یعنی دقیقاً همان جای قبلی، ولی بدونِ جابه‌جا
   شدنِ متن. */
body.nebula-body .card h3{
  border-bottom:1px solid var(--line-2); padding-bottom:11px; margin-bottom:14px;
  color:var(--ink); letter-spacing:-.15px;
  justify-content:flex-start;
}
body.nebula-body .card h3::before{
  content:''; width:4px; height:15px; border-radius:var(--r-full); flex:0 0 auto;
  background:var(--grad-brand); box-shadow:var(--el-violet);
}
body.nebula-body .card h3 a{
  font-weight:700; color:var(--v) !important; font-size:11.5px;
  padding:3px 9px; border-radius:var(--r-full); background:var(--wash);
  margin-inline-start:auto;
  transition:background .18s, color .18s;
}
body.nebula-body .card h3 a:hover{background:rgba(124,58,237,.13); text-decoration:none;}

/* ۹-۲) بنرِ اسلایدیِ داشبورد — زمینِ برند + شبکهٔ پرسپکتیو */
body.nebula-body .hero{
  background-image:linear-gradient(120deg,#F3EEFE 0%,#EAF1FE 52%,#E2F5FA 100%) !important;
  border-color:rgba(124,58,237,.16);
  box-shadow:var(--el-3), inset 0 1px 0 rgba(255,255,255,.85);
}
body.nebula-body .hero::before{
  content:''; position:absolute; inset:auto 0 0 0; height:62%; z-index:0;
  pointer-events:none; opacity:.5;
  background-image:
    repeating-linear-gradient(90deg, rgba(124,58,237,.15) 0 1px, transparent 1px 58px),
    repeating-linear-gradient(0deg, rgba(8,145,178,.13) 0 1px, transparent 1px 42px);
  transform:perspective(520px) rotateX(60deg); transform-origin:bottom center;
  -webkit-mask-image:linear-gradient(180deg, transparent, #000 78%);
          mask-image:linear-gradient(180deg, transparent, #000 78%);
}
body.nebula-body .hero .blob{opacity:.42; filter:blur(56px);}
body.nebula-body .hero .hb1{background:#7C3AED;}
body.nebula-body .hero .hb2{background:#0891B2;}
body.nebula-body.nebula-body .hero-content .txt h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:26px; color:#1B1233; letter-spacing:-.4px; line-height:1.3;
}
body.nebula-body .hero-content .txt p{color:#4B4B63; max-width:340px;}
body.nebula-body .hero-content .txt .tag{
  background:rgba(219,39,119,.10); border-color:rgba(219,39,119,.26);
  color:#9D174D; font-weight:700;
}
body.nebula-body .hero-content .txt .tag b{background:#BE123C;}
body.nebula-body.nebula-body .countdown .box{
  background:rgba(255,255,255,.78); border-color:rgba(124,58,237,.16);
  box-shadow:var(--el-1); border-radius:var(--r-3);
}
body.nebula-body.nebula-body .countdown .box .n{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:20px; font-variant-numeric:tabular-nums; color:var(--ink);
}
body.nebula-body .countdown .box .l{color:var(--ink-3); letter-spacing:.2px;}
body.nebula-body .hero .dots i{
  width:16px; height:5px; background:rgba(20,20,40,.14);
  transition:width .32s cubic-bezier(.4,0,.2,1), background .2s;
}
body.nebula-body .hero .dots i:hover{background:rgba(124,58,237,.4);}
body.nebula-body .hero .dots i.on{width:28px; background-image:var(--grad-brand);}

/* ۹-۳) ردیفِ آمار: کیف پول، حلقه‌ها، تیکتِ باز */
body.nebula-body .wallet-card{
  overflow:hidden; border-color:rgba(124,58,237,.18);
  background-image:linear-gradient(160deg,rgba(124,58,237,.07),rgba(8,145,178,.04) 58%,#fff);
}
body.nebula-body .wallet-card::before{
  content:''; position:absolute; z-index:-1; inset:-34% -12% auto auto;
  width:150px; height:150px; border-radius:50%; pointer-events:none;
  background:radial-gradient(circle, rgba(124,58,237,.20), transparent 70%);
}
body.nebula-body .wallet-card .wl{
  font-size:10.5px; font-weight:800; letter-spacing:.5px; color:var(--ink-3);
}
body.nebula-body .wallet-card .wa{color:#0E7490 !important; font-weight:800;}
body.nebula-body .wallet-card .wa:hover{color:#5B21B6 !important; text-decoration:none;}

body.nebula-body .ring-card{overflow:hidden; border-color:rgba(124,58,237,.14);}
body.nebula-body .ring-card::before{
  content:''; position:absolute; z-index:-1; inset:0; pointer-events:none;
  background:linear-gradient(120deg, rgba(124,58,237,.07), transparent 62%);
}
/* سرِ گرادیانِ حلقه بیرونِ کادرِ SVG می‌افتد (stroke-width:6 روی r:24)
   و با overflow:hidden بریده می‌شد */
body.nebula-body .ring-card svg{overflow:visible;}
body.nebula-body .ring-card .rn{font-variant-numeric:tabular-nums; letter-spacing:-.4px;}
body.nebula-body .ring-card .rl{font-weight:600; color:var(--ink-2);}
body.nebula-body .ring-card .rs{font-variant-numeric:tabular-nums;}

body.nebula-body .uptime-card{
  background-image:linear-gradient(160deg,rgba(4,120,87,.06),rgba(8,145,178,.04) 60%,#fff);
  border-color:rgba(4,120,87,.18);
}
body.nebula-body .uptime-card .top .badge-up b{background:#047857 !important; box-shadow:0 0 0 3px rgba(4,120,87,.16) !important;}
body.nebula-body .uptime-card .n a{transition:-webkit-text-fill-color .18s, color .18s;}
/* لینک داخلِ .n «color:inherit»ِ inline دارد، پس رنگِ hover را با
   text-fill-color می‌دهیم (inline روی color بر استایل‌شیت می‌برد) */
body.nebula-body .uptime-card .n a:hover{-webkit-text-fill-color:#5B21B6;}

/* ۹-۴) تقویم و یادآوری */
body.nebula-body .cal-grid .dh{
  font-size:9px; font-weight:800; color:var(--ink-3); letter-spacing:.4px;
}
body.nebula-body .cal-grid .dd{
  font-weight:600; border:1px solid transparent; transition:background .16s, color .16s;
}
body.nebula-body .cal-grid .dd:hover{background:var(--wash-2); color:var(--ink);}
body.nebula-body .cal-grid .dd.empty:hover{background:transparent;}
body.nebula-body.nebula-body .cal-grid .dd.today{
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.3);
  border-radius:var(--r-2);
}
body.nebula-body .cal-grid .dd.event{
  border-color:rgba(180,83,9,.30); background:rgba(180,83,9,.09) !important;
}
body.nebula-body .renewal{
  background:linear-gradient(180deg, rgba(180,83,9,.10), rgba(180,83,9,.04)) !important;
  border:1px solid rgba(180,83,9,.26) !important; border-radius:var(--r-3);
  box-shadow:var(--el-1); padding:11px 12px;
}
body.nebula-body .renewal .d{font-variant-numeric:tabular-nums; color:var(--ink-2);}

/* ۹-۵) ردیفِ سرویس‌ها (ویجتِ «وضعیت سرویس‌ها») */
body.nebula-body .server-row{
  position:relative; padding:11px 10px 11px 6px; border-radius:var(--r-2);
  transition:background .18s, box-shadow .18s;
}
body.nebula-body .server-row::before{
  content:''; position:absolute; inset-inline-start:-10px; top:50%; translate:0 -50%;
  width:3px; height:0; border-radius:var(--r-full); background:var(--grad-brand);
  transition:height .24s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .server-row:hover{background:var(--wash); box-shadow:var(--el-1);}
body.nebula-body .server-row:hover::before{height:62%;}
body.nebula-body .server-row .name{font-weight:700;}
body.nebula-body .server-row .pct{font-weight:800; color:var(--ink-2);}
body.nebula-body .pct-sub{font-weight:500; letter-spacing:.2px;}

/* ۹-۶) آخرین تیکت‌ها و آخرین اخبار */
body.nebula-body .ticket-item,
body.nebula-body .news-item{
  position:relative; border-radius:var(--r-2); padding:10px 8px;
  transition:background .18s;
}
body.nebula-body .ticket-item:hover,
body.nebula-body .news-item:hover{background:var(--wash);}
body.nebula-body .ticket-item .av{box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.4);}
body.nebula-body .news-item .t{font-weight:700;}
body.nebula-body .news-item .d,
body.nebula-body .ticket-item .d{font-variant-numeric:tabular-nums;}

/* ۹-۷) دسترسی سریع — تیلتِ 3d کاشیِ آیکن را صاف می‌کند، پس لیفتِ خودِ
        لینک روی محورِ Y می‌نشیند (nebula-3d.css:148-155) */
body.nebula-body .quick-grid a{
  border-color:var(--line); box-shadow:var(--el-1);
  transition:transform .2s cubic-bezier(.4,0,.2,1), box-shadow .2s, border-color .2s, background .2s;
}
body.nebula-body .quick-grid a:hover{
  transform:translateY(-3px); box-shadow:var(--el-3);
  border-color:rgba(124,58,237,.34);
}
body.nebula-body .quick-grid a .qi{font-size:16px;}

/* ۹-۸) نمودارِ پرداختیِ ماهانه — میله‌ها کلاهکِ نور و خطِ پایه می‌گیرند */
body.nebula-body .pay-bars{height:96px; padding-top:8px; border-bottom:1px solid var(--line-2);}
body.nebula-body .pb{position:relative;}
body.nebula-body .pb i{
  border-radius:var(--r-2) var(--r-2) 3px 3px; opacity:.72;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5);
  transition:opacity .2s, filter .2s;
}
body.nebula-body .pb:hover i{opacity:1; filter:brightness(1.06);}
body.nebula-body .pb.hi i{
  opacity:1; background-image:linear-gradient(180deg,#B45309,#92400E);
  box-shadow:0 0 16px rgba(180,83,9,.34), inset 0 1px 0 rgba(255,255,255,.4);
}
body.nebula-body .pb::after{
  content:''; position:absolute; inset-inline:2px; bottom:-9px; height:2px;
  border-radius:var(--r-full); background:rgba(124,58,237,.22);
}
body.nebula-body .pb.hi::after{background:#B45309;}
body.nebula-body .pb span{font-weight:600; color:var(--ink-3);}
body.nebula-body .traffic-legend span{font-weight:600; color:var(--ink-2);}
body.nebula-body .traffic-legend i{box-shadow:0 0 0 3px rgba(124,58,237,.14);}

/* ۹-۹) کارت‌های آماریِ «سرویس‌های من / فاکتورها» */
body.nebula-body .stat-card{overflow:hidden;}
body.nebula-body .stat-card::before{
  content:''; position:absolute; z-index:-1; inset-inline-start:0; top:0; bottom:0;
  width:3px; background:var(--grad-brand); opacity:.85;
}
body.nebula-body .stat-card .sl{font-weight:700; color:var(--ink-2);}
body.nebula-body .stat-card .ss{font-variant-numeric:tabular-nums;}
body.nebula-body .stat-card.sc-green::before {background:linear-gradient(180deg,#047857,#059669);}
body.nebula-body .stat-card.sc-amber::before{background:linear-gradient(180deg,#92400E,#B45309);}
body.nebula-body .stat-card.sc-red::before  {background:linear-gradient(180deg,#9F1239,#BE123C);}
body.nebula-body .stat-card.sc-cyan::before {background:linear-gradient(180deg,#0E7490,#0891B2);}

/* ۹-۱۰) نوارِ ابزار و فیلترهایِ «سرویس‌های من» */
body.nebula-body .svc-chip{
  font-weight:700; box-shadow:var(--el-1); color:var(--ink-2);
  transition:all .18s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .svc-chip:hover{transform:translateY(-1px); box-shadow:var(--el-2); border-color:rgba(124,58,237,.3);}
body.nebula-body .svc-chip span{background:var(--wash-2); color:var(--ink-2); font-variant-numeric:tabular-nums;}
body.nebula-body .svc-chip.is-on{
  background-image:var(--grad-brand) !important; color:#fff !important;
  border-color:transparent; box-shadow:var(--el-violet);
}
body.nebula-body .svc-chip.is-on span{background:rgba(255,255,255,.24) !important; color:#fff !important;}
body.nebula-body .svc-toolbar{margin-bottom:16px;}
body.nebula-body .svc-card{border-color:rgba(124,58,237,.13);}
body.nebula-body .svc-card:hover{border-color:rgba(124,58,237,.34); box-shadow:var(--el-3);}
body.nebula-body .svc-name{font-weight:800; letter-spacing:-.15px;}
body.nebula-body .svc-meta .k{font-weight:700; letter-spacing:.3px; color:var(--ink-3);}
body.nebula-body .svc-meta .v{font-weight:700; color:var(--ink);}
body.nebula-body .svc-actions .btn{font-weight:800;}

/* ۹-۱۱) دامنه‌ها — هیرو، میزِ تمدید، جدول، نوارِ انتخابِ گروهی */
body.nebula-body .dc-hero{
  background-image:linear-gradient(135deg,#6D28D9 0%,#7C3AED 44%,#0E7490 100%);
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.22);
}
body.nebula-body .dc-hero::before{
  content:''; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.3;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,.14) 0 1px, transparent 1px 34px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.10) 0 1px, transparent 1px 34px);
  -webkit-mask-image:radial-gradient(120% 100% at 88% 0%, #000, transparent 62%);
          mask-image:radial-gradient(120% 100% at 88% 0%, #000, transparent 62%);
}
body.nebula-body.nebula-body .dc-hero h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:21px; letter-spacing:-.4px;
}
body.nebula-body .dc-hero-badge{background:rgba(255,255,255,.18); box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);}
body.nebula-body .dc-toolbar-title{font-family:var(--nbl-display); font-variation-settings:'wght' 800; letter-spacing:-.2px;}
body.nebula-body .dc-renewal-track{
  background:var(--ring-track); height:7px; border-radius:var(--r-full);
  box-shadow:inset 0 1px 2px rgba(20,20,40,.10);
}
body.nebula-body .dc-renewal-fill{
  background-image:linear-gradient(90deg,#5B21B6,#0E7490);
  box-shadow:0 0 10px rgba(91,33,182,.35);
  transition:width .5s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .dc-renewal-fill.danger{background-image:linear-gradient(90deg,#9F1239,#BE123C); box-shadow:0 0 10px rgba(190,18,60,.35);}
body.nebula-body .dc-renewal-fill.warn{background-image:linear-gradient(90deg,#92400E,#B45309); box-shadow:0 0 10px rgba(180,83,9,.32);}
body.nebula-body .dc-renewal-label{font-variant-numeric:tabular-nums; font-weight:600;}
body.nebula-body .dc-status{box-shadow:inset 0 0 0 1px currentColor;}
body.nebula-body .dc-status.grey{background:var(--wash-2) !important; color:var(--ink-2) !important;}
body.nebula-body .dc-status.green{background:rgba(4,120,87,.12) !important; color:#047857 !important;}
body.nebula-body .dc-status.red{background:rgba(190,18,60,.10) !important; color:#BE123C !important;}
body.nebula-body .dc-status.amber{background:rgba(180,83,9,.12) !important; color:#B45309 !important;}
body.nebula-body .dc-status.violet{background:rgba(91,33,182,.11) !important; color:#5B21B6 !important;}
/* سطرِ دامنه‌ها: هم .tbl است هم .dc-table. دو نکتهٔ فنی:
   ۱) رنگِ هاور باید روی <td> بنشیند (همان دلیلِ ۹-۱۲/بخشِ ۶).
   ۲) با border-collapse:collapse (nebula.css:312) جعبهٔ <tr> نقاشی
      نمی‌شود، پس railِ ۳پیکسلی هم روی <td> اولِ ردیف می‌افتد. */
body.nebula-body .dc-table tbody tr{transition:background .15s;}
body.nebula-body .dc-table tbody tr:hover td{background-color:rgba(124,58,237,.055);}
body.nebula-body .dc-table tbody tr:hover td:first-child{box-shadow:inset 3px 0 0 var(--v);}
body.nebula-body .dc-bulk-bar{
  border-style:solid; border-color:rgba(124,58,237,.30);
  background:linear-gradient(90deg, rgba(124,58,237,.09), rgba(8,145,178,.05));
  box-shadow:var(--el-2); font-weight:600;
}
body.nebula-body .dc-bulk-count{font-variant-numeric:tabular-nums;}
body.nebula-body .dc-action-btn{box-shadow:var(--el-1); transition:all .16s;}
body.nebula-body .dc-action-btn:hover{transform:translateY(-1px); box-shadow:var(--el-2);}
body.nebula-body .dc-term{
  border-color:rgba(124,58,237,.14); box-shadow:var(--el-1);
  background-image:linear-gradient(160deg,rgba(124,58,237,.05),#fff 60%);
}
body.nebula-body .dc-mod-card{border-color:rgba(124,58,237,.13);}
body.nebula-body .dc-mod-head{
  background-image:linear-gradient(90deg, rgba(124,58,237,.10), rgba(8,145,178,.05) 70%, transparent);
  border-bottom-color:var(--line-2);
}
body.nebula-body .dc-mod-count{font-variant-numeric:tabular-nums;}
body.nebula-body .dc-mgmt-card{box-shadow:var(--el-1);}
body.nebula-body .dc-mgmt-txt b{font-weight:800;}
body.nebula-body .dc-pns-callout{box-shadow:var(--el-1); border-radius:var(--r-3);}
body.nebula-body .dc-whois-warn{
  background:linear-gradient(180deg, rgba(180,83,9,.10), rgba(180,83,9,.05));
  border-color:rgba(180,83,9,.28); color:#7A4A02; border-radius:var(--r-3);
}
body.nebula-body .dc-addon-status.off{background:var(--wash-2) !important; color:var(--ink-2) !important;}
body.nebula-body .dc-addon-status.on{background:rgba(4,120,87,.12) !important; color:#047857 !important;}
body.nebula-body .dc-price{font-variant-numeric:tabular-nums; font-weight:800;}

/* ۹-۱۲) مالی — فاکتورها، پرداختِ گروهی، هشدارها */
body.nebula-body .tbl thead th{
  background-image:linear-gradient(180deg,#FFFFFF,var(--wash));
  border-bottom:1px solid var(--line);
}
body.nebula-body .tbl td, body.nebula-body .tbl th{padding-top:11px; padding-bottom:11px;}
body.nebula-body .masspay-invoice-detail{font-variant-numeric:tabular-nums;}
/* .masspay-total یک <tr> است: transform و border-radius روی ردیفِ جدول
   اثر نمی‌کند، پس رنگ‌آمیزی روی <td> می‌نشیند */
body.nebula-body tr.masspay-total td{
  background-image:linear-gradient(180deg, rgba(124,58,237,.07), rgba(8,145,178,.03));
  border-top:1px solid rgba(124,58,237,.22);
  font-variant-numeric:tabular-nums;
}
body.nebula-body tr.masspay-total:last-child td{border-bottom:none;}
body.nebula-body .notice{border-inline-start-width:3px; font-weight:500;}
body.nebula-body .notice.info{background:linear-gradient(90deg,rgba(8,145,178,.10),rgba(8,145,178,.03)) !important; border-color:rgba(8,145,178,.30) !important; border-inline-start-color:#0E7490 !important; color:#0B5E77 !important;}
body.nebula-body .notice.warn{background:linear-gradient(90deg,rgba(180,83,9,.10),rgba(180,83,9,.03)) !important; border-color:rgba(180,83,9,.30) !important; border-inline-start-color:#B45309 !important; color:#7A4A02 !important;}
body.nebula-body .notice.danger{background:linear-gradient(90deg,rgba(190,18,60,.09),rgba(190,18,60,.03)) !important; border-color:rgba(190,18,60,.28) !important; border-inline-start-color:#BE123C !important; color:#9B1C31 !important;}
body.nebula-body .notice.ok{background:linear-gradient(90deg,rgba(4,120,87,.10),rgba(4,120,87,.03)) !important; border-color:rgba(4,120,87,.30) !important; border-inline-start-color:#047857 !important; color:#0B5C44 !important;}

/* ۹-۱۳) تیکت‌ها — آمار، لیست، دپارتمان‌ها، فرمِ ایجاد */
/* z-index:0 عمداً اضافه شد: .tk-stat در nebula.css فقط position:relative است و
   contextِ انباشت نمی‌سازد، پس نوارِ z-index:-1 پشتِ پس‌زمینهٔ سفیدِ خودش
   می‌رفت و دیده نمی‌شد (.stat-card به همین دلیل z-index:2 دارد و مشکل نداشت) */
body.nebula-body .tk-stat{overflow:hidden; z-index:0;}
body.nebula-body .tk-stat::before{
  content:''; position:absolute; z-index:-1; inset-inline-start:0; top:0; bottom:0;
  width:3px; background:var(--grad-brand);
}
body.nebula-body .tk-stat.sc-open::before    {background:linear-gradient(180deg,#0E7490,#0891B2);}
body.nebula-body .tk-stat.sc-answered::before{background:linear-gradient(180deg,#92400E,#B45309);}
body.nebula-body .tk-stat.sc-closed::before  {background:linear-gradient(180deg,#047857,#059669);}
body.nebula-body .tk-stat.sc-total::before   {background:linear-gradient(180deg,#5B21B6,#7C3AED);}
body.nebula-body .tk-stat .tk-stat-lb{letter-spacing:-.15px;}
body.nebula-body .tk-stat .tk-stat-sub{font-variant-numeric:tabular-nums;}
body.nebula-body .tk-badge{box-shadow:inset 0 0 0 1px currentColor;}
body.nebula-body .ticket-list-card{border-color:rgba(124,58,237,.13);}
body.nebula-body .ticket-list-head h3{font-family:var(--nbl-display); font-variation-settings:'wght' 800; letter-spacing:-.3px;}
body.nebula-body .ticket-row{
  border-color:var(--line-2); box-shadow:var(--el-1);
  transition:transform .18s cubic-bezier(.4,0,.2,1), box-shadow .18s, border-color .18s, background .18s;
}
body.nebula-body .ticket-row:hover{
  transform:translateY(-2px); box-shadow:var(--el-3);
  border-color:rgba(124,58,237,.34); background:var(--wash);
}
body.nebula-body .ticket-row-title{letter-spacing:-.1px;}
body.nebula-body .ticket-row-meta{font-variant-numeric:tabular-nums;}
body.nebula-body .ticket-row-go{color:var(--ink-3);}
body.nebula-body .tk-dept-card{
  border-color:var(--line); box-shadow:var(--el-1);
  transition:transform .2s cubic-bezier(.4,0,.2,1), box-shadow .2s, border-color .2s, background .2s;
}
body.nebula-body .tk-dept-card:hover{
  transform:translateY(-4px); box-shadow:var(--el-3);
  border-color:rgba(124,58,237,.34); background-image:linear-gradient(180deg,#FAF7FF,#fff);
}
body.nebula-body .tk-dept-name{font-family:var(--nbl-display); font-variation-settings:'wght' 750;}
body.nebula-body .tk-dept-card:hover .tk-dept-arrow{color:var(--v);}
body.nebula-body .tk-form-section,
body.nebula-body .tk-form-footer{border-color:var(--line); box-shadow:var(--el-2);}
body.nebula-body .tk-form-head{
  background-image:linear-gradient(135deg,#F1EDFE 0%,#F5F7FF 48%,#EAF7FB 100%);
  border-color:rgba(124,58,237,.20); box-shadow:var(--el-2), inset 0 1px 0 rgba(255,255,255,.8);
}
body.nebula-body .tk-form-head h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:17px; letter-spacing:-.35px;
}
body.nebula-body .tk-form-head-av{box-shadow:var(--el-violet), inset 0 1.5px 0 rgba(255,255,255,.45);}
body.nebula-body .upload-dropzone{
  border-color:rgba(124,58,237,.34); background:var(--wash); border-radius:var(--r-3);
}
body.nebula-body .upload-dropzone:hover{background:#F5F3FF; border-color:var(--v);}

/* ---------------------------------------------------------------------------
   ۹-۱۳-ب) «تیکت جدید» — پاسِ کاملِ سه مرحله
   ----------------------------------------------------------------------------
   بندِ ۹-۱۳ فقط آمار/لیست/کارتِ دپارتمان را لمس کرده بود؛ خودِ قیفِ ثبت
   تیکت (مرحلهٔ ۱ انتخاب بخش، مرحلهٔ ۲ فرم، مرحلهٔ ۳ تایید) و بلوکِ
   «پیشنهاد مقاله» بیرون از آن مانده بودند. کلاس‌ها از چهار فایل‌اند:
   supportticketsubmit-stepone / -steptwo / -customfields / -kbsuggestions /
   -confirm — همه بررسی شد که هیچ‌کدام بیرون از مسیرِ تیکت استفاده نمی‌شوند.
   --------------------------------------------------------------------------- */

/* --- مرحلهٔ ۱: سرصفحهٔ «با کدام بخش؟» --- */
body.nebula-body .ticket-intro{
  border-color:rgba(124,58,237,.18);
  background-image:linear-gradient(135deg,#F1EDFE 0%,#F5F7FF 48%,#EAF7FB 100%) !important;
  box-shadow:var(--el-2), inset 0 1px 0 rgba(255,255,255,.85);
  border-radius:var(--r-5); padding:22px 24px;
}
body.nebula-body .ticket-intro h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:17.5px; letter-spacing:-.35px;
}
body.nebula-body .ticket-intro p{color:var(--ink-2) !important;}
/* عمداً اینجا transform نمی‌گذاریم: .intro-av و .success-ic در
   nebula-3d.css:123-124 هستند و خودِ لایهٔ سه‌بعدی چرخش‌شان را با
   --n-tiltِ هاور می‌سازد؛ چون gfx بعد از 3d لود می‌شود، هر transformِ
   ثابتِ اینجا آن را بی‌اثر می‌کرد. */
body.nebula-body .intro-av{
  border-radius:var(--r-4); font-size:24px;
  box-shadow:var(--el-violet), inset 0 1.5px 0 rgba(255,255,255,.45);
}

/* --- شبکهٔ کارت‌های دپارتمان --- */
body.nebula-body .tk-dept-grid{gap:var(--s-5);}
body.nebula-body .tk-dept-card{
  border-radius:var(--r-5); padding:24px 18px 20px;
  border-color:var(--line-2); box-shadow:var(--el-1);
  background-image:linear-gradient(180deg,#FFFFFF,#FDFCFF);
  /* لازم بود: .dept-card در nebula.css:539 position:relative دارد ولی
     .tk-dept-card در :1569 ندارد؛ بدون آن، ریلِ ::afterِ پایین به
     نزدیک‌ترین جدِ position:relative می‌چسبید، نه به خودِ کارت. */
  position:relative;
}
body.nebula-body .tk-dept-card::after{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  border-radius:var(--r-5) var(--r-5) 0 0;
  background:var(--grad-brand); opacity:0; transition:opacity .22s;
}
body.nebula-body .tk-dept-card:hover::after{opacity:.9;}
body.nebula-body .tk-dept-ic{
  width:54px; height:54px; border-radius:var(--r-4); font-size:23px;
  background-image:linear-gradient(135deg,#F3EEFE,#EAF7FB) !important;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.12), var(--el-1);
  transition:transform .24s cubic-bezier(.4,0,.2,1), box-shadow .24s;
}
body.nebula-body .tk-dept-card:hover .tk-dept-ic{
  transform:translateY(-3px) scale(1.06);
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.22), var(--el-violet);
}
body.nebula-body .tk-dept-desc{color:var(--ink-2) !important; line-height:1.9;}
body.nebula-body .tk-dept-arrow{
  font-family:var(--nbl-display); font-variation-settings:'wght' 700;
  padding:5px 13px; border-radius:var(--r-full); background:rgba(124,58,237,.08);
  color:var(--v) !important; margin-top:12px;
}

/* --- مرحلهٔ ۲: سرصفحهٔ فرم --- */
body.nebula-body .tk-form-head{
  border-radius:var(--r-5); padding:22px 24px;
}
body.nebula-body .tk-form-head p{color:var(--ink-2) !important;}
body.nebula-body .tk-form-head-av{
  border-radius:var(--r-4); font-size:24px;
  transform:perspective(460px) rotateX(11deg) rotateY(-13deg);
  transition:transform .3s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .tk-form-head:hover .tk-form-head-av{
  transform:perspective(460px) rotateX(0deg) rotateY(0deg) scale(1.06);
}

/* بلوک‌های فرم: لبهٔ نرم + جداکنندهٔ مرحله‌ای */
body.nebula-body .tk-form-section,
body.nebula-body .tk-form-footer{
  border-radius:var(--r-4); border-color:var(--line-2);
  box-shadow:var(--el-1); background:#fff;
}
body.nebula-body .tk-form-section{padding:22px;}
body.nebula-body .tk-form-section + .tk-form-section{margin-top:var(--s-4);}
/* عنوانِ بخش: خطِ چینِ زیر را به خطِ توپرِ برند تبدیل می‌کنیم */
body.nebula-body.nebula-body .tk-section-title{
  border-bottom:1px solid var(--line-2); padding-bottom:12px; margin-bottom:18px;
  letter-spacing:-.2px;
}
body.nebula-body .ts-ic{
  width:32px; height:32px; border-radius:var(--r-2); font-size:15px;
  background-image:linear-gradient(135deg,#F3EEFE,#EFF6FF) !important;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.14);
}
/* ستارهٔ «اجباری» — nebula.css:293 آن را قرمزِ تم تیره می‌دهد */
body.nebula-body .field .req,
body.nebula-body .req{color:var(--red) !important; font-weight:800;}

/* لیبلِ فیلدها: روی پروفایل و تیکت یکسان شود */
body.nebula-body .field > label,
body.nebula-body .tk-form .field > label{
  font-weight:600; color:var(--ink-2); letter-spacing:-.1px; margin-bottom:8px;
}

/* --- دراپ‌زونِ فایل --- */
body.nebula-body .upload-dropzone{
  border-radius:var(--r-4); padding:28px 16px;
  border-style:dashed; border-width:1.5px;
  background-image:linear-gradient(180deg,#FCFBFF,#F7F5FE);
  transition:border-color .2s, background .2s, box-shadow .2s;
}
body.nebula-body .upload-dropzone:hover{box-shadow:var(--el-1);}
body.nebula-body .upload-dropzone:focus-within{
  border-color:var(--v) !important; box-shadow:var(--ring);
}
body.nebula-body .dz-ic{
  display:block; width:46px; height:46px; line-height:46px; margin:0 auto 8px;
  border-radius:var(--r-3); font-size:21px;
  background:#fff; box-shadow:inset 0 0 0 1px rgba(124,58,237,.14), var(--el-1);
  transition:transform .22s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .upload-dropzone:hover .dz-ic{transform:translateY(-3px) scale(1.07);}
body.nebula-body .upload-dropzone p{color:var(--ink-2) !important;}
/* فایل‌های انتخاب‌شده (JS هسته داخل #fileUploadsContainer می‌ریزد) */
body.nebula-body #fileUploadsContainer{position:relative; z-index:2; margin-top:10px;}
body.nebula-body #fileUploadsContainer .input,
body.nebula-body #fileUploadsContainer input[type=file]{
  background:#fff; border:1px solid var(--line-2); border-radius:var(--r-2);
  padding:7px 10px; font-size:11.5px; color:var(--ink-2); margin-top:6px;
}
body.nebula-body .tk-form-footer{padding:20px;}
body.nebula-body .tk-form-actions{gap:var(--s-3);}
body.nebula-body .tk-form-actions .btn{min-width:132px; justify-content:center;}
/* دکمهٔ «افزودن فایل دیگر» */
body.nebula-body .btn-ghost{
  border-color:var(--line-2) !important; color:var(--ink-2) !important;
  background-image:linear-gradient(180deg,#FFFFFF,#FBFAFE);
  transition:border-color .16s, color .16s, box-shadow .16s, transform .16s;
}
body.nebula-body .btn-ghost:hover{
  border-color:rgba(124,58,237,.34) !important; color:var(--v) !important;
  box-shadow:var(--el-1); transform:translateY(-1px);
}
body.nebula-body .btn-sm{border-radius:var(--r-2);}
/* کارتِ «پیشنهادهای پاسخ خودکار» که JS نمایش می‌دهد */
body.nebula-body #autoAnswerSuggestions{
  border-color:rgba(8,145,178,.22) !important;
  background-image:linear-gradient(180deg,#F3FBFD,#FFFFFF) !important;
  box-shadow:var(--el-2); border-radius:var(--r-4);
}

/* --- پیشنهاد مقاله (kbsuggestions) --- */
body.nebula-body .tk-kb-card{
  border-color:rgba(124,58,237,.16); border-radius:var(--r-4);
  background-image:linear-gradient(180deg,#FCFBFF,#FFFFFF);
  box-shadow:var(--el-1);
}
body.nebula-body .tk-kb-head{
  padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--line-2);
}
body.nebula-body .tk-kb-head h3{
  font-family:var(--nbl-display); font-variation-settings:'wght' 750; letter-spacing:-.2px;
}
body.nebula-body .tk-kb-head p{color:var(--ink-2) !important;}
body.nebula-body .kb-head-ic{
  border-radius:var(--r-3);
  background-image:linear-gradient(135deg,#F3EEFE,#EAF7FB) !important;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.14);
}
body.nebula-body .tk-kb-list{gap:var(--s-2);}
body.nebula-body .tk-kb-item{
  border-color:var(--line-2); border-radius:var(--r-3);
  background-image:linear-gradient(180deg,#FFFFFF,#FCFBFF);
  transition:border-color .18s, background .18s, transform .18s, box-shadow .18s;
}
body.nebula-body .tk-kb-item:hover{
  border-color:rgba(124,58,237,.3); box-shadow:var(--el-2);
  transform:translateY(-1px);
}
body.nebula-body .tk-kb-item-ic{
  border-radius:var(--r-2);
  background-image:linear-gradient(135deg,#F3EEFE,#F5F3FF) !important;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.10);
}
body.nebula-body .tk-kb-item-txt b{
  color:var(--ink) !important; font-weight:700; letter-spacing:-.1px;
}
body.nebula-body .tk-kb-item-txt i{color:var(--ink-3) !important;}
body.nebula-body .tk-kb-item-go{color:var(--ink-3) !important;}
body.nebula-body .tk-kb-item:hover .tk-kb-item-go{color:var(--v) !important;}

/* --- مرحلهٔ ۳: تایید ثبت --- */
body.nebula-body .ticket-success-card{
  border-color:rgba(5,150,105,.20); border-radius:var(--r-6);
  background-image:linear-gradient(180deg,#F6FEFA 0%,#FFFFFF 46%);
  box-shadow:var(--el-3), inset 0 1px 0 rgba(255,255,255,.9);
  position:relative; overflow:hidden;
}
body.nebula-body .ticket-success-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:4px;
  background:linear-gradient(90deg,#047857,#0E7490);
}
body.nebula-body .success-ic{
  border-radius:var(--r-5);
  background-image:linear-gradient(135deg,#ECFDF5,#D1FAE5) !important;
  box-shadow:0 12px 28px -14px rgba(5,150,105,.55), inset 0 0 0 1px rgba(5,150,105,.16);
}
body.nebula-body .ticket-success-card h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  letter-spacing:-.4px; color:var(--ink);
}
body.nebula-body .ticket-success-card h2 a{
  color:var(--v) !important; font-variant-numeric:tabular-nums;
  padding:1px 8px; border-radius:var(--r-2); background:rgba(124,58,237,.08);
  transition:background .16s;
}
body.nebula-body .ticket-success-card h2 a:hover{background:rgba(124,58,237,.15);}
body.nebula-body .ticket-success-card p{color:var(--ink-2) !important;}
body.nebula-body .success-actions{gap:var(--s-3);}
body.nebula-body .success-actions .btn{min-width:150px; justify-content:center;}

/* --- لیستِ تیکت‌ها: بج‌های وضعیت --- */
body.nebula-body .tk-stats{gap:var(--s-4);}
body.nebula-body .tk-badge-green{background:#ECFDF5 !important; color:#047857 !important;}
body.nebula-body .tk-badge-amber{background:#FFFBEB !important; color:#B45309 !important;}
body.nebula-body .tk-badge-violet{background:#F5F3FF !important; color:#5B21B6 !important;}
body.nebula-body .tk-badge-grey{background:var(--wash-2) !important; color:var(--ink-2) !important;}
body.nebula-body .tk-badge i{box-shadow:0 0 0 3px rgba(124,58,237,.07);}

/* ۹-۱۴) پروفایل و امنیت */
body.nebula-body .divider{background:linear-gradient(90deg, var(--line), transparent);}
body.nebula-body .auth-check{font-weight:600;}
body.nebula-body .auth-check.ok{color:#047857 !important; font-weight:700;}
body.nebula-body .toggle{transition:background .2s, border-color .2s;}
body.nebula-body .toggle.on{box-shadow:var(--el-violet);}

/* ۹-۱۵) صفحهٔ اصلی — سرِ تیترِ بخش، هیرو، جست‌وجوی دامنه، CTA */
body.nebula-body .hp-sec-head{margin-top:52px;}
body.nebula-body .hp-sec-head .hp-kicker{
  background:rgba(124,58,237,.10); box-shadow:inset 0 0 0 1px rgba(124,58,237,.22);
  letter-spacing:.06em;
}
body.nebula-body.nebula-body .hp-sec-head h2{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:28px; letter-spacing:-.6px; line-height:1.3;
}
body.nebula-body .hp-sec-head::after{
  content:''; display:block; width:64px; height:3px; margin:16px auto 0;
  border-radius:var(--r-full); background:var(--grad-brand); box-shadow:var(--el-violet);
}
body.nebula-body .hp-hero{
  background-image:linear-gradient(135deg,#5B21B6 0%,#6D28D9 40%,#7C3AED 62%,#0E7490 100%);
  box-shadow:0 30px 66px -32px rgba(91,33,182,.7), inset 0 1px 0 rgba(255,255,255,.18);
}
body.nebula-body .hp-hero::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.34;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,.16) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.11) 0 1px, transparent 1px 40px);
  -webkit-mask-image:radial-gradient(115% 95% at 82% 4%, #000, transparent 60%);
          mask-image:radial-gradient(115% 95% at 82% 4%, #000, transparent 60%);
}
body.nebula-body .hp-hero .hp-b1{background:#A78BFA;}
body.nebula-body .hp-hero .hp-b2{background:#22D3EE;}
body.nebula-body.nebula-body .hp-hero-title{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:40px; letter-spacing:-.9px; line-height:1.22;
}
body.nebula-body .hp-hero-title span{
  background-image:linear-gradient(92deg,#FDE68A,#A7F3D0);
  -webkit-background-clip:text; background-clip:text;
}
body.nebula-body .hp-eyebrow{background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 1px rgba(255,255,255,.24);}
body.nebula-body .hp-domain{
  box-shadow:0 20px 44px -22px rgba(15,15,35,.55), inset 0 1px 0 rgba(255,255,255,.9);
  border-radius:var(--r-4);
}
body.nebula-body .hp-domain:focus-within{box-shadow:0 0 0 4px rgba(255,255,255,.28), 0 20px 44px -22px rgba(15,15,35,.55);}
body.nebula-body .hp-tlds b{background:rgba(255,255,255,.16); box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);}
body.nebula-body .hp-trust{border-top-color:rgba(255,255,255,.22);}
body.nebula-body .hp-trust b{font-family:var(--nbl-display); font-variation-settings:'wght' 800; font-variant-numeric:tabular-nums;}
body.nebula-body.nebula-body .hp-prod-card h3{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800; letter-spacing:-.3px;
}
body.nebula-body .hp-prod-card{border-color:rgba(124,58,237,.12);}
body.nebula-body .hp-prod-card.featured{box-shadow:var(--el-2), inset 0 0 0 1px rgba(124,58,237,.16);}
body.nebula-body .hp-prod-badge{box-shadow:0 8px 18px -8px rgba(91,33,182,.75);}
body.nebula-body.nebula-body .hp-feat h4{
  font-family:var(--nbl-display); font-variation-settings:'wght' 750; letter-spacing:-.2px;
}
body.nebula-body .hp-feat{border-color:var(--line); box-shadow:var(--el-1);}
body.nebula-body .hp-feat:hover{box-shadow:var(--el-3); transform:translateY(-3px);}
body.nebula-body .hp-help-card,
body.nebula-body .hp-acct-card{box-shadow:var(--el-1); border-color:var(--line);}
body.nebula-body .hp-help-card b{font-weight:800;}
body.nebula-body .hp-cta{
  background-image:linear-gradient(120deg,#0E7490 0%,#5B21B6 58%,#6D28D9 100%);
  box-shadow:0 30px 60px -32px rgba(91,33,182,.65), inset 0 1px 0 rgba(255,255,255,.16);
}
body.nebula-body .hp-cta::before{
  content:''; position:absolute; inset:0; z-index:1; pointer-events:none; opacity:.3;
  background-image:
    repeating-linear-gradient(90deg, rgba(255,255,255,.15) 0 1px, transparent 1px 40px),
    repeating-linear-gradient(0deg, rgba(255,255,255,.10) 0 1px, transparent 1px 40px);
  -webkit-mask-image:radial-gradient(110% 100% at 12% 100%, #000, transparent 58%);
          mask-image:radial-gradient(110% 100% at 12% 100%, #000, transparent 58%);
}
body.nebula-body.nebula-body .hp-cta-text h2{letter-spacing:-.6px;}
body.nebula-body .hp-cta-btn{box-shadow:0 14px 30px -14px rgba(15,15,35,.6);}
body.nebula-body .hp-cta-btn:hover{box-shadow:0 20px 36px -14px rgba(15,15,35,.66);}

/* ۹-۱۶) دانشنامه و دانلودها */
body.nebula-body .kb-cat{border-color:rgba(124,58,237,.12); box-shadow:var(--el-1);}
body.nebula-body .kb-cat:hover{box-shadow:var(--el-3); border-color:rgba(124,58,237,.34);}
body.nebula-body .kb-cat-t{font-weight:800; letter-spacing:-.15px;}
body.nebula-body .dl-card{border-color:rgba(124,58,237,.12);}
body.nebula-body .dl-card:hover{border-color:rgba(124,58,237,.34);}
body.nebula-body .dl-t{font-weight:700;}
body.nebula-body .dl-s{font-variant-numeric:tabular-nums;}

/* ۹-۱۷) جای‌خالی‌ها، حالتِ خالی، مسیرِ بالا */
body.nebula-body .hint, body.nebula-body .svc-noresult,
body.nebula-body .dc-empty, body.nebula-body .svc-empty,
body.nebula-body .ticket-list-empty{color:var(--ink-3);}
body.nebula-body .empty-ic, body.nebula-body .svc-empty-ic,
body.nebula-body .dc-empty-ic{box-shadow:var(--el-2), inset 0 1px 0 rgba(255,255,255,.4);}
body.nebula-body .crumb{font-weight:600;}
body.nebula-body .crumb .cur{font-weight:800; color:var(--ink);}
body.nebula-body .crumb a:hover{color:var(--v);}

/* ============================================================================
   ۱۰) ورود / ثبت‌نام / بازیابی / احراز هویت — یکسان‌سازی با صحنهٔ سه‌بعدی
   ----------------------------------------------------------------------------
   لاگین (login.tpl) از «neb-login-scene» استفاده می‌کند — صحنهٔ کامل با
   شش‌ضلعی‌های چرخان، ذرات و پخشِ نور. بقیهٔ مسیر احراز هویت (ثبت‌نام،
   بازیابی رمز، ۲مرحله‌ای، مسدود، احراز ایمیل) از پوستهٔ «auth-wrap +
   auth-card» در header.tpl استفاده می‌کنند و تا پیش از این روی یک زمینهٔ
   سادهٔ سفید بودند. اینجا همان صحنهٔ سه‌بعدی به آن‌ها داده می‌شود تا
   کلِ قیفِ ورود یک ظاهر واحد داشته باشد.
   بازگشت: حذفِ کلِ این بند (از این خط تا پیش از بندِ «حرکتِ کم»).
   ========================================================================== */

/* --- پوستهٔ همهٔ صفحاتِ احراز هویت --- */
body.nebula-body .auth-wrap{
  position:relative; isolation:isolate; overflow:hidden;
  background:
    radial-gradient(120% 90% at 85% 8%, rgba(124,58,237,.14), transparent 55%),
    radial-gradient(110% 85% at 10% 92%, rgba(8,145,178,.13), transparent 55%),
    linear-gradient(180deg,#F4F5FC 0%,#FFFFFF 62%) !important;
  padding-block:clamp(24px,6vh,72px) !important;
}

/* شبکهٔ پرسپکتیوِ کفِ صفحه — همان حسِ صحنهٔ لاگین */
body.nebula-body .auth-wrap::before{
  content:''; position:absolute; left:50%; bottom:-6%;
  width:230%; height:58%; translate:-50% 0;
  background-image:
    repeating-linear-gradient(90deg, rgba(124,58,237,.16) 0 1px, transparent 1px 64px),
    repeating-linear-gradient(0deg, rgba(8,145,178,.14) 0 1px, transparent 1px 48px);
  transform:perspective(560px) rotateX(62deg);
  transform-origin:bottom center;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 72%);
          mask-image:linear-gradient(180deg,transparent,#000 72%);
  opacity:.55; z-index:-2; pointer-events:none;
}

/* نورِ متحرکِ ملایم (دو هالهٔ تعریف‌شده با گرادیانِ شعاعی) */
body.nebula-body .auth-wrap::after{
  content:''; position:absolute; inset:-25% -10% auto -10%; height:70%;
  background:
    radial-gradient(38% 60% at 30% 30%, rgba(139,92,246,.28), transparent 70%),
    radial-gradient(42% 66% at 72% 22%, rgba(34,211,238,.22), transparent 70%);
  filter:blur(58px); opacity:.6; z-index:-1; pointer-events:none;
  animation:nebAuthDrift 22s ease-in-out infinite alternate;
}

/* کارت: شیشه‌ای، با نورِ لبه و سایهٔ عمیق */
body.nebula-body .auth-card{
  background:rgba(255,255,255,.82) !important;
  -webkit-backdrop-filter:blur(18px) saturate(1.35);
          backdrop-filter:blur(18px) saturate(1.35);
  border:1px solid rgba(255,255,255,.9) !important;
  border-radius:var(--r-6) !important;
  box-shadow:
    var(--el-4),
    0 0 0 1px rgba(124,58,237,.06),
    inset 0 1px 0 rgba(255,255,255,.9) !important;
  padding:38px 34px !important;
  position:relative; z-index:1;
}

/* لبهٔ گرادیانیِ بالای کارت — نشانۀ «ویژه» بودنِ صفحهٔ ورود */
body.nebula-body .auth-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  border-radius:var(--r-6) var(--r-6) 0 0;
  background:var(--grad-brand); opacity:.9;
}

/* --- برندِ بالای کارت --- */
body.nebula-body .auth-brand{gap:12px; margin-bottom:24px;}
body.nebula-body .auth-brand .mark{
  width:46px; height:46px; border-radius:var(--r-4);
  background:var(--grad-brand) !important;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.45);
  transform:perspective(500px) rotateX(10deg) rotateY(-12deg);
}
body.nebula-body .auth-brand .brand-logo{
  filter:drop-shadow(0 6px 16px rgba(124,58,237,.20));
}
body.nebula-body .auth-brand .name{
  font-family:var(--nbl-display);
  font-variation-settings:'wght' 700;
  letter-spacing:-.2px;
}

/* --- عنوان و زیرعنوان --- */
body.nebula-body .auth-title{
  font-family:var(--nbl-display);
  font-variation-settings:'wght' 800;
  font-size:clamp(19px,2.4vw,23px);
  color:var(--ink); letter-spacing:-.4px; margin-bottom:8px;
}
body.nebula-body .auth-sub{color:var(--ink-2); line-height:1.7;}

/* --- بخش‌بندیِ فرمِ ثبت‌نام --- */
body.nebula-body .auth-section{
  display:flex; align-items:center; gap:10px;
  font-family:var(--nbl-display); font-variation-settings:'wght' 700;
  font-size:12.5px; color:var(--v);
  margin:24px 0 12px;
}
body.nebula-body .auth-section::before{
  content:''; width:5px; height:16px; border-radius:var(--r-full);
  background:var(--grad-brand); flex:0 0 auto;
}
body.nebula-body .auth-section::after{
  content:''; flex:1; height:1px;
  background:linear-gradient(90deg,var(--line-2),transparent);
}

/* --- فیلدها --- */
body.nebula-body .auth-field label{
  font-weight:600; color:var(--ink-2); font-size:12px; letter-spacing:.1px;
}
body.nebula-body .auth-field .input-wrap{position:relative;}
body.nebula-body .auth-field .input-wrap .ic{
  right:14px; left:auto;
  width:28px; height:28px; border-radius:var(--r-2);
  display:flex; align-items:center; justify-content:center;
  background:linear-gradient(180deg,#F5F3FF,#EDE9FE);
  color:var(--v); font-size:12.5px;
  transition:all .22s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .auth-field .input-wrap:focus-within .ic{
  background:var(--grad-brand); color:#fff;
  box-shadow:var(--el-violet);
  transform:translateY(-1px) scale(1.04);
}
body.nebula-body .auth-field input,
body.nebula-body .auth-field select,
body.nebula-body .auth-field .input-wrap .field{
  border:1.5px solid var(--line-2) !important;
  border-radius:var(--r-3) !important;
  background:#fff !important;
  box-shadow:var(--el-1);
  transition:border-color .2s, box-shadow .25s, transform .2s;
}
body.nebula-body .auth-field input::placeholder{color:var(--ink-3);}
body.nebula-body .auth-field input:hover,
body.nebula-body .auth-field select:hover{border-color:#D9DCEF !important;}
body.nebula-body .auth-field input:focus,
body.nebula-body .auth-field select:focus{
  border-color:var(--v) !important;
  box-shadow:0 0 0 4px rgba(124,58,237,.12), var(--el-1) !important;
}

/* دکمۀ نمایش/پنهانِ رمز (ثبت‌نام) — تا پیش از این اصلاً استایل نداشت */
body.nebula-body .btn-reveal-pw{
  position:absolute; left:10px; top:50%; translate:0 -50%;
  width:30px; height:30px; padding:0;
  border:none; border-radius:var(--r-2); background:transparent;
  display:flex; align-items:center; justify-content:center;
  color:var(--ink-3); font-size:13px; cursor:pointer;
  transition:all .2s;
}
body.nebula-body .btn-reveal-pw:hover{background:var(--wash-2); color:var(--v);}
body.nebula-body .btn-reveal-pw:focus-visible{outline:none; box-shadow:var(--ring);}
body.nebula-body .auth-field input.pw-input{padding-left:46px !important;}

/* --- ردیف‌های اطلاع‌رسانی --- */
body.nebula-body .auth-security-row{
  position:relative; overflow:hidden;
  background:linear-gradient(180deg,rgba(4,120,87,.08),rgba(4,120,87,.04)) !important;
  border:1px solid rgba(4,120,87,.24) !important;
  border-radius:var(--r-3) !important;
  color:#047857 !important; box-shadow:var(--el-1);
}
body.nebula-body .auth-security-row::before{
  content:''; position:absolute; inset:0 auto 0 0; width:3px;
  background:linear-gradient(180deg,#10B981,#047857);
}
body.nebula-body .auth-security-row b{color:#047857 !important;}
body.nebula-body .auth-security-row.info{
  background:linear-gradient(180deg,rgba(14,116,144,.09),rgba(14,116,144,.04)) !important;
  border-color:rgba(14,116,144,.24) !important; color:#0E7490 !important;
}
body.nebula-body .auth-security-row.info::before{
  background:linear-gradient(180deg,#22D3EE,#0E7490);
}
body.nebula-body .auth-security-row.info b{color:#0E7490 !important;}

/* --- نوارِ مراحلِ بازیابیِ رمز --- */
body.nebula-body .auth-steps .st{
  border:1px solid var(--line-2) !important; color:var(--ink-3) !important;
  background:#fff !important;
  box-shadow:var(--el-1); transition:all .3s;
}
body.nebula-body .auth-steps .st.on{
  background:var(--grad-brand) !important; color:#fff !important;
  border-color:transparent !important;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.4);
  transform:translateY(-1px);
}
body.nebula-body .auth-steps .ln{
  background:var(--line-2) !important; height:2px !important; border-radius:var(--r-full);
  overflow:hidden; position:relative;
}
body.nebula-body .auth-steps .ln.on{
  background:var(--grad-brand) !important;
}

/* --- سنجشگر قدرتِ رمز عبور --- */
body.nebula-body .password-strength-meter .progress{
  height:7px !important; border-radius:var(--r-full) !important;
  background:var(--wash-2) !important;
  box-shadow:inset 0 1px 2px rgba(20,20,40,.08);
  overflow:hidden;
}
body.nebula-body .password-strength-meter .progress-bar{
  border-radius:var(--r-full) !important;
  background-image:var(--grad-brand) !important;
  box-shadow:0 0 12px rgba(124,58,237,.42);
  transition:width .45s cubic-bezier(.4,0,.2,1);
}
body.nebula-body #passwordStrengthTextLabel{color:var(--ink-2); font-size:11.5px;}

/* دکمۀ «رمزِ تصادفی» — تا پیش از این بی‌استایل بود */
body.nebula-body .generate-password{
  border:1.5px solid var(--line-2) !important;
  border-radius:var(--r-2) !important;
  background:#fff !important; color:var(--v) !important;
  font-weight:700 !important; font-size:11.5px !important;
  padding:8px 13px !important; box-shadow:var(--el-1);
  transition:all .2s;
}
body.nebula-body .generate-password:hover{
  border-color:var(--v) !important;
  box-shadow:var(--el-violet); transform:translateY(-1px);
}

/* --- دکمۀ اصلیِ ثبت‌نام/ارسال --- */
body.nebula-body .auth-btn{
  background-image:linear-gradient(135deg,#6D28D9 0%,#7C3AED 42%,#0E7490 100%) !important;
  border-radius:var(--r-3) !important;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.25) !important;
  letter-spacing:.1px;
  transition:transform .18s cubic-bezier(.4,0,.2,1), box-shadow .25s, filter .2s;
}
body.nebula-body .auth-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 34px -10px rgba(124,58,237,.55), inset 0 1px 0 rgba(255,255,255,.25) !important;
  filter:brightness(1.04);
}
body.nebula-body .auth-btn:active{transform:translateY(0) scale(.985);}
body.nebula-body .auth-btn:focus-visible{outline:none; box-shadow:var(--ring), var(--el-violet) !important;}

/* اسپینرِ «در حال ارسال» */
body.nebula-body .auth-btn .spin{
  display:inline-flex; align-items:center; opacity:0;
  transition:opacity .25s;
}
body.nebula-body .auth-btn.loading .spin,
body.nebula-body .auth-btn[disabled] .spin{opacity:1;}
body.nebula-body .auth-btn .spin i{color:#fff;}

/* --- لینک‌ها و پاورقی --- */
body.nebula-body .auth-link{
  color:var(--v) !important; font-weight:700;
  background-image:linear-gradient(90deg,var(--v),var(--c));
  background-repeat:no-repeat; background-position:0 100%; background-size:0% 1.5px;
  transition:background-size .3s cubic-bezier(.4,0,.2,1), color .2s;
}
body.nebula-body .auth-link:hover{
  text-decoration:none; background-size:100% 1.5px;
}
body.nebula-body .auth-foot{color:var(--ink-2);}
body.nebula-body .auth-divider{color:var(--ink-3); font-size:10.5px; letter-spacing:.4px;}
body.nebula-body .auth-divider::before,
body.nebula-body .auth-divider::after{
  background:linear-gradient(90deg,transparent,var(--line-2),transparent) !important;
}

/* --- ورودِ پلکانیِ محتوا (حسِ «ساخته‌شدن» صفحه) --- */
body.nebula-body .auth-wrap .auth-card{
  animation:nebAuthRise .7s cubic-bezier(.23,1,.32,1) both;
}
body.nebula-body .auth-wrap .auth-card > *{animation:nebAuthFade .5s ease both;}
body.nebula-body .auth-wrap .auth-card > *:nth-child(1){animation-delay:.06s;}
body.nebula-body .auth-wrap .auth-card > *:nth-child(2){animation-delay:.10s;}
body.nebula-body .auth-wrap .auth-card > *:nth-child(3){animation-delay:.14s;}
body.nebula-body .auth-wrap .auth-card > *:nth-child(4){animation-delay:.18s;}
body.nebula-body .auth-wrap .auth-card > *:nth-child(n+5){animation-delay:.22s;}

@keyframes nebAuthRise{
  from{opacity:0; transform:perspective(1000px) rotateX(9deg) translateY(26px) scale(.97);}
  to{opacity:1; transform:perspective(1000px) rotateX(0) translateY(0) scale(1);}
}
@keyframes nebAuthFade{from{opacity:0; transform:translateY(9px);} to{opacity:1; transform:none;}}
@keyframes nebAuthDrift{
  from{transform:translateX(-4%) scale(1); opacity:.5;}
  to{transform:translateX(6%) scale(1.12); opacity:.72;}
}

/* --- موبایل --- */
@media (max-width:575.98px){
  body.nebula-body .auth-card{padding:28px 20px !important; border-radius:var(--r-5) !important;}
  body.nebula-body .auth-title{font-size:19px;}
  body.nebula-body .auth-grid2, body.nebula-body .auth-grid3{
    grid-template-columns:1fr !important; gap:12px !important;
  }
  body.nebula-body .auth-wrap::before{height:44%; width:320%;}
}

/* ---------------------------------------------------------------------------
   ۱۰-ب) خودِ صحنهٔ ورود — کارت، فیلدها، دکمه
   ----------------------------------------------------------------------------
   بندِ ۱۰ صفحاتِ «ثبت‌نام / بازیابی / ۲مرحله‌ای» را به صحنهٔ سه‌بعدی رساند،
   ولی خودِ login.tpl (neb-login-*) دست‌نخورده ماند؛ آن‌ها در nebula.css:629
   با رنگ‌هایِ تمِ تیره (#13102A، پاستل‌های 34D399 و …) ساخته شده‌اند.
   نکتهٔ اختصاصیت: قواعدِ پایهٔ .neb-login-* در nebula.css بدونِ پیشوندِ
   body.nebula-body و بدونِ !important‌اند، پس یک انتخابگرِ معمولیِ
   body.nebula-body اینجا برنده است و نیازی به !important نیست — مگر آنجا
   که خودِ nebula.css از !important استفاده کرده (.avatar::after).
   بازگشت: حذفِ کلِ این بلوک.
   --------------------------------------------------------------------------- */

/* --- صحنه: عمقِ بیشتر + وینیت --- */
body.nebula-body .neb-login-scene{
  background-image:
    radial-gradient(1200px 620px at 50% -12%, #E7E3FE 0%, transparent 62%),
    radial-gradient(900px 520px at 88% 115%, rgba(8,145,178,.16), transparent 60%),
    radial-gradient(820px 480px at 8% 108%, rgba(219,39,119,.09), transparent 58%),
    linear-gradient(180deg,#F7F6FE 0%,#FFFFFF 58%,#F4F6FB 100%) !important;
}
/* سایهٔ نرمِ دورِ کادر، تا صحنه «تunnel» حس بدهد نه کاغذِ تخت */
body.nebula-body .neb-login-scene::after{
  content:''; position:absolute; inset:0; pointer-events:none; z-index:1;
  box-shadow:inset 0 0 180px -40px rgba(28,20,70,.14);
}

/* --- کارت --- */
body.nebula-body .neb-login-card{
  background:rgba(255,255,255,.80) !important;
  -webkit-backdrop-filter:blur(22px) saturate(1.5);
          backdrop-filter:blur(22px) saturate(1.5);
  border:1px solid rgba(255,255,255,.92) !important;
  border-radius:var(--r-6) !important;
  box-shadow:
    0 45px 95px -22px rgba(28,20,70,.30),
    0 16px 40px -18px rgba(124,58,237,.30),
    0 0 0 1px rgba(124,58,237,.07),
    inset 0 1px 0 rgba(255,255,255,.95) !important;
}
/* لبهٔ گرادیانیِ بالای کارت — همان نشانۀ .auth-card، تا دو مسیرِ ورود
   یکی به‌نظر برسند (::before در nebula.css و nebula-3d.css آزاد است) */
body.nebula-body .neb-login-card::before{
  content:''; position:absolute; inset:0 0 auto 0; height:3px;
  border-radius:var(--r-6) var(--r-6) 0 0;
  background:var(--grad-brand); opacity:.92; z-index:3; pointer-events:none;
}
body.nebula-body .neb-login-card-glow{
  border-radius:calc(var(--r-6) + 2px) !important;
  background:conic-gradient(from var(--gx,50%) var(--gy,50%),
    rgba(124,58,237,.30),rgba(8,145,178,.22),rgba(219,39,119,.14),
    rgba(8,145,178,.22),rgba(124,58,237,.30)) !important;
  filter:blur(6px);
}
body.nebula-body .neb-login-card:hover .neb-login-card-glow{opacity:1;}

/* --- سرصفحه --- */
body.nebula-body .neb-login-header{margin-bottom:28px;}
body.nebula-body .neb-login-logo .mark{
  border-radius:var(--r-5);
  background-image:var(--grad-brand) !important;
  box-shadow:var(--el-violet), inset 0 1.5px 0 rgba(255,255,255,.4);
}
body.nebula-body .neb-login-logo .brand-logo{
  filter:drop-shadow(0 8px 20px rgba(124,58,237,.22));
}
body.nebula-body .neb-login-title{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:clamp(20px,2.6vw,25px); letter-spacing:-.5px; color:var(--ink);
}
body.nebula-body .neb-login-subtitle{color:var(--ink-2); font-size:13px;}

/* --- فیلدها --- */
body.nebula-body .neb-login-field{margin-bottom:var(--s-4);}
body.nebula-body .neb-login-input-wrap{
  background:#FFFFFF;
  border:1.5px solid var(--line) !important;
  border-radius:var(--r-4) !important;
  box-shadow:var(--el-1), inset 0 1px 2px rgba(20,20,40,.03);
  transition:border-color .2s, box-shadow .2s, background .2s;
}
body.nebula-body .neb-login-input-wrap:hover{border-color:rgba(124,58,237,.34);}
body.nebula-body .neb-login-input-wrap:focus-within{
  border-color:var(--v) !important;
  box-shadow:0 0 0 4px rgba(124,58,237,.13), var(--el-2) !important;
  background:#FFFFFF;
}
body.nebula-body .neb-login-input-wrap i{color:var(--ink-3); transition:color .2s, transform .2s;}
body.nebula-body .neb-login-input-wrap:focus-within i{color:var(--v); transform:scale(1.08);}
body.nebula-body .neb-login-input-wrap input{color:var(--ink); font-size:14px;}
body.nebula-body .neb-login-input-wrap input::placeholder{color:#A9A9BF;}
body.nebula-body .neb-toggle-pw{
  width:30px; height:30px; border-radius:var(--r-2); color:var(--ink-3);
  display:inline-flex; align-items:center; justify-content:center;
  transition:background .16s, color .16s;
}
body.nebula-body .neb-toggle-pw:hover{background:var(--wash); color:var(--v);}
body.nebula-body .neb-toggle-pw:focus-visible{outline:none; box-shadow:var(--ring);}

/* --- گزینه‌ها --- */
body.nebula-body .neb-login-check{color:var(--ink-2); font-weight:500;}
body.nebula-body .neb-login-check input{
  width:17px; height:17px; accent-color:var(--v); border-radius:5px;
}
body.nebula-body .neb-login-link{
  color:var(--v) !important; font-weight:700; position:relative;
  transition:color .18s;
}
body.nebula-body .neb-login-link:hover{color:#5B21B6 !important; text-decoration:none;}
/* زیرخطِ گرادیانی به‌جای underline پیش‌فرض */
body.nebula-body .neb-login-link::after{
  content:''; position:absolute; inset-inline:0; bottom:-3px; height:1.5px;
  background:var(--grad-brand); border-radius:var(--r-full);
  transform:scaleX(0); transform-origin:inline-end; transition:transform .22s cubic-bezier(.4,0,.2,1);
}
body.nebula-body .neb-login-link:hover::after{transform:scaleX(1);}

/* --- دکمهٔ ورود --- */
body.nebula-body .neb-login-btn{
  background-image:linear-gradient(135deg,#6D28D9 0%,#7C3AED 42%,#0E7490 100%) !important;
  border-radius:var(--r-4) !important; padding:16px 15px;
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  letter-spacing:-.2px;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.28) !important;
}
body.nebula-body .neb-login-btn:hover{
  box-shadow:0 16px 36px -12px rgba(124,58,237,.58), inset 0 1px 0 rgba(255,255,255,.32) !important;
}
body.nebula-body .neb-login-btn:focus-visible{outline:none; box-shadow:var(--ring), var(--el-violet) !important;}
body.nebula-body .neb-btn-arrow{font-size:13px;}

/* --- پاورقی --- */
body.nebula-body .neb-login-footer{
  color:var(--ink-2); margin-top:6px;
  padding-top:16px; border-top:1px solid var(--line-2);
}
body.nebula-body .neb-login-footer > span{color:var(--ink-3);}

/* --- هشدارها (bootstrap alert) — فقط پوسته، رنگ نه ---
   رنگ را به بندِ ۱۰-پ واگذار کردیم: پیش‌تر همین‌جا کهرباییِ هاردکد بود،
   پس alert-success و alert-danger هم کهربایی رندر می‌شدند (باگِ واقعی). */
body.nebula-body .neb-login-card .alert{
  border-radius:var(--r-3) !important;
  font-size:12px; line-height:1.85; padding:11px 14px; margin-bottom:16px;
  box-shadow:var(--el-1);
}

/* --- موبایل: کارتِ ورود روی موبایل صحنهٔ سه‌بعدی را مخفی می‌کند
       (nebula.css:760)؛ پس حداقلِ ارتفاعِ لمسی را می‌دهیم --- */
@media (max-width:480px){
  body.nebula-body .neb-login-card{border-radius:var(--r-5) !important;}
  body.nebula-body .neb-login-card::before{border-radius:var(--r-5) var(--r-5) 0 0;}
  body.nebula-body .neb-login-input-wrap input{padding:15px 0;}
  body.nebula-body .neb-login-btn{padding:16px 15px;}
}

/* ---------------------------------------------------------------------------
   ۱۰-پ) پاسِ دومِ صفحهٔ ورود — سه‌چیزی که هنوز «خام» بود
   ----------------------------------------------------------------------------
   بندِ ۱۰-ب پوستهٔ کارت و فیلدها را درست کرد، ولی سه بلوک هنوز با استایلِ
   پیش‌فرضِ بوت‌استرپ (theme.min.css) رندر می‌شدند و همان‌جا بود که صفحه
   «حرفه‌ای» نبود:
     ۱) کپچا — بوت‌استرپ به .row مارجینِ منفیِ ۱۵px می‌دهد؛ داخلِ کارتی با
        padding:36px، بلوکِ کپچا ۱۵px از هر دو طرف بیرون می‌زد. ضمناً
        #default-captcha-domainchecker در theme.min.css «margin-bottom:-25px»
        دارد که دکمهٔ ورود را زیرِ خودش می‌برد.
     ۲) ورود با گوگل/مایکروسافت — .btn-social در theme.min.css
        text-align:right و آیکنِ position:absolute در right:0 بدونِ هیچ
        paddingِ جبرانی؛ یعنی برچسبِ دکمه زیرِ آیکن می‌رفت.
     ۳) هشدارها — palette سبز/قرمزِ کلاسیکِ بوت‌استرپ (#d4edda/#f8d7da) که
        با هیچ رنگِ دیگری در قالب هم‌خانواده نیست.
   نکتهٔ اختصاصیت: theme.min.css برای کپچا از «#id #id» (۰،۲،۰) استفاده کرده،
   پس برای #inputCaptcha حتماً هر دو شناسه را نوشته‌ایم.
   بازگشت: حذفِ کلِ این بلوک (تا پیشِ بندِ ۱۱).
   --------------------------------------------------------------------------- */

/* --- ۱۰-پ/۱) زنجیرهٔ بالا: نفسِ بیشترِ کارت --- */
body.nebula-body .neb-login-card{
  max-width:446px; padding:42px 40px 34px;
}
body.nebula-body .neb-login-header{margin-bottom:26px;}
body.nebula-body .neb-login-logo{margin-bottom:22px;}
body.nebula-body .neb-login-logo .mark{
  width:64px; height:64px; font-size:25px;
  box-shadow:var(--el-violet), 0 0 0 6px rgba(124,58,237,.07),
             inset 0 1.5px 0 rgba(255,255,255,.42);
}
body.nebula-body .neb-login-subtitle{
  font-size:12.5px; letter-spacing:-.1px; margin-top:2px;
}
/* جداکنندهٔ نامرئیِ سرصفحه از فرم — خط نمی‌کشیم، فاصله را دو‌مرحله‌ای می‌کنیم */
body.nebula-body .neb-login-form{position:relative;}

/* --- ۱۰-پ/۲) فیلدها: آیکن در «اسلات»، جای دکمهٔ دیدنِ رمز --- */
body.nebula-body .neb-login-input-wrap{
  padding:0 13px 0 46px;
  border-radius:var(--r-4) !important;
}
body.nebula-body .neb-login-input-wrap i{
  flex:0 0 auto; width:34px; height:34px; margin-inline-end:11px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius:var(--r-2); font-size:14px;
  background-image:linear-gradient(180deg,#F8F7FE,#F1EFFA);
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.10);
  transition:background .2s, color .2s, box-shadow .2s, transform .2s;
}
body.nebula-body .neb-login-input-wrap:focus-within i{
  background-image:var(--grad-brand) !important; color:#fff !important;
  box-shadow:var(--el-violet), inset 0 1px 0 rgba(255,255,255,.35);
  transform:translateY(-1px) scale(1.04);
}
body.nebula-body .neb-login-input-wrap input{font-size:14.5px; padding:15px 0;}
body.nebula-body .neb-toggle-pw{left:9px; width:32px; height:32px;}
body.nebula-body .neb-login-field{margin-bottom:var(--s-5);}

/* --- ۱۰-پ/۳) ردیفِ گزینه‌ها: فقط فرزندهای موجود ( والد space-between است) --- */
body.nebula-body .neb-login-options{margin-bottom:var(--s-6);}
body.nebula-body .neb-login-check{font-size:12.5px;}
body.nebula-body .neb-login-link{font-size:12.5px;}

/* --- ۱۰-پ/۴) کپچا: خنثی‌کردنِ .row منفیِ بوت‌استرپ، فقط داخلِ این ظرف‌ها ---
   بوت‌استرپ به .row مارجینِ منفیِ ۱۵px و به .col-* paddingِ ۱۵px می‌دهد؛
   داخلِ کارتِ ۴۰pxی، بلوکِ کپچا ۱۵px از هر دو طرف بیرون می‌زد. */
body.nebula-body .neb-login-card .row,
body.nebula-body .tk-form-footer .row{
  margin-left:0 !important; margin-right:0 !important;
}
body.nebula-body .neb-login-card .mb-3,
body.nebula-body .neb-login-card .mb-sm-0,
body.nebula-body .tk-form-footer .mb-3{margin-bottom:0 !important;}
body.nebula-body .neb-login-card .pb-3,
body.nebula-body .tk-form-footer .pb-3{padding-bottom:0 !important;}

body.nebula-body #default-captcha-domainchecker{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:10px; text-align:center;
  margin:0 0 var(--s-5) !important; padding:12px 12px 13px !important;
  border:1px solid var(--line-2); border-radius:var(--r-4);
  background-image:linear-gradient(180deg,#FCFBFF,#F5F4FC);
  box-shadow:inset 0 1px 2px rgba(20,20,40,.04);
}
body.nebula-body #default-captcha-domainchecker > p{
  flex:0 0 100%; margin:0 0 2px; font-size:11.5px; font-weight:700;
  color:var(--ink-2); letter-spacing:-.1px;
}
/* دو ستونِ ۵۰/۵۰ را خودمان می‌چینیم؛ پس paddingِ بوت‌استرپ اینجا لازم نیست */
body.nebula-body #default-captcha-domainchecker .col-6{
  flex:0 0 auto; width:auto; max-width:none;
  padding-left:0; padding-right:0;
}
body.nebula-body #default-captcha-domainchecker .captchaimage{
  margin:0 !important; padding:0 !important; text-align:center;
  background:#fff; border:1px solid var(--line-2); border-radius:var(--r-2);
  box-shadow:var(--el-1); line-height:0;
}
body.nebula-body #default-captcha-domainchecker .captchaimage img{
  display:block; height:40px; width:auto; max-width:100%;
}
body.nebula-body #default-captcha-domainchecker .col-6:last-child{
  flex:1 1 110px; min-width:110px;
}
/* هر دو شناسه لازم است: theme.min.css «#default-captcha-domainchecker #inputCaptcha»
   با اختصاصیتِ ۰،۲،۰ نوشته و width:100px / border-radius:4px می‌دهد */
body.nebula-body #default-captcha-domainchecker #inputCaptcha{
  width:100% !important; height:auto !important;
  border-radius:var(--r-2) !important; border:1.5px solid var(--line) !important;
  background:#fff !important; color:var(--ink) !important;
  font-size:15px !important; font-weight:700; letter-spacing:.18em;
  padding:9px 10px !important; text-align:center; direction:ltr;
  box-shadow:var(--el-1); transition:border-color .18s, box-shadow .18s;
}
body.nebula-body #default-captcha-domainchecker #inputCaptcha:focus{
  border-color:var(--v) !important; outline:none;
  box-shadow:var(--ring), var(--el-1) !important;
}
body.nebula-body #default-captcha-domainchecker #inputCaptcha::placeholder{color:#B9B9CE;}
/* شاخهٔ reCAPTCHA (captcha.tpl وقتی $captcha->recaptcha فعال است) */
body.nebula-body .recaptcha-container,
body.nebula-body .captcha-container{
  margin:0 0 var(--s-5) !important; padding:0;
}
body.nebula-body .recaptcha-container > div,
body.nebula-body .g-recaptcha{margin:0 auto;}

/* --- ۱۰-پ/۵) ورود با حساب‌های بیرونی --- */
body.nebula-body .providerPreLinking{
  min-height:0; margin-top:var(--s-5); padding-top:var(--s-5);
  position:relative;
}
/* جداکننده — عنصرِ مطلق، پس واردِ جعبهٔ flex نمی‌شود */
body.nebula-body .providerPreLinking::before{
  content:''; position:absolute; inset:0 12% auto 12%; height:1px;
  background:linear-gradient(90deg,transparent,var(--line),transparent);
}
body.nebula-body .social-signin-btns{
  display:flex; flex-wrap:wrap; gap:var(--s-2); justify-content:center;
}
body.nebula-body .social-signin-btns .btn{margin-bottom:0;}
body.nebula-body .btn-social{
  flex:1 1 168px; min-height:42px;
  display:inline-flex; align-items:center;
  text-align:right; padding:9px 46px 9px 14px;
  border:1px solid var(--line) !important; border-radius:var(--r-3) !important;
  background-image:linear-gradient(180deg,#FFFFFF,#FBFAFE) !important;
  color:var(--ink) !important; font-size:12.5px !important; font-weight:700;
  box-shadow:var(--el-1);
  transition:border-color .18s, box-shadow .18s, transform .18s, background .18s;
}
body.nebula-body .btn-social:hover{
  border-color:rgba(124,58,237,.34) !important; transform:translateY(-1px);
  box-shadow:var(--el-2); background-image:linear-gradient(180deg,#FFFFFF,#F8F6FF) !important;
  color:var(--ink) !important; text-decoration:none;
}
body.nebula-body .btn-social:focus-visible{outline:none; box-shadow:var(--ring);}
/* خانهٔ آیکن: theme.min.css آن را با border-left تیره جدا می‌کند؛ حذفش می‌کنیم
   و رنگِ برندِ خودِ سرویس را به آیکن می‌دهیم (آیکن = گرافیک، معیارِ ۳:۱) */
body.nebula-body .btn-social i.far,
body.nebula-body .btn-social i.fas{
  position:absolute; right:0; top:0; bottom:0; width:38px;
  padding:0; border-left:0; font-size:16px; line-height:40px; text-align:center;
  display:flex; align-items:center; justify-content:center;
  border-start-start-radius:var(--r-3); border-end-start-radius:var(--r-3);
  background-image:linear-gradient(180deg,#F7F6FD,#F1EFFA);
}
body.nebula-body .btn-google i.far, body.nebula-body .btn-google i.fas{color:#1A73E8;}
body.nebula-body .btn-facebook i.far, body.nebula-body .btn-facebook i.fas{color:#1866F2;}
body.nebula-body .btn-microsoft i.far, body.nebula-body .btn-microsoft i.fas{color:#4F4F4F;}
body.nebula-body .btn-apple i.far, body.nebula-body .btn-apple i.fas{color:#14141C;}
body.nebula-body .btn-linkedin i.far, body.nebula-body .btn-linkedin i.fas{color:#0A66C2;}
/* برچسبِ «یا …» در ثبت‌نام/سبد (linkedaccounts.tpl) */
body.nebula-body .sub-heading,
body.nebula-body .sub-heading-borderless{
  height:0; border-top:1px solid var(--line-2); margin:var(--s-6) 0 var(--s-5);
  text-align:center; position:relative;
}
body.nebula-body .sub-heading span,
body.nebula-body .sub-heading-borderless span{
  display:inline-block; position:relative; top:-11px; padding:0 14px;
  font-size:11.5px; font-weight:700; color:var(--ink-3); background:#fff;
}
/* پیام‌هایِ هسته که JS با حذفِ .w-hidden نمایان می‌کند */
body.nebula-body #providerLinkingMessages{
  border:1px solid var(--line-2); border-radius:var(--r-3);
  background:var(--wash); padding:12px 14px; margin-bottom:var(--s-4);
}
body.nebula-body #providerLinkingMessages p{margin:0; font-size:12px; color:var(--ink-2); line-height:1.9;}
body.nebula-body #providerLinkingMessages p strong{font-weight:800; color:var(--ink);}
/* گارد: هر جایِ قالب display روی این کلاس نگذارد (JS فقط کلاس را برمی‌دارد) */
body.nebula-body .w-hidden{display:none !important;}

/* --- ۱۰-پ/۶) هشدارها: زبانِ رنگیِ خودِ قالب، نه پاستلِ بوت‌استرپ ---
   رنگ‌ها همه روی #FFFFFF (و روی تینتِ خودش) AA می‌گیرند:
   #047857 · #BE123C · #0E7490 · #7A4A02                          */
body.nebula-body .alert{
  border:1px solid transparent; border-radius:var(--r-3);
  font-size:12.5px; line-height:1.85; padding:12px 15px; margin-bottom:var(--s-4);
  box-shadow:var(--el-1);
}
body.nebula-body .alert-success{
  background-image:linear-gradient(90deg,rgba(4,120,87,.10),rgba(4,120,87,.03)) !important;
  border-color:rgba(4,120,87,.30) !important; color:#0B5C44 !important;
  border-inline-start:3px solid #047857 !important;
}
body.nebula-body .alert-danger,
body.nebula-body .alert-error{
  background-image:linear-gradient(90deg,rgba(190,18,60,.09),rgba(190,18,60,.03)) !important;
  border-color:rgba(190,18,60,.28) !important; color:#9B1C31 !important;
  border-inline-start:3px solid #BE123C !important;
}
body.nebula-body .alert-warning{
  background-image:linear-gradient(90deg,rgba(180,83,9,.10),rgba(180,83,9,.03)) !important;
  border-color:rgba(180,83,9,.30) !important; color:#7A4A02 !important;
  border-inline-start:3px solid #B45309 !important;
}
body.nebula-body .alert-info{
  background-image:linear-gradient(90deg,rgba(14,116,144,.10),rgba(14,116,144,.03)) !important;
  border-color:rgba(14,116,144,.30) !important; color:#0B5E77 !important;
  border-inline-start:3px solid #0E7490 !important;
}
body.nebula-body .alert .alert-link{font-weight:800; color:inherit; text-decoration:underline;}
body.nebula-body .alert-dismissible{padding-inline-start:15px;}
body.nebula-body .alert-dismissible .close{color:inherit; opacity:.55;}
body.nebula-body .alert-dismissible .close:hover{opacity:1;}
/* داخلِ کارتِ ورود: کمی جمع‌وجورتر تا ریتمِ فرم نشکند */
body.nebula-body .neb-login-card .alert{
  font-size:12px; padding:11px 14px; margin-bottom:var(--s-4);
}

/* --- ۱۰-پ/۷) موبایل --- */
@media (max-width:480px){
  body.nebula-body .neb-login-card{padding:30px 22px 26px;}
  body.nebula-body .btn-social{flex:1 1 100%;}
  body.nebula-body #default-captcha-domainchecker{gap:8px;}
}

/* ============================================================================
   ۱۱) قیفِ «submitticket.php» — پاسِ دوم (کیفیت، نه پوشش)
   ----------------------------------------------------------------------------
   بندِ ۹-۱۳-ب سه مرحله را «پوشش» داد، ولی در رندرِ واقعی سه چیز هنوز
   معمولی به‌نظر می‌رسید:
     ۱) همهٔ بلوک‌ها یک جعبهٔ سفیدِ یکسان با یک خطِ نازک بودند — سلسله‌مراتبِ
        بصری نداشت؛ و بخشِ «اطلاعات تکمیلی» (customfields) که *داخلِ*
        «جزئیات تیکت» است، کارت-در-کارت می‌شد.
     ۲) سه <select> (دپارتمان/سرویس/اولویت) پیکانِ پیش‌فرضِ ویندوز را با
        فونتِ ۱۳px نشان می‌دادند.
     ۳) فاصلهٔ بینِ بخش‌ها دو‌لایه بود: margin-bottom:16px از nebula.css:61
        به‌علاوهٔ margin-top:20px از بندِ ۹-۱۳-ب → ۳۶px بی‌قاعده.
   نکتهٔ اختصاصیت: سه «::after»ِ پایین واردِ جعبهٔ flex می‌شوند؛ چون
   .tk-form-head / .ticket-intro «justify-content:space-between» ندارند،
   چسبیدنِ متنِ عنوان به لبهٔ مخالف (همان باگِ ۹-۱) اینجا رخ نمی‌دهد —
   و margin-inline-start:auto جایِ چیپ را قطعی می‌کند.
   بازگشت: حذفِ کلِ این بلوک (تا پیشِ بندِ ۱۲).
   ========================================================================== */

/* --- فاصله‌گذاریِ یکدستِ بلوک‌های فرم --- */
body.nebula-body .tk-form{position:relative;}
body.nebula-body .tk-form-section{margin-bottom:var(--s-5);}
body.nebula-body .tk-form-section + .tk-form-section{margin-top:0;}
body.nebula-body .tk-form .grid{gap:var(--s-4);}
/* بخشِ تودرتو (customfields داخلِ «جزئیات تیکت»): سطحِ دوم، نه کارتِ دوم */
body.nebula-body .tk-form-section .tk-form-section{
  background:var(--wash) !important; border-color:var(--line-2) !important;
  box-shadow:none !important; padding:18px 18px 4px; margin:var(--s-5) 0 0;
  border-radius:var(--r-3);
}

/* --- سرصفحهٔ فرم: چیپِ «مرحله» + عمق --- */
body.nebula-body .tk-form-head{
  border-color:rgba(124,58,237,.18);
  background-image:linear-gradient(135deg,#F1EDFE 0%,#F5F7FF 46%,#EAF7FB 100%) !important;
  box-shadow:var(--el-2), inset 0 1px 0 rgba(255,255,255,.9);
}
body.nebula-body .tk-form-head::after{
  content:'مرحله ۲ از ۳';
  margin-inline-start:auto; align-self:center; white-space:nowrap;
  padding:5px 12px; border-radius:var(--r-full);
  font-size:10.5px; font-weight:800; letter-spacing:-.1px;
  color:#5B21B6; background:rgba(255,255,255,.78);
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.22), var(--el-1);
}
body.nebula-body .tk-form-head h2{font-size:18px;}
body.nebula-body .tk-form-head p{font-size:12.5px;}

/* --- عنوانِ بخش‌ها: چیپِ آیکن قوی‌تر --- */
body.nebula-body .tk-section-title{margin-bottom:16px;}
body.nebula-body.nebula-body .tk-section-title{font-size:14px;}
body.nebula-body .ts-ic{
  width:34px; height:34px; border-radius:var(--r-3); font-size:16px;
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.16), var(--el-1);
}

/* --- لیبل‌ها: وزنِ بیشتر، رنگِ تیره‌تر --- */
body.nebula-body .field > label,
body.nebula-body .tk-form .field > label{
  font-size:12.5px; font-weight:700; color:var(--ink); margin-bottom:9px;
  letter-spacing:-.15px;
}
body.nebula-body .field .req{font-size:13px;}
body.nebula-body .input-hint{font-size:11px; margin-top:7px; line-height:1.8;}

/* --- <select>: پیکانِ سفارشی، سمتِ چپ (RTL) --- */
body.nebula-body select.input,
body.nebula-body .field select.input{
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
  padding-left:34px;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' fill='none' stroke='%237C3AED' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"),
    linear-gradient(180deg,#FFFFFF,#FFFFFF);
  background-repeat:no-repeat, no-repeat;
  background-position:left 13px center, center;
  background-size:12px 8px, auto;
  font-weight:600;
}
body.nebula-body select.input:hover{border-color:rgba(124,58,237,.34);}
body.nebula-body select.input:focus{
  background-position:left 13px center, center;
}
body.nebula-body select.input option{padding:6px 10px;}

/* --- متنِ پیام: ارتفاعِ واقعی + خط‌چینِ نرم --- */
body.nebula-body textarea.input{
  min-height:150px; line-height:1.95; padding:13px 14px;
  background-image:linear-gradient(180deg,#FFFFFF,#FFFFFF);
}
body.nebula-body textarea.input::placeholder{color:#B9B9CE;}
body.nebula-body .input::placeholder,
body.nebula-body .form-control::placeholder{color:#B9B9CE;}

/* --- نوارِ اقدام: از بلوکِ فرم جدا شود --- */
body.nebula-body .tk-form-footer{
  background-image:linear-gradient(180deg,#FCFBFF,#FFFFFF) !important;
  border-color:rgba(124,58,237,.16) !important;
  box-shadow:var(--el-2), inset 0 1px 0 rgba(255,255,255,.9);
  padding:20px 22px 22px; margin-top:var(--s-5);
}
body.nebula-body .tk-form-actions{margin-top:var(--s-4);}
body.nebula-body .tk-form-actions .btn{
  min-width:150px; padding:11px 18px; font-size:13px; border-radius:var(--r-3);
}
body.nebula-body .tk-form-actions .btn-grad{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  letter-spacing:-.15px;
}

/* --- مرحلهٔ ۱: چیپِ «مرحله» روی سرصفحهٔ دپارتمان‌ها --- */
body.nebula-body .ticket-intro{position:relative;}
body.nebula-body .ticket-intro::after{
  content:'مرحله ۱ از ۳';
  margin-inline-start:auto; align-self:center; white-space:nowrap;
  padding:5px 12px; border-radius:var(--r-full);
  font-size:10.5px; font-weight:800; letter-spacing:-.1px;
  color:#5B21B6; background:rgba(255,255,255,.8);
  box-shadow:inset 0 0 0 1px rgba(124,58,237,.22), var(--el-1);
}
body.nebula-body .tk-dept-name{
  font-family:var(--nbl-display); font-variation-settings:'wght' 800;
  font-size:14.5px; letter-spacing:-.25px;
}
body.nebula-body .tk-dept-desc{font-size:11.5px;}

/* --- پیشنهاد مقاله: سرِ کارت پرتر --- */
body.nebula-body .tk-kb-card{padding:20px 22px;}
body.nebula-body .kb-head-ic{width:42px; height:42px; font-size:19px;}
body.nebula-body .tk-kb-head h3{font-size:14.5px;}
body.nebula-body .tk-kb-item{padding:13px 15px;}
body.nebula-body .tk-kb-item-ic{width:36px; height:36px; font-size:16px;}
body.nebula-body .tk-kb-item-txt b{font-size:13px;}
body.nebula-body .tk-kb-item-txt i{font-size:11px;}
body.nebula-body .tk-kb-item-go{font-size:15px; font-weight:700;}
body.nebula-body .tk-kb-list .hint,
body.nebula-body .tk-kb-card .hint{
  margin:0; padding:14px; text-align:center; font-size:12px;
  color:var(--ink-3); background:var(--wash);
  border:1px dashed var(--line); border-radius:var(--r-3);
}

/* --- مرحلهٔ ۳: چیپِ «مرحله» بالای دکمه‌ها ---
   روی خودِ کارت ::after را گذاشتن، چیپ را زیرِ دکمه‌ها می‌انداخت؛ پس
   روی .success-actions می‌نشینیم و با flex-basis:100% یک سطرِ مستقل
   می‌سازیم (والد justify-content:center است، نه space-between، پس
   باگِ ۹-۱ اینجا رخ نمی‌دهد). */
body.nebula-body .ticket-success-card{padding:46px 32px 38px;}
body.nebula-body .success-actions::before{
  content:'مرحله ۳ از ۳';
  flex:0 0 100%; display:block; text-align:center;
  margin-bottom:var(--s-2);
  font-size:10.5px; font-weight:800; letter-spacing:-.1px;
  color:#0B5C44;
}
body.nebula-body .success-actions{margin-top:var(--s-6);}
body.nebula-body .success-actions .btn{
  min-width:168px; padding:11px 18px; font-size:13px; border-radius:var(--r-3);
}

/* --- مسیرِ بالا: چیپ --- */
body.nebula-body .crumb{
  font-size:12px; margin-bottom:var(--s-4); gap:var(--s-2);
}
body.nebula-body .crumb .sep{color:var(--ink-3); opacity:.7;}
body.nebula-body .crumb .cur{
  padding:2px 9px; border-radius:var(--r-full);
  background:rgba(124,58,237,.08); box-shadow:inset 0 0 0 1px rgba(124,58,237,.16);
}

/* --- موبایل: چیپِ مرحله از جعبهٔ flex بیرون می‌رود تا سرصفحه نشکند --- */
@media (max-width:640px){
  body.nebula-body .tk-form-head,
  body.nebula-body .ticket-intro{flex-wrap:wrap;}
  body.nebula-body .tk-form-head::after,
  body.nebula-body .ticket-intro::after{margin-inline-start:0;}
  body.nebula-body select.input,
  body.nebula-body .field select.input{padding-left:32px;}
  body.nebula-body .tk-form-actions .btn{flex:1 1 100%;}
}

/* ============================================================================
   ۱۲) احترام به حرکتِ کم
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  body.nebula-body *, body.nebula-body *::before, body.nebula-body *::after{
    transition-duration:.001ms !important; animation-duration:.001ms !important;
    animation-iteration-count:1 !important; scroll-behavior:auto !important;
  }
  body.nebula-body .search:focus{width:210px;}
}
