/* FERP Design System — برگرفته از دموی RTL */
:root{
  /* پالتِ «اتاق کنترل» (navy + teal/purple) — تمِ پیش‌فرضِ کلِ اپ */
  --bg:#0f141a; --bg-2:#141a22; --panel:#171c23; --panel-2:#1e2731; --line:#2a323d;
  --txt:#eef2f7; --muted:#aab6c6; --brand:#2dd4bf; --brand-2:#14b8a6; --blue:#5cc8f5; --green:#34d399;
  --amber:#fbbf24; --red:#f87171; --violet:#a78bfa; --teal:#2dd4bf;
  --radius:14px; --shadow:0 14px 40px rgba(0,0,0,.45);
}
html[data-theme="light"]{
  --bg:#eef2f8; --bg-2:#fff; --panel:#fff; --panel-2:#f1f5fb; --line:#dde5f0;
  --txt:#16243b; --muted:#5b6b86; --shadow:0 10px 30px rgba(40,60,90,.12);
}
html[data-theme="emerald"]{
  --bg:#06110f; --bg-2:#091815; --panel:#0f201c; --panel-2:#142b25; --line:#21463d;
  --txt:#eafff7; --muted:#8fb3a7; --brand:#19c37d; --brand-2:#0ea66b; --blue:#55a8ff;
  --green:#2ddf91; --amber:#f5c15d; --red:#ff6b7a; --violet:#9f8cff; --teal:#2dd4bf;
  --shadow:0 18px 55px rgba(0,0,0,.42);
}
html{color-scheme:dark;}
html[data-theme="light"]{color-scheme:light;}
*{box-sizing:border-box;margin:0;padding:0;}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--brand) 55%,var(--line)) var(--bg-2);}
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-track{background:var(--bg-2);}
*::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,var(--panel-2),color-mix(in srgb,var(--brand) 45%,var(--line)));
  border:2px solid var(--bg-2);border-radius:999px;
}
*::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--brand) 70%,var(--line));}
body{font-family:Vazirmatn,system-ui,sans-serif;
  background:
    radial-gradient(900px 460px at 16% -12%,rgba(45,212,191,.10),transparent 60%),
    radial-gradient(1000px 560px at 88% -6%,rgba(167,139,250,.12),transparent 58%),
    linear-gradient(180deg,#0f141a 0%,#11161e 50%,#0c1016 100%);
  color:var(--txt);min-height:100vh;line-height:1.7;transition:.3s;}
html[data-theme="emerald"] body{
  background:
    radial-gradient(850px 420px at 18% -12%,rgba(45,212,191,.12),transparent 62%),
    radial-gradient(950px 520px at 86% 4%,rgba(25,195,125,.16),transparent 58%),
    linear-gradient(180deg,#06110f 0%,#081411 48%,#050b0a 100%);
}

/* layout */
.app{display:grid;grid-template-columns:256px 1fr;min-height:100vh;}
aside{background:linear-gradient(180deg,var(--bg-2),color-mix(in srgb,var(--bg) 70%,#000));
  border-left:1px solid var(--line);padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;}
html[data-theme="light"] aside{background:linear-gradient(180deg,#fff,#f3f7fc);}
html[data-theme="emerald"] aside{
  background:linear-gradient(180deg,rgba(10,26,22,.96),rgba(5,12,11,.98));
  box-shadow:inset 1px 0 0 rgba(45,223,145,.05), -18px 0 55px rgba(0,0,0,.18);
}
.brand{display:flex;align-items:center;gap:12px;padding:4px 6px 16px;}
.logo{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--brand),var(--violet));
  display:grid;place-items:center;font-weight:800;font-size:18px;color:#0f1216;box-shadow:0 6px 16px rgba(45,212,191,.4);}
html[data-theme="emerald"] .logo{background:linear-gradient(135deg,#19c37d,#2dd4bf);box-shadow:0 0 0 1px rgba(45,223,145,.28),0 14px 35px rgba(25,195,125,.28);}
.brand h1{font-size:17px;font-weight:800;} .brand small{color:var(--muted);font-size:11px;font-weight:400;}
.verpill{font-size:10px;background:rgba(34,197,94,.18);color:#34d27a;padding:2px 8px;border-radius:20px;font-weight:700;}
/* ── nav: داشبورد اصلی (بالای همه) ── */
.nav-home{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;
  text-decoration:none;font-size:14px;font-weight:700;margin-bottom:10px;transition:.15s;
  color:#fff;background:linear-gradient(90deg,rgba(45,212,191,.45),rgba(45,212,191,.15));
  border:1px solid rgba(45,212,191,.5);}
.nav-home .ico{font-size:16px;}
.nav-home:hover{background:linear-gradient(90deg,rgba(45,212,191,.6),rgba(45,212,191,.25));}
.nav-home.active{background:linear-gradient(90deg,var(--brand),rgba(45,212,191,.35));
  border-color:var(--brand);color:#fff;}
html[data-theme="emerald"] .nav-home,
html[data-theme="emerald"] .nav-home.active{
  background:linear-gradient(90deg,rgba(25,195,125,.32),rgba(20,43,37,.72));
  border-color:rgba(45,223,145,.42);box-shadow:0 10px 28px rgba(25,195,125,.13);
}

/* ── nav: pinned shortcuts ── */
.nav-pinned{padding:0 0 10px;border-bottom:1px solid var(--line);margin-bottom:8px;}
.nav-pinned-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 8px 6px;}
.nav-pinned-label{color:var(--muted);font-size:10px;letter-spacing:.8px;text-transform:uppercase;}
.nav-pin-edit{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:2px 8px;font-family:inherit;font-size:10px;cursor:pointer;}
.nav-pin-edit:hover,.nav-pin-edit.active{color:var(--txt);border-color:var(--brand);background:rgba(45,212,191,.12);}
.nav-pin-list{display:flex;flex-direction:column;gap:3px;}
.nav-pin{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;
  color:var(--txt);text-decoration:none;font-size:13px;font-weight:500;transition:.15s;margin-bottom:3px;
  border:1px solid transparent;}
.nav-pin:hover{background:var(--panel-2);}
.nav-pin.active{background:rgba(45,212,191,.15);border-color:rgba(45,212,191,.3);color:var(--brand);}
.nav-pin-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.nav-pin-drag{display:none;color:var(--muted);cursor:grab;font-size:15px;line-height:1;user-select:none;}
body.nav-pin-editing .nav-pin-drag{display:inline-flex;}
body.nav-pin-editing .nav-pin{cursor:grab;}
.nav-pin.dragging{opacity:.55;transform:scale(.98);}
.nav-pin.drag-over{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 10%,var(--panel-2));}
html[data-theme="emerald"] .nav-pin-edit:hover,
html[data-theme="emerald"] .nav-pin-edit.active{background:rgba(25,195,125,.12);}
html[data-theme="emerald"] .nav-pin.active{background:rgba(25,195,125,.13);border-color:rgba(45,223,145,.32);}
.pin-badge{margin-inline-start:auto;background:var(--red);color:#fff;font-size:10px;padding:1px 6px;border-radius:20px;}
.nav-pinned-empty{color:var(--muted);font-size:11px;padding:8px 10px;border:1px dashed var(--line);border-radius:10px;background:rgba(255,255,255,.02);}
.nav-pin-toggle{display:none;margin-inline-start:auto;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:8px;width:24px;height:22px;cursor:pointer;font-size:12px;line-height:1;}
/* منوی راست‌کلیکِ ناوبری */
.nav-ctx-menu{position:fixed;z-index:9999;min-width:190px;background:var(--panel);border:1px solid var(--line);
  border-radius:11px;box-shadow:var(--shadow);padding:5px;animation:ctxIn .1s ease;}
@keyframes ctxIn{from{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}
.nav-ctx-head{font-size:11px;color:var(--muted);padding:5px 9px 7px;border-bottom:1px solid var(--line);margin-bottom:4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;}
.nav-ctx-item{display:flex;align-items:center;gap:9px;width:100%;border:none;background:transparent;color:var(--txt);
  font-family:inherit;font-size:13px;text-align:start;padding:8px 10px;border-radius:8px;cursor:pointer;}
.nav-ctx-item:hover{background:var(--panel-2);}
.nav-ctx-ico{width:18px;text-align:center;color:var(--brand);font-size:13px;}
body.nav-pin-editing nav a .nav-pin-toggle,
body.nav-pin-editing .nav-home .nav-pin-toggle,
body.nav-pin-editing .nav-pin-list .nav-pin-toggle{display:inline-flex;align-items:center;justify-content:center;}
body.nav-pin-editing nav a,
body.nav-pin-editing .nav-home,
body.nav-pin-editing .nav-pin-list .nav-pin{padding-inline-end:7px;}
.nav-pin-toggle.is-pinned{color:#fbbf24;border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.12);}

/* ── nav: collapsible groups ── */
.nav-grp{margin-bottom:2px;}
.nav-grp-hd{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;
  border-radius:9px;cursor:pointer;color:var(--muted);font-size:14px;font-weight:800;
  letter-spacing:.3px;transition:.15s;user-select:none;}
.nav-grp-hd:hover{background:var(--panel-2);color:var(--txt);}
.nav-grp.open .nav-grp-hd{
  color:var(--txt);
  background:linear-gradient(90deg,rgba(45,212,191,.15),transparent);
  border-right:3px solid var(--brand);}
html[data-theme="emerald"] .nav-grp.open .nav-grp-hd{background:linear-gradient(90deg,rgba(25,195,125,.13),transparent);}
.grp-icon{font-size:17px;margin-left:6px;}
.arr{font-size:13px;transition:transform .2s;flex-shrink:0;opacity:.6;
  padding:2px 6px;margin:-2px -4px;border-radius:6px;cursor:pointer;}
.arr:hover{opacity:1;background:var(--panel-2);}
.nav-grp.open .arr{transform:rotate(180deg);opacity:1;}
.nav-grp-body{display:none;padding-right:14px;margin-right:11px;
  border-right:1.5px solid var(--line);}
.nav-grp.open .nav-grp-body{display:block;}

/* ── nav: links (داخل گروه‌ها) ── */
.nav-group{color:var(--muted);font-size:11px;margin:12px 8px 5px;letter-spacing:.5px;}
nav a{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:9px;color:var(--muted);
  text-decoration:none;font-size:13px;font-weight:500;cursor:pointer;transition:.15s;margin-bottom:1px;}
nav a .ico{width:18px;text-align:center;font-size:14px;flex-shrink:0;}
nav a:hover{background:var(--panel-2);color:var(--txt);}
nav a.active{background:linear-gradient(90deg,rgba(45,212,191,.22),transparent);color:var(--txt);}
nav a.active .ico{color:var(--brand);}
html[data-theme="emerald"] nav a.active{background:linear-gradient(90deg,rgba(25,195,125,.16),transparent);}
nav a .soon{margin-inline-start:auto;background:var(--panel-2);color:var(--muted);font-size:9px;padding:1px 7px;border-radius:20px;}
.nav-subtitle{
  color:var(--muted);font-size:10.5px;font-weight:800;margin:10px 4px 4px;
  letter-spacing:.2px;opacity:.76;
}
.nav-subtitle:first-child{margin-top:4px;}

main{padding:22px 28px;overflow-x:hidden;}
.topbar{display:flex;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap;}
.topbar-title{min-width:0;}
.topbar h2{font-size:21px;font-weight:800;} .topbar .crumb{color:var(--muted);font-size:13px;}
/* مجموعه‌ی کنترل‌ها (جستجو/اعلان/تم/پروفایل/خروج) — چسبیده به سمت چپ */
.topbar-actions{display:flex;align-items:center;gap:10px;margin-inline-start:auto;}
.search{background:var(--panel);border:1px solid var(--line);border-radius:10px;
  padding:9px 14px;color:var(--txt);width:220px;font-family:inherit;font-size:13px;}
.search::placeholder{color:var(--muted);}
.select-add-option{color:var(--brand);font-weight:800;}
.icon-btn{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:var(--panel);
  color:var(--txt);cursor:pointer;font-size:16px;transition:.15s;flex-shrink:0;
  display:grid;place-items:center;text-decoration:none;}
.icon-btn:hover{background:var(--panel-2);}
.logout-btn{border-color:rgba(239,68,68,.4);}
.logout-btn:hover{background:rgba(239,68,68,.15);border-color:var(--red);}
.avatar{width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--teal),var(--brand));
  display:grid;place-items:center;font-weight:700;font-size:13px;color:#fff;flex-shrink:0;}
/* نرخ دلار/طلا — کارت فشرده در نوار بالا (کنار جستجو/تم)، وزن فونت هم‌تراز کنترل‌ها */
.fx-topbar{display:flex;align-items:center;gap:12px;padding:6px 12px;margin-inline-end:4px;
  border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:help;}
.fx-topbar-item{display:flex;align-items:center;gap:5px;font-size:13px;color:var(--txt);white-space:nowrap;}
.fx-topbar-item b{font-weight:700;font-variant-numeric:tabular-nums;}
.fx-topbar-ico{font-size:13px;color:var(--brand);font-weight:800;}
.fx-topbar-gold .fx-topbar-ico{color:var(--gold,#e3b341);}
.fx-topbar-item+.fx-topbar-item{padding-inline-start:12px;border-inline-start:1px solid var(--line);}
@media(max-width:900px){.fx-topbar{order:5;}}
@media(max-width:600px){.fx-topbar{display:none;}}

/* cards / kpi */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.kpi{background:linear-gradient(180deg,var(--panel),var(--bg-2));border:1px solid var(--line);
  border-radius:var(--radius);padding:16px;transition:.15s;}
.kpi:hover{border-color:var(--brand);transform:translateY(-2px);}
.kpi .label{color:var(--muted);font-size:13px;} .kpi .value{font-size:24px;font-weight:800;margin-top:6px;}
.kpi .delta{font-size:12px;margin-top:4px;color:var(--muted);}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px;}
html[data-theme="emerald"] .kpi,
html[data-theme="emerald"] .card{
  background:linear-gradient(180deg,rgba(18,43,36,.88),rgba(9,24,21,.92));
  border-color:rgba(57,109,95,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 18px 45px rgba(0,0,0,.20);
}
html[data-theme="emerald"] .card:hover{border-color:rgba(45,223,145,.34);}
.card h3{font-size:15px;margin-bottom:12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.card h3 .dot{width:8px;height:8px;border-radius:50%;background:var(--brand);}
.card h3 .grow{margin-inline-start:auto;}

/* رنگِ لینکِ محتوایی — قبلاً تعریف نشده بود و لینک‌ها رنگِ پیش‌فرضِ مرورگر (آبیِ ناخوانا روی تمِ تیره) می‌گرفتند */
main a:not(.btn):not(.seg-btn):not(.nav-pin):not(.nav-home):not(.comm-btn){color:var(--blue);text-decoration:none;}
main a:not(.btn):not(.seg-btn):not(.nav-pin):not(.nav-home):not(.comm-btn):hover{color:var(--brand);text-decoration:underline;}
/* نامِ ردیف‌ها در جدول‌ها باید برجسته و خوانا باشد */
td a:not(.btn){font-weight:600;}

/* table */
table{width:100%;border-collapse:collapse;font-size:13px;}
th{text-align:center;color:var(--muted);font-weight:700;padding:9px 11px;border-bottom:1px solid var(--line);font-size:12px;
  position:sticky;top:0;background:var(--panel);z-index:2;}
td{padding:10px 11px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent);color:var(--txt);text-align:right;}
/* checkbox/radio — ۲۰٪ بزرگ‌تر از پیش‌فرض مرورگر */
input[type="checkbox"],
input[type="radio"]{
  width:1.2em;height:1.2em;min-width:1.2em;min-height:1.2em;
  accent-color:var(--brand);cursor:pointer;vertical-align:middle;
}
.purge-table .purge-keep-hd{width:72px;text-align:center;}
.purge-table .purge-keep-cell{text-align:center;vertical-align:middle;}
.purge-keep-label{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:4px;}
/* راه‌راهِ ملایم برای خواناییِ ردیف‌ها */
tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel-2) 45%,transparent);}
tbody tr{transition:.12s;} tbody tr:hover{background:var(--panel-2);} tbody tr:last-child td{border-bottom:none;}

/* نوارِ فیلترِ جمع‌وجورِ بالای جدول — یک خط، فشرده و مرتب */
.colf-bar{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;overflow-x:auto;
  background:color-mix(in srgb,var(--panel-2) 60%,var(--panel));
  border:1px solid var(--line);border-radius:10px;padding:6px 9px;margin-bottom:8px;position:relative;
  scrollbar-width:thin;}
.colf-bar::-webkit-scrollbar{height:5px;}
.colf-bar>*{flex:0 0 auto;}
.colf-bar .colf-grow{flex:1 1 150px;min-width:120px;max-width:240px;}
/* select‌ها عرضِ ثابتِ جمع‌وجور؛ متنِ بلند با … کوتاه می‌شود تا نوار اسکرول نشود */
.colf-bar select.colf-in{width:118px;text-overflow:ellipsis;}
.colf-bar-title{color:var(--muted);font-size:11px;font-weight:800;letter-spacing:.3px;white-space:nowrap;
  margin-left:2px;padding-inline-end:6px;border-inline-end:1px solid var(--line);margin-inline-end:2px;}
.colf-check{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);white-space:nowrap;cursor:pointer;user-select:none;}
.colf-check input{cursor:pointer;}
.col-hidden{display:none !important;}
.col-picker-pop{position:absolute;z-index:1200;min-width:200px;max-width:280px;background:var(--card,#fff);
  border:1px solid var(--border,#ddd);border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.12);padding:0;}
.col-picker-hd{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--border,#eee);font-size:13px;}
.col-picker-hd .x{background:none;border:none;cursor:pointer;opacity:.6;font-size:14px;}
.col-picker-list{max-height:280px;overflow-y:auto;padding:8px 10px;display:flex;flex-direction:column;gap:6px;}
.col-picker-item{font-size:12px;display:flex;align-items:center;gap:6px;cursor:pointer;}
.col-picker-foot{padding:6px 10px 8px;border-top:1px solid var(--border,#eee);text-align:left;}
.colf-in{box-sizing:border-box;background:var(--panel);border:1px solid var(--line);
  border-radius:8px;color:var(--txt);font-family:inherit;font-size:12px;font-weight:400;
  padding:0 9px;height:30px;}
.colf-in:focus{outline:none;border-color:var(--brand);
  box-shadow:0 0 0 2px color-mix(in srgb,var(--brand) 25%,transparent);}
.colf-in::placeholder{color:var(--muted);font-size:11px;}
.colf-icon-btn{border:1px solid var(--line);background:var(--panel);color:var(--muted);
  border-radius:8px;cursor:pointer;font-family:inherit;font-size:12px;height:30px;white-space:nowrap;
  min-width:30px;padding:0 9px;line-height:1;transition:.12s;}
.colf-icon-btn:hover{border-color:var(--brand);color:var(--txt);}
.colf-icon-btn.active{border-color:var(--brand);color:var(--brand);
  background:color-mix(in srgb,var(--brand) 14%,var(--panel));}
.colf-pop{position:absolute;z-index:60;inset-inline-start:0;margin-top:6px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;
  padding:10px;box-shadow:0 14px 34px rgba(0,0,0,.4);}
.colf-pop .tf-bar{flex-wrap:wrap;gap:8px;}

/* عنوانِ ستونِ قابلِ‌سورت — دکمهٔ sort کل عرض th را می‌پوشاند */
th.sortable{cursor:pointer;user-select:none;white-space:nowrap;transition:.12s;padding:0;}
th.sortable:hover{color:var(--txt);}
th.sortable.sorted{color:var(--brand);}
.sort-hd{display:flex;align-items:center;justify-content:center;gap:3px;width:100%;box-sizing:border-box;
  background:transparent;border:0;padding:9px 11px;margin:0;font:inherit;font-weight:inherit;
  color:inherit;cursor:pointer;font-family:inherit;text-align:center;text-decoration:none;}
th.num .sort-hd{justify-content:center;padding-inline:11px;}
.sort-lbl{pointer-events:none;}
.sort-ind{font-size:10px;opacity:.85;}
.sort-ind.sort-dim{opacity:0;transition:.12s;}
th.sortable:hover .sort-ind.sort-dim{opacity:.4;}
/* محتوای سلول — راست‌چین RTL؛ سرستون وسط‌چین */
/* hint راهنمای عمل — از /preferences/ui قابل خاموش کردن */
.ui-action-hint{
  font-size:12px;color:var(--muted);margin:0 0 10px;padding:8px 12px;border-radius:9px;
  background:color-mix(in srgb,var(--brand) 8%,var(--panel-2));
  border:1px dashed color-mix(in srgb,var(--brand) 35%,var(--line));
}

/* ردیف/کارت کلیک‌پذیر — navigation با یک کلیک */
tr.clickable-row{cursor:pointer;}
tr.clickable-row:hover{background:color-mix(in srgb,var(--brand) 10%,var(--panel-2)) !important;}
tr.clickable-row.is-active{background:color-mix(in srgb,var(--brand) 14%,var(--panel-2)) !important;}
tr.clickable-row.is-active td:first-child{box-shadow:inset 3px 0 0 var(--brand);}
tr.clickable-row:focus-visible{outline:2px solid var(--brand);outline-offset:-2px;}
tr.clickable-row.is-active:focus-visible{outline-color:var(--green);}

.pref-check-label{
  display:flex;align-items:flex-start;gap:10px;padding:12px;border-radius:10px;
  border:1px solid var(--line);background:var(--bg-2);cursor:pointer;font-size:13px;
}
.pref-check-label input{margin-top:4px;accent-color:var(--brand);}
/* اعداد/پول: ارقام هم‌عرض؛ bidi.css برای متن مختلط.
   راست‌چین تا با تیترِ راست‌چینِ th هم‌تراز شود (رفعِ آفستِ ستون‌های عددی). */
/* هم‌راستایی سرستون عددی — عنوان وسط، مقدار راست */
th.num{
  text-align:center;
  vertical-align:middle;
}
td.num{
  text-align:end;
  vertical-align:middle;
}
th.num .sort-hd{justify-content:center;}
.sort-ind{flex:0 0 auto;width:12px;text-align:center;}
/* سلول عددی — محتوا هم‌عرض با سرستون */
td.num{padding:9px 11px;}
td.num > .ltr-val,
td.num.num-cell{
  display:block;width:100%;box-sizing:border-box;
  direction:ltr;unicode-bidi:isolate;text-align:end;
}
.num{font-variant-numeric:tabular-nums;unicode-bidi:plaintext;text-align:end;}
th.num{text-align:center;}

/* pills */
.pill{font-size:11px;padding:3px 10px;border-radius:20px;font-weight:600;display:inline-block;white-space:nowrap;}
.pill.green{background:rgba(34,197,94,.15);color:#5ee08a;} .pill.amber{background:rgba(245,158,11,.15);color:#fbbf24;}
.pill.red{background:rgba(239,68,68,.15);color:#fb7185;} .pill.blue{background:rgba(45,212,191,.15);color:#7eb0ff;}
.pill.violet{background:rgba(139,92,246,.15);color:#b69bff;} .pill.gray{background:rgba(147,162,189,.15);color:var(--muted);}
html[data-theme="light"] .pill.green{color:#2ea15b;} html[data-theme="light"] .pill.amber{color:#b97e0c;}
html[data-theme="light"] .pill.red{color:#d23b4d;} html[data-theme="light"] .pill.blue{color:#2f6fd6;}
html[data-theme="light"] .pill.violet{color:#7b54e0;}

/* buttons */
.btn{background:var(--brand);color:#fff;border:none;border-radius:10px;padding:9px 15px;
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:.15s;}
.btn:hover{background:var(--brand-2);}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--txt);}
.btn.ghost:hover{background:var(--panel-2);}
.btn.sm{padding:6px 11px;font-size:12px;}
.btn.danger{color:var(--red);border-color:rgba(239,68,68,.4);}
.btn.danger:hover{background:rgba(239,68,68,.12);}
.btn.disabled,.btn:disabled{opacity:.45;pointer-events:none;cursor:not-allowed;}
/* حالتِ «در حالِ انجام» برای دکمه‌های async: اسپینر + قفلِ کلیکِ دوباره */
.btn.loading{pointer-events:none;opacity:.75;position:relative;color:transparent !important;}
.btn.loading::after{content:"";position:absolute;inset:0;margin:auto;width:14px;height:14px;
  border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:btnspin .6s linear infinite;}
.btn.ghost.loading::after{border-color:color-mix(in srgb,var(--txt) 35%,transparent);border-top-color:var(--txt);}
@keyframes btnspin{to{transform:rotate(360deg)}}
/* فوکوسِ کیبورد (دسترس‌پذیری) */
.btn:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:2px solid var(--brand);outline-offset:2px;}
.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center;}

/* ارتباط سریع روی کارت/ردیف لید و مشتری */
/* ارتباطِ سریع: فقط دو دکمه — «تماس» و «پیام». پیام، منوی کانال‌ها را باز می‌کند. */
.comm-actions{display:inline-flex;align-items:center;gap:5px;position:relative;}
.comm-btn{
  width:30px;height:30px;border-radius:9px;border:1px solid var(--line);background:var(--panel-2);
  color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  font-size:14px;line-height:1;font-family:inherit;text-decoration:none;transition:.14s;
}
.comm-btn:hover{color:#fff;border-color:var(--brand);background:color-mix(in srgb,var(--brand) 16%,var(--panel-2));transform:translateY(-1px);}
.comm-btn.call{color:#7eb0ff}.comm-btn.call:hover{border-color:#2dd4bf;background:rgba(45,212,191,.18);}
.comm-btn.msg{color:#5ee08a}.comm-btn.msg:hover{border-color:#22c55e;background:rgba(34,197,94,.16);}
.comm-btn.note{color:var(--txt);}
.comm-msg{position:relative;display:inline-flex;}
.comm-msg.open .comm-btn.msg{color:#fff;border-color:#22c55e;background:rgba(34,197,94,.16);}
.comm-actions.compact .comm-btn{width:27px;height:27px;border-radius:8px;font-size:12px;}

/* منوی کشوییِ کانال‌ها (پیامک/واتساپ/تلگرام/بله/روبیکا/ایمیل/تعامل) */
.comm-pop{
  display:none;position:fixed;z-index:1200;min-width:174px;padding:6px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
}
.comm-pop-item{
  display:flex;align-items:center;gap:9px;width:100%;text-align:start;background:transparent;border:none;
  color:var(--txt);padding:8px 10px;font-size:13px;font-family:inherit;cursor:pointer;border-radius:8px;
}
.comm-pop-item:hover{background:var(--panel-2);}
.comm-pop-item .ci{
  width:22px;height:22px;border-radius:6px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;background:var(--panel-2);color:var(--muted);
}
.comm-pop-item.sms .ci{color:#fbbf24}
.comm-pop-item.whatsapp .ci{color:#22c55e}
.comm-pop-item.telegram .ci{color:#3aa6e0}
.comm-pop-item.bale .ci{color:#7c3aed}
.comm-pop-item.rubika .ci{color:#f97316}
.comm-pop-item.email .ci{color:#b69bff}

/* منوی کشویی (kebab) برای اکشن‌های اضافه */
.menu{position:relative;display:inline-block;}
.menu-list{position:absolute;inset-inline-end:0;top:34px;background:var(--panel);border:1px solid var(--line);
  border-radius:11px;box-shadow:var(--shadow);min-width:168px;display:none;z-index:55;overflow:hidden;padding:5px;}
.menu.show .menu-list{display:block;}
.menu-list a,.menu-list button{display:flex;align-items:center;gap:9px;width:100%;text-align:start;background:transparent;
  border:none;color:var(--txt);padding:9px 11px;font-size:13px;cursor:pointer;text-decoration:none;font-family:inherit;border-radius:8px;}
.menu-list a:hover,.menu-list button:hover{background:var(--panel-2);}
.menu-list .sep{height:1px;background:var(--line);margin:5px 4px;}
.menu-list button.danger{color:var(--red);}

/* گروه‌های منوی کناری — جمع‌شو */
.nav-group{cursor:pointer;display:flex;align-items:center;gap:6px;user-select:none;}
.nav-group::before{content:'▾';font-size:9px;transition:.2s;opacity:.7;}
.nav-section.collapsed .nav-group::before{transform:rotate(-90deg);}
.nav-section.collapsed nav{display:none;}

/* صفحه‌بندی */
.pager{display:flex;align-items:center;gap:10px;margin-top:14px;flex-wrap:wrap;}
.pager-btns{display:flex;align-items:center;gap:5px;flex-wrap:wrap;}
.pager-gap{color:var(--muted);padding:0 2px;}

/* جستجوی سراسری */
.gsearch-wrap{position:relative;}
.gsearch-panel{position:absolute;top:40px;inset-inline-start:0;width:min(320px,86vw);background:var(--panel);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:none;z-index:90;max-height:60vh;overflow:auto;}
.gsearch-panel.show{display:block;}
.gs-group{padding:7px 12px;font-size:11px;font-weight:700;color:var(--muted);background:var(--panel-2);}
.gs-item{display:block;padding:9px 12px;border-bottom:1px solid var(--line);color:var(--txt);text-decoration:none;font-size:13px;}
.gs-item:hover{background:var(--panel-2);}
.gs-item.active{background:color-mix(in srgb,var(--brand) 15%,var(--panel-2));border-inline-start:3px solid var(--brand);}

/* جستجوی مشتری در مودال ثبت تعامل */
.customer-search-box{position:relative;}
.customer-search-results{
  display:none;position:absolute;z-index:120;top:42px;inset-inline:0;
  max-height:260px;overflow:auto;background:var(--panel);border:1px solid var(--line);
  border-radius:12px;box-shadow:var(--shadow);padding:6px;
}
.customer-search-results.show{display:block;}
.modal .customer-search-results{z-index:3000;}
.customer-search-item{
  width:100%;display:grid;grid-template-columns:1fr auto;gap:4px 10px;text-align:right;
  padding:9px 10px;border:1px solid transparent;border-radius:10px;background:transparent;
  color:var(--txt);font-family:inherit;cursor:pointer;
}
.customer-search-item:hover,.customer-search-item:focus{background:var(--panel-2);border-color:var(--brand);outline:none;}
.customer-search-item b{font-size:13px;}
.customer-search-item span{grid-column:1/-1;color:var(--muted);font-size:11px;direction:rtl;}
.customer-search-item em{font-style:normal;color:var(--brand);font-size:10px;align-self:start;}
.customer-search-empty{padding:12px;color:var(--muted);font-size:12px;text-align:center;}
.customer-selected{margin-top:7px;font-size:11px;line-height:1.7;}

/* Command Palette (QA-03) */
.cmd-palette-overlay{position:fixed;inset:0;z-index:3000;background:rgba(5,9,16,.65);backdrop-filter:blur(4px);
  display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;}
.cmd-palette-overlay.show{display:flex;}
.cmd-palette{width:min(520px,96vw);background:var(--panel);border:1px solid var(--line);border-radius:14px;
  box-shadow:0 20px 60px rgba(0,0,0,.45);overflow:hidden;}
.cmd-palette-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;gap:8px;align-items:center;}
.cmd-palette-head input{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;
  padding:10px 12px;color:var(--txt);font-family:inherit;font-size:14px;}
.cmd-palette-body{max-height:50vh;overflow:auto;}
.cmd-palette .gs-item{border-bottom:1px solid var(--line);}
.cmd-palette .gs-item.cmd-action{color:var(--brand);}
.cmd-palette-kbd{font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:5px;padding:2px 7px;font-family:Consolas,monospace;}
.cmd-palette-empty{padding:14px 16px;}
.cmd-palette-group{display:flex;align-items:center;gap:6px;}
.cmd-palette-item .cmd-palette-row{display:flex;align-items:center;gap:10px;padding:2px 0;}
.cmd-palette-type{opacity:.85;font-size:15px;min-width:22px;text-align:center;}
.cmd-palette-text{display:flex;flex-direction:column;gap:2px;min-width:0;}
.cmd-palette-text b{font-weight:600;font-size:13px;}
.cmd-palette-sub{font-size:11px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px;}
.cmd-palette .gs-item.active,.cmd-palette .gs-item:hover{background:color-mix(in srgb,var(--brand) 12%,var(--panel));}
.gsearch-wrap .search{cursor:pointer;}

/* نوار اقدام بعدی (QA-03) */
.next-action-bar{display:none;margin:12px 0;padding:12px 16px;border-radius:12px;border:1px solid rgba(26,188,123,.35);
  background:linear-gradient(90deg,rgba(26,188,123,.12),transparent);}
.next-action-bar.show{display:block;}
.next-action-bar .title{font-weight:700;margin-bottom:8px;font-size:13px;}
.next-action-bar .actions{display:flex;gap:8px;flex-wrap:wrap;}
.action-card:hover{border-color:var(--brand)!important;}
/* کانبان — ستون‌ها همیشه یک ردیف، کل عرض */
.kanban{display:grid;gap:10px;width:100%;}
.kanban:not(.kanban-pipeline){grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));}
.kanban-pipeline{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
@media (max-width:768px){
  .kanban-pipeline{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:8px;
    grid-template-columns:repeat(6,minmax(130px,1fr));
  }
}
@media (max-width:640px){
  .kanban:not(.kanban-pipeline){grid-template-columns:1fr;}
}
.kanban-col{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:10px;min-height:120px;
  display:flex;flex-direction:column;min-width:0;}
.kanban-head{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:700;flex-shrink:0;}
.kanban-head .pill{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;}
.kanban-head .kanban-count{margin-inline-start:auto;flex-shrink:0;font-size:12px;font-weight:600;
  background:var(--panel-2);border:1px solid var(--line);border-radius:999px;min-width:22px;height:22px;
  display:inline-flex;align-items:center;justify-content:center;padding:0 6px;}
.kanban-stage-sum{font-size:11px;color:var(--muted);text-align:end;margin:-4px 0 6px;direction:ltr;font-variant-numeric:tabular-nums;}
.kanban-body{display:flex;flex-direction:column;gap:8px;min-height:60px;flex:1;}
.kanban-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px;cursor:grab;font-size:13px;}
.kanban-card:active{cursor:grabbing;}
.kanban-card:hover{border-color:var(--brand);}
/* بازخوردِ بصریِ مقصدِ کشیدن (drop) */
.kanban-col.drag-over{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,transparent);}
.kanban-card.dragging{opacity:.5;}
.kanban-empty{padding:14px 8px;font-size:12px;text-align:center;opacity:.65;border:1px dashed var(--line);border-radius:8px;}
/* کارتِ جمع‌وجورِ لید (ارتفاعِ کم، اکشن‌های آیکنی) */
.lead-card{padding:8px 10px;display:flex;flex-direction:column;gap:6px;}
.lead-card-row{display:flex;align-items:flex-start;justify-content:space-between;gap:6px;min-width:0;}
.lead-card-name{font-weight:600;color:var(--brand);text-decoration:none;font-size:13px;line-height:1.35;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;}
.lead-card-actions{display:flex;gap:3px;flex-shrink:0;align-items:center;}
.icon-act{background:transparent;border:1px solid var(--line);border-radius:7px;cursor:pointer;
  width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;
  font-size:12px;color:var(--txt);transition:.12s;padding:0;}
.icon-act:hover{background:var(--brand);border-color:var(--brand);color:#fff;}
.lead-card-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:11px;color:var(--muted);}
/* کارتِ قیف فروش — چیدمانِ خوانا */
.pipeline-card__info{display:flex;flex-direction:column;gap:2px;min-width:0;}
.pipeline-card__company{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pipeline-card__amount{align-self:flex-start;font-size:12px;font-weight:600;margin-top:2px;}
.pipeline-card__tags{display:flex;flex-wrap:wrap;gap:4px;align-items:center;}
.pipeline-card__footer{display:flex;align-items:center;justify-content:space-between;gap:6px;
  padding-top:6px;margin-top:2px;border-top:1px solid var(--line);}
.pipeline-card__phone{font-size:11px;color:var(--muted);direction:ltr;font-variant-numeric:tabular-nums;}
.pipeline-card__no-touch{color:var(--red);font-size:10px;white-space:nowrap;}

/* دیالوگِ تأییدِ زیبا (uiConfirm) */
.ui-confirm-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;
  background:rgba(6,10,20,.6);backdrop-filter:blur(3px);opacity:0;transition:opacity .18s;}
.ui-confirm-overlay.show{opacity:1;}
.ui-confirm-box{background:var(--panel);border:1px solid var(--line);border-radius:16px;
  box-shadow:0 18px 50px rgba(0,0,0,.5);width:min(380px,92vw);padding:22px;
  transform:translateY(8px) scale(.97);transition:transform .2s cubic-bezier(.2,.9,.3,1.2);}
.ui-confirm-overlay.show .ui-confirm-box{transform:translateY(0) scale(1);}
.ui-confirm-head{display:flex;align-items:center;gap:10px;font-size:16px;margin-bottom:10px;}
.ui-confirm-icon{font-size:22px;line-height:1;}
.ui-confirm-msg{color:var(--muted);font-size:13.5px;line-height:1.9;white-space:pre-line;margin-bottom:18px;}
.ui-confirm-actions{display:flex;gap:10px;justify-content:flex-start;}
.ui-confirm-actions .btn{min-width:88px;justify-content:center;}
.ui-prompt-textarea{line-height:1.65;font-family:inherit;min-height:6.5em;}

/* منوی کلیک‌راست */
.ctx-menu{position:fixed;z-index:2500;min-width:210px;max-width:280px;padding:6px;
  background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px rgba(0,0,0,.35);
  animation:ctxIn .12s ease;}
@keyframes ctxIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.ctx-menu-title{padding:8px 12px 6px;font-size:12px;font-weight:700;color:var(--brand);
  border-bottom:1px solid var(--line);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ctx-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;border:none;background:transparent;
  color:var(--txt);font:inherit;font-size:13px;text-align:right;border-radius:8px;cursor:pointer;}
.ctx-menu-item .ctx-ico{width:18px;text-align:center;opacity:.85;}
.ctx-menu-item:hover:not(.disabled){background:var(--panel-2);}
.ctx-menu-item.disabled{opacity:.4;cursor:not-allowed;}
.ctx-menu-item.danger{color:var(--red);}
.ctx-menu-divider{height:1px;background:var(--line);margin:4px 8px;}

/* مرکز اعلان‌ها */
.notif-wrap{position:relative;}
.notif-badge{position:absolute;top:-4px;inset-inline-start:-4px;background:var(--red);color:#fff;
  font-size:10px;min-width:16px;height:16px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;}
.notif-panel{position:absolute;top:42px;inset-inline-start:0;width:min(300px,80vw);background:var(--panel);
  border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);display:none;z-index:90;overflow:hidden;}
.notif-panel.show{display:block;}
.notif-head{padding:10px 14px;border-bottom:1px solid var(--line);font-weight:700;font-size:13px;}
.notif-item{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);
  color:var(--txt);text-decoration:none;font-size:13px;}
.notif-item:last-child{border-bottom:none;}
.notif-item:hover{background:var(--panel-2);}
.notif-item.red{border-inline-start:3px solid var(--red);}
.notif-item.amber{border-inline-start:3px solid var(--amber);}

/* باندهای رنگی پله‌های پورسانت (شبیه اکسل) */
.tier-band.b0 td{background:rgba(245,158,11,.10);}
.tier-band.b1 td{background:rgba(34,197,94,.10);}
.tier-band.b2 td{background:rgba(45,212,191,.08);}
.tier-band.b3 td{background:rgba(139,92,246,.10);}
.tier-band.b4 td{background:rgba(234,179,8,.14);}
.toolbar{display:flex;align-items:center;gap:9px;margin-bottom:14px;flex-wrap:wrap;}
.toolbar .grow{margin-inline-start:auto;}
.hint{font-size:11px;color:var(--muted);}

/* forms */
.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;}
.field{display:flex;flex-direction:column;gap:6px;} .field.full{grid-column:1/-1;} .field.half{grid-column:span 2;}
/* import لید — دو ستون هم‌عرض + پر کردن input/select */
.import-leads-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
.import-leads-grid .field input,
.import-leads-grid .field select{width:100%;max-width:100%;box-sizing:border-box;}
/* فرمِ مشترکِ شخص (مشتری/لید): شبکهٔ دوستونهٔ یکسان — نام/نام‌خانوادگی · موبایل/منبع · ایمیل/وضعیت */
.form-grid.person-form-root{grid-template-columns:repeat(2,1fr);}
.form-grid.person-form-root .field.half{grid-column:span 1;}
label{font-size:12px;color:var(--muted);}
input,select,textarea{background:var(--bg-2);border:1px solid var(--line);border-radius:9px;padding:9px 12px;
  color:var(--txt);font-family:inherit;font-size:13px;width:100%;}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px rgba(45,212,191,.15);}
html[data-theme="emerald"] input,
html[data-theme="emerald"] select,
html[data-theme="emerald"] textarea{background:#081715;border-color:rgba(57,109,95,.9);}
html[data-theme="emerald"] input:focus,
html[data-theme="emerald"] select:focus,
html[data-theme="emerald"] textarea:focus{box-shadow:0 0 0 3px rgba(25,195,125,.16);}
select option{background:var(--panel);color:var(--txt);}
/* وضعیت رابطه — select پروفایل مشتری (جایگزین pill+select تکراری) */
.relationship-status-cell{display:inline-flex;align-items:center;position:relative;z-index:3;}
.relationship-status-select{
  width:auto;min-width:6.5rem;max-width:100%;font-size:12px;font-weight:600;
  padding:4px 28px 4px 12px;border-radius:20px;cursor:pointer;
  background:var(--bg-2);border:1px solid var(--line);color:var(--txt);
}
.relationship-status-select.is-green{background:rgba(34,197,94,.15);color:#5ee08a;border-color:rgba(34,197,94,.35);}
.relationship-status-select.is-blue{background:rgba(45,212,191,.15);color:#7eb0ff;border-color:rgba(45,212,191,.35);}
.relationship-status-select.is-violet{background:rgba(139,92,246,.15);color:#b69bff;border-color:rgba(139,92,246,.35);}
.relationship-status-select.is-gray{background:rgba(147,162,189,.15);color:var(--muted);border-color:rgba(147,162,189,.25);}
html[data-theme="light"] .relationship-status-select.is-green{color:#2ea15b;}
html[data-theme="light"] .relationship-status-select.is-blue{color:#2f6fd6;}
html[data-theme="light"] .relationship-status-select.is-violet{color:#7b54e0;}
.auto-tag{font-size:10px;background:rgba(34,197,94,.15);color:#5ee08a;padding:1px 7px;border-radius:6px;}
html[data-theme="light"] .auto-tag{color:#2ea15b;}
.warn{font-size:11px;color:#fbbf24;}
.person-more-panel{margin-top:6px;padding-top:10px;border-top:1px dashed var(--line);}
.person-more-panel[hidden]{display:none !important;}
.person-more-toggle-row{margin-bottom:0;}

/* modal */
.overlay{position:fixed;inset:0;background:rgba(5,9,16,.6);backdrop-filter:blur(3px);display:none;
  align-items:flex-start;justify-content:center;padding-top:8vh;z-index:60;overflow-y:auto;}
.overlay.show{display:flex;}
.modal{width:min(640px,95vw);background:var(--panel);border:1px solid var(--line);border-radius:16px;
  box-shadow:var(--shadow);margin-bottom:40px;}
.modal header{padding:15px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;}
.modal header b{font-size:16px;} .modal header .x{margin-inline-start:auto;cursor:pointer;color:var(--muted);font-size:20px;}
.modal .body{padding:20px;max-height:68vh;overflow-y:auto;}
.modal footer{padding:13px 20px;border-top:1px solid var(--line);display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
/* select + ثبت سریع (InlineCreate) */
.inline-select-row{display:flex;gap:6px;align-items:stretch;width:100%;}
.inline-select-row select,.inline-select-row .inline-select-cell{flex:1;min-width:0;}
.inline-select-row .ic-add-btn{flex:0 0 auto;padding:0 11px;font-size:1.05em;line-height:1;}
.overlay.ic-stack{z-index:70;}
table .inline-select-row select{max-width:100%;font-size:12px;}
/* استانداردِ یکدستِ موقعیتِ دکمه‌ها (همهٔ فرم‌ها/مودال‌ها):
   کنشِ اصلیِ solid (ثبت/ذخیره) همیشه سمتِ راست (inline-start در RTL)، مستقل از ترتیبِ DOM.
   انصراف/بستن (ghost) بعد از آن؛ کنشِ مخرب (danger) با .grow به انتهای چپ رانده می‌شود. */
.modal footer .btn:not(.ghost):not(.danger),
.form-actions .btn:not(.ghost):not(.danger){order:-2;}
.modal footer .btn.ghost:not(.danger),
.form-actions .btn.ghost:not(.danger){order:-1;}
.form-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px;}

/* toast */
.toast{position:fixed;bottom:24px;inset-inline-start:24px;background:var(--green);color:#04220f;
  padding:12px 20px;border-radius:12px;font-weight:700;font-size:13px;box-shadow:var(--shadow);
  transform:translateY(120px);opacity:0;transition:.35s;z-index:80;}
.toast.show{transform:none;opacity:1;}
.toast.err{background:var(--red);color:#fff;}

/* login */
.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px;}
.login-card{width:min(380px,94vw);background:var(--panel);border:1px solid var(--line);
  border-radius:18px;padding:28px;box-shadow:var(--shadow);}
.login-card .logo{margin:0 auto 14px;width:54px;height:54px;font-size:22px;}
.login-card h2{text-align:center;font-size:20px;margin-bottom:4px;}
.login-card p.sub{text-align:center;color:var(--muted);font-size:12px;margin-bottom:20px;}
.login-card .field{margin-bottom:14px;}
.login-card .btn{width:100%;padding:11px;}
.login-err{background:rgba(239,68,68,.12);color:#fb7185;border-radius:9px;padding:9px 12px;font-size:12px;margin-bottom:14px;text-align:center;}
.hidden-row{display:none!important;}

/* segmented filter (جهت چک و ...) */
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.seg-btn{background:transparent;border:none;color:var(--muted);padding:7px 14px;cursor:pointer;font-family:inherit;font-size:12px;text-decoration:none;display:inline-block;}
.seg-btn:not(:last-child){border-inline-end:1px solid var(--line);}
.seg-btn.active{background:var(--brand);color:#fff;}

/* ردیف سررسیدگذشته */
.overdue-row td{background:rgba(239,68,68,.07);}
html[data-theme="light"] .overdue-row td{background:rgba(239,68,68,.06);}

/* فیلتر وضعیت — chips */
.chip{display:inline-block;padding:4px 10px;border-radius:20px;font-size:11px;
  border:1px solid var(--line);color:var(--muted);text-decoration:none;white-space:nowrap;cursor:pointer;transition:background .15s,color .15s;}
.chip:hover{background:var(--line);}
.chip.active{background:var(--brand);color:#fff;border-color:var(--brand);}
.chip.orange{color:#f59e0b;border-color:#f59e0b40;}
.chip.orange.active{background:#f59e0b;color:#fff;border-color:#f59e0b;}

/* ===== نمودارها ===== */
.dash-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-top:14px;}
.dash-grid.three{grid-template-columns:1fr 1fr 1fr;}
@media (max-width:1000px){ .dash-grid,.dash-grid.three{grid-template-columns:1fr;} }

/* نمودار ستونی (روند) */
.cols{display:flex;align-items:flex-end;gap:10px;height:160px;padding-top:8px;}
.col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end;}
.col .bar{width:100%;max-width:42px;background:linear-gradient(180deg,var(--brand),#1d4ed8);
  border-radius:7px 7px 3px 3px;min-height:4px;transition:height .5s;position:relative;}
.col .bar:hover{filter:brightness(1.15);}
.col .clabel{font-size:11px;color:var(--muted);}
.col .cval{font-size:10px;color:var(--muted);white-space:nowrap;}

/* نمودار میله‌ای افقی */
.bars{display:flex;flex-direction:column;gap:11px;}
.bar-row{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:10px;}
.bar-row .blabel{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bar-track{background:var(--line);border-radius:8px;height:11px;overflow:hidden;}
.bar-fill{height:100%;border-radius:8px;background:var(--brand);transition:width .5s;}
.bar-fill.green{background:var(--green);} .bar-fill.amber{background:var(--amber);}
.bar-fill.red{background:var(--red);} .bar-fill.violet{background:var(--violet);}
.bar-row .bval{font-size:11px;color:var(--txt);white-space:nowrap;}

/* نوار توزیع تقسیم‌شده */
.seg-line{display:flex;height:14px;border-radius:8px;overflow:hidden;margin:6px 0 12px;background:var(--line);}
.seg-line span{height:100%;}
.seg-green{background:var(--green);} .seg-amber{background:var(--amber);}
.seg-red{background:var(--red);} .seg-blue{background:var(--brand);} .seg-violet{background:var(--violet);}
.legend{display:flex;flex-wrap:wrap;gap:12px;}
.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-inline-end:5px;}

/* قیف */
.funnel{display:flex;flex-direction:column;gap:8px;align-items:center;padding:6px 0;}
.funnel .seg{width:100%;text-align:center;padding:9px;border-radius:9px;font-size:13px;color:#fff;}
.fn1{background:var(--brand);} .fn2{background:var(--green);}

/* ── واکنش‌گرا ──────────────────────────────────────────────────────────────
   نقطهٔ کلیدی = 1100px: زیر آن سایدبار off-canvas و چیدمان تک‌ستونه می‌شود.
   چرا 1100 نه 820؟ لپ‌تاپِ 1366 با مقیاسِ نمایشِ ویندوز (۱۲۵٪/۱۵۰٪) عرضِ مؤثرِ
   CSS را به ~۹۱۰–۱۰۹۰px می‌رساند؛ در بریک‌پوینتِ قبلی این بازه «خراب» بود
   (سایدبارِ تمام‌قد کلِ صفحه را می‌خورد و محتوا پایین می‌رفت). */

/* همبرگر + بک‌دراپِ کشو: پیش‌فرض مخفی */
.nav-toggle{display:none;width:42px;height:42px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel);color:var(--txt);cursor:pointer;font-size:20px;flex-shrink:0;align-items:center;justify-content:center;}
.nav-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:40;}
.nav-backdrop.show{display:block;}

/* لپ‌تاپِ باریک (دوستونه هنوز فعال): توپ‌بار نشکند — شرکت‌گردان به ردیفِ خودش برود */
@media (max-width:1280px){
  .topbar-title{flex:1 1 auto;min-width:160px;}
  .biz-tabs{order:10;flex-basis:100%;width:100%;flex-wrap:nowrap;overflow-x:auto;}
  .topbar-actions{order:6;}
  .search{width:clamp(150px,22vw,220px);}
}

/* off-canvas + تک‌ستونه */
@media (max-width:1100px){
  .app{grid-template-columns:1fr;}
  aside{position:fixed;top:0;right:0;height:100vh;width:min(82vw,300px);z-index:50;
    transform:translateX(105%);transition:transform .25s ease;box-shadow:var(--shadow);}
  aside.open{transform:translateX(0);}
  .nav-toggle{display:inline-flex;}
  main{padding:16px 18px;}
  .topbar h2{font-size:19px;}
  .kpis{grid-template-columns:repeat(2,1fr);}
  .form-grid{grid-template-columns:1fr 1fr;}
  /* جدول‌ها: اسکرولِ افقیِ نرم به‌جای شکستنِ صفحه */
  .card{overflow-x:auto;}
  table{min-width:560px;}
  /* G1 — جداول CRM در پرتره */
  .crm-table-scroll{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .crm-table-scroll table{min-width:640px}
  /* هدف‌های لمسی بزرگ‌تر */
  .btn,.icon-btn,.nav-toggle{min-height:44px;}
  .btn.sm{min-height:36px;}
  .biz-tabs{flex-wrap:nowrap;overflow-x:auto;}
}

/* تبلت/موبایل: تک‌ستونهٔ کامل */
@media (max-width:680px){
  main{padding:14px 12px;}
  .topbar h2{font-size:18px;}
  .topbar .crumb{flex-basis:100%;order:5;}
  .search{width:100%;order:7;flex-basis:100%;}
  .topbar-actions{margin-inline-start:0;gap:8px;flex-wrap:wrap;}
  .kpis{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .form-grid.person-form-root{grid-template-columns:1fr;}
}

@media (max-width:480px){
  main{padding:12px 10px;}
  .topbar h2{font-size:16px;}
  .brand h1{font-size:15px;}
}

/* کیوسک عمودی (Touch Kiosk) — نسبت بلند */
@media (max-width:600px) and (min-height:900px){
  .sidebar{width:100%;max-height:56px;overflow-x:auto;flex-direction:row;}
  .app{flex-direction:column;}
  main{max-width:100%;}
  .inline-select-row{flex-wrap:nowrap;}
  .inline-select-row select,.inline-select-row .form-control{min-width:0;flex:1;}
  .modal{max-width:96vw;max-height:88vh;overflow-y:auto;}
  .item-add-row{flex-direction:column;align-items:stretch;}
  .colf-bar{flex-wrap:wrap;}
  table{font-size:12px;}
  .btn{min-height:40px;padding:8px 12px;}
  .ic-add-btn{min-width:40px;min-height:40px;}
}

/* پرینت / خروجی PDF — فقط محتوای اصلی چاپ می‌شود */
@media print{
  aside, .topbar, .toast, .toolbar, .pager, .no-print{ display:none !important; }
  .app{ display:block; }
  main{ padding:0 !important; }
  body{ background:#fff !important; }
  .card{ break-inside:avoid; box-shadow:none; border:1px solid #ddd; }
  .print-head{ display:block !important; }
  a{ color:inherit !important; text-decoration:none !important; }
  @page{ margin:1.2cm; }
}
.print-head{ display:none; }

/* modal wide (فرم فاکتور) */
.modal-wide{max-width:720px;}
.import-map-modal{max-width:min(920px,96vw);width:min(920px,96vw);}
/* جدولِ پیش‌نمایشِ ایمپورت (نگاشتِ ستون→فیلد) */
.import-preview{width:100%;border-collapse:collapse;font-size:12px;min-width:auto;}
.import-preview th,.import-preview td{border:1px solid var(--line);padding:6px 8px;
  white-space:nowrap;text-align:start;max-width:200px;overflow:hidden;text-overflow:ellipsis;}
.import-preview thead th{background:var(--panel-2);position:sticky;top:0;font-weight:700;}
.item-add-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;margin-bottom:10px;
  background:var(--panel-2);padding:12px;border-radius:10px;border:1px solid var(--line);}

/* preview bar (خلاصه زنده زیر فرم) */
.preview-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;
  background:var(--panel-2);border-top:1px solid var(--line);padding:10px 16px;}
.pv-chip{font-size:12px;background:var(--bg);border:1px solid var(--line);border-radius:20px;
  padding:3px 12px;color:var(--muted);}
.pv-chip.pv-total{border-color:var(--brand);color:var(--brand);font-weight:700;}

/* modal tabs */
.modal .tab-bar{display:flex;border-bottom:1px solid var(--line);padding:0 8px;background:var(--bg-2);}
.modal .tab-btn{background:transparent;border:none;border-bottom:2px solid transparent;padding:10px 16px;
  font-family:inherit;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;transition:.15s;
  margin-bottom:-1px;white-space:nowrap;}
.modal .tab-btn:hover{color:var(--txt);}
.modal .tab-btn.active{border-bottom-color:var(--brand);color:var(--brand);}
.tab-badge{font-size:10px;background:var(--brand);color:#fff;padding:1px 6px;border-radius:10px;margin-inline-start:4px;vertical-align:middle;}

/* داشبورد: چیدمان دو ستونه */
#dashWidgets{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;align-items:start;}
#dashWidgets .dash-widget[data-widget^="kpis"]{grid-column:1/-1;}
#dashWidgets .dash-widget[data-widget="recent_customers"],
#dashWidgets .dash-widget[data-widget="recent_interactions"]{grid-column:1/-1;}
@media (max-width:1100px){#dashWidgets{grid-template-columns:1fr;}}

/* KPI accent bar + رنگ ارزش */
.kpi{position:relative;padding-inline-start:20px;}
.kpi::before{content:'';position:absolute;top:12px;inset-inline-start:10px;width:3px;height:calc(100% - 24px);
  background:var(--brand);border-radius:2px;opacity:.7;}
.kpi.kpi-green::before{background:var(--green);}
.kpi.kpi-amber::before{background:var(--amber);}
.kpi.kpi-red::before{background:var(--red);}
.kpi.kpi-violet::before{background:var(--violet);}
.kpi.kpi-teal::before{background:var(--teal);}
.kpi .value.v-green{color:var(--green);}
.kpi .value.v-amber{color:var(--amber);}
.kpi .value.v-red{color:var(--red);}

/* ── org tree ── */
.org-tree{padding:16px;}
.org-node{margin-bottom:6px;}
.org-row{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--panel-2);border:1px solid var(--line);transition:.15s;}
.org-row:hover{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--panel-2));}
.org-icon{font-size:16px;}
.org-type-badge{font-size:10px;padding:2px 8px;border-radius:10px;background:rgba(45,212,191,.15);color:var(--brand);font-weight:600;}
.org-name{font-weight:600;}
.org-children{margin-right:28px;margin-top:4px;border-right:2px solid var(--line);padding-right:12px;}

/* cap table */
.cap-table th,.cap-table td{padding:6px 8px;border-bottom:1px solid var(--line);font-size:12px;}
.cap-table thead th{background:var(--panel-2);}
.tabs-inline{display:flex;gap:4px;}
.tabs-inline .btn.active{background:var(--brand);color:#fff;}

/* ── Company Picker ── */
/* ── Company Picker: ردیف دکمه‌های toggle ── */
.biz-tabs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;background:var(--panel-2);
  flex-shrink:0;min-width:min(100%,280px);max-width:100%;
  border:1px solid var(--line);border-radius:10px;padding:3px 6px;}
.biz-tabs-ico{font-size:14px;opacity:.7;margin-inline-end:2px;}
.biz-multi-toggle{display:inline-flex;align-items:center;gap:5px;cursor:pointer;user-select:none;
  font-size:11.5px;font-weight:600;color:var(--muted);padding:3px 8px;border-radius:7px;
  border:1px solid var(--line);white-space:nowrap;transition:.12s;}
.biz-multi-toggle:hover{color:var(--txt);border-color:var(--brand);}
.biz-multi-toggle input{accent-color:var(--brand);width:14px;height:14px;cursor:pointer;margin:0;}
.biz-holding-sep{font-size:11px;font-weight:700;color:var(--muted);opacity:.85;
  padding:3px 9px;margin-inline-start:4px;border-radius:6px;
  border-inline-start:2px solid var(--line);white-space:nowrap;cursor:pointer;
  transition:.12s;}
.biz-holding-sep:hover{background:var(--panel);color:var(--txt);opacity:1;}
.biz-holding-sep.active{background:rgba(45,212,191,.14);color:var(--brand);
  border-inline-start-color:var(--brand);opacity:1;}
.biz-holding-sep:first-of-type{border-inline-start:none;margin-inline-start:0;}
.biz-tab{padding:5px 12px;border-radius:7px;background:transparent;border:1px solid transparent;
  cursor:pointer;color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap;
  font-family:inherit;transition:.12s;}
.biz-tab:hover{background:var(--panel);color:var(--txt);}
.biz-tab.active{background:var(--brand);color:#fff;border-color:var(--brand);
  box-shadow:0 1px 6px rgba(45,212,191,.4);}
.biz-tabs.single-mode{box-shadow:inset 0 0 0 1px rgba(25,195,125,.08);}
.biz-tabs.single-mode .biz-tab.active{
  background:linear-gradient(135deg,var(--brand),var(--brand-2));
  color:#fff;box-shadow:0 8px 22px rgba(25,195,125,.18);
}
html[data-theme="emerald"] .biz-tabs.single-mode .biz-tab.active{color:#04120d;}

/* ── نوارِ فیلترِ مشترکِ جدول‌ها (table-filters.js): بازهٔ تاریخِ شمسی ── */
.tf-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:8px 10px;margin-bottom:10px;border:1px solid var(--line);
  border-radius:10px;background:var(--panel);}
.tf-bar .tf-label{font-size:12.5px;font-weight:700;color:var(--muted);}
.tf-bar .tf-sep{font-size:12px;color:var(--muted);}
.tf-bar .tf-field{flex:0 1 150px;min-width:120px;}
.tf-bar .tf-field input.jdp{width:100%;}

/* ── انتخابگرِ ماهِ سریع + تبِ «به‌تفکیکِ ماه» (صفحهٔ چک) ── */
.month-tabs{display:flex;gap:8px;margin-bottom:12px;}
.month-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px;}
.month-summary-table td.pos{color:var(--ok,#2ecc71);}
.month-summary-table td.neg{color:var(--red);}

/* ── مرکز خزانه‌داری (FR §9) — داشبوردِ تعهد/پیش‌بینی ── */
.trez-toolbar{flex-wrap:wrap;align-items:center;gap:10px;}
.trez-ctl{display:flex;align-items:center;gap:6px;}
.trez-ctl select{min-width:130px;}
.trez-switch{cursor:pointer;user-select:none;}
.trez-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.trez-chips .chip{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);
  border-radius:999px;padding:4px 12px;font-family:inherit;font-size:12px;cursor:pointer;transition:.15s;}
.trez-chips .chip.active{background:color-mix(in srgb,var(--brand) 20%,var(--panel-2));
  border-color:var(--brand);color:var(--txt);font-weight:600;}
.trez-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0;}
.trez-kpis .kpi{position:relative;overflow:hidden;}
.trez-kpis .kpi-ico{position:absolute;inset-inline-end:14px;top:12px;font-size:26px;opacity:.18;}
.trez-kpis .kpi-val{font-size:1.55em;font-weight:800;margin:4px 0 2px;}
.kpi-in{border-top:3px solid var(--green);}
.kpi-out{border-top:3px solid var(--red);}
.kpi-net{border-top:3px solid var(--brand);}
.kpi-due{border-top:3px solid var(--amber);}
.trez-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px;}
.trez-chart-card h3{margin-bottom:8px;}
.trez-chart{width:100%;height:300px;}
.trez-table .num{font-variant-numeric:tabular-nums;}
@media(max-width:1100px){.trez-kpis{grid-template-columns:repeat(2,1fr);}
  .trez-grid{grid-template-columns:1fr;} .trez-chart-card{grid-column:auto !important;}}

/* ── Dev-mode: بخش‌های تازه‌تغییریافته با رنگ متمایز ── */
/* برای ریلیز: DEV_MODE = False در templating.py کافی است */
.dev-new{position:relative;}
.dev-new::after{content:'NEW';font-size:8px;font-weight:700;background:#f59e0b;color:#000;
  border-radius:4px;padding:1px 4px;margin-right:4px;vertical-align:middle;letter-spacing:.3px;}
.nav-link.dev-new,.nav-pin.dev-new{border-right:3px solid #f59e0b !important;padding-right:9px;}

/* ── تم نقش مدیریتی (تمایز بصری در تست) ── */
.role-band{position:fixed;top:0;left:0;right:0;height:5px;z-index:300;pointer-events:none;}
.role-band-super{background:linear-gradient(90deg,#f59e0b,#fbbf24 35%,#fde68a 65%,#f59e0b);box-shadow:0 0 18px rgba(251,191,36,.55);}
.role-band-holding{background:linear-gradient(90deg,#0d9488,#2dd4bf 40%,#5eead4 70%,#14b8a6);box-shadow:0 0 16px rgba(45,212,191,.45);}
.role-band-business{background:linear-gradient(90deg,#7c3aed,#a78bfa 45%,#c4b5fd 75%,#8b5cf6);box-shadow:0 0 16px rgba(167,139,250,.45);}
body.role-super,body.role-holding,body.role-business{padding-top:5px;}
body.role-super aside{border-left-color:rgba(251,191,36,.35);box-shadow:inset 2px 0 0 rgba(251,191,36,.25);}
body.role-holding aside{border-left-color:rgba(45,212,191,.35);box-shadow:inset 2px 0 0 rgba(45,212,191,.22);}
body.role-business aside{border-left-color:rgba(167,139,250,.35);box-shadow:inset 2px 0 0 rgba(167,139,250,.22);}
body.role-super .logo{background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#1a1200;box-shadow:0 6px 20px rgba(251,191,36,.35);}
body.role-holding .logo{background:linear-gradient(135deg,#2dd4bf,#0d9488);box-shadow:0 6px 18px rgba(45,212,191,.35);}
body.role-business .logo{background:linear-gradient(135deg,#a78bfa,#7c3aed);box-shadow:0 6px 18px rgba(167,139,250,.35);}
.role-tier-badge{font-size:11px;font-weight:800;padding:4px 10px;border-radius:999px;letter-spacing:.2px;white-space:nowrap;}
.role-tier-super{color:#fde68a;background:rgba(251,191,36,.14);border:1px solid rgba(251,191,36,.45);}
.role-tier-holding{color:#99f6e4;background:rgba(45,212,191,.12);border:1px solid rgba(45,212,191,.4);}
.role-tier-business{color:#ddd6fe;background:rgba(167,139,250,.14);border:1px solid rgba(167,139,250,.42);}

/* اسپلش ورود نقش‌محور */
.login-splash{position:fixed;inset:0;z-index:400;display:grid;place-items:center;opacity:0;pointer-events:none;transition:opacity .45s ease;}
.login-splash.in{opacity:1;pointer-events:auto;}
.login-splash.out{opacity:0;pointer-events:none;}
.login-splash-backdrop{position:absolute;inset:0;background:rgba(5,8,12,.72);backdrop-filter:blur(6px);}
.login-splash-card{position:relative;text-align:center;padding:36px 42px;border-radius:22px;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:0 24px 70px rgba(0,0,0,.55);
  transform:scale(.88) translateY(16px);opacity:0;transition:transform .55s cubic-bezier(.2,.9,.2,1),opacity .45s;}
.login-splash.in .login-splash-card{transform:scale(1) translateY(0);opacity:1;}
.login-splash.out .login-splash-card{transform:scale(.96) translateY(-8px);opacity:0;}
.login-splash-ring{position:absolute;inset:-3px;border-radius:24px;opacity:.55;animation:splashRing 2.2s ease-out infinite;}
.login-splash-super .login-splash-ring{background:linear-gradient(135deg,rgba(251,191,36,.35),transparent 55%,rgba(251,191,36,.2));}
.login-splash-holding .login-splash-ring{background:linear-gradient(135deg,rgba(45,212,191,.35),transparent 55%,rgba(45,212,191,.18));}
.login-splash-business .login-splash-ring{background:linear-gradient(135deg,rgba(167,139,250,.35),transparent 55%,rgba(167,139,250,.2));}
.login-splash-icon{font-size:52px;line-height:1;margin-bottom:10px;animation:splashPop .7s cubic-bezier(.2,.9,.2,1) .15s both;}
.login-splash-card h2{font-size:22px;font-weight:800;margin-bottom:6px;}
.login-splash-card p{color:var(--muted);font-size:13px;}
.login-splash-super .login-splash-card{border-color:rgba(251,191,36,.45);}
.login-splash-holding .login-splash-card{border-color:rgba(45,212,191,.4);}
.login-splash-business .login-splash-card{border-color:rgba(167,139,250,.42);}
@keyframes splashPop{0%{transform:scale(.4);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes splashRing{0%,100%{opacity:.35;transform:scale(1)}50%{opacity:.75;transform:scale(1.02)}}

/* نوار وصول/پرداخت مشتری */
.pay-progress{margin-top:5px;max-width:100%}
.pay-progress--compact{margin-top:4px}
.pay-progress--bar-only{margin-top:4px;max-width:none}
.pay-progress-track{height:8px;background:var(--line);border-radius:999px;overflow:hidden}
.pay-progress--compact .pay-progress-track{height:6px}
.pay-progress-bar{height:100%;border-radius:inherit;min-width:0;transition:width .25s ease}
.pay-progress--full .pay-progress-bar{background:linear-gradient(90deg,#16a34a,#22c55e);box-shadow:0 0 6px rgba(34,197,94,.45)}
.pay-progress--high .pay-progress-bar{background:linear-gradient(90deg,rgba(34,197,94,.4),rgba(45,223,145,.55))}
.pay-progress--mid .pay-progress-bar{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.pay-progress--low .pay-progress-bar{background:linear-gradient(90deg,#ef4444,#ff6b7a)}
.pay-progress--none .pay-progress-bar{background:var(--muted)}
.pay-progress-label{display:block;margin-top:4px;line-height:1.2}
.pay-pct{font-size:13px;font-weight:600;white-space:nowrap}
.pay-pct--full{color:#22c55e}
.pay-pct--high{color:#86efac}
.pay-pct--mid{color:#fbbf24}
.pay-pct--low{color:#ff8a96}
.pay-pct--none{color:var(--muted)}
.cust-name-cell{min-width:140px}
.cust-name-row{display:inline-flex;align-items:center;gap:5px;max-width:100%}
.cust-name-cell .cust-name-link{display:inline;line-height:1.35}
.cust-name-cell .pay-progress--bar-only{margin-top:5px}
.cust-cheque-alert{
  display:inline-flex;align-items:center;justify-content:center;
  width:17px;height:17px;font-size:13px;line-height:1;
  flex-shrink:0;cursor:help;position:relative;
}
.cust-cheque-alert--overdue{color:var(--red,#ef4444);filter:drop-shadow(0 0 4px rgba(239,68,68,.35))}
.cust-cheque-alert--today{color:var(--amber,#f59e0b);filter:drop-shadow(0 0 4px rgba(245,158,11,.3))}
.cust-cheque-alert[data-tip]::after{
  content:attr(data-tip);position:absolute;inset-inline-start:50%;bottom:calc(100% + 6px);
  transform:translateX(-50%);padding:4px 8px;border-radius:6px;font-size:12px;font-weight:600;
  white-space:nowrap;color:#fff;background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);
  box-shadow:0 4px 12px rgba(0,0,0,.25);pointer-events:none;opacity:0;visibility:hidden;
  transition:opacity .12s ease,visibility .12s ease;z-index:60;direction:rtl;
}
.cust-cheque-alert[data-tip]:hover::after,.cust-cheque-alert[data-tip]:focus-visible::after{
  opacity:1;visibility:visible;
}

/* چک — بدونِ مشتری CRM */
.chip-count{
  display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;
  margin-inline-start:5px;padding:0 5px;border-radius:999px;font-size:11px;font-weight:700;
  background:rgba(255,255,255,.22);color:inherit;
}
.chq-row--orphan td:first-of-type{box-shadow:inset 3px 0 0 var(--amber,#f59e0b)}
.chq-customer-cell{min-width:130px;line-height:1.35}
.chq-legacy-name{color:var(--text);font-weight:600}
.chq-unlinked-pill{font-size:10px;margin-inline-start:4px;vertical-align:middle;cursor:help}

/* گیج وصول — پروفایل مشتری */
.cust-pay-hero{padding:18px 20px;border:1px solid var(--line)}
.cust-pay-hero-grid{display:flex;flex-wrap:wrap;gap:20px 24px;align-items:center;justify-content:space-between}
.cust-pay-gauge-wrap{flex:0 0 auto;order:1}
.cust-pay-kpis{flex:1 1 280px;order:2;min-width:220px;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px 20px;align-content:center}
.cust-pay-head-panel{
  flex:0 0 auto;order:3;align-self:stretch;display:flex;flex-direction:column;justify-content:center;
  min-width:168px;max-width:220px;padding:14px 18px;text-align:center;
  border:1px solid rgba(245,158,11,.35);border-radius:14px;
  background:linear-gradient(145deg,rgba(245,158,11,.12),rgba(245,158,11,.04));
  box-shadow:0 0 20px rgba(245,158,11,.08);
}
.cust-pay-head-panel--empty{opacity:.55;border-style:dashed}
.cust-pay-head-label{font-size:12px;color:var(--muted);letter-spacing:.02em}
.cust-pay-head-val{font-size:28px;font-weight:800;line-height:1.15;margin-top:6px;color:var(--amber,#f59e0b)}
.cust-pay-head-date{font-size:12px;margin-top:6px}
.cust-pay-head-amt{font-size:11px;margin-top:8px;line-height:1.4}
.cust-pay-gauge{--g-color:#86efac;position:relative;width:196px;height:196px}
.cust-pay-gauge--full{--g-color:#22c55e}
.cust-pay-gauge--high{--g-color:#86efac}
.cust-pay-gauge--mid{--g-color:#fbbf24}
.cust-pay-gauge--low{--g-color:#ff6b7a}
.cust-pay-gauge-ring{position:absolute;inset:0;border-radius:50%;
  background:conic-gradient(from -90deg,var(--g-color) calc(var(--pct,0) * 1%),rgba(143,179,167,.14) 0);
  box-shadow:0 0 24px rgba(0,0,0,.25)}
.cust-pay-gauge--full .cust-pay-gauge-ring{box-shadow:0 0 28px rgba(34,197,94,.35)}
.cust-pay-gauge::after{content:'';position:absolute;inset:14%;border-radius:50%;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.cust-pay-gauge-inner{position:absolute;inset:0;display:grid;place-content:center;text-align:center;z-index:1}
.cust-pay-gauge-val{font-size:42px;font-weight:800;line-height:1;color:var(--txt)}
.cust-pay-gauge--full .cust-pay-gauge-val{color:#22c55e}
.cust-pay-gauge--high .cust-pay-gauge-val{color:#86efac}
.cust-pay-gauge--mid .cust-pay-gauge-val{color:#fbbf24}
.cust-pay-gauge--low .cust-pay-gauge-val{color:#ff8a96}
.cust-pay-gauge-unit{font-size:22px;font-weight:700;margin-inline-start:2px}
.cust-pay-gauge-sub{font-size:12px;color:var(--muted);margin-top:4px}
.cust-pay-kpi strong{display:block;font-size:18px;margin-top:4px}
.cust-pay-kpi--paid strong{color:#5ee08a}
.cust-pay-kpi--debt strong{color:#ff8a96}
.cust-cheque-head-pill{max-width:100%;white-space:normal;line-height:1.35}
.cust-cheque-head-line{margin-top:6px;font-size:12px;line-height:1.45}
.cust-cheque-head-line b{color:var(--amber,#f59e0b)}
.cust-cheque-head-pill{max-width:100%;white-space:normal;line-height:1.35}
.cust-pay-meta{grid-column:1/-1;margin-top:2px}
