@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Vazirmatn';src:url('/fonts/Vazirmatn-Medium.woff2') format('woff2');font-weight:500;font-display:swap}

.app{--bg:#F2F3F6;--bg2:#E9EBF0;--card:#FFFFFF;--text:#1E1B2E;--text2:#5B5570;--text3:#938DA8;--t2:#5B5570;--t3:#938DA8;--line:rgba(30,27,46,.12);--line2:rgba(30,27,46,.22);
--brand:#6D5BD0;--brand-on:#fff;--brand-soft:#ECE9FB;--brand-ink:#3F3491;--soft:#ECE9FB;--ink:#3F3491;--green-bg:#EAF3DE;--green-tx:#3B6D11;--blue-bg:#E6F1FB;--blue-tx:#0C447C;--warn-bg:#FAEEDA;--warn-tx:#854F0B;--red-bg:#FCEBEB;--red-tx:#A32D2D;--ok:#27500A;
--r-md:9px;--r-lg:14px;--shadow:0 1px 2px rgba(30,27,46,.05),0 8px 22px rgba(30,27,46,.08);--side-bg:#FFFFFF;--side-text:#2A2545;--side-t2:#8B84A6;--side-hover:rgba(0,0,0,.05);--side-line:rgba(30,27,46,.10)}
.app.dark{--bg:#111316;--bg2:#1C2027;--card:#1A1D23;--text:#ECE9F7;--text2:#ABA3C6;--text3:#7E7699;--t2:#ABA3C6;--t3:#7E7699;--line:rgba(255,255,255,.10);--line2:rgba(255,255,255,.20);
--brand:#8E7DEA;--brand-on:#14102B;--brand-soft:#2A2350;--brand-ink:#C9C0F2;--soft:#2A2350;--ink:#C9C0F2;--green-bg:#1F3311;--green-tx:#C0DD97;--blue-bg:#0E2B45;--blue-tx:#B5D4F4;--warn-bg:#3A2A12;--warn-tx:#FAC775;--red-bg:#3A1414;--red-tx:#F09595;--ok:#C0DD97;
--r-md:9px;--r-lg:14px;--shadow:0 1px 2px rgba(0,0,0,.3),0 10px 26px rgba(0,0,0,.4);--side-bg:#0C0E12;--side-text:#D7D0EC;--side-t2:#877FA6;--side-hover:rgba(255,255,255,.06);--side-line:rgba(255,255,255,.08)}
/* ===== selectable color palettes (override only the accent/brand family) ===== */
.app.pal-indigo{--brand:#6D5BD0;--brand-on:#fff;--brand-soft:#ECE9FB;--brand-ink:#3F3491;--soft:#ECE9FB;--ink:#3F3491}
.app.pal-indigo.dark{--brand:#8E7DEA;--brand-on:#14102B;--brand-soft:#2A2350;--brand-ink:#C9C0F2;--soft:#2A2350;--ink:#C9C0F2}
.app.pal-emerald{--brand:#157A5B;--brand-on:#fff;--brand-soft:#E1F1EA;--brand-ink:#0C4F3A;--soft:#E1F1EA;--ink:#0C4F3A}
.app.pal-emerald.dark{--brand:#3FB389;--brand-on:#07231A;--brand-soft:#143026;--brand-ink:#BFE6D5;--soft:#143026;--ink:#BFE6D5}
.app.pal-royal{--brand:#2563EB;--brand-on:#fff;--brand-soft:#E4ECFD;--brand-ink:#1A468F;--soft:#E4ECFD;--ink:#1A468F}
.app.pal-royal.dark{--brand:#5B8DEF;--brand-on:#0A1730;--brand-soft:#16264A;--brand-ink:#C2D6F7;--soft:#16264A;--ink:#C2D6F7}
.app.pal-burgundy{--brand:#9F1239;--brand-on:#fff;--brand-soft:#F7E3E9;--brand-ink:#6E0C28;--soft:#F7E3E9;--ink:#6E0C28}
.app.pal-burgundy.dark{--brand:#E05277;--brand-on:#2A0712;--brand-soft:#3A1420;--brand-ink:#F4C2D0;--soft:#3A1420;--ink:#F4C2D0}
.app.pal-espresso{--brand:#A6741C;--brand-on:#fff;--brand-soft:#F6EAD3;--brand-ink:#6E4A12;--soft:#F6EAD3;--ink:#6E4A12}
.app.pal-espresso.dark{--brand:#D9A441;--brand-on:#241803;--brand-soft:#3A2C16;--brand-ink:#F0D7A6;--soft:#3A2C16;--ink:#F0D7A6}
.app.pal-teal{--brand:#0E8F86;--brand-on:#fff;--brand-soft:#DEF1EF;--brand-ink:#0A5F59;--soft:#DEF1EF;--ink:#0A5F59}
.app.pal-teal.dark{--brand:#3FC2B7;--brand-on:#04231F;--brand-soft:#103029;--brand-ink:#BDE9E3;--soft:#103029;--ink:#BDE9E3}
.app.pal-plum{--brand:#A21CAF;--brand-on:#fff;--brand-soft:#F5E2F7;--brand-ink:#6E1277;--soft:#F5E2F7;--ink:#6E1277}
.app.pal-plum.dark{--brand:#D472E0;--brand-on:#2A0830;--brand-soft:#36143A;--brand-ink:#F0C6F5;--soft:#36143A;--ink:#F0C6F5}
.app.pal-slate{--brand:#475569;--brand-on:#fff;--brand-soft:#E7EAEF;--brand-ink:#2E3849;--soft:#E7EAEF;--ink:#2E3849}
.app.pal-slate.dark{--brand:#94A3B8;--brand-on:#11161F;--brand-soft:#26303F;--brand-ink:#D3DAE4;--soft:#26303F;--ink:#D3DAE4}
/* palette swatches (settings picker) */
.pal-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:520px}
.pal-sw{border:2px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:7px;background:var(--card);transition:border-color .15s}
.pal-sw:hover{border-color:var(--brand)}
.pal-sw.on{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand) inset}
.pal-dot{width:38px;height:38px;border-radius:50%}
.pal-sw span{font-size:12px;color:var(--text2)}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:'Vazirmatn','Tahoma',sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
.app{min-height:100vh;background:var(--bg);color:var(--text);display:flex}
a{color:inherit}
button{font-family:inherit}
.fa{font-feature-settings:normal}

.card{background:var(--card);border:.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow)}
.ic{width:30px;height:30px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;flex:none}
.btn{padding:9px 12px;border-radius:var(--r-md);border:.5px solid var(--line2);background:var(--card);color:var(--text);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn:hover{background:var(--bg)}
.btn-brand{background:var(--brand);color:var(--brand-on);border:none}
.btn-brand:hover{background:var(--brand);filter:brightness(1.08)}
.btn-danger{background:var(--red-bg);color:var(--red-tx);border:.5px solid var(--red-tx)}
.btn-danger:hover{filter:brightness(.97)}
.btn-block{width:100%}
.btn-lg{padding:13px;font-size:15px;font-weight:500}
input,select,textarea{font-family:inherit;font-size:14px;color:var(--text);background:var(--card);border:.5px solid var(--line);border-radius:var(--r-md);padding:9px 10px;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand)}
label{font-size:11.5px;color:var(--text2)}

/* ---- POS ---- */
.pos{padding:12px;max-width:1100px;margin:0 auto}
.bar{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:10px}
.brand-name{font-weight:500;font-size:15px}
.bar-meta{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--text2);flex-wrap:wrap}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:10px}
.mc{display:flex;align-items:center;gap:9px;padding:9px 11px}
.mc .lbl{font-size:11.5px;color:var(--text2)}
.mc .val{font-size:16px;font-weight:500}
.split{display:flex;gap:12px;align-items:flex-start}
.menu-col{flex:1 1 auto;min-width:0}
.searchbox{position:relative;margin-bottom:10px}
.searchbox i{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:16px}
.searchbox input{padding-right:32px}
.cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.cat{display:flex;align-items:center;gap:5px;padding:6px 11px;border:.5px solid var(--line);border-radius:var(--r-md);font-size:12.5px;color:var(--text2);background:var(--card);white-space:nowrap;cursor:pointer}
.cat.on{background:var(--brand);color:var(--brand-on);border-color:var(--brand)}
.grades{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px;align-items:center}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}
.prod{border:.5px solid var(--line);border-radius:var(--r-lg);background:var(--card);padding:9px;cursor:pointer;text-align:right;display:flex;flex-direction:column;gap:7px;min-height:84px;justify-content:space-between;color:var(--text)}
.prod:hover{border-color:var(--brand);background:var(--brand-soft)}
.prod .nm{font-size:13px;line-height:1.5}
.prod .pr{font-size:13px;font-weight:500;color:var(--text2)}
.badge{font-size:11px;padding:2px 6px;border-radius:var(--r-md);background:var(--brand-soft);color:var(--brand-ink)}

.order{flex:0 0 304px;padding:12px}
.mob-wrap{position:relative;margin-bottom:8px}
.mob-wrap i{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:16px}
.mob{padding:9px 34px 9px 10px;letter-spacing:1px;border-width:2px;text-align:right;direction:rtl}
.mob.blink{border-color:var(--brand);animation:bk 1.1s steps(2,jump-none) infinite;caret-color:var(--brand)}
@keyframes bk{50%{border-color:var(--line2)}}
.cust{display:flex;align-items:center;gap:9px;border:.5px solid var(--line);border-radius:var(--r-md);padding:8px 10px}
.avatar{width:34px;height:34px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500;flex:none}
.chips{display:flex;gap:6px;margin-top:3px;flex-wrap:wrap}
.chip{font-size:11px;padding:2px 7px;border-radius:var(--r-md)}
.chip-blue{background:var(--blue-bg);color:var(--blue-tx)}
.chip-warn{background:var(--warn-bg);color:var(--warn-tx)}
.hint{font-size:11.5px;color:var(--text3);padding:2px}
.items{margin:8px 0}
.li{display:flex;align-items:center;gap:6px;padding:6px 0;border-bottom:.5px solid var(--line)}
.li .nm{flex:1;font-size:12.5px}
.li .tot{font-size:13px;font-weight:500}
.qbtn{width:24px;height:24px;border-radius:6px;border:.5px solid var(--line2);background:var(--card);cursor:pointer;font-size:14px;line-height:1;color:var(--text);display:inline-flex;align-items:center;justify-content:center}
.note-field{display:flex;align-items:center;gap:6px;border:.5px dashed var(--line2);border-radius:var(--r-md);padding:7px 9px;margin-bottom:10px;color:var(--text3);font-size:12px}
.totals{border-top:.5px solid var(--line);padding-top:8px}
.trow{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}
.trow.muted{color:var(--text2)}
.trow.warn{color:var(--warn-tx)}
.trow.pts{color:var(--brand-ink);font-size:12px;margin-bottom:6px}
.payrow{display:flex;justify-content:space-between;align-items:baseline;margin:6px 0 10px}
.pay-big{font-size:23px;font-weight:500}
.tenders{display:flex;gap:6px;margin-bottom:6px}
.tender{flex:1;padding:9px 4px;border-radius:var(--r-md);font-size:13px;font-weight:500;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;border:.5px solid var(--line)}
.tender.cash{background:var(--green-bg);color:var(--green-tx);border-color:var(--green-tx)}
.tender.card{background:var(--blue-bg);color:var(--blue-tx);border-color:var(--blue-tx)}
.tender.nasiye{background:var(--brand-soft);color:var(--brand-ink);border-color:var(--brand)}
.tender.on{border-width:2px}
.tnote{font-size:11.5px;color:var(--text2);text-align:center;margin-bottom:10px;min-height:14px}
.acts{display:flex;gap:6px;margin-bottom:6px}
.done-msg{font-size:12px;color:var(--ok);text-align:center;margin-top:8px;min-height:16px}

/* ---- modal ---- */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}
.modal{width:330px;max-width:100%;padding:16px;background:var(--card);border:.5px solid var(--line);border-radius:var(--r-lg);box-shadow:0 12px 40px rgba(0,0,0,.28)}
.modal h3{margin:0 0 4px;font-size:15px;font-weight:500}
.modal .sub{font-size:12px;color:var(--text2);margin-bottom:12px}
.modal .field{margin-bottom:10px}
.phone-box{font-size:14px;font-weight:500;color:var(--brand-ink);background:var(--brand-soft);border-radius:var(--r-md);padding:8px 10px;letter-spacing:1px}
.cbrow{display:flex;align-items:center;gap:8px;font-size:12.5px;margin:10px 0 14px;cursor:pointer}
.cbrow input{width:16px}

/* ---- panel (mobile accounting) ---- */
.panel{max-width:460px;margin:0 auto;padding:12px 12px 88px}
.dash-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}
.dash-card{padding:12px}
.dash-card.hero{grid-column:1 / -1;background:var(--brand);color:var(--brand-on);border:none}
.dash-card .k{font-size:12px;opacity:.85}
.dash-card .v{font-size:26px;font-weight:500;margin-top:2px}
.dash-card .s{font-size:12px;margin-top:2px;opacity:.85}
.gauge{height:8px;border-radius:6px;background:var(--line);overflow:hidden;margin-top:8px}
.gauge>i{display:block;height:100%;border-radius:6px}
.sec-title{font-size:13px;color:var(--text2);margin:14px 4px 8px}
.wf{display:flex;flex-direction:column;gap:6px}
.wf .b{display:flex;align-items:center;justify-content:space-between;padding:9px 11px;border-radius:var(--r-md);font-size:13px}
.wf .b.rev{background:var(--green-bg);color:var(--green-tx)}
.wf .b.neg{background:var(--red-bg);color:var(--red-tx)}
.wf .b.mid{background:var(--brand-soft);color:var(--brand-ink)}
.wf .b.net{background:var(--brand);color:var(--brand-on);font-weight:500}
.tabbar{position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:.5px solid var(--line);display:flex;justify-content:space-around;padding:6px 0;z-index:40;max-width:460px;margin:0 auto}
.tabbar a{flex:1;text-align:center;font-size:11px;color:var(--text2);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:4px 0}
.tabbar a i{font-size:20px}
.tabbar a.on{color:var(--brand)}
.cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.cat-btn{padding:14px 6px;border-radius:var(--r-md);border:.5px solid var(--line);background:var(--card);display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12.5px;cursor:pointer;color:var(--text)}
.cat-btn.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}
.amt-keys{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.amt-keys .btn{flex:1;min-width:64px}

/* ---- login ---- */
.login-wrap{min-height:100vh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;position:relative}
.login-card{width:340px;max-width:100%;padding:22px}
.login-logo{width:54px;height:54px;border-radius:50%;background:var(--brand-soft);color:var(--brand-ink);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 12px}
.login-logo-img{text-align:center;margin-bottom:14px}
.login-logo-img img{max-width:260px;max-height:150px;object-fit:contain}
.login-card h1{text-align:center;font-size:18px;font-weight:500;margin:0 0 2px}
.login-card .sub{text-align:center;font-size:12px;color:var(--text2);margin-bottom:18px}
.login-card .field{margin-bottom:12px}
.err{background:var(--red-bg);color:var(--red-tx);font-size:12.5px;padding:8px 10px;border-radius:var(--r-md);margin-bottom:12px}
.toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--brand);color:var(--brand-on);padding:10px 16px;border-radius:var(--r-md);font-size:13px;z-index:60;box-shadow:0 4px 16px rgba(0,0,0,.2);opacity:0;transition:opacity .2s}
.toast.show{opacity:1}
@media(max-width:560px){.split{flex-direction:column}.order{flex:1 1 auto;width:100%}.pos{padding:8px}}

/* ---- back-office (manage) ---- */
.mng{max-width:920px;margin:0 auto;padding:12px 12px 60px}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.tabbtn{padding:8px 12px;border-radius:var(--r-md);border:.5px solid var(--line);background:var(--card);color:var(--text2);font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.tabbtn.on{background:var(--brand);color:var(--brand-on);border-color:var(--brand)}
.sec-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}
.sec-title2{font-size:15px;font-weight:500}
.tablewrap{overflow-x:auto;border:.5px solid var(--line);border-radius:var(--r-md)}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{padding:9px 10px;text-align:right;border-bottom:.5px solid var(--line);white-space:nowrap}
th{color:var(--text2);font-weight:500;font-size:12px;background:var(--bg)}
tbody tr:last-child td{border-bottom:none}
.frow{display:flex;gap:10px;flex-wrap:wrap}
.frow>div{min-width:0}
/* modal forms: fields wrap to their own line instead of cramming (fixes label wrap + mobile) */
.modal .frow>div{flex:1 1 140px}
.jtotals{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;margin-top:10px;align-items:center}
.jtotals b{font-weight:500}
.jbad{color:var(--red-tx);background:var(--red-bg);padding:3px 8px;border-radius:var(--r-md)}
.jgood{color:var(--green-tx);background:var(--green-bg);padding:3px 8px;border-radius:var(--r-md)}
.iconbtn{cursor:pointer;color:var(--text2);padding:4px 6px;border:.5px solid var(--line);border-radius:6px;background:var(--card);font-size:13px}
.iconbtn:hover{color:var(--brand);border-color:var(--brand)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.role-row{display:flex;flex-wrap:wrap;gap:8px}
.rolechk{display:inline-flex;align-items:center;gap:5px;font-size:13px;padding:5px 10px;border:.5px solid var(--line);border-radius:var(--r-md);cursor:pointer;background:var(--card)}
.rolechk input{accent-color:var(--brand)}
.chip-role{background:var(--soft);color:var(--ink)}
.card-balance{font-size:16px;font-weight:500;padding:10px 14px;border-radius:var(--r-md);background:var(--soft)}
@media(max-width:560px){.row2{grid-template-columns:1fr}}
.chart-grp{margin-bottom:14px}
.chart-grp-h{font-size:13px;font-weight:500;color:var(--brand);margin:0 0 4px;padding-bottom:3px;border-bottom:.5px solid var(--line)}
.chart-grp table{width:100%}
.rrow{display:flex;gap:6px;align-items:center;margin-bottom:6px}
.rrow select{flex:1}
.rrow .ss-wrap{flex:1;min-width:0}
.rrow .r-unit{flex:0 0 104px;min-width:0;font-size:12px}
/* منبعِ بدهیِ نسیه — بَج‌های رنگیِ قابل‌تشخیص */
.srcb{display:inline-block;font-size:10px;padding:1px 7px;border-radius:6px;font-weight:600;margin-right:3px;white-space:nowrap}
.srcb-manual{background:#fef3c7;color:#92400e}
.srcb-pos{background:#dbeafe;color:#1e40af}
.srcb-sale{background:#dcfce7;color:#166534}
.bal-tag{display:inline-block;font-size:11px;padding:1px 8px;border-radius:6px;font-weight:700;line-height:1.7;white-space:nowrap}
.bal-deb{background:#fee2e2;color:#dc2626}
.bal-cre{background:#dcfce7;color:#16a34a}
.bal-zero{background:#f1f5f9;color:#64748b}
.rrow input{width:64px;text-align:left;direction:ltr}
#jLines select{width:100%}
#jLines input{width:100%;text-align:left;direction:ltr}
#jLines td{white-space:normal}
#ledgerSel{max-width:320px}

/* ===== unified shell ===== */
.sidebar{width:214px;flex:none;background:var(--side-bg);color:var(--side-text);display:flex;flex-direction:column;padding:14px 12px;position:sticky;top:0;height:100vh;border-left:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:10px;padding:2px 4px 14px}
.brand-mark{width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--brand-on);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none}
.brand-mark.has-logo{width:auto;min-width:56px;max-width:220px;height:72px;background:transparent;border-radius:8px;padding:0}
.brand-mark img{height:100%;width:auto;max-width:220px;object-fit:contain;border-radius:inherit}
.brand-t{font-size:15px;font-weight:500;color:var(--side-text)}
.brand-s{font-size:10.5px;color:var(--side-t2)}
.nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow-y:auto}
.nav-grp{font-size:10.5px;color:var(--side-t2);margin:13px 8px 4px;letter-spacing:.3px}
.nav-a{display:flex;align-items:center;gap:9px;padding:9px 10px;border-radius:9px;font-size:13px;color:var(--side-text);text-decoration:none}
.nav-a i{font-size:18px;opacity:.82}
.nav-a:hover{background:var(--side-hover)}
.nav-a.on{background:var(--brand);color:var(--brand-on)}
.nav-a.on i{opacity:1}
.side-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--side-line);padding-top:10px;margin-top:8px}
.side-user{display:flex;align-items:center;gap:8px}
.side-av{width:30px;height:30px;border-radius:50%;background:var(--brand);color:var(--brand-on);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:500}
.side-user>div>div:first-child{color:var(--side-text)}
.icon-btn{width:34px;height:34px;border-radius:9px;border:.5px solid var(--line);background:var(--card);color:var(--text);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:17px}
.sidebar .icon-btn{background:var(--side-hover);border-color:transparent;color:var(--side-text)}
.shell-main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:11px 18px;background:var(--bg);border-bottom:.5px solid var(--line)}
.top-title{font-size:16px;font-weight:500;flex:1}
.top-actions{display:flex;align-items:center;gap:8px}
.top-date{font-size:12px;color:var(--t2)}
.content{padding:18px;flex:1}
.only-mobile{display:none}
.botnav,.drawer,.drawer-bg{display:none}
@media(max-width:980px){
 .sidebar{display:none}
 .only-mobile{display:inline-flex}
 .only-desk{display:none}
 .content{padding:12px 12px 80px}
 .topbar{padding:10px 12px}
 .botnav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:var(--card);border-top:.5px solid var(--line);justify-content:space-around;padding:6px 0}
 .botnav a{flex:1;text-align:center;font-size:10px;color:var(--t2);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:2px}
 .botnav a i{font-size:21px}
 .botnav a.on{color:var(--brand)}
 .drawer-bg{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40;opacity:0;pointer-events:none;transition:opacity .2s}
 .drawer-bg.open{opacity:1;pointer-events:auto}
 .drawer{display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;width:250px;background:var(--side-bg);color:var(--side-text);z-index:41;padding:14px 12px;transform:translateX(100%);transition:transform .22s;overflow-y:auto}
 .drawer.open{transform:translateX(0)}
}

/* ===== dashboard ===== */
.dash{display:flex;flex-direction:column;gap:14px}
.kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--card);border:.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:13px 15px}
.kpi .l{font-size:12px;color:var(--t2);display:flex;align-items:center;gap:6px}
.kpi .v{font-size:21px;font-weight:500;margin-top:5px}
.kpi .s{font-size:11px;color:var(--t3);margin-top:2px}
.kpi-hero{background:var(--brand);color:var(--brand-on);border:none}
.kpi-hero .l,.kpi-hero .s{color:var(--brand-on);opacity:.85}
.kpi-tint .l{color:inherit;opacity:.9}
.drow{display:grid;gap:12px}
.panel2{background:var(--card);border:.5px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:14px 16px}
.panel2 .ph{font-size:13px;font-weight:500;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}
.bars{display:flex;align-items:flex-end;gap:7px;height:110px}
.bars .b{flex:1;background:var(--brand);border-radius:5px 5px 0 0;min-height:4px;position:relative}
.bars .bl{display:flex;justify-content:space-between;font-size:10px;color:var(--t3);margin-top:5px}
.legend{font-size:12px;line-height:2}
.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;margin-left:5px;vertical-align:0}
.qarow{display:flex;gap:8px;flex-wrap:wrap}
.qa-btn{padding:9px 13px;border-radius:10px;border:.5px solid var(--line);background:var(--card);box-shadow:var(--shadow);font-size:13px;color:var(--text);display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-family:inherit;text-decoration:none}
.qa-btn.primary{background:var(--brand);color:var(--brand-on);border:none}
.alert{font-size:12px;padding:6px 10px;border-radius:9px;display:flex;align-items:center;gap:6px;margin-bottom:6px}
@media(min-width:760px){.dash-2{grid-template-columns:1.6fr 1fr}.dash-3{grid-template-columns:1fr 1fr}}
/* version footer (login + pages) */
.page-version{position:fixed;left:0;right:0;bottom:10px;text-align:center;font-size:11px;color:var(--text2);opacity:.6;pointer-events:none}
/* brand logo image (sidebar) */
.brand-mark.has-logo{background:transparent;border-radius:8px}
.brand-mark img{width:100%;height:100%;object-fit:contain;border-radius:inherit}
/* logo upload preview (settings) */
.logo-prev{width:120px;height:74px;border:1px dashed var(--line);border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--bg2,rgba(127,127,127,.05));overflow:hidden}
.logo-prev img{max-width:100%;max-height:100%;object-fit:contain}
/* social share menu */
.share-menu{position:fixed;inset:0;z-index:100050;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45)}
.share-menu .sm-card{background:var(--card,#fff);border-radius:16px;padding:16px;width:300px;max-width:92vw;box-shadow:0 12px 40px rgba(0,0,0,.3)}
.share-menu .sm-h{font-weight:600;font-size:14px;margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.share-menu .sm-row{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:10px;cursor:pointer;font-size:14px;border:.5px solid var(--line,#eee);margin-bottom:7px;color:inherit;text-decoration:none;background:none;width:100%;font-family:inherit;text-align:right}
.share-menu .sm-row:hover{background:var(--bg2,rgba(127,127,127,.08))}
.share-menu .sm-ico{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;flex:none;font-size:15px}
/* print header (reports/receipts) */
.print-head{display:none}
@media print{
  .sidebar,.topbar,.botnav,.no-print,.tabbar,.tabbar2{display:none!important}
  .shell-main{margin:0!important;width:100%!important}
  .content{padding:0!important;max-width:none!important}
  .print-head{display:flex!important;align-items:center;gap:12px;margin-bottom:14px;border-bottom:2px solid #ccc;padding-bottom:10px}
  .print-head img{max-height:54px;object-fit:contain}
  .print-head .ph-t{font-size:18px;font-weight:700}
  body,.app{background:#fff!important}
  .card{box-shadow:none!important;border-color:#ddd!important}
}

/* mobile drawer: prominent header (big logo + name + version) + footer (user + logout) */
.drawer-head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:6px 4px 14px;border-bottom:1px solid var(--side-line);margin-bottom:10px}
.drawer-head .brand-mark{width:84px;height:84px;font-size:38px;border-radius:18px}
.drawer-head .brand-mark.has-logo{width:auto;min-width:0;max-width:190px;height:90px;border-radius:12px}
.drawer-head .brand-t{font-size:18px;font-weight:600;color:var(--side-text)}
.drawer-head .brand-s{font-size:11px;color:var(--side-t2)}
.drawer-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--side-line);padding-top:12px}
.btn-logout{display:inline-flex;align-items:center;gap:6px;padding:9px 16px;border-radius:10px;border:none;background:#dc2626;color:#fff;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.btn-logout:active{opacity:.85}
/* POS «نسیهٔ امروز» who-list rows */
.pn-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 4px;border-bottom:.5px solid var(--line)}
.pn-nm{font-weight:500}
.pn-meta{font-size:11px;color:var(--text2);margin-top:2px}
.pn-amt{font-weight:600;color:#dc2626;white-space:nowrap}
/* sidebar group header: leading icon next to the title */
.nav-grp-l{display:flex;align-items:center;gap:7px;min-width:0}
.nav-grp-ic{font-size:15px;opacity:.85;flex:none}

/* ============================================================================
   Toman currency SYMBOL — same «تومان» mark as the شازده‌کوچولو shop.
   It's a CSS mask filled by currentColor, so it takes the text color and scales
   with font-size. Markup: <span class="ishop-currency-symbol ishop-currency-irt"></span>
   ============================================================================ */
.ishop-currency-symbol{position:relative;display:inline-block;width:1.05em;height:1em;vertical-align:-.14em;margin-right:3px;text-indent:-9999em;overflow:hidden;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}
.ishop-currency-irt{-webkit-mask-image:url("data:image/svg+xml;utf8,%3Csvg%20width%3D%2213%22%20height%3D%2212%22%20viewBox%3D%220%200%2013%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.32%206.12c.32-.16.55-.31.79-.54.16-.23.31-.46.47-.69.08-.31.16-.61.16-.92h7.49c.47%200%20.87-.15%201.18-.38.24-.31.4-.69.4-1.23V.5h-1.03v1.77c0%20.38-.24.62-.63.62H3.74v-.39c0-.38-.08-.61-.16-.92%200-.23-.15-.46-.31-.61-.16-.15-.31-.23-.47-.31-.24-.08-.47-.15-.63-.15-.31%200-.55.07-.79.15-.15.15-.39.23-.47.46-.16.15-.31.31-.31.54-.08.23-.16.46-.16.69%200%20.23%200%20.46.08.69.08.23.16.38.24.54.16.08.31.23.55.31.24.08.47.08.87.08h.63c0%20.15-.08.31-.08.46-.08.15-.24.31-.31.46-.08.08-.24.15-.47.23-.16.08-.39.15-.63.15H.27v1.08h1.02c.39-.08.71-.15%201.03-.23ZM2.16%202.89c-.31%200-.47%200-.63-.15-.08-.08-.16-.23-.16-.46s.08-.46.16-.54c.16-.08.31-.15.55-.15s.39.07.55.23c.16.15.16.38.16.69v.46h-.63v-.08Z%22%2F%3E%3Cpath%20d%3D%22M10.44.5H7.45v.92h2.99V.5Z%22%2F%3E%3Cpath%20d%3D%22M12.73%208.5c-.08-.23-.16-.38-.31-.54-.16-.15-.31-.31-.55-.38-.16-.08-.39-.15-.63-.15s-.47.07-.71.15c-.24.08-.39.23-.55.38-.16.16-.24.31-.31.54-.08.23-.08.46-.08.69v.23c0%20.23-.08.31-.16.46-.16.08-.31.15-.55.15h-.31c-.16%200-.31-.07-.39-.15-.08-.15-.16-.31-.16-.46V5.73H6.97v3.85c0%20.31%200%20.54.08.69.08.15.16.31.31.46.16.08.24.23.47.23.16.08.31.08.55.08h.55c.16%200%20.39-.08.55-.15.16-.08.39-.23.47-.46.16.23.31.38.55.46.24.08.47.15.79.15.47%200%20.95-.15%201.18-.46.32-.31.47-.77.47-1.31-.08-.31-.16-.54-.24-.77ZM11.23%209.97c-.24%200-.39-.08-.47-.16-.24-.15-.24-.31-.24-.54s.08-.38.16-.54c.08-.15.31-.23.55-.23s.47.08.55.23c.08.16.16.31.16.54-.08.46-.31.69-.71.7Z%22%2F%3E%3Cpath%20d%3D%22M4.92%208.5c0%20.23%200%20.38-.08.61-.08.15-.16.31-.24.46-.16.15-.31.23-.47.31-.16.08-.39.15-.71.15h-.71c-.24%200-.47%200-.71-.08-.16-.15-.31-.23-.39-.38-.08-.15-.24-.31-.24-.46-.08-.15-.08-.38-.08-.61V7.66H.27v.92c0%20.77.24%201.39.63%201.85.39.46.95.69%201.74.69h.79c.39%200%20.71-.08%201.03-.23.31-.15.55-.31.79-.54.24-.23.39-.54.47-.85.08-.31.16-.61.16-.99V5.73l-1.03-.08.08%202.85Z%22%2F%3E%3Cpath%20d%3D%22M3.74%207.43H2.56v1.08h1.18V7.43Z%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml;utf8,%3Csvg%20width%3D%2213%22%20height%3D%2212%22%20viewBox%3D%220%200%2013%2012%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M2.32%206.12c.32-.16.55-.31.79-.54.16-.23.31-.46.47-.69.08-.31.16-.61.16-.92h7.49c.47%200%20.87-.15%201.18-.38.24-.31.4-.69.4-1.23V.5h-1.03v1.77c0%20.38-.24.62-.63.62H3.74v-.39c0-.38-.08-.61-.16-.92%200-.23-.15-.46-.31-.61-.16-.15-.31-.23-.47-.31-.24-.08-.47-.15-.63-.15-.31%200-.55.07-.79.15-.15.15-.39.23-.47.46-.16.15-.31.31-.31.54-.08.23-.16.46-.16.69%200%20.23%200%20.46.08.69.08.23.16.38.24.54.16.08.31.23.55.31.24.08.47.08.87.08h.63c0%20.15-.08.31-.08.46-.08.15-.24.31-.31.46-.08.08-.24.15-.47.23-.16.08-.39.15-.63.15H.27v1.08h1.02c.39-.08.71-.15%201.03-.23ZM2.16%202.89c-.31%200-.47%200-.63-.15-.08-.08-.16-.23-.16-.46s.08-.46.16-.54c.16-.08.31-.15.55-.15s.39.07.55.23c.16.15.16.38.16.69v.46h-.63v-.08Z%22%2F%3E%3Cpath%20d%3D%22M10.44.5H7.45v.92h2.99V.5Z%22%2F%3E%3Cpath%20d%3D%22M12.73%208.5c-.08-.23-.16-.38-.31-.54-.16-.15-.31-.31-.55-.38-.16-.08-.39-.15-.63-.15s-.47.07-.71.15c-.24.08-.39.23-.55.38-.16.16-.24.31-.31.54-.08.23-.08.46-.08.69v.23c0%20.23-.08.31-.16.46-.16.08-.31.15-.55.15h-.31c-.16%200-.31-.07-.39-.15-.08-.15-.16-.31-.16-.46V5.73H6.97v3.85c0%20.31%200%20.54.08.69.08.15.16.31.31.46.16.08.24.23.47.23.16.08.31.08.55.08h.55c.16%200%20.39-.08.55-.15.16-.08.39-.23.47-.46.16.23.31.38.55.46.24.08.47.15.79.15.47%200%20.95-.15%201.18-.46.32-.31.47-.77.47-1.31-.08-.31-.16-.54-.24-.77ZM11.23%209.97c-.24%200-.39-.08-.47-.16-.24-.15-.24-.31-.24-.54s.08-.38.16-.54c.08-.15.31-.23.55-.23s.47.08.55.23c.08.16.16.31.16.54-.08.46-.31.69-.71.7Z%22%2F%3E%3Cpath%20d%3D%22M4.92%208.5c0%20.23%200%20.38-.08.61-.08.15-.16.31-.24.46-.16.15-.31.23-.47.31-.16.08-.39.15-.71.15h-.71c-.24%200-.47%200-.71-.08-.16-.15-.31-.23-.39-.38-.08-.15-.24-.31-.24-.46-.08-.15-.08-.38-.08-.61V7.66H.27v.92c0%20.77.24%201.39.63%201.85.39.46.95.69%201.74.69h.79c.39%200%20.71-.08%201.03-.23.31-.15.55-.31.79-.54.24-.23.39-.54.47-.85.08-.31.16-.61.16-.99V5.73l-1.03-.08.08%202.85Z%22%2F%3E%3Cpath%20d%3D%22M3.74%207.43H2.56v1.08h1.18V7.43Z%22%2F%3E%3C%2Fsvg%3E")}
