@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Regular.ttf);font-weight:400;font-display:swap}
@font-face{font-family:Vazirmatn;src:url(/fonts/Vazirmatn-Bold.ttf);font-weight:700;font-display:swap}
:root{--p:#0b6f80;--p2:#19b4c4;--pbg:#e8f6f8;--bg:#f4f7f8;--card:#fff;--tx:#17262b;--mut:#66808a;--line:#dbe6e9;--ok:#1f9d55;--warn:#d98a00;--bad:#d64545;--r:12px;--sh:0 1px 3px rgba(11,60,70,.08),0 4px 14px rgba(11,60,70,.05)}
*{box-sizing:border-box}html,body{margin:0}body{font-family:Vazirmatn,system-ui,sans-serif;background:var(--bg);color:var(--tx);font-size:15px;line-height:1.6}
a{color:var(--p);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0}h2{font-size:1.3rem}h3{font-size:1.02rem}
.ltr{direction:ltr;text-align:left}[dir=ltr] .ltr{text-align:left}small,.muted,.hint{color:var(--mut)}.hint{display:block;font-size:.8rem}.err{color:var(--bad)}.pad{padding:16px}.center{display:flex;justify-content:center}
.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;align-items:center}.row.gap{gap:10px}.row.wrap{flex-wrap:wrap}
.grid{display:grid;grid-template-columns:repeat(var(--cols,2),minmax(0,1fr));gap:12px}
@media(max-width:720px){.grid{grid-template-columns:1fr!important}}
.card{background:var(--card);border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--line);overflow:hidden}.card-h{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);background:#fbfdfd}.card-b{padding:16px;display:flex;flex-direction:column;gap:12px}
.btn{font:inherit;border:0;border-radius:10px;padding:9px 18px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;justify-content:center;transition:.15s}
.btn-primary{background:linear-gradient(135deg,var(--p2),var(--p));color:#fff}.btn-primary:hover{filter:brightness(1.07)}
.btn-ghost{background:var(--pbg);color:var(--p)}.btn-ghost:hover{background:#d4eef2}.btn-danger{background:#fde8e8;color:var(--bad)}.btn:disabled{opacity:.5;cursor:default}.btn-sm{padding:5px 12px;font-size:.88rem}.btn.wide{width:100%}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.wide{grid-column:1/-1}.lbl{font-size:.86rem;color:var(--mut)}
.inp{font:inherit;width:100%;padding:9px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--tx)}.inp:focus{outline:2px solid var(--p2);border-color:transparent}
textarea.inp{resize:vertical}.otp{letter-spacing:.5em;font-size:1.4rem;text-align:center!important}.chk{display:flex;gap:8px;align-items:center}
.badge{display:inline-block;padding:1px 10px;border-radius:99px;font-size:.78rem;background:#e7edef;color:#42575f}.b-green{background:#dff5e8;color:#157a42}.b-amber{background:#fff1d2;color:#9a6200}.b-red{background:#fde3e3;color:#b02a2a}.b-blue{background:#dcecff;color:#1f5aa8}.b-purple{background:#eadfff;color:#6a3fb5}
.spin{width:16px;height:16px;border:2px solid #fff6;border-top-color:currentColor;border-radius:50%;animation:sp .7s linear infinite;display:inline-block}.spin.big{width:34px;height:34px;border-color:var(--line);border-top-color:var(--p)}@keyframes sp{to{transform:rotate(360deg)}}
.empty{padding:28px;text-align:center;color:var(--mut)}
.tbl-wrap{overflow:auto;max-height:68vh}.tbl-wrap thead th{position:sticky;top:0;z-index:1}.pgbar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;background:var(--pbg);border-bottom:1px solid var(--line)}.pgbox>.pgbar:last-child{border-bottom:0;border-top:1px solid var(--line)}.pginfo{font-weight:600;color:var(--mut);font-size:.85rem}.tbl{width:100%;border-collapse:collapse}.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);white-space:nowrap}.tbl tr:last-child td{border-bottom:0}.tbl tr.click{cursor:pointer}.tbl tr.click:hover{background:var(--pbg)}
.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:2px solid var(--line)}.tab{font:inherit;background:none;border:0;padding:9px 14px;cursor:pointer;color:var(--mut);border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}.tab.on{color:var(--p);border-color:var(--p);font-weight:700}.cnt{background:var(--p);color:#fff;border-radius:99px;font-size:.72rem;padding:0 7px;margin-inline-start:6px}
.modal-bg{position:fixed;inset:0;background:#0b222a88;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow:auto;z-index:50}.modal{background:#fff;border-radius:16px;width:100%;max-width:520px;box-shadow:0 20px 60px #0004}.modal.wide{max-width:860px}.modal>header{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.modal .x{border:0;background:none;font-size:1.6rem;cursor:pointer;color:var(--mut)}.modal-b{padding:18px}.modal>footer{padding:12px 18px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end}
.toasts{position:fixed;bottom:18px;inset-inline-start:18px;display:flex;flex-direction:column;gap:8px;z-index:99}.toast{background:#17262b;color:#fff;padding:10px 16px;border-radius:10px;box-shadow:var(--sh);max-width:80vw}.t-err{background:var(--bad)}.t-ok{background:var(--ok)}
.chip{display:inline-flex;align-items:center;gap:6px;background:var(--pbg);color:var(--p);border-radius:99px;padding:2px 10px;font-size:.85rem}.chip button{border:0;background:none;cursor:pointer;color:inherit}.files{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.att-img{max-width:240px;max-height:200px;border-radius:10px;border:1px solid var(--line)}
.money{font-variant-numeric:tabular-nums}.money.bold{font-weight:700}.cur{color:var(--mut);font-size:.88em}.side.cr{color:var(--ok)}.side.db{color:var(--bad)}
.kv{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px dashed var(--line)}.kv span{color:var(--mut)}
.perms{display:grid;gap:2px}.perm-h,.perm-r{display:grid;grid-template-columns:1fr repeat(4,56px);align-items:center;text-align:center;padding:5px 0;border-bottom:1px solid var(--line)}.perm-h b{font-size:.8rem;color:var(--mut)}.perm-r span,.perm-h span{text-align:start}
/* auth + register */
.auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at 20% 10%,#d4eef2,transparent 50%),radial-gradient(circle at 90% 90%,#cfe9ef,transparent 45%),var(--bg)}
.auth-card{background:#fff;border-radius:20px;padding:28px;width:100%;max-width:400px;box-shadow:var(--sh);display:flex;flex-direction:column;gap:14px}.auth-foot{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-top:6px}
.brand{display:flex;align-items:center;gap:10px}.brand b{font-size:1.15rem;display:block;line-height:1.2}.brand small{display:block}.brand.sm b{font-size:1rem}
.langs{display:flex;gap:2px;background:var(--pbg);border-radius:99px;padding:3px}.langs button{font:inherit;font-size:.82rem;border:0;background:none;padding:3px 10px;border-radius:99px;cursor:pointer;color:var(--p)}.langs button.on{background:var(--p);color:#fff}
.reg-wrap{min-height:100vh;background:var(--bg)}.reg-top{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;background:#fff;border-bottom:1px solid var(--line)}.reg-body{max-width:860px;margin:0 auto;padding:20px 16px 60px;display:flex;flex-direction:column;gap:14px}
.invoice{background:var(--pbg);border-radius:12px;padding:12px 16px;display:flex;flex-direction:column;gap:4px}.invoice div{display:flex;justify-content:space-between}.invoice .tot{border-top:1px solid #b9dde3;margin-top:4px;padding-top:6px;font-size:1.1rem}
.logo-prev{max-height:70px;border-radius:8px}.sub{border:1px dashed var(--line);border-radius:10px;padding:10px}.done{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.tick{width:64px;height:64px;border-radius:50%;background:var(--ok);color:#fff;font-size:2rem;display:flex;align-items:center;justify-content:center}
/* app shell */
.app{display:flex;min-height:100vh}.sbar{width:240px;background:#fff;border-inline-end:1px solid var(--line);padding:16px;display:flex;flex-direction:column;gap:14px;position:sticky;top:0;height:100vh}.who{background:var(--pbg);border-radius:10px;padding:8px 12px;display:flex;flex-direction:column}.who b{color:var(--p)}
.sbar nav{display:flex;flex-direction:column;gap:2px;flex:1;overflow:auto}.sbar nav a{padding:9px 12px;border-radius:10px;color:var(--tx)}.sbar nav a:hover{background:var(--pbg);text-decoration:none}.sbar nav a.on{background:linear-gradient(135deg,var(--p2),var(--p));color:#fff}.sbar-foot{display:flex;flex-direction:column;gap:8px}
.main{flex:1;min-width:0}.topbar{display:flex;align-items:center;gap:12px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}.topbar h1{font-size:1.1rem;flex:1}.burger{display:none;border:0;background:none;font-size:1.5rem;cursor:pointer}.live{width:9px;height:9px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px #1f9d5533}
.content{padding:20px;max-width:1100px}
@media(max-width:860px){.sbar{position:fixed;inset-block:0;inset-inline-start:0;transform:translateX(100%);transition:.2s;z-index:40;box-shadow:var(--sh)}[dir=ltr] .sbar{transform:translateX(-100%)}.sbar.open{transform:none!important}.burger{display:block}.content{padding:14px}}
.banner{padding:10px 16px;border-radius:10px;background:var(--pbg);display:flex;gap:10px;align-items:center}.banner.warn{background:#fff1d2;color:#7a4e00}.banner.imp{background:#ffe7c2;margin:12px 20px 0;color:#7a4e00}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.tile{background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;box-shadow:var(--sh);color:var(--tx)}.tile:hover{text-decoration:none;border-color:var(--p2)}.tile b{font-size:1.7rem;color:var(--p)}.tile span{color:var(--mut);font-size:.88rem}
.cash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.cash,.bal,.acc{background:var(--pbg);border-radius:10px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}.accs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}.bal{background:#fff;border:1px solid var(--line);box-shadow:var(--sh)}
.thread{display:flex;flex-direction:column;gap:8px}.msg{max-width:80%;padding:8px 12px;border-radius:12px;background:var(--pbg)}.msg.out{background:#e9f5e1;align-self:flex-end}.msg p{margin:0;white-space:pre-wrap}
.txn-h{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.cust-h{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.urow{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.urow.pad{padding:12px 16px}
.fixer{border:1px solid #f0d28a;background:#fff8e6;border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:8px}.fixer.bad{border-color:#f0b4b4;background:#fdeeee;color:var(--bad)}.fixer-h{font-weight:700;color:#7a4e00}
.preview{background:var(--pbg);border-radius:10px;padding:10px 14px}.opform{display:flex;flex-direction:column;gap:12px}.rep-frame{width:100%;height:75vh;border:1px solid var(--line);border-radius:12px;background:#fff}.json{background:#0f2229;color:#cfe;padding:10px;border-radius:10px;overflow:auto;max-height:240px;font-size:.78rem}
.plink{color:inherit;display:block;margin-bottom:6px}.time{font-size:.82rem;color:var(--mut)}.datef .hint{margin-top:2px}

.grid>.btn{align-self:end}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:14px}
.plan{display:flex;flex-direction:column;gap:4px;align-items:center;padding:14px 10px;border:1.5px solid var(--line,#d7e3e6);border-radius:12px;background:transparent;color:inherit;cursor:pointer;font:inherit}
.plan b{font-size:15px}.plan span{font-size:20px;font-weight:800;color:#0e9aae}.plan small{opacity:.7}
.plan.on{border-color:#0e9aae;background:rgba(14,154,174,.1);box-shadow:0 0 0 3px rgba(14,154,174,.15)}
/* مانیتورینگ زنده */
.mon{background:#07131a;color:#c8f7e8;border-radius:16px;padding:16px;font-variant-numeric:tabular-nums;box-shadow:0 0 0 1px #0f3a33,0 8px 30px #0006;min-height:70vh}
.mon-top{display:flex;gap:16px;align-items:center;justify-content:space-between;font-size:1.05rem;border-bottom:1px solid #12433b;padding-bottom:10px;margin-bottom:12px;letter-spacing:.5px}
.mon-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#2cffb0;box-shadow:0 0 10px #2cffb0;animation:monp 1.4s infinite}
@keyframes monp{50%{opacity:.25}}
.mon-ms{color:#2cffb0;font-weight:700}
.mon-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.mon-tiles>div{background:#0b2128;border:1px solid #12433b;border-radius:12px;padding:12px;text-align:center}.mon-tiles b{display:block;font-size:2rem;color:#2cffb0;text-shadow:0 0 12px #2cffb066}.mon-tiles span{color:#7fb8a8;font-size:.85rem}
.mon-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:12px}
.mon-box{background:#0b2128;border:1px solid #12433b;border-radius:12px;padding:12px;max-height:60vh;overflow:auto}.mon-box h4{margin:0 0 8px;color:#7fb8a8;font-weight:600}
.mon-cash{display:flex;justify-content:space-between;padding:8px 10px;border-radius:8px;transition:background 1.4s,color .3s}.mon-cash b{font-size:1.1rem}.mon-cash small{color:#7fb8a8}
.mon-cash.up{background:#0f5a3a;color:#fff}.mon-cash.down{background:#5a1a24;color:#fff}
.mon-row{display:flex;flex-wrap:wrap;gap:2px 12px;align-items:baseline;padding:7px 8px;border-bottom:1px solid #12333a;color:inherit;text-decoration:none;font-size:.88rem}.mon-row>span:first-child{font-weight:700;white-space:nowrap}.mon-row>span:nth-child(2){flex:1;min-width:80px}.mon-row:hover{background:#0f2f38}
.mon-row.fresh{animation:monin 2.2s ease-out}@keyframes monin{0%{background:#2cffb044;transform:translateY(-8px);opacity:0}15%{opacity:1;transform:none}100%{background:transparent}}
.mon-st{color:#f2c46b}.mon-ev{display:flex;gap:10px;padding:5px 2px;border-bottom:1px dashed #12333a;font-size:.85rem}.mon-ev span:first-child{color:#2cffb0}.mon-idle{color:#4a7a6d}
.quick{display:grid;gap:10px}.qsearch{position:relative}.qsearch input{font-size:1.05rem;padding:13px 16px;border-radius:14px}
.qhits{position:absolute;inset-inline:0;top:100%;z-index:20;background:var(--card,#fff);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px #0002;margin-top:4px;overflow:hidden;padding:4px}
.qhits a{display:flex;justify-content:space-between;padding:10px 14px;color:inherit;text-decoration:none;border-radius:8px}.qhits a:hover{background:var(--pbg)}.qhits small{color:var(--mut)}
.qbtns{display:flex;flex-wrap:wrap;gap:8px}.qbtn{padding:11px 18px;border-radius:12px;background:var(--pbg);color:var(--p);font-weight:700;text-decoration:none;border:1px solid var(--line)}.qbtn:hover{background:var(--p);color:#fff}
