  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --paper:  #F4F0E2;
    --cream:  #FBF7EA;
    --ink:    #14351F;
    --ink-2:  #3E5747;
    --green-deep: #1C6E31;
    --lime:   #C4F45F;
    --line:   rgba(20,53,31,.16);
    --font-ui:      'IBM Plex Sans Arabic', 'DM Sans', Tahoma, sans-serif;
    --font-display: 'IBM Plex Sans Arabic', 'Fredoka', sans-serif;
  }
  body {
    background: var(--paper);
    font-family: var(--font-ui);
    color: var(--ink);
    -webkit-font-smoothing: antialiased;
  }
  .btn {
    display: inline-flex; align-items: center; gap: 8px;
    font-family: var(--font-ui); font-weight: 700; font-size: 1rem; line-height: 1;
    padding: 14px 24px; border-radius: 999px; text-decoration: none;
    border: 1.5px solid transparent; cursor: pointer;
    transition: transform .18s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease;
  }
  .btn-solid { background: var(--green-deep); color: var(--cream); box-shadow: 0 12px 24px -12px rgba(20,60,30,.55); }
  .btn-solid:hover { background: #175D28; transform: translateY(-2px); }
  .btn-solid:active { transform: translateY(0) scale(.98); }
  .btn-ghost { border-color: rgba(20,53,31,.32); color: var(--ink); background: rgba(251,247,234,.6); }
  .btn-ghost:hover { border-color: var(--ink); transform: translateY(-2px); }
  .btn-sm { padding: 9px 16px; font-size: .88rem; }
  .btn-icon { padding: 9px 11px; }
  .btn svg { transition: transform .18s ease; }
  .btn-solid:hover svg { transform: translateX(3px); }
  [dir="rtl"] .btn-solid:hover svg { transform: translateX(-3px) scaleX(-1); }
  [dir="rtl"] .btn-solid svg { transform: scaleX(-1); }
  .btn:focus-visible { outline: 3px solid var(--lime); outline-offset: 2px; border-radius: 999px; }
  @keyframes pulse { 0% { transform: scale(.35); opacity: .8; } 75%,100% { transform: scale(1.2); opacity: 0; } }

/* ═══════════════════════════════════════════════════════════════
   حساب‌ها — استایل پنل مدیریت (بر اساس PSD، با همان تم لندینگ)
   ═══════════════════════════════════════════════════════════════ */
:root{
  --card:#FFFEF6; --card-2:#FBF7EA;
  --red:#B3362B; --red-bg:#FBEAE7; --red-line:rgba(179,54,43,.35);
  --amber:#9A5B08; --amber-bg:#FCF1DC; --amber-line:rgba(180,103,11,.35);
  --teal:#0F6B62; --teal-bg:#E2F2EF;
  --blue:#1E5A8A; --blue-bg:#E7F0F8;
  --sb-w:264px; --sb-wc:80px; --hdr-h:66px;
  --r-s:10px; --r-m:14px; --r-l:20px; --r-xl:26px;
  color-scheme: light;
}
html{scroll-behavior:smooth}
.hidden{display:none!important}

/* ── سیستم ویوها ── */
.view{display:none}
.view.active{display:block}
body.in-login, body.in-app{padding:0!important; background:var(--paper)}
body.in-landing{background:#fff}

/* ══════════ صفحه ورود ══════════ */
#view-login{
  min-height:100vh; min-height:100svh;
  display:flex; align-items:center; justify-content:center;
  padding:28px 16px; position:relative; overflow:hidden;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(196,244,95,.35), transparent 60%),
    radial-gradient(700px 480px at -10% 110%, rgba(28,110,49,.14), transparent 55%),
    var(--paper);
}
.login-wrap{width:min(460px,100%); position:relative; z-index:1;
  animation:lgIn .5s cubic-bezier(.22,.9,.28,1) both}
@keyframes lgIn{from{opacity:0; transform:translateY(16px)} to{opacity:1; transform:none}}
.login-back{display:inline-flex; align-items:center; gap:7px; font-size:.85rem; font-weight:600;
  color:var(--ink-2); text-decoration:none; margin-bottom:14px; transition:color .15s;
  min-height:48px; padding:12px 8px}
.login-back:hover{color:var(--green-deep)}
.login-card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl);
  box-shadow:0 30px 70px -38px rgba(20,53,31,.5); padding:clamp(24px,4vw,40px)}
.lg-brand{display:flex; align-items:center; gap:10px; font-family:var(--font-display);
  font-weight:700; font-size:1.3rem; color:var(--ink)}
.login-card h1,.login-card h2{font-family:var(--font-display); font-weight:700; font-size:1.5rem; margin:20px 0 4px; line-height:1.35}
body.in-login .btn{min-height:48px}
body.in-login #btnEye{width:48px;height:48px}
.lnk-forgot{border:0;background:none;cursor:pointer;font-family:var(--font-ui);font-size:.83rem;font-weight:700;
  color:var(--green-deep); min-height:48px; padding:12px 8px}
.login-foot{margin-top:18px; text-align:center; font-size:.8rem; color:var(--ink-2); padding:12px}
.login-sub{color:var(--ink-2); font-size:.92rem; margin-bottom:20px}
.login-hint{margin-top:18px; padding:11px 14px; border-radius:var(--r-m); background:var(--card-2);
  border:1px dashed var(--line); font-size:.8rem; color:var(--ink-2); line-height:1.9}
.login-hint b{color:var(--green-deep)}
.login-hint code{font-family:ui-monospace,Menlo,monospace; background:rgba(20,53,31,.07);
  padding:1px 6px; border-radius:6px; font-size:.8rem; direction:ltr; unicode-bidi:embed}

/* ویزارد «افزودن مؤسسه» از تنظیمات — همان ویزارد افتتاح حساب، این بار بدون کارت تمام‌صفحه */
.onb-embed{max-width:640px}
.onb-embed h2{font-family:var(--font-display); font-weight:700; font-size:1.3rem; margin:0 0 4px; line-height:1.35}

/* ══════════ پوسته اپ ══════════ */
.app{display:flex; min-height:100vh; min-height:100svh; background:var(--paper)}
.app-main{flex:1; min-width:0; display:flex; flex-direction:column}
.content{flex:1; padding:clamp(16px,2.4vw,30px); max-width:1380px; width:100%; margin:0 auto; outline:none}

/* ── سایدبار ── */
.sidebar{width:var(--sb-w); flex:none; background:var(--ink); color:#E9F2E4;
  display:flex; flex-direction:column; position:sticky; top:0; height:100vh; height:100svh;
  transition:width .25s ease; z-index:40}
.sidebar.collapsed{width:var(--sb-wc)}
.sb-brand{display:flex; align-items:center; gap:10px; padding:16px 16px 14px; border-bottom:1px solid rgba(233,242,228,.12)}
.sb-brand .sb-logo{flex:none}
.sb-tt{min-width:0}
.sb-tt b{display:block; font-family:var(--font-display); font-weight:700; font-size:1.06rem; line-height:1.2; color:#fff}
.sb-tt span{display:block; font-size:.68rem; color:#9DBBA3; margin-top:2px}
.sidebar.collapsed .sb-tt{display:none}
.sb-nav{flex:1; overflow-y:auto; padding:12px 10px; display:flex; flex-direction:column; gap:3px}
.sb-nav::-webkit-scrollbar{width:6px} .sb-nav::-webkit-scrollbar-thumb{background:rgba(233,242,228,.2); border-radius:3px}
.sb-item{display:flex; align-items:center; gap:11px; width:100%; border:0; background:none; cursor:pointer;
  color:#C7D9C4; font-family:var(--font-ui); font-size:.92rem; font-weight:500; text-align:right;
  padding:11px 12px; border-radius:12px; transition:background .15s,color .15s; position:relative}
.sb-item svg{flex:none}
.sb-item:hover{background:rgba(233,242,228,.09); color:#fff}
.sb-item.on{background:var(--green-deep); color:#fff; box-shadow:0 8px 18px -10px rgba(20,60,30,.9)}
.sb-item .lbl{flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.sidebar.collapsed .sb-item{justify-content:center; padding:11px 0}
.sidebar.collapsed .sb-item .lbl, .sidebar.collapsed .sb-item .cnt{display:none}
.sb-item .cnt{flex:none; font-size:.68rem; font-weight:700; background:var(--lime); color:var(--ink);
  min-width:20px; height:20px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; padding:0 6px}
.sb-item .cnt.warn{background:#F5C56B}
.sb-foot{border-top:1px solid rgba(233,242,228,.12); padding:12px}
.sb-user{display:flex; align-items:center; gap:10px; padding:6px 6px 10px}
.sidebar.collapsed .sb-user .su-t{display:none}
.su-t b{display:block; font-size:.85rem; color:#fff; font-weight:600}
.su-t span{display:block; font-size:.7rem; color:#9DBBA3; margin-top:1px}
.sb-btns{display:flex; gap:8px}
.sidebar.collapsed .sb-btns{flex-direction:column}
.sb-mini{flex:1; display:inline-flex; align-items:center; justify-content:center; gap:6px;
  border:1px solid rgba(233,242,228,.2); background:rgba(233,242,228,.06); color:#DCE9D8;
  font-family:var(--font-ui); font-size:.76rem; font-weight:600; padding:8px 6px; border-radius:10px; cursor:pointer; transition:background .15s}
.sb-mini:hover{background:rgba(233,242,228,.15)}
.sidebar.collapsed .sb-mini span{display:none}
.sb-backdrop{position:fixed; inset:0; background:rgba(20,53,31,.45); z-index:35; opacity:0; pointer-events:none; transition:opacity .25s}
body.sb-open .sb-backdrop{opacity:1; pointer-events:auto}

/* آواتار */
.avatar{display:inline-flex; align-items:center; justify-content:center; flex:none;
  border-radius:999px; background:var(--green-deep); color:#EAF9D6; font-weight:700; font-family:var(--font-display)}
.avatar.sz-34{width:34px;height:34px;font-size:.85rem}
.avatar.sz-40{width:40px;height:40px;font-size:1rem}
.avatar.sz-64{width:64px;height:64px;font-size:1.5rem}
.avatar.amber{background:#B4670B}
.avatar.teal{background:var(--teal)}
.avatar.ink{background:var(--ink)}

/* ── هدر اپ ── */
.app-header{position:sticky; top:0; z-index:30; height:var(--hdr-h);
  display:flex; align-items:center; gap:12px; padding:0 clamp(14px,2vw,26px);
  background:rgba(251,247,234,.86); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line)}
.hamb{display:inline-flex; border:1px solid var(--line); background:var(--card); border-radius:10px; padding:8px; cursor:pointer; color:var(--ink)}
.sidebar.off{width:0!important; min-width:0; overflow:hidden; opacity:0; pointer-events:none; border:0; padding:0}
.org-chip{display:inline-flex; align-items:center; gap:9px; background:var(--card); border:1px solid var(--line);
  border-radius:999px; padding:7px 16px; font-size:.85rem; font-weight:700; color:var(--ink); max-width:min(420px,46vw);position:relative}
.org-switch-toggle{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:none;border:0;border-radius:8px;background:rgba(28,110,49,.08);color:var(--green-deep);cursor:pointer;transition:transform .16s,background .16s}
.org-switch-toggle:hover{background:rgba(28,110,49,.16)}
.org-switch-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.org-switch-menu{display:none;position:absolute;top:calc(100% + 9px);inset-inline-start:0;z-index:120;width:min(310px,90vw);max-height:min(65vh,420px);overflow:auto;padding:7px;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px -28px rgba(10,35,18,.55)}
.org-switch-menu.open{display:block;animation:ovIn .14s ease}
.org-switch-title{padding:8px 10px 10px;color:var(--ink-2);font-size:.76rem;font-weight:800;border-bottom:1px solid var(--line);margin-bottom:5px}
.org-switch-item{display:flex;align-items:center;gap:8px;width:100%;border:0;border-radius:10px;background:transparent;padding:10px;text-align:right;color:var(--ink);font:inherit;cursor:pointer}
.org-switch-item:hover,.org-switch-item.active{background:var(--card-2)}
.org-switch-item>span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.org-switch-item small{color:var(--ink-2);font-size:.7rem}
.org-switch-item>b{color:var(--green-deep);font-size:.7rem}
.org-switch-loading{padding:14px 10px;color:var(--ink-2);font-size:.8rem;text-align:center}
.org-switch-loading.error{color:var(--red)}
.org-chip .tx{white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:none}
.live-pill{display:inline-flex; align-items:center; gap:6px; flex:none; font-size:.68rem; font-weight:800;
  color:var(--green-deep); background:rgba(28,110,49,.08); border:1px solid rgba(28,110,49,.16);
  border-radius:999px; padding:4px 8px 4px 7px}
.org-dot{width:8px;height:8px;border-radius:50%;background:var(--green-deep);flex:none;position:relative}
.org-dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--green-deep);opacity:.5;animation:pulse 2.2s ease-out infinite}
.qsearch{position:relative; margin-inline-start:auto; width:min(340px,34vw)}
.qsearch input{width:100%; font-family:var(--font-ui); font-size:.88rem; color:var(--ink);
  background:var(--card); border:1.5px solid var(--line); border-radius:999px; padding:9px 40px 9px 14px; outline:none; transition:border-color .15s, box-shadow .15s}
.qsearch input:focus{border-color:var(--green-deep); box-shadow:0 0 0 3px rgba(196,244,95,.5)}
.qsearch .qs-ic{position:absolute; inset-inline-start:13px; top:50%; transform:translateY(-50%); color:var(--ink-2); pointer-events:none}
.hdr-actions{display:flex; align-items:center; gap:9px}
.icon-btn{position:relative; display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px;
  border-radius:12px; border:1px solid var(--line); background:var(--card); color:var(--ink); cursor:pointer; transition:transform .15s, background .15s}
.icon-btn:hover{transform:translateY(-1px); background:#fff}
.icon-btn .pip{position:absolute; top:7px; inset-inline-end:7px; min-width:15px; height:15px; padding:0 4px; border-radius:999px;
  background:var(--red); color:#fff; font-size:.6rem; font-weight:700; display:flex; align-items:center; justify-content:center}
.profile-chip{display:inline-flex; align-items:center; gap:9px; border:1px solid var(--line); background:var(--card);
  border-radius:999px; padding:5px 12px 5px 6px; cursor:pointer; transition:background .15s}
[dir="rtl"] .profile-chip{padding:5px 6px 5px 12px}
.profile-chip:hover{background:#fff}
.profile-chip .pc-t{line-height:1.15; text-align:start}
.profile-chip .pc-t b{display:block; font-size:.83rem; color:var(--ink)}
.profile-chip .pc-t span{display:block; font-size:.68rem; color:var(--ink-2)}

/* دراپ‌داون عمومی */
.drop{position:relative}
.drop-panel{position:absolute; top:calc(100% + 8px); inset-inline-end:0; z-index:60;
  min-width:240px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-m);
  box-shadow:0 26px 60px -30px rgba(20,53,31,.55); padding:6px;
  opacity:0; transform:translateY(6px) scale(.98); pointer-events:none; transition:opacity .16s, transform .16s}
.drop.open .drop-panel{opacity:1; transform:none; pointer-events:auto}
.drop-panel.wide{min-width:330px; max-width:92vw}
.dp-h{display:flex; align-items:center; justify-content:space-between; padding:9px 11px 7px; font-size:.8rem; font-weight:700; color:var(--ink-2)}
.dp-item{display:flex; align-items:center; gap:10px; width:100%; border:0; background:none; cursor:pointer;
  font-family:var(--font-ui); font-size:.88rem; font-weight:500; color:var(--ink); text-align:right;
  padding:10px 11px; border-radius:10px; transition:background .12s; text-decoration:none}
.dp-item:hover{background:rgba(28,110,49,.09)}
.dp-item.danger{color:var(--red)} .dp-item.danger:hover{background:var(--red-bg)}
.dp-item small{margin-inline-start:auto; color:var(--ink-2); font-size:.72rem}
.dp-sep{height:1px; background:var(--line); margin:5px 8px}
.notif-item{display:flex; align-items:flex-start; gap:10px; padding:11px; border-radius:12px; font-size:.83rem; line-height:1.65; color:var(--ink); cursor:pointer; text-align:right; width:100%; border:0; background:none; font-family:var(--font-ui); transition:background .15s,transform .15s}
.notif-item:hover{background:var(--tone-bg);transform:translateY(-1px)}
.notif-item .ni-ic,.portal-notif .pn-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:10px;background:var(--tone-bg);color:var(--tone);margin-top:1px}
.notif-item .ni-copy{display:grid;gap:2px;min-width:0}
.notif-item .ni-title{color:#1C6E31;font-weight:800}
.notif-item.tone-red .ni-title{color:var(--tone)}
.notif-item .ni-detail{display:flex;gap:5px;flex-wrap:wrap;color:var(--ink-2);font-size:.76rem}
.notif-item .ni-detail em{font-style:normal;font-weight:800;color:var(--red)}
.tone-green{--tone:#25804A;--tone-bg:rgba(37,128,74,.10)}
.tone-blue{--tone:#2675AE;--tone-bg:rgba(38,117,174,.11)}
.tone-amber{--tone:#B36A08;--tone-bg:rgba(179,106,8,.12)}
.tone-teal{--tone:#14877D;--tone-bg:rgba(20,135,125,.11)}
.tone-red{--tone:#B3362B;--tone-bg:rgba(179,54,43,.10)}
.tone-violet{--tone:#7650A8;--tone-bg:rgba(118,80,168,.11)}
.notif-empty{padding:22px 12px; text-align:center; color:var(--ink-2); font-size:.85rem}
.portal-notif-list{display:grid;gap:10px}
.portal-notif{display:flex;align-items:flex-start;gap:12px;padding:14px;border:1px solid var(--line);border-inline-start:4px solid var(--tone);border-radius:14px;background:linear-gradient(100deg,var(--tone-bg),transparent 75%)}
.portal-notif .pn-icon{margin:0}
.portal-notif .pn-copy{min-width:0;flex:1;display:grid;gap:3px}
.portal-notif .pn-copy>b{color:#1C6E31;font-size:.9rem}
.portal-notif.tone-red .pn-copy>b{color:var(--tone)}
.portal-notif .pn-inst{color:var(--red);font-size:.78rem;font-weight:800}
.portal-notif .pn-copy p{color:var(--ink-2);font-size:.82rem;line-height:1.7}
.portal-notif time{color:var(--ink-2);font-size:.72rem;white-space:nowrap}
.qs-group{padding:6px 11px 3px; font-size:.7rem; font-weight:700; color:var(--ink-2)}
.qs-panel{position:absolute; top:calc(100% + 8px); inset-inline:0; z-index:60; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r-m); box-shadow:0 26px 60px -30px rgba(20,53,31,.55);
  padding:6px; max-height:380px; overflow:auto; display:none}
.qsearch.open .qs-panel{display:block}

/* ══════════ اجزای صفحه ══════════ */
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:18px}
.page-head h1{font-size:clamp(1.35rem,2.2vw,1.7rem); margin:0; line-height:1.3}
.page-head .ph-sub{color:var(--ink-2); font-size:.88rem; margin-top:6px}
.ph-actions{display:flex; gap:9px; flex-wrap:wrap}

.card{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l);
  box-shadow:0 16px 34px -26px rgba(20,53,31,.5); padding:18px}
.card.tight{padding:0; overflow:hidden}
.card-h{display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap;
  padding:15px 18px; border-bottom:1px solid var(--line)}
.card-h h3{font-size:.98rem; font-weight:700}
.card-h .hint-t{font-size:.78rem; color:var(--ink-2)}
.card-b{padding:16px 18px}
.card.tight .card-b{padding:0}

.grid{display:grid; gap:14px}
.g-stats{grid-template-columns:repeat(auto-fill,minmax(215px,1fr))}
.g-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g-4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* کارت آماری */
.stat{background:var(--card); border:1px solid var(--line); border-radius:var(--r-l); padding:16px;
  display:flex; flex-direction:column; gap:9px; position:relative; overflow:hidden;
  box-shadow:0 14px 30px -26px rgba(20,53,31,.5)}
.stat::before{content:""; position:absolute; inset-inline-start:0; top:0; bottom:0; width:4px; background:var(--green-deep); opacity:.85}
.stat.s-lime::before{background:#9CCB3C}
.stat.s-amber::before{background:#D98A1B}
.stat.s-red::before{background:var(--red)}
.stat.s-teal::before{background:var(--teal)}
.stat.s-blue::before{background:#2675AE}
.stat.s-purple::before{background:#7650A8}
.stat.s-cyan::before{background:#14877D}
.stat-top{display:flex; align-items:center; gap:9px; font-size:.8rem; font-weight:700; color:var(--ink-2)}
.stat-top .s-ic{display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px;
  border-radius:9px; background:rgba(28,110,49,.1); color:var(--green-deep); flex:none}
.stat.s-amber .s-ic{background:var(--amber-bg); color:var(--amber)}
.stat.s-red .s-ic{background:var(--red-bg); color:var(--red)}
.stat.s-teal .s-ic{background:var(--teal-bg); color:var(--teal)}
.stat.s-blue .s-ic{background:rgba(38,117,174,.12); color:#2675AE}
.stat.s-purple .s-ic{background:rgba(118,80,168,.13); color:#7650A8}
.stat.s-cyan .s-ic{background:rgba(20,135,125,.12); color:#14877D}
.stat.s-lime .s-ic{background:rgba(120,160,28,.15); color:#688A15}
.stat-val{font-family:var(--font-display); font-weight:700; font-size:1.45rem; color:var(--ink);
  font-variant-numeric:tabular-nums; line-height:1.15}
.stat-val small{font-size:.62em; font-weight:600; color:var(--ink-2)}
.stat-sub{font-size:.75rem; color:var(--ink-2)}

/* بج‌ها */
.badge{display:inline-flex; align-items:center; gap:6px; font-size:.74rem; font-weight:700; line-height:1;
  padding:6px 11px; border-radius:999px; white-space:nowrap}
.badge .bd{width:7px; height:7px; border-radius:50%; background:currentColor; opacity:.85}
.b-green{background:rgba(28,110,49,.13); color:var(--green-deep)}
.b-lime{background:var(--lime); color:#274D0B}
.b-amber{background:var(--amber-bg); color:var(--amber)}
.b-red{background:var(--red-bg); color:var(--red)}
.b-gray{background:rgba(20,53,31,.09); color:var(--ink-2)}
.b-teal{background:var(--teal-bg); color:var(--teal)}
.b-blue{background:var(--blue-bg); color:var(--blue)}

/* دکمه‌ها */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; font-family:var(--font-ui);
  font-weight:700; font-size:.9rem; line-height:1; border:1px solid transparent; border-radius:12px;
  padding:12px 20px; cursor:pointer; white-space:nowrap; transition:all .18s ease; color:var(--ink-2); background:var(--card)}
.btn:focus-visible{outline:2px solid var(--green-deep); outline-offset:2px}
.btn-sm{padding:9px 16px; font-size:.82rem; border-radius:10px}
.btn-solid{background:var(--green-deep); color:#F3FBEA; border-color:var(--green-deep);
  box-shadow:0 10px 22px -12px rgba(20,60,30,.85)}
.btn-solid:hover{background:#155A28; transform:translateY(-2px); box-shadow:0 14px 26px -12px rgba(20,60,30,.9)}
.btn-solid:active{transform:translateY(0) scale(.985)}
.btn-ghost{background:transparent; border-color:var(--line); color:var(--ink-2)}
.btn-ghost:hover{border-color:var(--ink-2); color:var(--ink); background:rgba(20,53,31,.05); transform:translateY(-1px)}
.btn-ghost:active{transform:translateY(0) scale(.985)}
.btn-danger{background:var(--red); color:#FFF3F0; box-shadow:0 12px 24px -12px rgba(140,40,30,.55)}
.btn-danger:hover{background:#992D23; transform:translateY(-2px)}
.btn-soft{background:rgba(28,110,49,.12); color:var(--green-deep); border-color:transparent}
.btn-soft:hover{background:rgba(28,110,49,.2); transform:translateY(-1px)}
.btn.dis, .btn[disabled]{opacity:.45; pointer-events:none; filter:saturate(.6)}
.btn .cnt{background:rgba(255,255,255,.22); border-radius:999px; padding:2px 8px; font-size:.78rem}
.x-btn{display:inline-flex; align-items:center; justify-content:center; width:32px; height:32px; flex:none;
  border-radius:9px; border:1px solid var(--line); background:var(--card); color:var(--ink-2); cursor:pointer; transition:all .15s}
.x-btn:hover{color:var(--ink); border-color:var(--ink-2)}
.x-btn.danger:hover{color:var(--red); border-color:var(--red-line); background:var(--red-bg)}

/* ══════════ فرم‌ها ══════════ */
.fields{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 14px}
.fields .full{grid-column:1/-1}
.field{display:flex; flex-direction:column; gap:6px; min-width:0}
.field label{font-size:.8rem; font-weight:700; color:var(--ink)}
.field label .req{color:var(--red)}
.field label small{font-weight:500; color:var(--ink-2)}
.inp, .field input, .field select, .field textarea, .m-modal select, .m-modal input[type="text"], .m-modal input[type="password"], .m-modal input[type="tel"], .m-modal input[type="email"], .m-modal input[type="number"], .m-modal input[type="time"], .m-modal textarea{
  width:100%; font-family:var(--font-ui); font-size:.92rem; color:var(--ink);
  background:#fff; border:1.5px solid var(--line); border-radius:12px; padding:11px 13px;
  outline:none; transition:border-color .15s, box-shadow .15s}
.field textarea{resize:vertical; min-height:76px; line-height:1.7}
.field input:focus, .field select:focus, .field textarea:focus, .inp:focus{border-color:var(--green-deep); box-shadow:0 0 0 3px rgba(196,244,95,.5)}
.field input.err, .field select.err{border-color:var(--red)!important; box-shadow:0 0 0 3px rgba(179,54,43,.15)}
.field .err-msg{font-size:.74rem; color:var(--red); font-weight:600; display:none}
.field.has-err .err-msg{display:block}
.field .help{font-size:.72rem; color:var(--ink-2)}
input.num, .num-inp{direction:ltr; text-align:left; font-variant-numeric:tabular-nums}
.field-row{display:flex; gap:10px; align-items:center}
.chk{display:inline-flex; align-items:center; gap:9px; cursor:pointer; font-size:.88rem; font-weight:600; color:var(--ink); user-select:none}
.chk input{appearance:none; width:19px; height:19px; flex:none; border:1.5px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; position:relative; transition:all .15s}
.chk input:checked{background:var(--green-deep); border-color:var(--green-deep)}
.chk input:checked::after{content:""; position:absolute; inset:0;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M3.5 8.5 6.5 11.5 12.5 4.8" fill="none" stroke="%23FBF7EA" stroke-width="2.4" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/70% no-repeat}
/* سوییچ */
.sw{position:relative; display:inline-block; width:44px; height:25px; flex:none}
.sw input{appearance:none; width:44px; height:25px; border-radius:999px; background:rgba(20,53,31,.18); cursor:pointer; transition:background .2s; outline:none}
.sw input:checked{background:var(--green-deep)}
.sw input::after{content:""; position:absolute; top:3px; inset-inline-start:3px; width:19px; height:19px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(20,53,31,.35); transition:transform .2s}
/* در RTL دستگیره از سمت راست شروع می‌شود و هنگام روشن‌شدن به چپ می‌رود */
.sw input:checked::after{transform:translateX(-19px)}
[dir="ltr"] .sw input:checked::after{transform:translateX(19px)}
.setting-row{display:flex; align-items:center; justify-content:space-between; gap:14px; padding:13px 2px; border-bottom:1px dashed var(--line)}
.setting-row:last-child{border-bottom:0}
.setting-row .sr-t b{font-size:.9rem} .setting-row .sr-t p{font-size:.77rem; color:var(--ink-2); margin-top:3px; line-height:1.7}

/* تقویم شمسی */
.jd{position:relative; display:block}
.jd input{padding-inline-end:46px!important}
.jd-inp{direction:rtl; text-align:right}
.jd-btn{position:absolute; inset-inline-end:6px; top:50%; transform:translateY(-50%);
  display:inline-flex; align-items:center; justify-content:center; width:31px; height:31px;
  border:0; background:rgba(28,110,49,.1); color:var(--green-deep); border-radius:9px; cursor:pointer; transition:background .15s}
.jd-btn:hover{background:rgba(28,110,49,.2)}
.jd-pop{position:absolute; z-index:80; top:calc(100% + 6px); inset-inline-start:0;
  width:292px; background:var(--card); border:1px solid var(--line); border-radius:var(--r-m);
  box-shadow:0 30px 66px -28px rgba(20,53,31,.6); padding:12px; animation:jdIn .18s ease both}
.jd-pop.up{top:auto; bottom:calc(100% + 6px)}
@keyframes jdIn{from{opacity:0; transform:translateY(6px)} to{opacity:1; transform:none}}
.jd-head{display:flex; align-items:center; justify-content:space-between; gap:6px; margin-bottom:9px}
.jd-head .jd-t{font-weight:700; font-size:.9rem; display:flex; align-items:center; gap:7px}
.jd-head select{font-family:var(--font-ui); font-size:.82rem; font-weight:700; color:var(--ink);
  border:1px solid var(--line); border-radius:8px; background:#fff; padding:4px 6px; cursor:pointer; outline:none}
.jd-nav{width:29px; height:29px; border:1px solid var(--line); background:#fff; border-radius:9px; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center; color:var(--ink); transition:background .15s}
.jd-nav:hover{background:rgba(28,110,49,.1)}
.jd-grid{display:grid; grid-template-columns:repeat(7,1fr); gap:3px}
.jd-wd{font-size:.68rem; font-weight:700; color:var(--ink-2); text-align:center; padding:5px 0}
.jd-d{height:33px; border:0; background:none; border-radius:9px; cursor:pointer; font-family:var(--font-ui);
  font-size:.85rem; font-weight:600; color:var(--ink); transition:background .12s; font-variant-numeric:tabular-nums}
.jd-d:hover{background:rgba(28,110,49,.12)}
.jd-d.blank{visibility:hidden}
.jd-d.today{box-shadow:inset 0 0 0 1.5px var(--green-deep)}
.jd-d.sel{background:var(--green-deep); color:#fff}
.jd-foot{display:flex; align-items:center; justify-content:space-between; margin-top:9px; padding-top:9px; border-top:1px dashed var(--line)}
.jd-foot button{border:0; background:none; cursor:pointer; font-family:var(--font-ui); font-size:.79rem; font-weight:700; color:var(--green-deep); padding:5px 8px; border-radius:8px}
.jd-foot button:hover{background:rgba(28,110,49,.1)}
.jd-foot button.jclear{color:var(--red)}

/* ══════════ جدول‌ها ══════════ */
.tbl-wrap{overflow-x:auto}
.tbl{width:100%; border-collapse:collapse; font-size:.87rem; min-width:640px}
.tbl thead th{font-size:.74rem; font-weight:700; color:var(--ink-2); text-align:right; white-space:nowrap;
  padding:11px 14px; background:var(--card-2); border-bottom:1px solid var(--line)}
.tbl thead th:first-child{border-start-start-radius:0}
.tbl th.srt{cursor:pointer; user-select:none}
.tbl th.srt:hover{color:var(--ink)}
.tbl th .srt-ic{display:inline-block; margin-inline-start:4px; opacity:.55; font-size:.7rem}
.tbl tbody td{padding:12px 14px; border-bottom:1px solid rgba(20,53,31,.08); vertical-align:middle; color:var(--ink)}
.tbl tbody tr{transition:background .12s}
.tbl tbody tr:hover{background:rgba(28,110,49,.05)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl .c-num{direction:ltr; text-align:left; unicode-bidi:isolate; font-variant-numeric:tabular-nums; white-space:nowrap}
.tbl .c-fa-num{font-variant-numeric:tabular-nums; white-space:nowrap}
.tbl .c-strong{font-weight:700}
.tbl .cell-main{display:flex; align-items:center; gap:10px; min-width:0}
.tbl .cell-main .cm-t b{display:block; font-size:.87rem}
.tbl .cell-main .cm-t span{display:block; font-size:.72rem; color:var(--ink-2); margin-top:2px}
.tbl a.row-link{color:var(--green-deep); font-weight:700; text-decoration:none}
.tbl a.row-link:hover{text-decoration:underline}
.row-acts{display:flex; gap:6px; justify-content:flex-end}
.tbl-foot{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:13px 16px; border-top:1px solid var(--line)}
.tbl-foot .tf-info{font-size:.79rem; color:var(--ink-2)}
.pager{display:flex; align-items:center; gap:5px}
.pg-btn{min-width:33px; height:33px; padding:0 8px; border:1px solid var(--line); background:#fff; border-radius:9px;
  font-family:var(--font-ui); font-size:.83rem; font-weight:700; color:var(--ink); cursor:pointer; transition:all .13s;
  display:inline-flex; align-items:center; justify-content:center}
.pg-btn:hover{border-color:var(--green-deep); color:var(--green-deep)}
.pg-btn.on{background:var(--green-deep); border-color:var(--green-deep); color:#fff}
.pg-btn[disabled]{opacity:.4; pointer-events:none}

/* نوار فیلتر */
.toolbar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-l); padding:12px 14px; margin-bottom:14px; box-shadow:0 14px 30px -28px rgba(20,53,31,.5)}
.toolbar .t-search{position:relative; flex:1; min-width:210px; max-width:340px}
.toolbar .t-search input{width:100%; font-family:var(--font-ui); font-size:.87rem; background:#fff;
  border:1.5px solid var(--line); border-radius:11px; padding:10px 38px 10px 12px; outline:none; transition:border-color .15s, box-shadow .15s}
.toolbar .t-search input:focus{border-color:var(--green-deep); box-shadow:0 0 0 3px rgba(196,244,95,.45)}
.toolbar .t-search svg{position:absolute; inset-inline-start:12px; top:50%; transform:translateY(-50%); color:var(--ink-2)}
.t-select{font-family:var(--font-ui); font-size:.85rem; font-weight:600; color:var(--ink); background:#fff;
  border:1.5px solid var(--line); border-radius:11px; padding:9px 12px; cursor:pointer; outline:none; max-width:190px}
.t-select:focus{border-color:var(--green-deep)}
.t-money{width:130px; font-family:var(--font-ui); font-size:.85rem; background:#fff; border:1.5px solid var(--line);
  border-radius:11px; padding:9px 12px; outline:none; direction:ltr; text-align:left}
.t-jd{width:130px}
.t-jd input{width:100%; font-family:var(--font-ui); font-size:.83rem; background:#fff; border:1.5px solid var(--line);
  border-radius:11px; padding:9px 12px; outline:none; direction:rtl; text-align:right}
.t-lbl{font-size:.76rem; font-weight:700; color:var(--ink-2); white-space:nowrap}

/* چیپ/تب */
.chips{display:flex; gap:8px; flex-wrap:wrap}
.chip{display:inline-flex; align-items:center; gap:7px; border:1.5px solid var(--line); background:var(--card);
  border-radius:999px; padding:9px 16px; font-family:var(--font-ui); font-size:.85rem; font-weight:700; color:var(--ink-2);
  cursor:pointer; transition:all .15s}
.chip:hover{border-color:var(--green-deep); color:var(--green-deep)}
.chip.on{background:var(--green-deep); border-color:var(--green-deep); color:#fff; box-shadow:0 10px 20px -12px rgba(20,60,30,.7)}
.tabs{display:flex; gap:4px; border-bottom:2px solid var(--line); margin-bottom:16px; overflow-x:auto}
.tab{border:0; background:none; cursor:pointer; font-family:var(--font-ui); font-size:.9rem; font-weight:700;
  color:var(--ink-2); padding:11px 16px; position:relative; white-space:nowrap; transition:color .15s}
.tab:hover{color:var(--ink)}
.tab.on{color:var(--green-deep)}
.tab.on::after{content:""; position:absolute; inset-inline:10px; bottom:-2px; height:3px; border-radius:3px; background:var(--green-deep)}
.tab .tc{display:inline-flex; align-items:center; justify-content:center; min-width:19px; height:19px; padding:0 5px;
  margin-inline-start:6px; border-radius:999px; background:rgba(20,53,31,.1); font-size:.68rem; color:var(--ink)}
.tab.on .tc{background:var(--lime); color:var(--ink)}

/* ══════════ مودال / دراور ══════════ */
.m-overlay{position:fixed; inset:0; z-index:90; background:rgba(20,43,28,.5); backdrop-filter:blur(3px);
  display:flex; align-items:center; justify-content:center; padding:20px; animation:ovIn .2s ease both}
@keyframes ovIn{from{opacity:0} to{opacity:1}}
.m-modal{width:min(560px,100%); max-height:min(88vh,900px); background:var(--card); border-radius:var(--r-xl);
  border:1px solid var(--line); box-shadow:0 44px 100px -40px rgba(10,30,15,.65);
  display:flex; flex-direction:column; animation:mIn .28s cubic-bezier(.2,.9,.3,1.1) both; overflow:hidden}
.m-modal.sz-lg{width:min(760px,100%)}
.m-modal.sz-xl{width:min(1040px,100%)}
.m-modal.sz-sm{width:min(430px,100%)}
@keyframes mIn{from{opacity:0; transform:translateY(18px) scale(.97)} to{opacity:1; transform:none}}
.m-head{display:flex; align-items:center; gap:10px; padding:17px 20px; border-bottom:1px solid var(--line)}
.m-head h3{font-size:1.03rem; font-weight:700; flex:1; min-width:0}
.m-head .m-sub{display:block; font-size:.76rem; font-weight:500; color:var(--ink-2); margin-top:3px}
.m-body{padding:20px; overflow-y:auto}
.m-foot{display:flex; align-items:center; justify-content:flex-end; gap:9px; padding:15px 20px; border-top:1px solid var(--line); background:var(--card-2); flex-wrap:wrap}
.m-foot .grow{margin-inline-end:auto}
.m-sec{border:1px solid var(--line); border-radius:var(--r-m); background:#fff; margin-bottom:14px; overflow:hidden}
.m-sec:last-child{margin-bottom:0}
.m-sec-h{display:flex; align-items:center; gap:8px; padding:11px 15px; background:var(--card-2); border-bottom:1px solid var(--line);
  font-size:.8rem; font-weight:700; color:var(--ink)}
.m-sec-h .sn{display:inline-flex; align-items:center; justify-content:center; width:21px; height:21px; border-radius:7px;
  background:var(--green-deep); color:#fff; font-size:.7rem}
.m-sec-b{padding:15px}
.sum-line{display:flex; justify-content:space-between; gap:10px; font-size:.86rem; padding:7px 0; border-bottom:1px dashed var(--line)}
.sum-line:last-child{border-bottom:0}
.sum-line b{font-variant-numeric:tabular-nums}

/* فرم شناور وام (وسط صفحه، نه کشوی گوشه) */
.drawer-wrap{position:fixed; inset:0; z-index:90; background:rgba(20,43,28,.45); backdrop-filter:blur(4px); animation:ovIn .2s ease both; display:flex; align-items:center; justify-content:center; padding:18px}
.m-drawer{position:relative; inset:auto; width:min(640px,96vw); max-height:92vh; background:var(--card); border-radius:20px;
  box-shadow:0 28px 80px -24px rgba(10,30,15,.55); display:flex; flex-direction:column; animation:drIn .28s cubic-bezier(.2,.9,.3,1) both}
@keyframes drIn{from{transform:translateY(18px) scale(.97); opacity:0} to{transform:none; opacity:1}}
.m-drawer .m-body{flex:1; overflow:auto}

/* آلرت */
.alert{display:flex; gap:11px; align-items:flex-start; border-radius:var(--r-m); padding:13px 15px; font-size:.86rem; line-height:1.8}
.alert .al-ic{flex:none; margin-top:3px}
.alert.a-err{background:var(--red-bg); color:#7E241B; border:1px solid var(--red-line)}
.alert.a-warn{background:var(--amber-bg); color:#7A4A05; border:1px solid var(--amber-line)}
.alert.a-ok{background:rgba(28,110,49,.1); color:var(--green-deep); border:1px solid rgba(28,110,49,.3)}
.alert.a-info{background:var(--blue-bg); color:#16425F; border:1px solid rgba(30,90,138,.3)}
.alert.shake{animation:shake .4s ease}
@keyframes shake{0%,100%{transform:none} 25%{transform:translateX(6px)} 55%{transform:translateX(-5px)} 80%{transform:translateX(3px)}}

/* توست سراسری */
#gToast{position:fixed; bottom:22px; left:50%; transform:translateX(-50%); z-index:130; display:flex; flex-direction:column; gap:9px; align-items:center; pointer-events:none; width:min(92vw,480px)}
.g-toast{background:var(--ink); color:#F0F7EC; padding:13px 21px; border-radius:14px; font-size:.9rem; font-weight:600;
  box-shadow:0 22px 48px -18px rgba(10,30,15,.7); display:flex; align-items:center; gap:10px;
  animation:gtIn .35s cubic-bezier(.2,.9,.3,1.15) both; text-align:center}
.g-toast.t-err{background:var(--red)} .g-toast.t-warn{background:#8A5A06} .g-toast.t-ok{background:var(--green-deep)}
.g-toast.out{opacity:0; transform:translateY(10px); transition:all .3s}
@keyframes gtIn{from{opacity:0; transform:translateY(14px) scale(.96)} to{opacity:1; transform:none}}

/* تولتیپ */
[data-tip]{position:relative}
[data-tip]:hover::after{content:attr(data-tip); position:absolute; bottom:calc(100% + 8px); inset-inline-start:50%; transform:translateX(50%);
  background:var(--ink); color:#F0F7EC; font-size:.72rem; font-weight:600; padding:6px 11px; border-radius:9px; white-space:nowrap; z-index:100; pointer-events:none}
[dir="ltr"] [data-tip]:hover::after{transform:translateX(-50%)}

/* اسکلت لودینگ */
.skel{position:relative; overflow:hidden; background:rgba(20,53,31,.08); border-radius:12px}
.skel::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);
  transform:translateX(-100%); animation:sk 1.3s infinite}
@keyframes sk{to{transform:translateX(100%)}}
.skel-page{display:grid; gap:14px}
.skel-row{height:64px}
.skel-line{height:16px; margin-bottom:10px}
.skel-line.w60{width:60%} .skel-line.w40{width:40%} .skel-line.w80{width:80%}

/* حالت خالی */
.empty{padding:46px 20px; text-align:center; color:var(--ink-2)}
.empty .e-ic{display:inline-flex; align-items:center; justify-content:center; width:64px; height:64px; border-radius:22px;
  background:rgba(28,110,49,.1); color:var(--green-deep); margin-bottom:14px}
.empty h4{font-size:1rem; color:var(--ink); margin-bottom:6px}
.empty p{font-size:.85rem; line-height:1.8; max-width:380px; margin:0 auto 14px}

/* ویزارد / مراحل */
.steps{display:flex; gap:0; margin-bottom:18px; list-style:none}
.steps li{flex:1; display:flex; flex-direction:column; align-items:center; gap:7px; position:relative; font-size:.74rem; font-weight:700; color:var(--ink-2)}
.steps li .st-n{width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  background:rgba(20,53,31,.1); color:var(--ink-2); border:2px solid transparent; z-index:1; font-size:.8rem}
.steps li::before{content:""; position:absolute; top:15px; inset-inline-start:-50%; width:100%; height:2px; background:rgba(20,53,31,.12)}
.steps li:first-child::before{display:none}
.steps li.done .st-n{background:var(--green-deep); color:#fff}
.steps li.cur .st-n{background:#fff; border-color:var(--green-deep); color:var(--green-deep); box-shadow:0 0 0 4px rgba(28,110,49,.15)}
.steps li.cur{color:var(--green-deep)}
.steps li.done::before, .steps li.cur::before{background:var(--green-deep)}
.dropzone{border:2px dashed rgba(28,110,49,.45); border-radius:var(--r-l); background:rgba(28,110,49,.05);
  padding:34px 20px; text-align:center; cursor:pointer; transition:all .18s}
.dropzone:hover, .dropzone.over{background:rgba(196,244,95,.22); border-color:var(--green-deep)}
.dropzone .dz-ic{color:var(--green-deep); margin-bottom:10px}
.dropzone b{display:block; font-size:.95rem; margin-bottom:5px}
.dropzone p{font-size:.8rem; color:var(--ink-2); line-height:1.8}
.prog{height:12px; border-radius:999px; background:rgba(20,53,31,.1); overflow:hidden}
.prog > i{display:block; height:100%; width:0%; border-radius:999px; background:linear-gradient(90deg,var(--green-deep),#57C463); transition:width .3s ease}
.batch-log{font-family:ui-monospace,Menlo,monospace; font-size:.74rem; background:var(--ink); color:#C9E7BC;
  border-radius:var(--r-m); padding:13px 15px; max-height:130px; overflow:auto; line-height:1.9; direction:ltr; text-align:left}
.cell-inp{width:100%; border:1px solid transparent; background:transparent; font-family:var(--font-ui); font-size:.84rem;
  padding:6px 8px; border-radius:8px; outline:none; color:var(--ink)}
.cell-inp:hover{border-color:var(--line); background:#fff}
.cell-inp:focus{border-color:var(--green-deep); background:#fff; box-shadow:0 0 0 2px rgba(196,244,95,.5)}
.cell-inp.bad{background:var(--red-bg); border-color:var(--red-line)}

/* لیست‌های کوچک */
.mini-list{display:flex; flex-direction:column}
.mini-item{display:flex; align-items:center; gap:11px; padding:11px 6px; border-bottom:1px dashed var(--line); font-size:.85rem}
.mini-item:last-child{border-bottom:0}
.mini-item .mi-t{flex:1; min-width:0}
.mini-item .mi-t b{display:block; font-size:.85rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.mini-item .mi-t span{display:block; font-size:.72rem; color:var(--ink-2); margin-top:2px}
.mini-item .mi-v{font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap; direction:ltr}
.mini-item .mi-v.pos{color:var(--green-deep)} .mini-item .mi-v.neg{color:var(--red)}
.chart-box{position:relative; height:230px}
.chart-box canvas{width:100%; height:100%; display:block}
.legend{display:flex; gap:14px; flex-wrap:wrap; margin-top:12px; justify-content:center}
.legend .lg-i{display:inline-flex; align-items:center; gap:7px; font-size:.78rem; font-weight:600; color:var(--ink-2)}
.legend .lg-i i{width:11px; height:11px; border-radius:4px; display:inline-block}

/* پروفایل عضو / جزئیات */
.prof-head{display:flex; align-items:center; gap:16px; flex-wrap:wrap}
.prof-head .ph-info h2{font-size:1.25rem; margin-bottom:5px}
.kv-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(190px,1fr)); gap:2px 18px}
.kv{display:flex; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px dashed var(--line); font-size:.85rem}
.kv span{color:var(--ink-2)} .kv b{font-weight:700; font-variant-numeric:tabular-nums}
.timeline{position:relative; padding-inline-start:20px}
.timeline::before{content:""; position:absolute; inset-block:4px; inset-inline-start:6px; width:2px; background:var(--line)}
.tl-item{position:relative; padding:0 0 15px 0}
.tl-item::before{content:""; position:absolute; inset-inline-start:-19px; top:5px; width:11px; height:11px; border-radius:50%;
  background:var(--card); border:2.5px solid var(--green-deep)}
.tl-item .tl-t{font-size:.86rem; font-weight:600}
.tl-item .tl-d{font-size:.72rem; color:var(--ink-2); margin-top:2px}

/* چاپ */
#printRoot{display:none}
@media print{
  body.printing > *:not(#printRoot){display:none!important}
  body.printing{padding:0!important; background:#fff}
  #printRoot{display:block!important; color:#000; font-family:var(--font-ui)}
  #printRoot .pr-head{display:flex; align-items:center; justify-content:space-between; border-bottom:2px solid #1C6E31; padding-bottom:10px; margin-bottom:14px}
  #printRoot .pr-head h1{font-size:16pt; color:#1C6E31}
  #printRoot .pr-head p{font-size:9pt; color:#444}
  #printRoot .pr-filters{font-size:9pt; color:#333; margin-bottom:10px}
  #printRoot .pr-h2{font-size:11pt; color:#1C6E31; margin:16px 0 6px; border-bottom:1px solid #cfe0d2; padding-bottom:4px; page-break-after:avoid}
  #printRoot table.pr-kpis{margin-bottom:6px; width:100%; table-layout:fixed; border-collapse:collapse}
  #printRoot table.pr-kpis td{border:1px solid #d7e4da; padding:6px 10px; font-size:9pt; white-space:normal; vertical-align:top; overflow-wrap:anywhere}
  #printRoot .pr-charts{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:8px}
  #printRoot .pr-charts figure{flex:1 1 46%; margin:0; page-break-inside:avoid}
  #printRoot .pr-charts img{width:100%; border:1px solid #ddd; border-radius:6px}
  #printRoot .pr-charts figcaption{font-size:8pt; color:#555; text-align:center; margin-top:2px}
  #printRoot table{width:100%; border-collapse:collapse; font-size:9pt}
  #printRoot th{background:#EDF4E6!important; -webkit-print-color-adjust:exact; print-color-adjust:exact}
  #printRoot th,#printRoot td{border:1px solid #999; padding:6px 8px; text-align:right}
  #printRoot .pr-sum{margin-top:12px; font-size:9.5pt; font-weight:700}
}

/* ریسپانسیو */
@media (max-width:1080px){
  .sidebar{position:fixed; inset-inline-start:0; transform:translateX(110%); transition:transform .28s ease; box-shadow:30px 0 70px -30px rgba(10,30,15,.5)}
  [dir="ltr"] .sidebar{transform:translateX(-110%)}
  body.sb-open .sidebar{transform:none!important}
  .hamb{display:inline-flex}
  .sidebar.off{width:var(--sb-w)!important; opacity:1; pointer-events:auto}
  .g-2,.g-3,.g-4{grid-template-columns:1fr}
  .qsearch{width:180px}
}
@media (min-width:1081px){ .sb-backdrop{display:none} }
@media (max-width:720px){
  .qsearch{display:none}
  .org-chip{max-width:170px}
  .fields{grid-template-columns:1fr}
  .content{padding:14px}
  .profile-chip .pc-t{display:none}
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001s!important; transition-duration:.001s!important}
}
/* ── اصلاحات نهایی ── */
#view-login{display:none}
#view-login.view.active{display:flex}
.t-jd{width:150px}
.t-jd input{padding-inline-end:38px!important}
.jd-pop.jd-fixed{position:fixed; inset-inline-start:auto; left:auto; top:auto; bottom:auto; z-index:120; margin:0}
/* صفحه‌بندی ماه‌های نمودار */
.ch-pager{display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; margin:2px 0 14px}
.ch-pager.chp-only{justify-content:flex-start}
.ch-pager .chp-btn{display:inline-flex; align-items:center; gap:7px; border:1.5px solid var(--line); background:var(--card);
  border-radius:999px; padding:8px 16px; font:inherit; font-size:.8rem; font-weight:700; color:var(--ink-2); cursor:pointer; transition:all .15s}
.ch-pager .chp-btn svg{flex:none}
.ch-pager .chp-btn:hover:not(:disabled){border-color:var(--green-deep); color:var(--green-deep); background:rgba(28,110,49,.06)}
.ch-pager .chp-btn:disabled{opacity:.38; cursor:default}
.ch-pager .chp-range{display:inline-flex; align-items:center; gap:8px; font-size:.85rem; font-weight:800; color:var(--ink);
  background:rgba(28,110,49,.08); border:1.5px solid rgba(28,110,49,.16); border-radius:999px; padding:8px 18px}
.ch-pager .chp-range svg{color:var(--green-deep); flex:none}
.ch-pager .chp-range i{font-style:normal; font-weight:600; font-size:.74rem; color:var(--ink-2); margin-inline-start:6px;
  border-inline-start:1px solid rgba(28,110,49,.25); padding-inline-start:12px}
/* تولتیپ نمودارها */
.chart-tip{position:fixed; z-index:140; pointer-events:none; opacity:0; transition:opacity .12s ease;
  background:var(--ink); color:#F0F7EC; border-radius:11px; padding:9px 13px;
  font-size:.8rem; line-height:1.8; box-shadow:0 16px 36px -14px rgba(10,30,15,.75); max-width:230px}
.chart-tip b{display:block; font-size:.83rem}
.chart-tip span{color:#C9E7BC; font-weight:600; font-variant-numeric:tabular-nums}
.chart-tip .ct-row{display:flex; gap:7px; align-items:center; margin-top:3px; color:#DCE9D8; font-weight:600; font-size:.78rem}
.chart-tip .ct-row .ct-v{margin-inline-start:auto; color:#fff; font-weight:700}
.chart-box canvas{cursor:default}
@media (max-width:720px){ .page-head h1{font-size:1.25rem} }

/* ═══ مُهر تأیید (استامپ) ═══ */
.stamp-fx{position:fixed; inset:0; z-index:4000; pointer-events:none; display:flex; align-items:flex-end; justify-content:flex-start; padding:34px}
.stamp{color:#B3261E; opacity:0; transform:scale(2.5) rotate(-30deg); filter:blur(1px);
  mix-blend-mode:multiply; will-change:transform,opacity}
.stamp-fx.go .stamp{animation:stampPress .46s cubic-bezier(.2,.9,.25,1.2) forwards}
.stamp-fx.go{animation:stampShake .5s ease-out}
.stamp-fx.lift .stamp{animation:stampLift .45s ease forwards}
@keyframes stampPress{
  0%{opacity:0; transform:scale(2.5) rotate(-30deg); filter:blur(2px)}
  55%{opacity:1; transform:scale(.9) rotate(-10deg); filter:blur(0)}
  72%{transform:scale(1.07) rotate(-13.5deg)}
  100%{opacity:.96; transform:scale(1) rotate(-12deg); filter:blur(0)}
}
@keyframes stampShake{0%,52%{transform:none} 60%{transform:translate(2px,4px) rotate(.35deg)} 78%{transform:translate(-2px,1px) rotate(-.2deg)} 100%{transform:none}}
@keyframes stampLift{from{opacity:.96; transform:scale(1) rotate(-12deg)} to{opacity:0; transform:scale(1.05) rotate(-12deg) translateY(-18px)}}
.st-ring{width:168px; height:168px; border-radius:50%; border:3.5px solid currentColor; padding:7px;
  box-shadow:inset 0 0 0 1.5px rgba(179,38,30,.0)}
.st-core{width:100%; height:100%; border-radius:50%; border:1.5px solid currentColor;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px;
  background:radial-gradient(circle, rgba(179,38,30,.07) 0%, rgba(179,38,30,.02) 62%, transparent 75%)}
.st-core b{font-size:1.35rem; font-weight:900; line-height:1.15; letter-spacing:.5px}
.st-sub{font-size:.68rem; font-weight:700; opacity:.9}
.st-top{font-size:.55rem; letter-spacing:4px; opacity:.75}
.st-bot{font-size:.6rem; opacity:.7; margin-top:3px; border-top:1px solid currentColor; padding-top:3px}


/* ── افتتاح حساب جدید — حفظ منطق امروز ── */
.role-btn{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1.5px solid var(--line);border-radius:14px;background:var(--card);cursor:pointer;transition:all .2s;width:100%;text-align:right;margin-bottom:8px;font-family:var(--font-ui)}
.role-btn.on{border-color:var(--green-deep);background:rgba(28,110,49,.08)}
.role-btn b{display:block;font-size:.95rem}
.role-btn small{display:block;font-size:.78rem;color:var(--ink-2);margin-top:2px}
.role-sel{display:flex;flex-direction:column;gap:8px;margin:16px 0}
.onb-step{display:flex;gap:12px;align-items:flex-start;margin:18px 0 12px;padding-bottom:12px;border-bottom:1px dashed var(--line)}
.onb-step .sn{width:32px;height:32px;border-radius:50%;background:var(--green-deep);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;flex:none}
.onb-step h4{margin:0;font-size:1rem}
.onb-step p{margin:2px 0 0;font-size:.82rem;color:var(--ink-2)}
.steps-line{display:flex;align-items:center;gap:8px;margin:16px 0;justify-content:center}
.steps-line .st{width:28px;height:28px;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:.85rem;background:var(--card);font-weight:700}
.steps-line .st.cur{background:var(--green-deep);color:#fff;border-color:var(--green-deep)}
.steps-line .st.done{background:var(--lime);color:var(--ink);border-color:var(--lime)}
.steps-line .st-sep{width:24px;height:2px;background:var(--line)}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin:16px 0}
.plan{border:1.5px solid var(--line);border-radius:12px;padding:16px;text-align:center;cursor:pointer;transition:all .15s}
.plan.on{border-color:var(--green-deep);background:rgba(28,110,49,.06)}
.plan h5{margin:0 0 4px}
.plan p{font-size:.82rem;color:var(--ink-2);margin:0 0 8px}
.plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 14px}
@media (max-width:560px){.plan-grid{grid-template-columns:1fr}}
.plan-card{display:flex;flex-direction:column;min-height:210px;border:1.5px solid var(--line);border-radius:18px;padding:18px 16px 14px;cursor:pointer;background:var(--card);text-align:right;transition:border-color .15s,background .15s,box-shadow .15s}
.plan-card input{position:absolute;opacity:0;pointer-events:none}
.plan-card.on,.plan-card:has(input:checked){border-color:var(--green-deep);background:rgba(28,110,49,.07);box-shadow:0 0 0 3px rgba(28,110,49,.12)}
.plan-card .pc-tag{align-self:flex-start;font-size:.7rem;font-weight:700;padding:3px 10px;border-radius:999px;background:var(--card-2);color:var(--ink-2);margin-bottom:10px}
.plan-card h5{margin:0 0 12px;font-size:1.12rem;font-weight:800;letter-spacing:-.01em}
.plan-card ul{display:none}
.plan-card .pc-feat{font-size:.8rem;color:var(--ink-2);line-height:1.45;padding:8px 0;border-top:1px dashed var(--line)}
.plan-card .pc-feat:first-of-type{border-top:0;padding-top:0}
.req-stack{display:flex;flex-direction:column;gap:12px}
.req-item{border:1px solid var(--line);border-radius:16px;padding:14px 16px;background:var(--card)}
.bylaws-read{white-space:pre-wrap;line-height:1.9;padding:14px;border:1px dashed var(--line);border-radius:12px;background:var(--card-2);max-height:42vh;overflow:auto}
.pro-gate-wrap{min-height:68vh;display:grid;place-items:center;padding:24px 12px}
.pro-gate{width:min(100%,620px);border:1px solid var(--line);box-shadow:0 24px 70px rgba(20,53,31,.16)}
.pro-gate h2{margin:12px 0 6px;font-size:1.25rem}
.pro-gate .field input{text-align:center;letter-spacing:.3em;font-size:1.3rem;font-weight:800}
.req-item .ri-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.req-item .ri-name{font-weight:800;font-size:.95rem}
.req-item .ri-meta{font-size:.8rem;color:var(--ink-2);margin-top:4px;line-height:1.6}
.req-item .ri-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.req-status{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.decision-stamp{display:inline-flex;align-items:center;gap:4px;padding:5px 10px;border:2px dashed var(--stamp-ink);border-radius:7px;color:var(--stamp-ink);font-weight:900;font-size:.72rem;letter-spacing:.01em;transform:rotate(-2deg);background:transparent;white-space:nowrap}
.user-loans-head{align-items:flex-end}
.loan-request-picker{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
.loan-request-picker label{font-size:.74rem;color:var(--ink-2);font-weight:700;align-self:center}
.loan-inst-select{min-width:190px;max-width:min(300px,70vw);padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);font:inherit;font-size:.82rem;outline:none}
.loan-inst-select:focus{border-color:var(--green-deep);box-shadow:0 0 0 3px rgba(28,110,49,.12)}
.member-review-form{display:grid;gap:16px}
.member-review-section{padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--card-2)}
.member-review-section h4{color:var(--blue);font-size:.88rem;margin-bottom:10px}
.member-review-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:9px}
.member-review-value{display:grid;gap:4px;padding:10px 12px;border-radius:10px;background:var(--card)}
.member-review-value span{color:var(--ink-2);font-size:.72rem}
.member-review-value b{color:var(--ink);font-size:.86rem;overflow-wrap:anywhere}
.member-review-reason label{display:block;margin-bottom:7px;font-weight:700}
.member-review-error{gap:8px}
.udash-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:4px 0 14px}
.udash-stat{background:var(--card-2);border-radius:14px;padding:12px 14px}
.udash-stat b{display:block;font-size:1.15rem;font-weight:800}
.udash-stat span{font-size:.78rem;color:var(--ink-2)}
.udash-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px 14px;margin:8px 0 4px}
.udash-fields .uf{background:var(--card-2);border-radius:12px;padding:10px 12px}
.udash-fields .uf label{display:block;font-size:.72rem;color:var(--ink-2);margin-bottom:2px}
.udash-fields .uf div{font-weight:700;font-size:.88rem}
.drop-panel,.notif-item,.dp-item,.profile-chip,.pc-t,.pc-t b,.pc-t span{font-family:'IBM Plex Sans Arabic','DM Sans',Tahoma,sans-serif !important}

/* ── بهبود منوی تنظیمات — فقط فاصله و فونت ── */
#setBody{padding:22px 22px 10px}
.set-sec{margin-bottom:20px !important;border-radius:16px;overflow:hidden}
.set-sec .card-h{padding:16px 20px;background:var(--card-2);border-bottom:1.5px solid var(--line)}
.set-sec .card-h h3{font-size:1rem;font-weight:800;display:flex;align-items:center;gap:9px}
.set-sec .card-h .hint-t{font-size:.8rem;color:var(--ink-2);margin-inline-start:auto}
.set-sec .sec-b{padding:18px 20px}
.setting-row{padding:14px 6px !important;gap:16px !important}
.setting-row .sr-t b{font-size:.93rem !important;font-weight:700}
.setting-row .sr-t p{font-size:.8rem !important;line-height:1.8 !important;margin-top:4px !important}
#secOrg .sec-b .fields,#secFa .sec-b .fields,#secFin .sec-b .fields,#secNotif .sec-b .fields,#secUi .sec-b .fields,#secRoles .sec-b,#secUsers .sec-b,#secData .sec-b{gap:16px 18px}
.card.tight .card-b{padding:18px 20px}
.m-sec{border-radius:14px;margin-bottom:16px}
.m-sec-h{padding:13px 16px;font-size:.86rem;font-weight:700}
.m-sec-b{padding:18px}
#fldList .setting-row{padding:12px 8px;border-radius:10px;transition:background .15s}
#fldList .setting-row:hover{background:rgba(28,110,49,.04)}

/* ── بهبود منوی اعضا — دقیقا مثل قالب اصلی ── */
.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.x-btn{width:32px;height:32px;border-radius:10px;border:1px solid var(--line);background:var(--card);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;color:var(--ink-2)}
.x-btn:hover{background:var(--card-2);color:var(--ink);border-color:var(--ink-2)}
.kv-list{display:flex;flex-direction:column}
.kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.86rem}
.kv:last-child{border-bottom:none}
.kv .k{color:var(--ink-2);font-weight:500}
.kv .v{font-weight:700;color:var(--ink)}
.mini-list{display:flex;flex-direction:column;gap:2px}
.mini-item{display:flex;align-items:center;gap:12px;padding:10px 8px;border-radius:10px;transition:background .15s}
.mini-item:hover{background:rgba(28,110,49,.04)}
.mi-t{display:flex;flex-direction:column;flex:1;min-width:0}
.mi-t b{font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mi-t span{font-size:.75rem;color:var(--ink-2);margin-top:2px}
.mi-v{font-weight:700;font-size:.85rem;white-space:nowrap}
.mi-v.pos{color:var(--green-deep)}
.mi-v.neg{color:var(--red)}
.cell-main .avatar{flex:none}
.row-link{color:var(--ink);text-decoration:none;font-weight:700}
.row-link:hover{color:var(--green-deep);text-decoration:underline}
.pager{display:flex;align-items:center;gap:10px}
.tf-info{font-size:.82rem;color:var(--ink-2)}

/* ── استامپ — طراحی قبلی حفظ شد ── */
.stamp-fx{position:fixed; inset:0; z-index:4000; pointer-events:none; display:flex; align-items:flex-end; justify-content:flex-start; padding:34px}
.stamp{color:#B3261E; opacity:0; transform:scale(2.5) rotate(-30deg); filter:blur(1px); border:3px solid currentColor; border-radius:12px; padding:8px 14px; font-weight:900; font-size:1.4rem; background:rgba(255,255,255,.9); box-shadow:0 4px 20px rgba(0,0,0,.15)}
.stamp-fx.go .stamp{animation:stampPress .46s cubic-bezier(.2,.9,.25,1.2) forwards}
.stamp-fx.go{animation:stampShake .5s ease-out}
.stamp-fx.lift .stamp{animation:stampLift .45s ease forwards}
@keyframes stampPress{0%{opacity:0;transform:scale(2.5) rotate(-30deg);filter:blur(4px)}40%{opacity:.96;transform:scale(1.05) rotate(-14deg);filter:blur(0)}70%{transform:scale(.98) rotate(-12deg)}100%{opacity:.96;transform:scale(1) rotate(-12deg);filter:blur(0)}}
@keyframes stampShake{0%,52%{transform:none}60%{transform:translate(2px,4px) rotate(.35deg)}78%{transform:translate(-2px,1px) rotate(-.2deg)}100%{transform:none}}
@keyframes stampLift{from{opacity:.96; transform:scale(1) rotate(-12deg)} to{opacity:0; transform:scale(1.05) rotate(-12deg) translateY(-18px)}}

/* ═══════════════════════════════════════════════════════════════════
   تم تیره — body.theme-dark
   بازنویسی پالت پایه + مؤلفه‌هایی که رنگ‌های سفت (hardcode) دارند.
   ═══════════════════════════════════════════════════════════════════ */
body.theme-dark{
  --paper:#0C130E;
  --card:#16241B;
  --card-2:#101B14;
  --ink:#EAF3E5;
  --ink-2:#9FBEA6;
  --line:rgba(233,242,228,.15);
  --green-deep:#3BAF5F;
  --lime:#B7E45E;
  --red:#E27664;  --red-bg:rgba(226,118,100,.14);  --red-line:rgba(226,118,100,.4);
  --amber:#E5B84E; --amber-bg:rgba(229,184,78,.14); --amber-line:rgba(229,184,78,.38);
  --teal:#54C4B6; --teal-bg:rgba(84,196,182,.14);
  --blue:#7FB0E8; --blue-bg:rgba(127,176,232,.14);
  --grid-clr:rgba(233,242,228,.09);
  --grid-strong:rgba(233,242,228,.24);
  color-scheme:dark;
}
body.theme-dark .app{background:var(--paper)}
/* هدر » شیشه تیره */
body.theme-dark .app-header{background:rgba(12,19,14,.88)}
/* سایدبار آگاهانه با --ink ساخته شده؛ در تم تیره خودش تیره می‌ماند */
body.theme-dark .sidebar{background:#122019; color:#E9F2E4}
body.theme-dark .avatar.ink{background:#2A4634}
/* دکمه‌ها و کنترل‌های دیداری */
body.theme-dark .btn-ghost{background:rgba(234,243,229,.06); border-color:rgba(233,242,228,.3); color:var(--ink)}
body.theme-dark .btn-ghost:hover{border-color:var(--ink-2)}
body.theme-dark .btn-solid{box-shadow:0 12px 24px -12px rgba(0,0,0,.7)}
body.theme-dark .icon-btn:hover,body.theme-dark .profile-chip:hover{background:var(--card-2)}
body.theme-dark .hamb{background:var(--card); color:var(--ink)}
/* فیلدها */
body.theme-dark .inp, body.theme-dark .field input, body.theme-dark .field select, body.theme-dark .field textarea,
body.theme-dark .m-modal select, body.theme-dark .m-modal input[type="text"], body.theme-dark .m-modal input[type="password"],
body.theme-dark .m-modal input[type="tel"], body.theme-dark .m-modal input[type="email"], body.theme-dark .m-modal input[type="number"],
body.theme-dark .m-modal input[type="time"], body.theme-dark .m-modal textarea{background:var(--card-2); color:var(--ink)}
body.theme-dark .field input:focus, body.theme-dark .field select:focus, body.theme-dark .field textarea:focus, body.theme-dark .inp:focus{border-color:var(--green-deep); box-shadow:0 0 0 3px rgba(183,228,94,.28)}
body.theme-dark .chk input{background:var(--card-2)}
body.theme-dark .chk input:checked{background:var(--green-deep)}
body.theme-dark .sw input{background:rgba(233,242,228,.25)}
body.theme-dark .sw input:checked{background:var(--green-deep)}
body.theme-dark .qsearch input{background:var(--card-2)}
/* تقویم شمسی */
body.theme-dark .jd-btn{background:rgba(59,175,95,.16); color:var(--green-deep)}
body.theme-dark .jd-btn:hover{background:rgba(59,175,95,.26)}
body.theme-dark .jd-head select, body.theme-dark .jd-nav{background:var(--card-2); color:var(--ink)}
body.theme-dark .jd-nav:hover, body.theme-dark .jd-d:hover, body.theme-dark .jd-foot button:hover{background:rgba(59,175,95,.16)}
body.theme-dark .jd-d.sel{color:#0C130E}
/* جدول و نوار ابزار */
body.theme-dark .tbl tbody td{border-bottom-color:var(--line)}
body.theme-dark .tbl tbody tr:hover{background:rgba(59,175,95,.07)}
body.theme-dark .toolbar{box-shadow:0 14px 30px -28px rgba(0,0,0,.65)}
body.theme-dark .toolbar .t-search input, body.theme-dark .t-select, body.theme-dark .t-money, body.theme-dark .t-jd input{background:var(--card-2); color:var(--ink)}
body.theme-dark .toolbar .t-search input:focus{box-shadow:0 0 0 3px rgba(183,228,94,.26)}
body.theme-dark .pg-btn{background:var(--card-2)}
body.theme-dark .pg-btn.on, body.theme-dark .chip.on, body.theme-dark .m-sec-h .sn, body.theme-dark .steps li.done .st-n, body.theme-dark .jd-d.sel, body.theme-dark .sb-item.on{color:#0C130E}
body.theme-dark .tab .tc{background:rgba(233,242,228,.14)}
body.theme-dark .tab.on .tc{background:var(--lime); color:#0C130E}
body.theme-dark .chip:hover:not(.on){color:var(--lime); border-color:var(--lime)}
/* مودال/دراور */
body.theme-dark .m-overlay, body.theme-dark .drawer-wrap{background:rgba(4,8,5,.62)}
body.theme-dark .m-sec{background:var(--card)}
body.theme-dark .m-modal, body.theme-dark .m-drawer{box-shadow:0 44px 100px -40px rgba(0,0,0,.8)}
/* آلرت‌ها — متن روشن برای زمینهٔ تیره */
body.theme-dark .alert.a-err{color:#F4BBB1}
body.theme-dark .alert.a-warn{color:#F3D9A0}
body.theme-dark .alert.a-ok{color:#A7E3B2}
body.theme-dark .alert.a-info{color:#BAD8F3}
/* اسکلت/خالی/مراحل */
body.theme-dark .skel{background:rgba(233,242,228,.09)}
body.theme-dark .skel::after{background:linear-gradient(90deg,transparent,rgba(233,242,228,.12),transparent)}
body.theme-dark .empty .e-ic{background:rgba(59,175,95,.14)}
body.theme-dark .steps li .st-n{background:rgba(233,242,228,.14)}
body.theme-dark .steps li::before{background:rgba(233,242,228,.14)}
body.theme-dark .steps li.cur .st-n{background:var(--card); border-color:var(--lime); color:var(--lime); box-shadow:0 0 0 4px rgba(183,228,94,.14)}
body.theme-dark .steps li.cur{color:var(--lime)}
body.theme-dark .steps-line .st{background:var(--card-2)}
body.theme-dark .dropzone{background:rgba(59,175,95,.07)}
body.theme-dark .dropzone:hover, body.theme-dark .dropzone.over{background:rgba(183,228,94,.1)}
body.theme-dark .prog{background:rgba(233,242,228,.14)}
body.theme-dark .cell-inp:hover, body.theme-dark .cell-inp:focus{background:var(--card-2)}
body.theme-dark .cell-inp:focus{box-shadow:0 0 0 2px rgba(183,228,94,.3)}
body.theme-dark .role-btn.on, body.theme-dark .plan.on{background:rgba(59,175,95,.1)}
body.theme-dark .ch-pager .chp-range{background:rgba(59,175,95,.12); border-color:rgba(59,175,95,.26)}
body.theme-dark .ch-pager .chp-range i{border-inline-start-color:rgba(59,175,95,.3)}
/* توست/تولتیپ/لاگ — سطح‌هایی که آگاهانه با --ink تیره بودند */
body.theme-dark .g-toast, body.theme-dark .chart-tip{background:#0B120E; color:#F0F7EC; border:1px solid var(--line)}
body.theme-dark .g-toast.t-ok{background:var(--green-deep); color:#0C130E; border-color:transparent}
body.theme-dark .g-toast.t-err{background:var(--red); color:#0C130E; border-color:transparent}
body.theme-dark .g-toast.t-warn{background:var(--amber); color:#0C130E; border-color:transparent}
body.theme-dark [data-tip]:hover::after{background:#0B120E; color:#F0F7EC; border:1px solid var(--line)}
body.theme-dark .batch-log{background:#0B120E}
body.theme-dark .b-gray{background:rgba(233,242,228,.13)}
/* بج روشن lime متن تیره می‌خواهد — بدون تغییر */
/* سایه‌ها لطیف‌تر */
body.theme-dark .stat, body.theme-dark .card{box-shadow:0 14px 30px -26px rgba(0,0,0,.7)}
body.theme-dark .tone-green{--tone:#8BDD9C;--tone-bg:rgba(139,221,156,.14)}
body.theme-dark .tone-blue{--tone:#89C8F1;--tone-bg:rgba(86,167,220,.16)}
body.theme-dark .tone-amber{--tone:#F0BE68;--tone-bg:rgba(240,190,104,.15)}
body.theme-dark .tone-teal{--tone:#77D4CC;--tone-bg:rgba(70,185,173,.15)}
body.theme-dark .tone-red{--tone:#F19A91;--tone-bg:rgba(241,154,145,.14)}
body.theme-dark .tone-violet{--tone:#C5A6F2;--tone-bg:rgba(167,130,222,.16)}
body.theme-dark .notif-item .ni-title,body.theme-dark .portal-notif .pn-copy>b{color:#8BDD9C}
body.theme-dark .notif-item.tone-red .ni-title,body.theme-dark .portal-notif.tone-red .pn-copy>b{color:var(--tone)}
body.theme-dark .notif-item .ni-detail em,body.theme-dark .portal-notif .pn-inst{color:#F19A91}
body.theme-dark .stat.s-blue .s-ic{color:#89C8F1}
body.theme-dark .stat.s-purple .s-ic{color:#C5A6F2}
body.theme-dark .stat.s-cyan .s-ic{color:#77D4CC}
/* انتخاب متن */
body.theme-dark ::selection{background:rgba(183,228,94,.3)}
/* وضعیت برجستهٔ نتایج جستجوی سریع (کیبورد) */
.dp-item.qs-hl{background:rgba(28,110,49,.1)}
body.theme-dark .dp-item.qs-hl{background:rgba(59,175,95,.14)}

/* ═══════════ ۱۴۰۵ — پلیس‌هولدر راست‌چین (RTL) ═══════════ */
.inp::placeholder,
.field input::placeholder,
.field select::placeholder,
.field textarea::placeholder,
.m-modal input::placeholder,
.m-modal textarea::placeholder,
.m-drawer input::placeholder,
.m-drawer textarea::placeholder{direction:rtl; text-align:right}

/* ═══════════ بخش‌های رنگی فرم‌های چندبخشی (عضو/وام) ═══════════ */
.m-sec.t-green{border-color:rgba(28,110,49,.28)}
.m-sec.t-green>.m-sec-h{background:linear-gradient(90deg,rgba(28,110,49,.10),rgba(28,110,49,.03));color:#1C6E31;border-bottom-color:rgba(28,110,49,.16)}
.m-sec.t-green>.m-sec-h .sn{background:#1C6E31}
.m-sec.t-amber{border-color:rgba(217,138,27,.34)}
.m-sec.t-amber>.m-sec-h{background:linear-gradient(90deg,rgba(217,138,27,.12),rgba(217,138,27,.04));color:#94610C;border-bottom-color:rgba(217,138,27,.20)}
.m-sec.t-amber>.m-sec-h .sn{background:#D98A1B}
.m-sec.t-blue{border-color:rgba(21,101,192,.26)}
.m-sec.t-blue>.m-sec-h{background:linear-gradient(90deg,rgba(21,101,192,.09),rgba(21,101,192,.03));color:#0E4D96;border-bottom-color:rgba(21,101,192,.15)}
.m-sec.t-blue>.m-sec-h .sn{background:#1565C0}
body.theme-dark .m-sec.t-green>.m-sec-h{color:#7ED494;background:linear-gradient(90deg,rgba(63,175,95,.16),rgba(63,175,95,.05));border-bottom-color:rgba(126,212,148,.16)}
body.theme-dark .m-sec.t-amber>.m-sec-h{color:#F0B45F;background:linear-gradient(90deg,rgba(217,138,27,.18),rgba(217,138,27,.06));border-bottom-color:rgba(240,180,95,.16)}
body.theme-dark .m-sec.t-blue>.m-sec-h{color:#8FB9EC;background:linear-gradient(90deg,rgba(90,150,230,.17),rgba(90,150,230,.05));border-bottom-color:rgba(143,185,236,.15)}

/* ═══════════ انتخاب منبع داده (تنظیمات ▸ اتصال سرور) ═══════════ */
.ds-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:6px}
.ds-card{position:relative;display:flex;gap:11px;align-items:flex-start;border:1.5px solid var(--line);border-radius:14px;background:var(--card);padding:13px 14px;cursor:pointer;transition:border-color .15s, background .15s, box-shadow .15s}
.ds-card:hover{border-color:var(--ink-2)}
.ds-card.on{border-color:var(--green-deep);background:rgba(28,110,49,.05);box-shadow:0 0 0 3px rgba(28,110,49,.07)}
.ds-card .ds-ic{width:36px;height:36px;border-radius:11px;background:var(--card-2);display:inline-flex;align-items:center;justify-content:center;color:var(--ink-2);flex:none;transition:.15s}
.ds-card.on .ds-ic{background:var(--green-deep);color:#fff}
.ds-card .ds-t{flex:1;min-width:0}
.ds-card .ds-t b{font-size:.88rem;display:block}
.ds-card .ds-t p{font-size:.74rem;color:var(--ink-2);margin-top:3px;line-height:1.7}
.ds-card .ds-check{position:absolute;top:10px;left:10px;width:20px;height:20px;border-radius:50%;background:var(--green-deep);color:#fff;display:inline-flex;align-items:center;justify-content:center}
.ds-card:not(.on) .ds-check{display:none}
body.theme-dark .ds-card.on{background:rgba(183,228,94,.06);box-shadow:0 0 0 3px rgba(183,228,94,.06)}
@media(max-width:640px){.ds-grid{grid-template-columns:1fr}}

/* ═══════════ ویرایشگر اقساط متغیر (فرم وام) ═══════════ */
.var-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px dashed var(--line);border-bottom:0;border-radius:12px 12px 0 0;background:var(--card-2);padding:9px 12px;font-size:.84rem}
.var-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border:1px dashed var(--line);border-top:0;padding:12px;max-height:238px;overflow:auto;background:var(--card)}
@media(max-width:640px){.var-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.var-it{display:flex;align-items:center;gap:6px;min-width:0}
.var-it .vn{min-width:26px;height:30px;display:inline-flex;align-items:center;justify-content:center;background:var(--card-2);border:1px solid var(--line);border-radius:8px;font-size:.72rem;font-weight:700;color:var(--ink-2);flex:none}
.var-it .vamt{height:32px;padding:5px 8px;font-size:.8rem;border-radius:9px}
.var-sum{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border:1px dashed var(--line);border-top:0;border-radius:0 0 12px 12px;background:var(--card-2);padding:8px 12px;font-size:.8rem}
body.theme-dark .var-it .vn{background:var(--card);}

/* ═══════════ صف تخصیص مبلغ پرداخت (فرم پرداخت — دمو و سرور) ═══════════ */
.pq-box{border:1px dashed var(--line);border-radius:12px;background:var(--card);padding:10px 12px;max-height:280px;overflow:auto}
.pq-empty{font-size:.8rem;color:var(--ink-2);padding:10px 4px;text-align:center}
.pq-head{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:.82rem;padding-bottom:8px;border-bottom:1px solid var(--line);margin-bottom:4px}
.pq-rem{font-size:.76rem;color:var(--ink-2)}
.pq-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:7px 4px;border-bottom:1px dashed var(--line);font-size:.8rem}
.pq-row:last-child{border-bottom:none}
.pq-row.wait{opacity:.45}
.pq-row.part{background:rgba(217,138,27,.07)}
.pq-row.full, .pq-row.done{background:rgba(28,110,49,.06)}
.pq-n{display:inline-flex;align-items:center;gap:5px;min-width:0;font-weight:600}
.pq-date-picker{position:relative;display:inline-flex!important;align-items:center;width:28px;height:28px;flex:none;vertical-align:middle}
.pq-date-picker .jd-btn{inset-inline-end:0;top:50%;width:28px;height:28px;transform:translateY(-50%);border:1px solid rgba(28,110,49,.18);border-radius:8px;background:rgba(28,110,49,.07);color:var(--green-deep)}
.pq-date-picker .jd-btn:hover{background:rgba(28,110,49,.15)}
.pq-m{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:embed}
.pq-tick{display:inline-flex;align-items:center;gap:4px;font-size:.72rem;color:var(--green-deep);font-weight:700;white-space:nowrap}
.pq-row.wait .pq-tick{color:var(--ink-2);font-weight:400}
.pq-over{display:flex;align-items:center;gap:6px;margin-top:8px;padding:9px 11px;border-radius:10px;background:rgba(179,54,43,.08);color:var(--red);font-size:.78rem;font-weight:600}
.pq-total{background:var(--card-2);font-weight:700;border-radius:8px}
.bulk-ol{margin:0 0 14px;padding-inline-start:22px;line-height:1.9;font-size:.88rem;color:var(--ink-2)}
.bulk-ol li{margin:0 0 4px}
.bulk-drop{border:1.5px dashed var(--line);border-radius:14px;padding:28px 16px;text-align:center;cursor:pointer;color:var(--ink-2);background:var(--card-2)}
.bulk-drop.on{border-color:var(--green-deep);background:rgba(28,110,49,.06)}
.bulk-row.st-invalid td{background:rgba(179,54,43,.06)}
.bulk-row.st-duplicate td{background:rgba(217,138,27,.07)}
.bulk-row.st-incomplete td{background:rgba(20,53,31,.03)}
#bulkTbl input{width:100%;min-width:90px;font-size:.82rem;padding:6px 8px;border:1px solid var(--line);border-radius:8px;background:var(--card)}
@media(max-width:720px){
  .loan-request-picker{width:100%;align-items:stretch}
  .loan-request-picker label{width:100%}
  .loan-inst-select{flex:1;max-width:none;min-width:130px}
  .org-switch-menu{inset-inline-start:auto;inset-inline-end:0}
  .portal-notif{gap:9px;padding:11px}
  .portal-notif time{display:none}
}
