@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-Bold.woff2) format("woff2");font-weight:700;font-display:swap}
:root{--jade:#0b5d4b;--jade2:#0f7a63;--turq:#1fb5a6;--bg:#faf7f0;--panel:#fff;--ink:#1f2937;--mute:#6b7280;--brass:#b08d57;--line:#e7e1d3;--red:#b42318;--green:#067647;--amber:#b54708;--shadow:0 1px 2px #1f293712,0 8px 24px #1f293710;--r:16px}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:Vazirmatn,Tahoma,"Segoe UI",sans-serif;font-size:15px;line-height:1.6}
bdi,.num{unicode-bidi:isolate}.num{direction:ltr;display:inline-block;font-variant-numeric:tabular-nums}
a{color:var(--jade2);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--turq);outline-offset:2px;border-radius:8px}
#app{min-height:100%}.shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.side{background:linear-gradient(180deg,#083f33,#0b5d4b);color:#e8f5f1;padding:20px 14px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:6px 10px 18px;font-weight:700;font-size:17px}.brand i{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--turq),var(--brass));display:grid;place-items:center;color:#fff;font-style:normal}
.nav a{display:flex;gap:10px;align-items:center;padding:11px 12px;border-radius:12px;color:#d6ece6;min-height:44px;margin-bottom:2px}.nav a:hover{background:#ffffff14}.nav a.on{background:#ffffff22;color:#fff;font-weight:700;box-shadow:inset 3px 0 0 var(--brass)}
.badge{background:var(--brass);color:#fff;border-radius:99px;font-size:11px;padding:0 7px;margin-inline-start:auto;min-width:20px;text-align:center}
.main{padding:22px 28px 90px;max-width:1280px;width:100%}.top{display:flex;gap:12px;align-items:center;margin-bottom:18px;flex-wrap:wrap}.top h1{margin:0;font-size:22px;color:var(--jade)}.grow{flex:1}
.card{background:var(--panel);border-radius:var(--r);box-shadow:var(--shadow);padding:18px;border:1px solid #f1ecdf}.card h3{margin:0 0 10px;font-size:15px;color:var(--jade)}
.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.stat{display:flex;flex-direction:column;gap:2px;position:relative}.stat .lbl{color:var(--mute);font-size:13px;display:flex;gap:6px;align-items:center}.stat .val{font-size:26px;font-weight:700;direction:ltr;text-align:right;font-variant-numeric:tabular-nums}.stat .sub{font-size:12px;color:var(--mute)}
.stat.jade{background:linear-gradient(135deg,#0b5d4b,#0f7a63);color:#fff}.stat.jade .lbl,.stat.jade .sub{color:#cdeee6}.stat.sand{background:#f4efe6}
.pos{color:var(--green)}.neg{color:var(--red)}.warn{color:var(--amber)}
.btn{display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;font-weight:600;transition:.15s}.btn:hover{border-color:var(--jade2);transform:translateY(-1px)}
.btn.p{background:var(--jade);border-color:var(--jade);color:#fff}.btn.p:hover{background:var(--jade2)}.btn.d{background:#fff;border-color:#f0b4ae;color:var(--red)}.btn.g{background:var(--sand,#f4efe6);border-color:transparent}.btn.sm{min-height:36px;padding:0 12px;font-size:13px}.btn[disabled]{opacity:.5;pointer-events:none}.btn.big{min-height:56px;font-size:17px;width:100%}
.chip{display:inline-block;padding:2px 10px;border-radius:99px;font-size:12px;font-weight:700;background:#eef2f1;color:#32524a}.chip.PENDING,.chip.IN_PROGRESS{background:#fff4e0;color:#8a5a00}.chip.COMPLETED,.chip.active,.chip.PAID{background:#e3f6ec;color:var(--green)}.chip.PROBLEM,.chip.CANCELLED,.chip.REVERSED,.chip.failed,.chip.suspended,.chip.frozen,.chip.read_only{background:#fde8e6;color:var(--red)}.chip.DEFERRED,.chip.PENDING_APPROVAL,.chip.PENDING_ROUTE,.chip.low_credit,.chip.grace{background:#eaf0ff;color:#2843a0}
.tbl{width:100%;border-collapse:collapse}.tbl th{position:sticky;top:0;background:#f4efe6;text-align:start;padding:10px 12px;font-size:13px;color:#55503f;white-space:nowrap}.tbl td{padding:11px 12px;border-bottom:1px solid #f0ebe0;vertical-align:middle}.tbl tr.click{cursor:pointer}.tbl tr.click:hover td{background:#fbf9f3}.tw{overflow:auto;border-radius:12px;max-width:100%}
.field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px}.field label{font-size:13px;color:var(--mute)}.in,select.in,textarea.in{min-height:44px;border:1px solid var(--line);border-radius:12px;padding:8px 12px;background:#fff;width:100%}textarea.in{min-height:90px}.in:focus{border-color:var(--turq)}.in.ltr{direction:ltr;text-align:left}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.row>.field{flex:1;min-width:150px}.mt{margin-top:14px}.muted{color:var(--mute)}.sm{font-size:13px}
.modal-bg{position:fixed;inset:0;background:#10201bAA;display:grid;place-items:center;z-index:50;padding:14px;backdrop-filter:blur(3px)}.modal{background:#fff;border-radius:20px;max-width:640px;width:100%;max-height:92vh;overflow:auto;box-shadow:0 20px 60px #0004}.modal header{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;font-weight:700;color:var(--jade);position:sticky;top:0;background:#fff;z-index:1}.modal .bd{padding:18px 20px}.modal footer{padding:14px 20px;border-top:1px solid var(--line);display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.toasts{position:fixed;inset-inline-start:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:80}.toast{background:#10201b;color:#fff;padding:12px 16px;border-radius:12px;box-shadow:var(--shadow);max-width:360px;animation:up .25s}.toast.err{background:#8f1d14}.toast.ok{background:var(--jade)}@keyframes up{from{opacity:0;transform:translateY(8px)}}
.sk{background:linear-gradient(90deg,#eee8da 25%,#f7f3ea 37%,#eee8da 63%);background-size:400% 100%;animation:sh 1.3s infinite;border-radius:10px;height:18px;margin:8px 0}@keyframes sh{0%{background-position:100% 50%}100%{background-position:0 50%}}
.empty{text-align:center;padding:34px 10px;color:var(--mute)}.empty b{display:block;font-size:34px}
.tl{list-style:none;margin:0;padding:0}.tl li{position:relative;padding:0 22px 14px 0;border-inline-start:0}.tl li:before{content:"";position:absolute;right:4px;top:8px;width:10px;height:10px;border-radius:50%;background:var(--turq)}.tl li:after{content:"";position:absolute;right:8px;top:20px;bottom:-4px;width:2px;background:var(--line)}.tl li:last-child:after{display:none}
.login{min-height:100vh;display:grid;place-items:center;padding:16px;background:radial-gradient(1000px 500px at 80% -10%,#bfe9e1 0,transparent 60%),radial-gradient(800px 400px at 0 110%,#ecdfc4 0,transparent 60%),var(--bg)}.login .card{max-width:420px;width:100%;padding:28px}
.bottom{display:none}.tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.tab{padding:9px 16px;border-radius:99px;background:#fff;border:1px solid var(--line);cursor:pointer;min-height:40px;font-weight:600}.tab.on{background:var(--jade);color:#fff;border-color:var(--jade)}
.cur-card{border-inline-start:5px solid var(--brass)}.hero{background:linear-gradient(135deg,#0b5d4b 0,#0f7a63 60%,#1fb5a6 130%);color:#fff;border-radius:22px;padding:22px 24px;margin-bottom:16px}.hero h2{margin:0 0 4px}.hero .sub{color:#d6f0ea}
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px}.kv div:nth-child(odd){color:var(--mute)}.pill-row{display:flex;gap:8px;flex-wrap:wrap}.dp{position:relative}.dp-pop{position:absolute;z-index:40;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:12px;width:300px;top:50px;inset-inline-start:0}.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.dp-grid button{border:0;background:#fff;min-height:36px;border-radius:10px;cursor:pointer}.dp-grid button:hover{background:#e6f2ef}.dp-grid .sel{background:var(--jade);color:#fff}.dp-grid .today{box-shadow:inset 0 0 0 2px var(--brass)}.dp-grid .hd{color:var(--mute);font-size:12px;min-height:24px}
@media(max-width:860px){.shell{display:block}.side{display:none}.main{padding:14px 12px 96px}.bottom{display:flex;position:fixed;bottom:0;inset-inline:0;background:#fff;border-top:1px solid var(--line);z-index:30;padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.bottom a{flex:1;text-align:center;padding:6px 2px;color:var(--mute);font-size:12px;min-height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:12px}.bottom a.on{color:var(--jade);font-weight:700;background:#e9f5f2}.stat .val{font-size:22px}.kv{grid-template-columns:110px 1fr}.top h1{font-size:19px}}
@media print{.side,.bottom,.top .btn{display:none}.shell{display:block}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
