:root{
  /* A3 (0.4.0): همان رنگ‌بندی سرمه‌ای برنامهٔ حسابداری */
  --bg:#eef2f7; --surface:#fff; --surface-2:#f5f7fb; --ink:#13233a; --ink-2:#4d5d72; --line:#d9e1ea;
  --accent:#1d4f91; --accent-ink:#fff; --accent-soft:#e3ecf8;
  --good:#17794a; --good-soft:#dcf2e6; --warn:#955700; --warn-soft:#faedd2; --bad:#b3261e; --bad-soft:#fae2df;
  --side:#0b2d4a; --side-2:#14406a; --side-ink:#d3deea; --brass:#e0a82e; --silver:#dfe6ee;
  --font:'Vazirmatn',Tahoma,'Segoe UI',system-ui,sans-serif; --mono:ui-monospace,Consolas,Menlo,monospace;
  --r:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0a1220; --surface:#111c2d; --surface-2:#172538; --ink:#e3ebf5; --ink-2:#9eb0c6; --line:#243650;
  --accent:#7fb0ef; --accent-ink:#0a1830; --accent-soft:#16294a;
  --good:#4cc38a; --good-soft:#143428; --warn:#e3a64b; --warn-soft:#3a2d12; --bad:#ff8077; --bad-soft:#3d1c19;
  --side:#071a2d; --side-2:#0f2a47; --side-ink:#b7c7da; --silver:#c9d3df; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0a1220; --surface:#111c2d; --surface-2:#172538; --ink:#e3ebf5; --ink-2:#9eb0c6; --line:#243650;
  --accent:#7fb0ef; --accent-ink:#0a1830; --accent-soft:#16294a;
  --good:#4cc38a; --good-soft:#143428; --warn:#e3a64b; --warn-soft:#3a2d12; --bad:#ff8077; --bad-soft:#3d1c19;
  --side:#071a2d; --side-2:#0f2a47; --side-ink:#b7c7da; --silver:#c9d3df; color-scheme:dark}
*,*::before,*::after{box-sizing:border-box}
html,body{min-height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.7;-webkit-text-size-adjust:100%}
h1,h2,h3{margin:0;line-height:1.35;text-wrap:balance}
h1{font-size:24px} h2{font-size:18px} h3{font-size:15px}
p{margin:0}
button,input,select{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.noscript{padding:24px;text-align:center}
.muted{color:var(--ink-2)} .small{font-size:13px} .bad-text{color:var(--bad)} .num{font-family:var(--mono);direction:ltr;unicode-bidi:isolate;display:inline-block}
.stack{display:flex;flex-direction:column;gap:14px} .row{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .row.end{justify-content:flex-end} .row.between{justify-content:space-between}
.grow{flex:1;min-width:0}
/* ---------- فرم‌ها ---------- */
.fld{display:flex;flex-direction:column;gap:4px;min-width:0}
.fld>label,.fld>.lbl{font-size:13px;color:var(--ink-2)}
.fld .err{font-size:13px;color:var(--bad)} .fld .hint{font-size:12px;color:var(--ink-2)}
input[type=text],input[type=email],input[type=password],input[type=search],select{width:100%;min-height:44px;padding:9px 12px;background:var(--surface);border:1px solid var(--line);border-radius:8px}
input[aria-invalid="true"]{border-color:var(--bad)}
input.code{font-family:var(--mono);font-size:22px;letter-spacing:.35em;text-align:center;direction:ltr}
input[dir=ltr]{text-align:left}
.pw{position:relative;display:flex}
.pw input{padding-inline-end:48px}
.pw .eye{position:absolute;inset-block:0;inset-inline-end:0;width:46px;display:flex;align-items:center;justify-content:center;background:none;border:0;cursor:pointer;color:var(--ink-2);border-radius:8px}
.pw .eye:hover{color:var(--ink)}
.chk{display:flex;gap:8px;align-items:center;cursor:pointer;font-size:14px}
.chk input{width:18px;height:18px;accent-color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:8px 18px;border-radius:8px;border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);font-weight:700;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.06)} .btn:disabled{opacity:.55;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--accent);border-color:var(--line)} .btn.ghost:hover{background:var(--surface-2)}
.btn.danger{background:var(--bad);border-color:var(--bad);color:#fff}
.btn.sm{min-height:34px;padding:4px 12px;font-size:13px}
.btn.block{width:100%}
a.lnk,.lnkbtn{color:var(--accent);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;font-size:inherit}
.banner{padding:10px 14px;border-radius:8px;font-size:14px;border:1px solid transparent}
.banner.bad{background:var(--bad-soft);color:var(--bad)} .banner.good{background:var(--good-soft);color:var(--good)}
.banner.warn{background:var(--warn-soft);color:var(--warn)} .banner.info{background:var(--accent-soft);color:var(--accent)}
.badge{display:inline-block;padding:1px 10px;border-radius:999px;font-size:12px;background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line);white-space:nowrap}
.badge.good{background:var(--good-soft);color:var(--good);border-color:transparent} .badge.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.badge.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent} .badge.acc{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px}
.pwrules{display:grid;grid-template-columns:1fr 1fr;gap:2px 14px;font-size:12px;color:var(--ink-2);margin:0;padding:0;list-style:none}
.pwrules li::before{content:'○ ';color:var(--ink-2)} .pwrules li.ok{color:var(--good)} .pwrules li.ok::before{content:'● ';color:var(--good)}
.meter{height:5px;border-radius:5px;background:var(--line);overflow:hidden} .meter>i{display:block;height:100%;width:0;background:var(--bad);transition:width .2s}
/* ---------- صفحهٔ ورود ---------- */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}
.auth .hero{background:var(--side);color:var(--side-ink);padding:48px 56px;display:flex;flex-direction:column;justify-content:center;gap:22px;position:relative;overflow:hidden}
.auth .hero::after{content:'';position:absolute;inset-inline-end:-120px;bottom:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,var(--side-2),transparent 70%);opacity:.8;pointer-events:none}
.logo{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;font-size:26px;letter-spacing:.14em}
.logo .mark{width:44px;height:44px;border-radius:12px;background:var(--brass);color:#14232b;display:flex;align-items:center;justify-content:center}
.hero h1{color:#fff;font-size:30px;max-width:16em} .hero p{max-width:30em;font-size:16px}
.chips{display:flex;flex-wrap:wrap;gap:8px} .chips span{font-family:var(--mono);font-size:13px;color:#fff;padding:3px 10px;border-radius:6px;background:rgba(255,255,255,.12)}
.feat{display:grid;gap:8px;padding:0;margin:0;list-style:none;font-size:14px} .feat li::before{content:'✓';color:var(--brass);margin-inline-end:8px;font-weight:700}
.auth .panel{display:flex;flex-direction:column;padding:20px 28px 28px}
.auth .tools{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.auth .formwrap{flex:1;display:flex;align-items:center;justify-content:center;padding:20px 0}
.auth .formbox{width:100%;max-width:440px}
.formbox h2{font-size:24px;margin-bottom:4px}
.formbox .sub{color:var(--ink-2);margin-bottom:18px}
.demo-note{background:var(--warn-soft);color:var(--warn);font-size:13px;text-align:center;padding:6px 12px}
.sel{width:auto;min-height:36px;padding:4px 10px;font-size:13px}
.ibtn{min-height:36px;min-width:36px;padding:0 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-2)}
.secret{font-family:var(--mono);direction:ltr;font-size:17px;letter-spacing:.08em;background:var(--surface-2);border:1px dashed var(--line);padding:10px 12px;border-radius:8px;word-break:break-all;text-align:center;user-select:all}
.codes{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-family:var(--mono);direction:ltr;text-align:center}
.codes span{background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:6px}
/* ---------- پوستهٔ برنامه ---------- */
.app{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh}
.side{background:var(--side);color:var(--side-ink);padding:16px 12px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh;overflow-y:auto}
.side .logo{font-size:20px;padding:4px 6px}.side .logo .mark{width:34px;height:34px;border-radius:9px}
.nav{display:flex;flex-direction:column;gap:2px}
.nav button{all:unset;box-sizing:border-box;cursor:pointer;padding:9px 12px;border-radius:8px;display:flex;gap:10px;align-items:center;color:var(--side-ink)}
.nav button:hover{background:rgba(255,255,255,.08);color:#fff}
.nav button[aria-current="page"]{background:var(--side-2);color:#fff;font-weight:700}
.nav button:focus-visible{outline:2px solid var(--brass)}
.userbox{margin-top:auto;border-top:1px solid rgba(255,255,255,.14);padding-top:12px;display:flex;flex-direction:column;gap:8px;font-size:13px}
.userbox b{color:#fff}
.userbox .ibtn,.userbox .sel{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.2)} .userbox .sel option{color:#14232b}
.main{padding:24px;display:flex;flex-direction:column;gap:18px;min-width:0}
.head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:flex;flex-direction:column;gap:2px}
.tile .k{font-size:13px;color:var(--ink-2)} .tile .v{font-size:26px;font-weight:700}
.perm{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface)}
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{padding:9px 12px;text-align:start;border-bottom:1px solid var(--line);vertical-align:middle}
th{background:var(--surface-2);color:var(--ink-2);font-weight:500;font-size:13px;white-space:nowrap}
tr:last-child td{border-bottom:0}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal{background:var(--surface);border:1px solid var(--line);border-radius:12px;max-width:520px;width:100%;max-height:92vh;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:14px}
#toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:6px;align-items:center;max-width:calc(100% - 32px)}
#toast div{background:var(--ink);color:var(--bg);padding:8px 16px;border-radius:999px;font-size:14px;text-align:center}
#toast div.bad{background:var(--bad);color:#fff}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
@media (max-width:900px){
  .auth{grid-template-columns:1fr}
  .auth .hero{padding:22px 20px;gap:12px}.hero h1{font-size:20px}.hero p,.feat,.chips{display:none}
  .auth .panel{padding:14px 16px 24px}
  .app{grid-template-columns:minmax(0,1fr)}
  .main{padding:16px}
  .pwrules{grid-template-columns:1fr}
}
@media (max-width:420px){.codes{grid-template-columns:1fr}}

/* منوی مشترک (menu.js): گروه‌ها و زیرمنوها؛ همان ظاهر برنامهٔ حسابداری */
.nav .ic{flex:none;width:18px;height:18px;opacity:.85} .nav button .lbl{flex:1}
.nav .grpw{display:flex;flex-direction:column}
.nav button.grp{font-weight:600} .nav button.grp.act{background:rgba(255,255,255,.07);color:#fff} .nav button.grp .chev{opacity:.6;font-size:.8em}
.nav button[aria-current="page"] .ic{color:var(--brass);opacity:1}
.nav .sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 8px;padding-inline-start:14px;margin-inline-start:18px;border-inline-start:1px solid rgba(255,255,255,.16)}
.nav .sub button{padding:6px 10px;font-size:.93em;opacity:.92;flex-wrap:wrap}
.nav .badge{margin-inline-start:6px}
/* A2 (0.3.11): گوشی = نوار بالا + کشوی منو (همان رفتار برنامهٔ حسابداری)؛ رومیزی بدون تغییر */
.mtop,.scrim,.dclose{display:none}
@media (max-width:900px){
  .mtop{display:flex;position:sticky;top:0;z-index:30;align-items:center;gap:12px;padding:8px 12px;padding-top:calc(8px + env(safe-area-inset-top));background:var(--side);color:var(--side-ink)}
  .mtop .mtitle{font-size:15px;letter-spacing:.08em}
  .burger{flex:none;width:44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer}
  .side{position:fixed;top:0;bottom:0;inset-inline-start:0;width:min(86vw,320px);height:100%;z-index:41;padding:12px 12px calc(16px + env(safe-area-inset-bottom));transform:translateX(100%);visibility:hidden;transition:transform .2s ease,visibility .2s;box-shadow:0 0 24px rgba(0,0,0,.35)}
  [dir="ltr"] .side{transform:translateX(-100%)}
  .drawer-open .side{transform:none;visibility:visible}
  .drawer-open .scrim{display:block;position:fixed;inset:0;z-index:40;background:rgba(0,0,0,.45)}
  .dclose{display:block;align-self:flex-end;width:40px;height:40px;border-radius:10px;border:1px solid rgba(255,255,255,.28);background:transparent;color:inherit;font-size:18px;cursor:pointer}
  .nav .sub button,.nav button.grp{min-height:44px}
}
@media (max-width:900px) and (prefers-reduced-motion:reduce){.side{transition:none}}

/* A3/A6 (0.4.0): نوار بالای واحد و نشان NOVA (هم‌شکل برنامهٔ حسابداری) */
.topbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end;margin:0 0 16px;padding:8px 10px;background:var(--surface);border:1px solid var(--line);border-radius:12px}
.topbar .tchip{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13px;background:var(--surface-2);white-space:nowrap}
.topbar .tchip.strong{font-weight:600;background:var(--accent-soft);border-color:transparent;color:var(--accent)}
.topbar .sel{border-radius:999px;padding:5px 10px;font-size:13px;width:auto}
.logo .mark{background:var(--silver);color:var(--side)}
.logo .lgt{display:flex;flex-direction:column;line-height:1.1}.logo .lgt small{font-size:11px;letter-spacing:0;font-weight:400;opacity:.8;margin-top:3px}
.nav .ic{background:rgba(255,255,255,.08);border-radius:7px;padding:5px;width:28px;height:28px}
.nav button[aria-current="page"] .ic,.nav button.grp.act .ic{background:var(--brass);color:var(--side);opacity:1}
.userbox .ver{opacity:1;color:var(--side-ink)}
.mchip{display:none}
@media (max-width:900px){.topbar{display:none}.mchip{display:inline-block;margin-inline-start:auto;border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:4px 10px;font-size:12px;white-space:nowrap;max-width:45vw;overflow:hidden;text-overflow:ellipsis}}

/* 1.4-D01 */
.nav .subh{font-size:11px;opacity:.65;padding:8px 10px 2px;font-weight:600}
