/* ============================================================
   چیدمان: سایدبار، توپ‌بار، ناوبری، LOGIN، آمار
   ============================================================ */

/* ---------- LOGIN (تمام‌صفحه) ---------- */
.login-screen{
  min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr;
}
.login-side{
  background:
    radial-gradient(700px 420px at -10% 0%,rgba(108,92,231,.35),transparent 60%),
    radial-gradient(640px 400px at 100% 100%,rgba(168,85,247,.28),transparent 55%),
    linear-gradient(135deg,var(--accent),var(--accent-2));
  padding:3rem;display:flex;flex-direction:column;justify-content:space-between;color:#fff;position:relative;overflow:hidden;
}
.login-side::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(255,255,255,.14) 1.2px,transparent 1.3px);
  background-size:24px 24px;opacity:.35;
}
.login-side .brand-lg{display:flex;align-items:center;gap:.9rem;position:relative;z-index:1}
.login-side .brand-lg .logo{width:54px;height:54px;border-radius:16px;background:rgba(255,255,255,.16);display:grid;place-items:center;font-weight:900;font-size:1.6rem;backdrop-filter:blur(6px)}
.login-side .pitch{position:relative;z-index:1;max-width:440px}
.login-side .pitch h1{font-size:2.1rem;line-height:1.6;font-weight:900;margin-bottom:1rem;text-shadow:0 8px 30px rgba(0,0,0,.25)}
.login-side .pitch p{font-size:1rem;opacity:.92}
.login-side .pitch p.di{font-size:.86rem;opacity:.72;margin-top:1.4rem}
.login-side .foot{font-size:.8rem;opacity:.7;position:relative;z-index:1}
.login-form-wrap{display:grid;place-items:center;padding:2.5rem}
.login-cardbox{width:100%;max-width:430px;padding:2.3rem 2.2rem;background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);backdrop-filter:blur(14px);box-shadow:var(--shadow)}
.login-cardbox .lc-head{text-align:center;margin-bottom:1.8rem}
.login-cardbox .lc-head .lc-ic{width:60px;height:60px;margin:0 auto 1rem;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-size:1.7rem;box-shadow:0 14px 32px rgba(108,92,231,.45)}
.login-cardbox .lc-head h1{font-size:1.35rem;font-weight:800}
.login-cardbox .lc-head p{font-size:.84rem;color:var(--muted);margin-top:.3rem}
.login-err{display:none;background:rgba(239,66,103,.14);border:1px solid rgba(239,66,103,.3);color:#ffb3c2;padding:.6rem .85rem;border-radius:var(--radius-sm);font-size:.82rem;margin-bottom:.9rem}
.login-err.show{display:block}
.login-quick{margin-top:1.4rem;padding-top:1.1rem;border-top:1px dashed var(--line);font-size:.78rem;color:var(--muted);text-align:center}

/* حالت ورود باید یک صفحهٔ مستقل و بدون منو باشد. */
body.auth-only #app{display:block;min-height:100vh}
body.auth-only .sidebar,
body.auth-only .topbar{display:none}
body.auth-only .main{width:100%;min-height:100vh}
body.auth-only #view-root.page{max-width:none;min-height:100vh;padding:0}
body.auth-only .login-screen{grid-template-columns:1fr;width:100%;min-height:100vh}
body.auth-only .login-form-wrap{padding:2rem 1rem}

@media (max-width:860px){
  .login-screen{grid-template-columns:1fr}
  .login-side{display:none}
}

/* ---------- سایدبار ---------- */
.sidebar{
  width:262px;flex-shrink:0;background:var(--panel);border-left:1px solid var(--line);
  position:sticky;top:0;height:100vh;display:flex;flex-direction:column;
}
.brand{display:flex;align-items:center;gap:.75rem;padding:1.2rem 1.3rem}
.brand .logo{
  width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));
  display:grid;place-items:center;font-weight:900;font-size:1.15rem;box-shadow:0 10px 24px rgba(108,92,231,.4);flex-shrink:0;
}
.brand .b-name{font-weight:800;font-size:1.05rem;line-height:1.4}
.brand .b-sub{font-size:.72rem;color:var(--faint)}
.nav{flex:1;padding:.4rem .85rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem}
.nav-sep{font-size:.72rem;color:var(--faint);font-weight:700;padding:.8rem .7rem .35rem}
.nav-item{display:flex;align-items:center;gap:.8rem;padding:.66rem .8rem;border-radius:var(--radius-sm);font-weight:600;font-size:.92rem;color:var(--text-2);transition:all .15s;position:relative}
.nav-item .ic{width:32px;height:32px;border-radius:9px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;flex-shrink:0;font-size:.95rem}
.nav-item:hover{background:var(--panel-2);color:var(--text)}
.nav-item.active{background:linear-gradient(135deg,rgba(108,92,231,.22),rgba(168,85,247,.14));color:#fff}
.nav-item.active .ic{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;border:0}
.nav-item .badge-ct{background:var(--accent);color:#fff;font-size:.68rem;font-weight:700;border-radius:99px;padding:.05rem .5rem;min-width:20px;text-align:center}
.sidefoot{padding:.8rem 1rem;border-top:1px solid var(--line);display:flex;align-items:center;gap:.7rem}
.sidefoot .u-ava{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-weight:800;flex-shrink:0}
.sidefoot .u-meta{flex:1;min-width:0}
.sidefoot .u-meta b{display:block;font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidefoot .u-meta span{font-size:.72rem;color:var(--faint)}
.out-btn{color:var(--muted);font-size:1.05rem}
.sidebar .sep{margin:0 1.3rem;border-top:1px solid var(--line)}

/* ---------- توپ‌بار ---------- */
.topbar{
  position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:1rem;
  padding:.85rem 1.7rem;background:rgba(11,16,36,.72);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.topbar .crumb{font-weight:800;font-size:1.1rem;display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}
.topbar .crumb small{font-weight:600;color:var(--faint)}
.menu-btn{display:none;width:40px;height:40px;border-radius:var(--radius-sm);border:1px solid var(--line);place-items:center;font-size:1.2rem}
.topbar-actions{display:flex;align-items:center;gap:.55rem}
.chip-user{display:flex;align-items:center;gap:.6rem;padding:.35rem .6rem .35rem .9rem;border-radius:99px;background:var(--panel-2);border:1px solid var(--line)}
.chip-user .cu-ava{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;font-weight:800;font-size:.8rem}
.chip-user .cu-name{font-size:.84rem;font-weight:700}
.chip-user .cu-role{font-size:.7rem;color:var(--faint)}
.role-pill{font-size:.7rem;font-weight:700;padding:.1rem .55rem;border-radius:99px}
.role-admin{background:linear-gradient(135deg,#fbbf24,#f59a0b);color:#1a1300}
.role-user{background:rgba(99,200,255,.16);color:var(--blue)}

/* ---------- بدنه صفحات ---------- */
.layout{display:flex;min-height:100vh}
.main{flex:1;min-width:0}
.page{padding:1.6rem 1.7rem 2.2rem;max-width:1240px;margin:0 auto}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem;flex-wrap:wrap}
.page-head h2{font-size:1.3rem;font-weight:800;display:flex;align-items:center;gap:.6rem}
.page-head h2 .dot{width:10px;height:10px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 0 0 4px rgba(108,92,231,.22)}
.page-head .actions{display:flex;gap:.55rem;flex-wrap:wrap}

/* ---------- کارت‌های آمار ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.4rem}
.stat-card{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);
  padding:1.15rem 1.25rem;position:relative;overflow:hidden;transition:all .18s;
}
.stat-card:hover{transform:translateY(-3px);border-color:rgba(108,92,231,.5);box-shadow:var(--shadow)}
.stat-card .sc-icon{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-size:1.2rem;margin-bottom:.8rem}
.stat-card .sc-label{font-size:.8rem;color:var(--muted);font-weight:600}
.stat-card .sc-value{font-size:1.6rem;font-weight:800;margin-top:.15rem;line-height:1.3}
.stat-card .sc-foot{font-size:.74rem;color:var(--faint);margin-top:.2rem}
.tone-a{background:rgba(108,92,231,.16);color:var(--accent)}
.tone-b{background:rgba(53,211,153,.14);color:var(--green)}
.tone-c{background:rgba(245,183,68,.14);color:var(--amber)}
.tone-d{background:rgba(239,66,103,.14);color:var(--red)}

@media (max-width:1000px){
  .stat-grid{grid-template-columns:repeat(2,1fr)}
  .sidebar{position:fixed;right:0;top:0;z-index:60;transform:translateX(100%);transition:transform .25s;box-shadow:var(--shadow)}
  body.nav-open .sidebar{transform:translateX(0)}
  .menu-btn{display:grid}
}
@media (max-width:560px){
  .stat-grid{grid-template-columns:1fr}
  .page{padding:1.1rem}
  .topbar{padding:.7rem 1rem}
}

/* ============================================================
   Modern Neumorphism Hybrid — لایهٔ بصری مشترک تمام صفحات
   ============================================================ */
:root{
  color-scheme:dark;
  --bg:#0d1328;--bg-2:#151d39;--panel:#151d38;--panel-2:#1d2748;
  --line:rgba(160,174,231,.14);--line-2:rgba(164,177,235,.22);
  --text:#f6f7ff;--text-2:#d5dcf5;--muted:#9da8ce;--faint:#737da6;
  --accent:#7867f2;--accent-2:#c35af3;
  --shadow-out:16px 16px 34px rgba(2,6,20,.58),-11px -11px 28px rgba(73,89,157,.12);
  --shadow-inset:inset 7px 7px 15px rgba(2,6,20,.38),inset -7px -7px 15px rgba(82,100,174,.10);
  --glass:rgba(21,29,56,.84);
}
:root[data-theme="light"]{
  color-scheme:light;
  --bg:#edf1f8;--bg-2:#e6ebf4;--panel:#edf1f8;--panel-2:#f6f8fc;
  --line:rgba(58,75,117,.13);--line-2:rgba(58,75,117,.2);
  --text:#192440;--text-2:#3e4c6d;--muted:#66738f;--faint:#8b97af;
  --accent:#6959e9;--accent-2:#ad55e9;
  --shadow-out:16px 16px 34px rgba(151,165,191,.42),-12px -12px 28px rgba(255,255,255,.92);
  --shadow-inset:inset 7px 7px 15px rgba(158,170,195,.34),inset -7px -7px 15px rgba(255,255,255,.92);
  --glass:rgba(246,248,252,.86);
}
html{scroll-behavior:smooth}
body{background:radial-gradient(900px 480px at 88% -10%,rgba(120,103,242,.17),transparent 62%),radial-gradient(850px 500px at 0% 110%,rgba(195,90,243,.12),transparent 58%),var(--bg);transition:background .3s,color .3s;font-variant-numeric:tabular-nums}
.layout{gap:18px;padding:18px;min-height:100vh}
.sidebar{width:274px;height:calc(100vh - 36px);top:18px;border:1px solid var(--line);border-radius:28px;background:var(--glass);box-shadow:var(--shadow-out);backdrop-filter:blur(18px);overflow:hidden}
.brand{padding:1.35rem 1.25rem 1.2rem;border-bottom:1px solid var(--line)}
.brand .logo{width:48px;height:48px;border-radius:17px;box-shadow:0 12px 26px rgba(120,103,242,.38)}
.brand .b-name{font-size:1.08rem}.brand .b-sub{color:var(--muted)}
.nav{padding:.9rem .8rem;gap:.35rem}
.nav-item{padding:.78rem .85rem;border:1px solid transparent;border-radius:16px;gap:.75rem;color:var(--text-2)}
.nav-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:var(--panel-2);box-shadow:var(--shadow-inset);font-size:1rem;color:var(--muted);flex-shrink:0}
.nav-item:hover{background:var(--panel-2);border-color:var(--line-2);transform:translateX(-2px)}
.nav-item.active{background:linear-gradient(135deg,rgba(120,103,242,.28),rgba(195,90,243,.17));border-color:rgba(153,131,255,.34);color:var(--text);box-shadow:var(--shadow-inset)}
.nav-item.active .nav-icon{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 8px 18px rgba(120,103,242,.35)}
.sidefoot{margin-top:auto;padding:1rem 1.05rem;border-top:1px solid var(--line);background:rgba(0,0,0,.06)}
.sidefoot strong{font-size:.84rem}.sidefoot .btn{margin-right:auto;padding:.45rem .7rem}
.main{min-width:0;padding:0}
.topbar{position:sticky;top:18px;margin-bottom:18px;border:1px solid var(--line);border-radius:22px;padding:.95rem 1.25rem;background:var(--glass);box-shadow:var(--shadow-out);backdrop-filter:blur(18px)}
.topbar .crumb{font-size:1.13rem}.topbar .crumb small{color:var(--muted)}
.theme-toggle,.login-theme-toggle{width:40px;height:40px;display:grid;place-items:center;border-radius:14px;border:1px solid var(--line);background:var(--panel-2);box-shadow:var(--shadow-inset);font-size:1.2rem;color:var(--text-2);transition:all .2s}
.theme-toggle:hover,.login-theme-toggle:hover{transform:translateY(-2px);color:var(--accent);border-color:var(--accent)}
.page{max-width:none;padding:0 0 2.5rem}
.page-head{padding:.45rem .2rem 0;margin-bottom:1.25rem}.page-head h2{font-size:1.45rem}.page-head h2 .dot{box-shadow:0 0 0 5px rgba(120,103,242,.18)}
.card,.panel-card,.table-wrap,.stat-card,.stat-box,.chart-box,.u-modal-box{border:1px solid var(--line)!important;border-radius:22px!important;background:var(--glass)!important;box-shadow:var(--shadow-out)!important;backdrop-filter:blur(14px)}
.card,.panel-card{padding:1.25rem}
.stat-grid{gap:1.1rem;margin-bottom:1.35rem}
.stat-card{padding:1.25rem;min-height:156px;transition:transform .2s,box-shadow .2s}
.stat-card:hover{transform:translateY(-4px);box-shadow:20px 20px 40px rgba(2,6,20,.48),-10px -10px 25px rgba(102,119,191,.13)!important}
.stat-card .sc-icon{border-radius:14px;box-shadow:var(--shadow-inset)}
.stat-card .sc-value{font-size:1.72rem;letter-spacing:-.02em}
.tone-a{background:linear-gradient(145deg,rgba(120,103,242,.23),rgba(120,103,242,.07))}.tone-b{background:linear-gradient(145deg,rgba(53,211,153,.18),rgba(53,211,153,.05))}.tone-c{background:linear-gradient(145deg,rgba(245,183,68,.18),rgba(245,183,68,.05))}.tone-d{background:linear-gradient(145deg,rgba(239,66,103,.18),rgba(239,66,103,.05))}
.btn{border-radius:14px;box-shadow:var(--shadow-inset);transition:transform .2s,box-shadow .2s}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 12px 24px rgba(120,103,242,.3);border:0}.btn-primary:hover{box-shadow:0 16px 28px rgba(120,103,242,.4)}.btn-ghost{background:var(--panel-2);border-color:var(--line)}
.field input,.field select,.field textarea{border-radius:14px;border-color:var(--line-2);background:var(--panel-2);box-shadow:var(--shadow-inset);padding:.75rem .9rem}.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 3px rgba(120,103,242,.18),var(--shadow-inset);border-color:var(--accent)}
.table-wrap{overflow:hidden}.table-wrap table{min-width:620px}.table-wrap thead th{background:rgba(120,103,242,.09);border-bottom-color:var(--line-2);padding:.9rem 1rem}.table-wrap tbody td{border-bottom-color:var(--line);padding:.82rem 1rem}.table-wrap tbody tr:hover{background:rgba(120,103,242,.08)}
.u-modal-backdrop{backdrop-filter:blur(8px);background:rgba(4,8,22,.65)}.u-modal-box{padding:1.5rem!important}.u-modal-x{border-radius:12px;background:var(--panel-2);box-shadow:var(--shadow-inset)}
.login-screen{min-height:calc(100vh - 36px);display:grid;place-items:center;background:transparent!important}
.login-cardbox{position:relative;max-width:470px;padding:2.55rem 2.35rem;background:var(--glass)!important;border:1px solid var(--line)!important;border-radius:28px!important;box-shadow:var(--shadow-out)!important;backdrop-filter:blur(22px)}
.login-theme-toggle{position:absolute;top:1rem;left:1rem}.login-cardbox .lc-head .lc-ic{border-radius:18px;box-shadow:0 14px 30px rgba(120,103,242,.38)}.login-cardbox .field input{height:48px}.login-quick{border-top-color:var(--line)}
:root[data-theme="light"] .btn-ghost:hover{color:var(--accent)}
:root[data-theme="light"] .sidefoot{background:rgba(255,255,255,.28)}
@media (max-width:1000px){.layout{padding:12px;gap:0}.sidebar{height:calc(100vh - 24px);top:12px}.topbar{top:12px}.page{padding:0 0 2rem}}
@media (max-width:560px){.layout{padding:10px}.sidebar{height:calc(100vh - 20px);top:10px}.topbar{top:10px;border-radius:18px}.login-cardbox{padding:2.2rem 1.25rem}.login-screen{min-height:calc(100vh - 20px)}}

/* ---------- لایهٔ محتوا و کارت‌های خوانا ---------- */
.page-head{align-items:flex-end;min-height:84px}
.page-head>div:first-child{flex:1;min-width:220px}
.ph-eyebrow,.eyebrow{display:block;color:var(--accent);font-size:.78rem;font-weight:900;letter-spacing:.02em;margin-bottom:.15rem}
.ph-title,.ph{font-size:clamp(1.45rem,2.2vw,2rem);font-weight:950;line-height:1.3;color:var(--text)}
.ph-sub{margin-top:.35rem;color:var(--muted);font-size:.88rem;font-weight:600}
.head-actions,.head-search,.ph-tools{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.head-actions .field{margin:0}.head-actions .field span{display:block;color:var(--muted);font-size:.76rem;font-weight:800;margin-bottom:.25rem}
.data-card{padding:1rem!important}
.stat-grid{align-items:stretch}
.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:154px;padding:1.4rem 1rem}
.stat-card .stat-label{font-size:.98rem;font-weight:950;color:var(--text-2);line-height:1.5}
.stat-card .stat-value{margin-top:.5rem;font-size:1.65rem;font-weight:950;line-height:1.25;direction:ltr;letter-spacing:.01em}
.stat-card .stat-value.money{font-variant-numeric:tabular-nums}
.charts-grid,.bottom-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,1fr);gap:1.15rem;margin-top:1.15rem}
.panel-card{min-width:0}.panel-card>h3{font-size:1rem;font-weight:950;color:var(--text-2);margin-bottom:1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.chart-box{height:290px;padding:1rem}.chart-box canvas{width:100%!important;height:100%!important}
.quick-links{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.quick-links .ql{display:flex;align-items:center;gap:.65rem;padding:.8rem;border-radius:16px;background:var(--panel-2);border:1px solid var(--line);font-weight:850;transition:.2s}.quick-links .ql:hover{transform:translateY(-2px);border-color:var(--accent)}.ql-ic{width:32px;height:32px;display:grid;place-items:center;border-radius:11px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:900}

/* ---------- کارت‌های خلاصه و جدول‌ها ---------- */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;margin-bottom:1.2rem}
.stat-row.card-inline{margin-bottom:1.35rem}
.stat-box{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:102px;padding:1rem 1.1rem}
.stat-box .sb-label{color:var(--muted);font-size:.82rem;font-weight:800;line-height:1.5}.stat-box b{margin-top:.35rem;color:var(--text);font-size:1.18rem;font-weight:950;direction:ltr}
.table-wrap{width:100%;margin-top:.35rem;overflow:auto;border-radius:18px!important}.table-wrap table{min-width:650px}.table-wrap td,.table-wrap th{font-weight:650}.table-wrap td.strong,.table-wrap .strong{font-weight:900;color:var(--text)}.table-wrap tfoot td{font-weight:950;background:rgba(120,103,242,.07);border-top:1px solid var(--line-2)}
.row-actions{display:flex;justify-content:flex-start;align-items:center;gap:.4rem;white-space:nowrap}.row-actions .icon-btn,.row-actions .btn{width:38px;height:38px;padding:0}.icon-btn.danger,.btn.danger{color:var(--red)}
.badge{display:inline-flex;align-items:center;justify-content:center;padding:.22rem .65rem;border-radius:99px;font-size:.76rem;font-weight:900;background:var(--panel-2);border:1px solid var(--line)}.badge.ok,.badge-on,.badge-ok{color:var(--green);background:rgba(53,211,153,.12)}.badge.off,.badge-off{color:var(--red);background:rgba(240,103,127,.12)}
.empty,.loading{display:grid;place-items:center;min-height:150px;padding:1.2rem;color:var(--muted);font-weight:700;text-align:center}.hint{color:var(--muted);font-size:.8rem;margin:.7rem 0}.form-actions{display:flex;justify-content:flex-start;gap:.65rem;flex-wrap:wrap;margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--line)}

/* ---------- فیلترهای جمع‌شونده ---------- */
.filter-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel-2);box-shadow:var(--shadow-inset);margin-bottom:1rem;overflow:hidden}.filter-panel summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:.75rem;padding:.9rem 1rem;font-weight:950;color:var(--text)}.filter-panel summary::-webkit-details-marker{display:none}.filter-panel summary::before{content:"＋";width:28px;height:28px;display:grid;place-items:center;border-radius:9px;background:var(--glass);color:var(--accent);font-size:1.1rem}.filter-panel[open] summary::before{content:"−"}.filter-hint{font-size:.76rem;color:var(--muted);font-weight:650}.filter-panel .filters{padding:0 1rem 1rem}
.filters{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;align-items:end;gap:.85rem}.filters .field{margin:0}.field-btn{display:flex;align-items:flex-end}.field-btn .btn{height:45px}
.report-filter{margin:0 0 1rem}.report-filter-body{display:flex;align-items:flex-end;gap:.8rem;padding:0 1rem 1rem}.report-filter-body .field{margin:0;min-width:180px}.report-filter-body .field span{display:block;color:var(--muted);font-size:.76rem;font-weight:800;margin-bottom:.25rem}

/* ---------- مودال واقعی برای فرم‌های ثبت و ویرایش ---------- */
.u-modal-backdrop{position:fixed;inset:0;z-index:120;display:grid;place-items:center;padding:1rem;overflow:auto;background:rgba(7,11,28,.66)!important;backdrop-filter:blur(12px)}
.u-modal-box{position:relative;width:min(640px,100%);max-height:min(88vh,780px);overflow:auto;padding:1.5rem!important;background:var(--glass)!important}
.u-modal-title{font-size:1.2rem;font-weight:950;color:var(--text);padding:0 2.5rem .9rem 0;border-bottom:1px solid var(--line);margin-bottom:1.1rem}.u-modal-body{padding:.1rem}.u-modal-x{position:absolute;top:1rem;left:1rem;width:36px;height:36px;font-size:1.35rem;line-height:1;border:1px solid var(--line);color:var(--muted);cursor:pointer}.u-modal-x:hover{color:var(--red);border-color:var(--red)}
.u-confirm-msg{font-size:1rem;font-weight:750;padding:.5rem 0 1rem}.u-confirm-actions{display:flex;gap:.65rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:1rem}
.field-full{grid-column:1/-1}

/* ---------- صفحه گزارش و ممیزی ---------- */
.card>h3,.data-card>h3{font-size:1rem;font-weight:950;color:var(--text-2);margin:1.4rem 0 .8rem}.card>h3:first-child{margin-top:0}
.head-search input{min-width:230px;height:43px}.head-search .btn{height:43px}
.field-hint{display:block;margin-top:.35rem;color:var(--muted);font-size:.72rem;font-weight:650;line-height:1.5}

@media (max-width:900px){.charts-grid,.bottom-grid{grid-template-columns:1fr}.filters{grid-template-columns:repeat(2,minmax(140px,1fr))}.filters .field-btn{grid-column:1/-1}.page-head{align-items:flex-start}}
@media (max-width:560px){.page-head{min-height:0}.ph-title,.ph{font-size:1.45rem}.ph-sub{font-size:.8rem}.stat-grid{grid-template-columns:1fr 1fr}.stat-card{min-height:132px}.stat-card .stat-value{font-size:1.22rem}.quick-links{grid-template-columns:1fr}.stat-row{grid-template-columns:1fr}.filters{grid-template-columns:1fr}.filter-hint{display:none}.u-modal-box{padding:1.15rem!important}.form-grid{grid-template-columns:1fr}.field-full{grid-column:auto}}

/* ---------- سایدبار جمع‌شونده ---------- */
.sidebar{transition:width .28s ease,box-shadow .28s ease}
.brand{position:relative;min-height:88px}
.sidebar-collapse{width:34px;height:34px;display:grid;place-items:center;margin-right:auto;border:1px solid var(--line);border-radius:11px;background:var(--panel-2);box-shadow:var(--shadow-inset);font-size:1.45rem;line-height:1;color:var(--muted);transition:transform .2s,color .2s,border-color .2s}
.sidebar-collapse:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}
body.sidebar-collapsed .sidebar{width:88px}
body.sidebar-collapsed .brand{justify-content:center;padding-left:.65rem;padding-right:.65rem}
body.sidebar-collapsed .brand>div:not(.logo){display:none}
body.sidebar-collapsed .sidebar-collapse{position:absolute;left:10px;top:12px;margin:0}
body.sidebar-collapsed .nav{padding-left:.65rem;padding-right:.65rem}
body.sidebar-collapsed .nav-item{justify-content:center;padding:.7rem 0;gap:0}
body.sidebar-collapsed .nav-item>span:last-child{display:none}
body.sidebar-collapsed .nav-icon{width:40px;height:40px;font-size:1.1rem}
body.sidebar-collapsed .sidefoot{justify-content:center;padding:.9rem .5rem;gap:0}
body.sidebar-collapsed .sidefoot>strong,body.sidebar-collapsed .sidefoot>.badge{display:none}
body.sidebar-collapsed .sidefoot .btn{width:46px;height:42px;padding:0;margin:0}
body.sidebar-collapsed .sidefoot .logout-text{display:none}
body.sidebar-collapsed .sidefoot .logout-icon{font-size:1.25rem}
@media (max-width:1000px){.sidebar-collapse{display:grid}}

/* داشبورد: جدول تراکنش‌ها تمام عرض باشد و بدون اسکرول افقی خوانده شود. */
.bottom-grid{display:block;margin-top:1.15rem}
.dashboard-recent{width:100%}
.dashboard-recent .table-wrap{overflow-x:visible}
.dashboard-recent table{min-width:0;table-layout:fixed;width:100%}
.dashboard-recent th:nth-child(1),.dashboard-recent td:nth-child(1){width:15%}
.dashboard-recent th:nth-child(2),.dashboard-recent td:nth-child(2){width:22%}
.dashboard-recent th:nth-child(3),.dashboard-recent td:nth-child(3){width:19%}
.dashboard-recent th:nth-child(4),.dashboard-recent td:nth-child(4){width:44%}
.dashboard-recent td:last-child{white-space:normal;overflow-wrap:anywhere}
@media (max-width:700px){.dashboard-recent .table-wrap{overflow-x:auto}.dashboard-recent table{min-width:600px}}

/* مودال‌ها: سایهٔ کنترل‌شده و بدون هالهٔ سفید اطراف پنجره */
.u-modal-backdrop{background:rgba(10,16,34,.58)!important;backdrop-filter:blur(6px)!important}
.u-modal-box{box-shadow:0 22px 52px rgba(7,13,31,.34)!important;backdrop-filter:none!important}
:root[data-theme="light"] .u-modal-box{box-shadow:0 22px 52px rgba(54,68,102,.24)!important}
.u-modal-box .field input,.u-modal-box .field select,.u-modal-box .field textarea{box-shadow:inset 3px 3px 8px rgba(81,97,137,.09),inset -3px -3px 8px rgba(255,255,255,.42)}

/* ---------- UC Voucher ---------- */
.code-cell{display:flex;align-items:center;gap:.55rem;direction:ltr;min-width:220px}.code-cell code{display:inline-block;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);font-size:.9rem;font-weight:850;letter-spacing:.04em;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:.48rem .68rem;direction:ltr;text-align:left}.copy-btn{border:1px solid rgba(120,103,242,.35);background:rgba(120,103,242,.1);color:var(--accent);border-radius:9px;padding:.42rem .65rem;font:inherit;font-size:.75rem;font-weight:900;cursor:pointer;transition:.2s;white-space:nowrap}.copy-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px)}.amount-positive{color:var(--green)!important}.used-muted{color:var(--muted)!important;opacity:.7}.price-used{text-decoration:line-through;text-decoration-thickness:1px}.used-code code{opacity:.62}.badge.used{color:var(--muted);background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.28)}.usage-btn{height:34px;padding:.35rem .7rem;border:1px solid rgba(53,211,153,.35);border-radius:10px;background:rgba(53,211,153,.1);color:var(--green);font:inherit;font-size:.72rem;font-weight:900;cursor:pointer;white-space:nowrap;transition:.2s}.usage-btn:hover{background:var(--green);color:#07151a;transform:translateY(-1px)}.usage-btn.restore{border-color:rgba(120,103,242,.35);background:rgba(120,103,242,.1);color:var(--accent)}.usage-btn.restore:hover{background:var(--accent);color:#fff}.sp-note{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.85rem 1rem;border:1px solid var(--line);border-radius:15px;background:var(--panel-2);color:var(--muted);font-size:.8rem;font-weight:700}.sp-note strong{color:var(--text);font-weight:950;white-space:nowrap}.stat-accent{background:linear-gradient(135deg,rgba(120,103,242,.12),rgba(178,82,255,.08));border:1px solid rgba(120,103,242,.18);border-radius:16px}@media (max-width:620px){.sp-note{align-items:flex-start;flex-direction:column;gap:.35rem}.code-cell{min-width:170px}.code-cell code{max-width:190px}}
.uc-section-title{margin:0 0 .85rem;color:var(--text-2);font-size:.98rem;font-weight:950;line-height:1.4;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.uc-list-title{margin-top:1.25rem}.stat-used{background:linear-gradient(135deg,rgba(148,163,184,.13),rgba(120,103,242,.07));border:1px solid rgba(148,163,184,.24);border-radius:16px}.used-muted{text-decoration:line-through;text-decoration-thickness:1.5px}.used-code code{text-decoration:line-through;text-decoration-thickness:1.5px}.uc-table{table-layout:fixed;min-width:850px!important}.uc-table th,.uc-table td{vertical-align:middle}.uc-table .uc-amount{width:13%;text-align:center}.uc-table .uc-code{width:34%;text-align:center}.uc-table .uc-price{width:16%;text-align:center}.uc-table .uc-status{width:17%;text-align:center}.uc-table .uc-actions{width:20%;text-align:center}.uc-table .code-cell{justify-content:center;margin:0 auto}.uc-table .row-actions{justify-content:center}.uc-table thead th{font-weight:950;color:var(--text-2);text-align:center}.uc-table tbody td{font-weight:700}
.uc-action-btn{min-width:82px;min-height:40px;padding:.42rem .7rem;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;border-radius:11px;border:1px solid var(--line);background:var(--panel-2);color:var(--text-2);font:inherit;font-size:.76rem;font-weight:900;cursor:pointer;white-space:nowrap;transition:.2s}.uc-action-btn:hover{transform:translateY(-1px);border-color:var(--accent);color:var(--accent)}.uc-action-btn.delete{color:var(--red);border-color:rgba(240,103,127,.28);background:rgba(240,103,127,.08)}.uc-action-btn.delete:hover{background:var(--red);color:#fff;border-color:var(--red)}.uc-action-btn.edit{color:var(--accent);border-color:rgba(120,103,242,.3);background:rgba(120,103,242,.08)}.uc-action-btn.edit:hover{background:var(--accent);color:#fff}.uc-table .uc-actions{white-space:normal}.uc-table .row-actions{gap:.5rem;flex-wrap:wrap}
.uc-root{width:min(100%,1040px);margin-inline:auto}.uc-table .uc-actions{width:26%}.uc-table .uc-code{width:30%}.uc-table .row-actions{flex-wrap:nowrap;gap:.35rem;white-space:nowrap}.uc-table .uc-actions .uc-action-btn{min-width:70px;min-height:38px;padding:.35rem .55rem;font-size:.72rem}.uc-table .uc-actions .usage-btn{min-height:38px;padding:.35rem .55rem;font-size:.7rem}.uc-table tbody td{padding:.68rem .75rem}
.uc-table{min-width:980px!important}.uc-table .uc-actions{min-width:260px}.uc-table .row-actions{flex-wrap:wrap;gap:.55rem;justify-content:center;align-content:center}.uc-table .uc-actions .uc-action-btn,.uc-table .uc-actions .usage-btn{flex:0 0 auto}
@media (max-width:760px){.uc-table{min-width:0!important}.uc-table .uc-actions{min-width:0;width:auto}.uc-table .row-actions{flex-wrap:wrap;gap:.5rem}.uc-table .uc-actions .uc-action-btn,.uc-table .uc-actions .usage-btn{flex:1 1 120px}}
@media (max-width:760px){.page{padding-left:.7rem;padding-right:.7rem}.page-head{align-items:stretch;gap:.85rem}.page-head>div:first-child{min-width:0}.ph-title{font-size:1.35rem}.ph-sub{font-size:.78rem}.page-head .btn{width:100%;min-height:46px}.card{padding:.9rem!important}.uc-section-title{font-size:.92rem}.stat-row.card-inline{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.stat-box{min-height:88px;padding:.75rem .55rem}.stat-box .sb-label{font-size:.72rem}.stat-box b{font-size:1rem}.sp-note{font-size:.74rem}.uc-table{display:block;min-width:0!important;border-collapse:separate;border-spacing:0}.uc-table thead{display:none}.uc-table tbody{display:grid;gap:.85rem}.uc-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;padding:.85rem;border:1px solid var(--line);border-radius:17px;background:var(--glass);box-shadow:var(--shadow-inset)}.uc-table tbody td{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:.28rem;padding:.35rem .25rem!important;border:0!important;min-width:0;text-align:right}.uc-table tbody td::before{content:attr(data-label);color:var(--muted);font-size:.7rem;font-weight:950;line-height:1.3}.uc-table tbody td.uc-amount,.uc-table tbody td.uc-price,.uc-table tbody td.uc-status{text-align:right}.uc-table tbody td.uc-code,.uc-table tbody td.uc-actions{grid-column:1/-1}.uc-table tbody td.uc-code{align-items:stretch}.uc-table .code-cell{width:100%;min-width:0;justify-content:flex-start;margin:0}.uc-table .code-cell code{max-width:none;flex:1;min-width:0}.uc-table .uc-actions.row-actions{flex-direction:row;align-items:stretch;justify-content:stretch;gap:.5rem}.uc-actions .uc-action-btn,.uc-actions .usage-btn{flex:1;min-width:0;min-height:44px}.uc-actions::before{align-self:center;flex:0 0 100%;margin-bottom:.05rem}.uc-table tbody td.uc-actions{flex-direction:row;flex-wrap:wrap}.uc-table tbody td.uc-actions::before{width:100%}.copy-btn{min-height:42px;padding:.45rem .8rem}.badge{align-self:flex-start}}
