/*!
 * panel-kit — theme.css
 * پوستهٔ پنل روی Bootstrap 5.3 (نسخهٔ RTL). بدون بیلد: ویرایش کن و صفحه را تازه کن.
 * ترتیبِ بار: bootstrap.rtl.min.css → font-awesome → theme.css
 *
 * فهرست:
 *   ۱. توکن‌ها (رنگ/اندازه — برای تغییرِ ظاهر معمولاً فقط همین‌جا کافی است)
 *   ۲. فونت
 *   ۳. پایه و هم‌سوسازیِ Bootstrap
 *   ۴. پوسته: سربرگ، منوی کناری، محتوا، نوارِ مسیر، پاورقی
 *   ۵. کارت، دکمه، فیلد، نشان
 *   ۶. جدول و DataTables
 *   ۷. مودال، tooltip، toast
 *   ۸. اجزای صفحهٔ داشبورد
 */

/* ===================== ۱. توکن‌ها ===================== */
:root {
  --pk-font: FarsiFont, Tahoma, sans-serif;
  --pk-font-num: FarsiFontDigits, FarsiFont, Tahoma, sans-serif;   /* همان فونت با ارقامِ فارسی */

  --pk-brand: #2f7fc1;
  --pk-brand-hover: #276da7;
  --pk-brand-soft: #eaf3fb;
  --pk-brand-softer: #f4f8fd;
  --pk-success: #2fb18f;
  --pk-success-hover: #28a083;
  --pk-danger: #e05260;
  --pk-warning: #e9a23b;

  --pk-head-1: #1d2b3a;          /* سربرگ: شیبِ رنگ از راست به چپ */
  --pk-head-2: #22496d;

  --pk-bg: #f3f5f9;
  --pk-surface: #fff;
  --pk-line: #e7eaf0;
  --pk-line-soft: #f0f2f6;
  --pk-text: #333;
  --pk-text-2: #2f3a4a;
  --pk-muted: #8592a6;

  --pk-radius: 10px;
  --pk-radius-sm: 6px;
  --pk-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 2px 8px rgba(16, 24, 40, .06);
  --pk-shadow-lg: 0 10px 30px rgba(15, 23, 42, .14);

  --pk-header-h: 46px;
  --pk-logo-w: 235px;
  --pk-sidebar-w: 200px;
}

/* ===================== ۲. فونت ===================== */
@font-face { font-family: FarsiFont; font-weight: 300; font-display: block; src: url(../fonts/IRANSansWeb_Light.woff2) format('woff2'); }
@font-face { font-family: FarsiFont; font-weight: 400; font-display: block; src: url(../fonts/IRANSansWeb.woff2) format('woff2'); }
@font-face { font-family: FarsiFont; font-weight: 500; font-display: block; src: url(../fonts/IRANSansWeb_Medium.woff2) format('woff2'); }
@font-face { font-family: FarsiFont; font-weight: 700; font-display: block; src: url(../fonts/IRANSansWeb_Bold.woff2) format('woff2'); }
@font-face { font-family: FarsiFontDigits; font-weight: 300; font-display: block; src: url('../fonts/IRANSansWeb(FaNum)_Light.woff2') format('woff2'); }
@font-face { font-family: FarsiFontDigits; font-weight: 400; font-display: block; src: url('../fonts/IRANSansWeb(FaNum).woff2') format('woff2'); }
@font-face { font-family: FarsiFontDigits; font-weight: 500; font-display: block; src: url('../fonts/IRANSansWeb(FaNum)_Medium.woff2') format('woff2'); }
@font-face { font-family: FarsiFontDigits; font-weight: 700; font-display: block; src: url('../fonts/IRANSansWeb(FaNum)_Bold.woff2') format('woff2'); }

/* ارقامِ فارسی: روی هر عنصری که عدد دارد (مبلغ، تاریخ، شماره) */
.fa-num { font-family: var(--pk-font-num) !important; }

/* ===================== ۳. پایه ===================== */
:root {
  --bs-font-sans-serif: var(--pk-font);
  --bs-body-font-size: 14px;
  --bs-body-line-height: 1.42857;
  --bs-body-color: var(--pk-text);
  --bs-body-bg: var(--pk-bg);
  --bs-border-color: var(--pk-line);
  --bs-primary: var(--pk-brand);
  --bs-primary-rgb: 47, 127, 193;
  --bs-link-color: var(--pk-brand);
  --bs-link-color-rgb: 47, 127, 193;
  --bs-link-hover-color: var(--pk-brand-hover);
  --bs-link-decoration: none;
  --bs-border-radius: var(--pk-radius-sm);
  --bs-border-radius-lg: var(--pk-radius);
}
/* جای نوارِ اسکرول همیشه رزرو است: صفحهٔ کوتاه و بلند هم‌عرض‌اند و بلوک‌ها با رفتن بین صفحه‌ها جابه‌جا نمی‌شوند */
html { overflow-y: scroll; }
body { font-family: var(--pk-font); background: var(--pk-bg); }
a { text-decoration: none; }
h1, h2, h3, h4, h5, h6 { font-weight: 500; }
::selection { background: #cfe3f5; }

/* ===================== ۴. پوسته ===================== */

/* ---- سربرگ ---- */
.pk-header {
  position: fixed; inset: 0 0 auto 0; z-index: 1030;
  height: var(--pk-header-h);
  display: flex; align-items: center;
  background: var(--pk-head-1) linear-gradient(270deg, var(--pk-head-1) 0%, var(--pk-head-2) 100%);
  box-shadow: 0 2px 10px rgba(15, 23, 42, .18);
  color: #fff;
}
.pk-logo {
  width: var(--pk-logo-w); flex: none; height: 100%;
  display: flex; align-items: center; gap: 8px; padding: 0 20px;
}
.pk-logo > a { display: flex; align-items: center; gap: 8px; color: #fff; font-size: 14px; white-space: nowrap; }
.pk-logo-mark {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: #fff; color: var(--pk-brand); font-size: 15px;
}
.pk-toggler {
  border: 0; background: transparent; color: #fff; opacity: .75; font-size: 18px; padding: 4px 6px; line-height: 1;
}
.pk-toggler:hover { opacity: 1; }

.pk-topbar {
  flex: 1; min-width: 0; height: 100%;
  display: flex; align-items: center; justify-content: flex-end; gap: 6px;
  padding: 0 10px 0 12px;
}
/* چیپ: اطلاعاتِ فقط‌خواندنی مثل اعتبار و سطح */
.pk-chip {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px;
  border-radius: 999px; background: rgba(255, 255, 255, .08); border: 1px solid rgba(255, 255, 255, .12);
  color: #fff; font-size: 13px; white-space: nowrap;
}
.pk-chip > i { color: rgba(255, 255, 255, .7); }
a.pk-chip:hover { background: rgba(255, 255, 255, .14); color: #fff; }
/* قرص: دکمهٔ سربرگ */
.pk-pill {
  display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 14px;
  border-radius: 999px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06);
  color: #fff; font-size: 12px; white-space: nowrap; transition: background .15s;
}
.pk-pill:hover { background: rgba(255, 255, 255, .16); color: #fff; }
.pk-pill-primary { background: var(--pk-success); border-color: var(--pk-success); }
.pk-pill-primary:hover { background: var(--pk-success-hover); }
.pk-icon-btn {
  position: relative; width: 34px; height: 34px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  color: rgba(255, 255, 255, .8); font-size: 16px;
}
.pk-icon-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.pk-icon-btn .badge {
  position: absolute; top: 2px; left: 0; font-size: 10px; padding: 3px 5px; border-radius: 999px;
  background: var(--pk-danger); font-family: var(--pk-font-num);
}
.pk-user > .dropdown-toggle {
  display: flex; align-items: center; gap: 8px; color: #fff; font-size: 13px; padding: 0 4px;
}
.pk-user > .dropdown-toggle::after { display: none; }
.pk-avatar {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .15); border: 2px solid rgba(255, 255, 255, .35); font-size: 13px;
}
.pk-header .dropdown-menu {
  font-size: 13px; border: 1px solid var(--pk-line); border-radius: var(--pk-radius-sm);
  box-shadow: var(--pk-shadow-lg); padding: 6px; min-width: 190px;
}
.pk-header .dropdown-item { border-radius: 6px; padding: 7px 10px; display: flex; align-items: center; gap: 8px; }
.pk-header .dropdown-item > i { width: 16px; text-align: center; color: var(--pk-muted); }

/* ---- منوی کناری ----
   روی دسکتاپ ثابت کنارِ صفحه است؛ زیرِ 992px با offcanvas ِ خودِ Bootstrap کشویی می‌شود (بدون JS ِ اضافه). */
.pk-sidebar { background: var(--pk-surface); }
.pk-sidebar .offcanvas-header { border-bottom: 1px solid var(--pk-line-soft); padding: 10px 14px; }
.pk-sidebar .offcanvas-body { display: block; padding: 6px 0 20px; }
@media (min-width: 992px) {
  .pk-sidebar {
    position: fixed !important; top: var(--pk-header-h); bottom: 0; right: 0; z-index: 1020;
    width: var(--pk-sidebar-w); overflow-y: auto; overscroll-behavior: contain;
    border-left: 1px solid var(--pk-line); background: var(--pk-surface) !important;
  }
  .pk-sidebar .offcanvas-body { padding: 6px 0 20px; overflow: visible; }
}
@media (max-width: 991.98px) {
  .pk-sidebar.offcanvas-lg { --bs-offcanvas-width: 260px; }
}

.pk-menu { font-size: 12px; }
.pk-menu-heading { padding: 14px 18px 6px; font-size: 11px; color: var(--pk-muted); }
.pk-menu-link {
  display: flex; align-items: center; gap: 4px;
  margin: 2px 8px; padding: 9px 10px; border-radius: 8px;
  color: var(--pk-text-2); line-height: 17px; transition: background .15s, color .15s;
}
.pk-menu-link > i:first-child { width: 17.5px; font-size: 14px; text-align: center; color: var(--pk-muted); margin-left: 4px; }
.pk-menu-link > span:not(.badge) { flex: 1; min-width: 0; }
.pk-menu-link .pk-arrow { color: #b0b8c5; font-size: 14px; transition: transform .2s; }
.pk-menu-link[aria-expanded="true"] .pk-arrow { transform: rotate(-90deg); }
.pk-menu-link:hover { background: var(--pk-bg); color: var(--pk-text-2); }
.pk-menu-link.active,
.pk-menu-link[aria-expanded="true"] {
  background: var(--pk-brand-soft); color: var(--pk-brand);
  box-shadow: inset -3px 0 0 var(--pk-brand);     /* نوارِ رنگی در لبهٔ راست */
}
.pk-menu-link.active > i:first-child,
.pk-menu-link[aria-expanded="true"] > i:first-child { color: var(--pk-brand); }
.pk-menu-link .badge { font-family: var(--pk-font-num); font-weight: 400; }
.pk-sub { margin: 2px 0 6px; }
.pk-sub-link {
  display: block; margin: 1px 6px; padding: 6px 35px 6px 10px; border-radius: 6px;
  color: #556173; line-height: 17px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pk-sub-link:hover { background: var(--pk-bg); color: var(--pk-text-2); }
.pk-sub-link.active { background: var(--pk-brand-softer); color: var(--pk-brand); }

/* ---- محتوا ---- */
.pk-main {
  min-height: 100vh; padding: calc(var(--pk-header-h) + 20px) 15px 50px;
}
@media (min-width: 992px) { .pk-main { margin-right: var(--pk-sidebar-w); padding-left: 20px; padding-right: 20px; } }

/* نوارِ مسیر + عنوانِ صفحه */
.pk-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; min-height: 38px; margin-bottom: 12px; }
.pk-bar .breadcrumb { margin: 0; font-size: 12px; --bs-breadcrumb-divider-color: #c3cad6; --bs-breadcrumb-item-padding-x: 8px; }
.pk-bar .breadcrumb-item + .breadcrumb-item::before { content: "\f104"; font-family: FontAwesome; font-size: 12px; }
.pk-bar .breadcrumb a { color: var(--pk-muted); }
.pk-bar .breadcrumb a:hover { color: var(--pk-brand); }
.pk-bar .breadcrumb-item.active { color: var(--pk-text-2); }
.pk-bar-end { margin-right: auto; display: flex; gap: 6px; flex-wrap: wrap; }
.pk-page-title { font-size: 18px; margin: 0 0 4px; color: var(--pk-text-2); }

/* ---- پاورقی ---- */
.pk-footer {
  padding: 8px 20px; font-size: 13px; color: var(--pk-muted); text-align: center;
}
@media (min-width: 992px) { .pk-footer { margin-right: var(--pk-sidebar-w); } }
.pk-main + .pk-footer { margin-top: -40px; }

/* ===================== ۵. کارت، دکمه، فیلد، نشان ===================== */
.pk-card {
  background: var(--pk-surface); border: 1px solid var(--pk-line-soft); border-radius: var(--pk-radius);
  box-shadow: var(--pk-shadow); margin-bottom: 20px;
}
.pk-card-head {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  min-height: 52px; padding: 8px 15px; border-bottom: 1px solid var(--pk-line-soft);
}
.pk-card-title { margin: 0; font-size: 15px; font-weight: 500; color: var(--pk-text-2); display: flex; align-items: center; gap: 8px; }
.pk-card-title > i { color: var(--pk-brand); }
.pk-card-tools { margin-right: auto; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.pk-card-body { padding: 15px; }
.pk-card-foot { padding: 12px 15px; border-top: 1px solid var(--pk-line-soft); display: flex; gap: 8px; flex-wrap: wrap; }

/* دکمه‌ها: اندازه‌های BS3 (۱۴px، ارتفاع ۳۴)، گوشهٔ نرم، بی سایه */
.btn {
  --bs-btn-font-size: 14px; --bs-btn-padding-y: 6px; --bs-btn-padding-x: 12px;
  --bs-btn-border-radius: var(--pk-radius-sm); --bs-btn-focus-box-shadow: 0 0 0 3px rgba(47, 127, 193, .2);
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
}
.btn-sm { --bs-btn-font-size: 12px; --bs-btn-padding-y: 5px; --bs-btn-padding-x: 10px; }
.btn-xs { --bs-btn-font-size: 12px; --bs-btn-padding-y: 1px; --bs-btn-padding-x: 6px; --bs-btn-border-radius: 6px; }
.btn-primary {
  --bs-btn-bg: var(--pk-brand); --bs-btn-border-color: var(--pk-brand);
  --bs-btn-hover-bg: var(--pk-brand-hover); --bs-btn-hover-border-color: var(--pk-brand-hover);
  --bs-btn-active-bg: var(--pk-brand-hover); --bs-btn-active-border-color: var(--pk-brand-hover);
  --bs-btn-disabled-bg: var(--pk-brand); --bs-btn-disabled-border-color: var(--pk-brand);
}
.btn-success {
  --bs-btn-bg: var(--pk-success); --bs-btn-border-color: var(--pk-success);
  --bs-btn-hover-bg: var(--pk-success-hover); --bs-btn-hover-border-color: var(--pk-success-hover);
  --bs-btn-active-bg: var(--pk-success-hover); --bs-btn-active-border-color: var(--pk-success-hover);
}
.btn-danger {
  --bs-btn-bg: var(--pk-danger); --bs-btn-border-color: var(--pk-danger);
  --bs-btn-hover-bg: #c94350; --bs-btn-hover-border-color: #c94350;
}
/* دکمهٔ خاکستری (ابزارهای جدول) */
.btn-light {
  --bs-btn-bg: #f5f7fa; --bs-btn-border-color: var(--pk-line); --bs-btn-color: #4b5668;
  --bs-btn-hover-bg: #eceff4; --bs-btn-hover-border-color: #dde2ea; --bs-btn-hover-color: var(--pk-text-2);
  --bs-btn-active-bg: #e3e8ef; --bs-btn-active-border-color: #d6dce5;
}
.btn-check:checked + .btn-light { background: var(--pk-brand-soft); border-color: #b9d5ee; color: var(--pk-brand); }

/* فیلدها */
.form-control, .form-select {
  font-size: 14px; min-height: 34px; padding: 6px 12px; border-color: #dfe4eb; border-radius: var(--pk-radius-sm);
}
.form-select { padding-left: 32px; background-position: left 10px center; }
.form-control:focus, .form-select:focus { border-color: #9cc3e6; box-shadow: 0 0 0 3px rgba(47, 127, 193, .12); }
.form-control-sm, .form-select-sm { font-size: 12px; min-height: 30px; padding-top: 4px; padding-bottom: 4px; }
.form-label { font-size: 13px; color: #4b5668; margin-bottom: 5px; }
.form-text { font-size: 12px; color: var(--pk-muted); }
.form-check-input:checked { background-color: var(--pk-brand); border-color: var(--pk-brand); }
.form-check-input:focus { box-shadow: 0 0 0 3px rgba(47, 127, 193, .15); border-color: #9cc3e6; }
/* اعتبارسنجی: فقط خطا قرمز می‌شود؛ فیلدِ درست سبز نمی‌شود (شلوغی) */
.was-validated .form-control:valid, .was-validated .form-select:valid { border-color: #dfe4eb; background-image: none; padding-left: 12px; }
.was-validated .form-select:valid { background-image: var(--bs-form-select-bg-img); padding-left: 32px; }
.was-validated .form-control:valid:focus, .was-validated .form-select:valid:focus { border-color: #9cc3e6; box-shadow: 0 0 0 3px rgba(47, 127, 193, .12); }
.was-validated .form-check-input:valid { border-color: var(--bs-border-color); }
.was-validated .form-check-input:valid:checked { background-color: var(--pk-brand); border-color: var(--pk-brand); }
.was-validated .form-check-input:valid ~ .form-check-label { color: inherit; }
.invalid-feedback { font-size: 12px; }
.input-group-text { background: #f7f9fc; border-color: #dfe4eb; color: var(--pk-muted); font-size: 13px; }
.ltr { direction: ltr; text-align: left; }
.ltr::placeholder { text-align: right; }   /* راهنمای فارسی سمتِ راست بماند */

/* تقویمِ ورتال: فونتِ پنل، و بالاتر از مودال */
:root { --jdp-font: var(--pk-font); }
.jdp-popup { z-index: 1080; }
.jdp-input { min-height: 34px; }

/* نشان‌ها: پس‌زمینهٔ کم‌رنگ + متنِ رنگی */
.pk-badge {
  display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 999px;
  font-size: 12px; line-height: 18px; white-space: nowrap;
  background: #eef1f5; color: #5a677a;
}
.pk-badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.pk-badge-success { background: #e6f6f1; color: #1f8a6d; }
.pk-badge-danger  { background: #fdecee; color: #c23a48; }
.pk-badge-warning { background: #fdf3e3; color: #b47714; }
.pk-badge-info    { background: var(--pk-brand-soft); color: var(--pk-brand); }

/* اعلانِ درون‌صفحه */
.alert { border-radius: var(--pk-radius); font-size: 13px; border: 0; }
.alert-info { background: var(--pk-brand-soft); color: #245f8f; }

/* ===================== ۶. جدول و DataTables ===================== */
.pk-table { margin: 0; --bs-table-bg: transparent; --bs-table-hover-bg: #f2f7fd; --bs-table-striped-bg: #fafbfd; }
.pk-table > thead > tr > th {
  background: #f7f9fc; color: #5a677a; font-weight: 400; font-size: 14px;
  padding: 8px; border-bottom: 1px solid var(--pk-line); white-space: nowrap; vertical-align: middle;
}
.pk-table > tbody > tr > td { padding: 8px; border-color: var(--pk-line-soft); vertical-align: middle; white-space: nowrap; }   /* روی موبایل ردیف بلند نشود؛ جدول افقی اسکرول می‌خورد */
.pk-table > tbody > tr > td.pk-wrap { white-space: normal; }
.pk-table > tbody > tr:last-child > td { border-bottom: 0; }
.pk-table .pk-actions { white-space: nowrap; }
.pk-table .pk-actions .btn + .btn { margin-right: 2px; }
.pk-table .pk-clip { max-width: 320px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ساختارِ DataTables 3 (CSS ِ خودِ DataTables بار نمی‌شود؛ همهٔ ظاهر از این‌جاست) */
.dt-container { position: relative; }
.dt-layout-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 10px 15px; }
.dt-layout-row.dt-layout-table { padding: 0; display: block; }
/* خانه‌ها جمع نمی‌شوند، به خطِ بعد می‌روند — DataTables اگر صفحه‌بندی دو خط شود دکمه‌ها را کم می‌کند */
.dt-layout-cell { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; flex: 0 0 auto; max-width: 100%; }
.dt-layout-table .dt-layout-cell { display: block; overflow-x: auto; }   /* جدولِ عریض روی موبایل افقی اسکرول می‌خورد، نه کلِ صفحه */
.dt-info { font-size: 13px; color: var(--pk-muted); font-family: var(--pk-font-num); }
.dt-length { font-size: 13px; color: var(--pk-muted); display: flex; align-items: center; gap: 6px; }
.dt-length select { font-family: var(--pk-font-num); min-height: 30px; padding: 2px 8px; border: 1px solid #dfe4eb; border-radius: 6px; background: #fff; }
.dt-length label { margin: 0; }

/* صفحه‌بندی: دکمه‌های جدا و گرد */
.dt-paging nav { display: flex; gap: 4px; flex-wrap: wrap; }
.dt-paging .dt-paging-button {
  min-width: 34px; height: 34px; padding: 0 10px; border-radius: 8px;
  border: 1px solid var(--pk-line); background: #fff; color: #4b5668;
  font-family: var(--pk-font-num); font-size: 14px; cursor: pointer;
}
.dt-paging .dt-paging-button:hover:not(.disabled):not(.current) { background: var(--pk-bg); border-color: #d6dce5; color: var(--pk-text-2); }
.dt-paging .dt-paging-button.current { background: var(--pk-brand); border-color: var(--pk-brand); color: #fff; cursor: default; }
.dt-paging .dt-paging-button.disabled { color: #b5bdca; cursor: default; }
.dt-paging .ellipsis { padding: 0 4px; color: var(--pk-muted); align-self: center; }

/* مرتب‌سازی */
table.dataTable thead th.dt-orderable-asc,
table.dataTable thead th.dt-orderable-desc { cursor: pointer; }
table.dataTable thead th .dt-column-header { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
table.dataTable thead th.text-center .dt-column-header { justify-content: center; }
table.dataTable thead th .dt-column-order { display: none; width: 10px; flex: none; color: #c3cad6; font-size: 11px; }
table.dataTable thead th.dt-orderable-asc .dt-column-order,
table.dataTable thead th.dt-orderable-desc .dt-column-order { display: inline-block; }
table.dataTable thead th .dt-column-order::before { content: "\f0dc"; font-family: FontAwesome; }
table.dataTable thead th.dt-ordering-asc .dt-column-order::before { content: "\f0de"; color: var(--pk-brand); }
table.dataTable thead th.dt-ordering-desc .dt-column-order::before { content: "\f0dd"; color: var(--pk-brand); }
table.dataTable td.dt-empty { text-align: center; color: var(--pk-muted); padding: 30px 8px; }
table.dataTable th.dt-type-numeric, table.dataTable td.dt-type-numeric,
table.dataTable th.dt-type-date, table.dataTable td.dt-type-date { text-align: inherit; }

/* «در حال بارگذاری» */
.dt-processing {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 5;
  padding: 12px 20px; background: #fff; border: 1px solid var(--pk-line); border-radius: var(--pk-radius);
  box-shadow: var(--pk-shadow-lg); font-size: 13px; color: var(--pk-text-2);
}
.dt-processing > div:last-child { display: none; }      /* نقطه‌های متحرکِ پیش‌فرض؛ متنِ فارسی کافی است */
.dt-container.pk-loading tbody { opacity: .45; transition: opacity .15s; }

/* ردیفِ جزئیات */
td.pk-details { width: 34px; text-align: center; cursor: pointer; }
td.pk-details > .pk-details-btn {
  width: 22px; height: 22px; border-radius: 50%; border: 0; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--pk-brand-soft); color: var(--pk-brand); font-size: 11px; transition: transform .15s;
}
tr.dt-hasChild td.pk-details > .pk-details-btn { transform: rotate(45deg); background: var(--pk-brand); color: #fff; }
tr.pk-child-row > td { background: var(--pk-brand-softer) !important; padding: 0 !important; }
.pk-child { padding: 12px 50px 14px 15px; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px 20px; font-size: 13px; }
.pk-child dt { font-weight: 400; color: var(--pk-muted); font-size: 12px; margin-bottom: 2px; }
.pk-child dd { margin: 0; color: var(--pk-text-2); word-break: break-word; }
.pk-child .pk-child-wide { grid-column: 1 / -1; }

/* نوارِ فیلتر و برچسب‌های فیلترِ فعال */
.pk-filters { padding: 12px 15px; background: #fafbfd; border-bottom: 1px solid var(--pk-line-soft); }
.pk-filter-tags { display: flex; flex-wrap: wrap; gap: 6px; padding: 10px 15px 0; }
.pk-filter-tags:empty { display: none; }
.pk-filter-tag {
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 6px 3px 10px; border-radius: 999px;
  background: var(--pk-brand-soft); color: var(--pk-brand); font-size: 12px;
}
.pk-filter-tag button { border: 0; background: transparent; color: inherit; padding: 0 2px; line-height: 1; opacity: .7; }
.pk-filter-tag button:hover { opacity: 1; }
.pk-search { position: relative; }
.pk-search > i { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); color: var(--pk-muted); pointer-events: none; }
.pk-search > .form-control { padding-right: 30px; width: 240px; max-width: 100%; }

/* ===================== ۷. مودال، tooltip، toast ===================== */
.modal-content { border: 0; border-radius: 12px; box-shadow: 0 24px 60px rgba(15, 23, 42, .22); overflow: hidden; }
.modal-header { border-bottom-color: var(--pk-line-soft); padding: 12px 16px; }
.modal-title { font-size: 15px; color: var(--pk-brand); }
.modal-header .btn-close { margin: 0 auto 0 0; font-size: 12px; }
.modal-footer { border-top-color: var(--pk-line-soft); padding: 10px 16px; gap: 6px; }
.modal-footer > * { margin: 0; }
.modal-backdrop { --bs-backdrop-bg: #0f172a; --bs-backdrop-opacity: .45; }
.tooltip { --bs-tooltip-font-size: 12px; --bs-tooltip-border-radius: 6px; font-family: var(--pk-font); }
.toast-container { z-index: 1090; }
.toast { font-family: var(--pk-font-num); border: 0; border-radius: var(--pk-radius); box-shadow: var(--pk-shadow-lg); font-size: 13px; overflow: hidden; }
.toast .toast-body { display: flex; align-items: center; gap: 10px; padding: 12px 14px; }
.toast .toast-body > i { font-size: 17px; }
.toast.pk-toast-success .toast-body > i { color: var(--pk-success); }
.toast.pk-toast-danger .toast-body > i { color: var(--pk-danger); }
.toast.pk-toast-info .toast-body > i { color: var(--pk-brand); }
.toast.pk-toast-success { box-shadow: inset -4px 0 0 var(--pk-success), var(--pk-shadow-lg); }
.toast.pk-toast-danger { box-shadow: inset -4px 0 0 var(--pk-danger), var(--pk-shadow-lg); }
.toast.pk-toast-info { box-shadow: inset -4px 0 0 var(--pk-brand), var(--pk-shadow-lg); }

/* ===================== ۸. داشبورد ===================== */
.pk-stat { display: flex; align-items: center; gap: 14px; padding: 16px; height: 100%; margin: 0; }
.pk-stat-icon {
  width: 46px; height: 46px; border-radius: 12px; flex: none;
  display: inline-flex; align-items: center; justify-content: center; font-size: 20px;
  background: var(--pk-brand-soft); color: var(--pk-brand);
}
.pk-stat-icon.is-success { background: #e6f6f1; color: #1f8a6d; }
.pk-stat-icon.is-warning { background: #fdf3e3; color: #b47714; }
.pk-stat-icon.is-danger  { background: #fdecee; color: #c23a48; }
.pk-stat-label { font-size: 12px; color: var(--pk-muted); margin-bottom: 2px; }
.pk-stat-value { font-size: 20px; font-weight: 500; color: var(--pk-text-2); font-family: var(--pk-font-num); line-height: 1.3; }
.pk-stat-trend { font-size: 12px; font-family: var(--pk-font-num); }
.pk-stat-trend.up { color: #1f8a6d; }
.pk-stat-trend.down { color: #c23a48; }
.pk-progress { height: 6px; border-radius: 999px; background: var(--pk-line-soft); }
.pk-progress > .progress-bar { background: var(--pk-brand); border-radius: 999px; }
.pk-list { list-style: none; margin: 0; padding: 0; }
.pk-list > li { display: flex; align-items: center; gap: 10px; padding: 10px 15px; border-bottom: 1px solid var(--pk-line-soft); font-size: 13px; }
.pk-list > li:last-child { border-bottom: 0; }
.pk-list .pk-list-meta { margin-right: auto; color: var(--pk-muted); font-size: 12px; font-family: var(--pk-font-num); white-space: nowrap; }
.pk-quick { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; padding: 15px; }
.pk-quick a {
  display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 16px 8px; border-radius: var(--pk-radius);
  border: 1px solid var(--pk-line-soft); color: var(--pk-text-2); font-size: 13px; text-align: center; transition: .15s;
}
.pk-quick a > i { font-size: 20px; color: var(--pk-brand); }
.pk-quick a:hover { border-color: #b9d5ee; background: var(--pk-brand-softer); }
