/* Exact Vazir font from an external CDN; no font binaries are bundled. */
@font-face{font-family:Vazir;src:url('https://cdnjs.cloudflare.com/ajax/libs/vazir-font/30.1.0/Vazir-Regular.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:Vazir;src:url('https://cdnjs.cloudflare.com/ajax/libs/vazir-font/30.1.0/Vazir-Medium.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
@font-face{font-family:Vazir;src:url('https://cdnjs.cloudflare.com/ajax/libs/vazir-font/30.1.0/Vazir-Bold.woff2') format('woff2');font-style:normal;font-weight:700 900;font-display:swap}
:root{--ink:#152536;--sub:#748294;--blue:#1c735f;--mint:#dcf5ea;--panel:#fff;--edge:#e7edf1;--bg:#f3f6f8;--red:#bc4f53;--orange:#d99b50;--nav:#102a39;--shadow:0 14px 32px rgba(22,54,72,.035)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;direction:rtl;font-family:Vazir,Tahoma,'Segoe UI',Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:14px;line-height:1.65}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8dc8b5;outline-offset:2px}a{color:var(--blue);text-decoration:none}h1,h2,h3,p{margin-top:0}.shell{display:flex;min-height:100vh}.sidebar{width:256px;min-width:256px;background:var(--nav);padding:32px 16px 20px;display:flex;flex-direction:column;color:white;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:0 14px 34px}.brand-mark{width:45px;height:45px;display:flex;justify-content:center;align-items:center;background:linear-gradient(135deg,#a3ecd1,#4ab696);border-radius:14px;font-size:28px;font-weight:900;color:#0b4f44}.brand strong{display:block;font-size:23px;letter-spacing:-1px}.brand small,.side-bottom small{display:block;color:#92aebb;font-size:11px}.side-label{color:#84a7b1;padding:0 20px;margin-bottom:13px;font-size:11px}nav{display:grid;gap:5px}nav button{width:100%;display:flex;align-items:center;gap:12px;text-align:right;border:0;background:transparent;color:#b5ccd5;padding:12px 16px;border-radius:12px;font-weight:500}nav button span{width:23px;font-size:22px;text-align:center;font-family:Arial}nav button.active{background:#244c59;color:#fff}nav button:hover{background:#1c414e;color:white}.side-bottom{margin-top:auto;display:flex;align-items:center;gap:9px;padding:18px 13px;border:1px solid #244956;border-radius:14px}.side-bottom strong{font-size:11px;font-weight:600}.safe-dot{width:10px;height:10px;border-radius:50%;background:#56d2a3;box-shadow:0 0 0 5px rgba(86,210,163,.1)}.main{flex:1;min-width:0}.topbar{min-height:76px;padding:0 37px;border-bottom:1px solid #e7edf2;background:rgba(255,255,255,.83);display:flex;align-items:center;justify-content:space-between;gap:20px}.breadcrumb{font-size:12px;color:#8a9ca7}.breadcrumb span{margin:0 10px}.breadcrumb b{color:#234053}.top-actions{display:flex;align-items:center;gap:15px;color:#64798a;font-size:12px}.light-btn{border:1px solid var(--edge);background:white;border-radius:9px;padding:7px 13px;color:var(--ink)}.content{max-width:1460px;margin:0 auto;padding:32px 35px 70px}.hero{border-radius:21px;background:linear-gradient(108deg,#123443,#1c6658);color:white;padding:29px 34px;margin-bottom:20px;position:relative;overflow:hidden}.hero:after{content:'';width:240px;height:240px;border:45px solid rgba(177,238,213,.07);border-radius:50%;position:absolute;left:-70px;top:-110px}.hero h1{font-size:24px;font-weight:800;margin:0 0 9px}.hero p{color:#c0dbd6;font-size:13px;margin:0;max-width:780px;line-height:2}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:22px}.pagehead h1{font-size:24px;margin:0 0 4px}.pagehead p{margin:0;color:var(--sub);font-size:12px}.btn-primary,.btn-outline,.btn-ghost,.btn-danger{border:0;border-radius:11px;padding:10px 17px;font-weight:700;min-height:39px;white-space:nowrap}.btn-primary{background:#217b66;color:white}.btn-primary:hover{background:#17634f}.btn-outline{background:#f0f9f5;color:#12644f;border:1px solid #cde9dd}.btn-ghost{background:#f1f5f6;color:#35505d}.btn-danger{background:#fce9e9;color:#a34143}.actions{display:flex;flex-wrap:wrap;gap:8px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}.kpi{background:var(--panel);border:1px solid var(--edge);border-radius:17px;padding:21px;box-shadow:var(--shadow)}.kpi .eyebrow{font-size:12px;color:#738594;display:flex;align-items:center;justify-content:space-between}.kpi .metric{font-weight:800;font-size:25px;letter-spacing:-.7px;margin:11px 0 4px;overflow-wrap:anywhere}.metric small{font-weight:400;font-size:11px;color:#8a9aaa}.kpi p{font-size:11px;margin:0;color:#8ca0a8}.dot-icon{background:#e6f6ef;border-radius:10px;padding:2px 8px;font-size:17px;color:#287c66}.dot-icon.debt{background:#ffeded;color:#a8454e}.green{color:#168368!important}.red{color:#bd5356!important}.muted{color:#81929d}.two-cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,1fr);gap:18px;margin-bottom:20px}.panel{background:var(--panel);border:1px solid var(--edge);border-radius:17px;padding:21px;box-shadow:var(--shadow);min-width:0}.panel h2{font-size:15px;margin:0 0 16px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}.panel-head h2{margin:0}.caption{color:var(--sub);font-size:11px}.placeholder{padding:38px 10px;text-align:center;color:#82939d;border:1px dashed #dbe5e9;border-radius:13px;font-size:12px}.placeholder strong{display:block;color:#465d69;font-size:14px;margin-bottom:7px}.chart{height:184px;display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid #ecf1f3;padding:10px 8px 0;justify-content:space-around}.bar-group{display:flex;align-items:flex-end;gap:5px;height:100%;flex:1;position:relative;max-width:88px;padding-bottom:25px}.bar{width:43%;border-radius:5px 5px 0 0;min-height:2px}.bar-income{background:#39ac8b}.bar-expense{background:#c3d5de}.bar-label{position:absolute;bottom:3px;right:0;left:0;font-size:10px;color:#81909d;text-align:center}.legend{display:flex;gap:18px;margin-top:12px;font-size:11px;color:#768896}.legend i{display:inline-block;width:9px;height:9px;border-radius:3px;margin-left:4px;background:#39ac8b}.legend i.out{background:#c3d5de}.split{display:flex;height:13px;border-radius:20px;overflow:hidden;background:#edf1f3;margin:16px 0}.split span{height:100%}.tiny-row{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #f0f3f5;font-size:12px;align-items:center}.tiny-row:last-child{border:0}.tiny-row b{font-size:12px}.insight{border:1px solid #d7eae3;background:#f0faf5;border-radius:13px;padding:15px;font-size:12px;color:#346d5e;line-height:2}.insight strong{display:block;margin-bottom:3px;color:#1e624d}.table-wrap{overflow:auto;border:1px solid var(--edge);border-radius:14px;background:#fff}.table{border-collapse:collapse;width:100%;min-width:620px;font-size:12px}.table th{color:#8a98a5;font-weight:500;background:#f8fafb;padding:14px;text-align:right;white-space:nowrap}.table td{padding:14px;border-top:1px solid #eef1f3;vertical-align:middle}.table tr:hover td{background:#fbfcfd}.table td b{font-size:12px}.num{font-variant-numeric:tabular-nums;direction:ltr;unicode-bidi:isolate;text-align:right;white-space:nowrap}.chip{border-radius:8px;padding:4px 8px;background:#edf2f5;color:#56707c;display:inline-block;font-size:10px}.chip.income{background:#e7f7ef;color:#11815e}.chip.expense{background:#fceded;color:#bc5158}.chip.transfer{background:#eaf0fc;color:#5573aa}.chip.buy{background:#f8f0e4;color:#a16d20}.chip.sell{background:#e8f4ed;color:#267451}.cards3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:15px 0 20px}.mini-card{border-radius:15px;background:white;border:1px solid var(--edge);padding:18px}.mini-card h3{font-size:14px;margin:0 0 8px}.mini-card p{color:var(--sub);font-size:11px;margin:5px 0}.mini-card .amount{font-size:20px;font-weight:800}.empty{color:#8c9aa5;font-size:12px}.progress{height:8px;background:#edf1f4;border-radius:10px;overflow:hidden;margin-top:8px}.progress .fill{height:100%;background:#37a888;border-radius:10px}.progress .fill.over{background:#d96d6d}.market-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:18px 0}.quote{border:1px solid var(--edge);background:white;border-radius:15px;padding:18px}.quote strong{font-size:13px}.quote .qprice{font-weight:800;font-size:23px;margin:12px 0 4px}.quote small{display:block;color:#81919b;font-size:10px}.unit{font-size:11px;color:#84939a;font-weight:400}.status{display:inline-block;padding:3px 7px;border-radius:7px;background:#eef2f4;color:#667f8b;font-size:10px}.status.stale{background:#fff1e8;color:#c17737}.notice{padding:14px 16px;border:1px solid #ecdcc2;background:#fff9ed;color:#86652f;border-radius:12px;margin-bottom:16px;font-size:12px;line-height:2}.notice.info{border-color:#cce9dd;background:#f1fbf7;color:#246d59}.line{margin:15px 0;border:0;border-top:1px solid #e9eef1}.form-help{font-size:11px;color:#84939d;line-height:2}.modal{border:1px solid #dae3e8;background:#fff;color:var(--ink);border-radius:20px;width:min(620px,calc(100vw - 24px));max-height:90vh;padding:24px;box-shadow:0 40px 95px #11283f44}.modal::backdrop{background:rgba(13,32,45,.6);backdrop-filter:blur(2px)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.modal-header h2{font-size:19px;margin:0}.close{width:32px;height:32px;display:grid;place-items:center;background:#f0f3f5;border:0;border-radius:9px;font-size:25px;color:#526574}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:6px}.field.full{grid-column:1/-1}.field label{font-size:12px;color:#4a5c6a;font-weight:700}.field input,.field select,.field textarea{min-height:41px;width:100%;padding:9px 11px;background:#fbfcfd;border:1px solid #dbe3e8;border-radius:9px;color:#283e4e;outline:0}.field input:focus,.field select:focus{border-color:#67b99d}.field small{color:#9aa8b1;font-size:10px}.field textarea{resize:vertical;min-height:72px}.form-actions{display:flex;justify-content:flex-end;gap:8px;padding-top:21px;margin-top:22px;border-top:1px solid #edf1f3}.toast{position:fixed;left:28px;bottom:24px;padding:13px 21px;border-radius:12px;z-index:500;display:none;background:#173e38;color:white;max-width:460px;box-shadow:0 16px 50px #153e4d44}.toast.bad{background:#a93e43}.loading{padding:80px;text-align:center;color:#869ba5}.big-icon{font-size:24px}.tagline{font-size:11px;color:#758994}.list-actions{display:flex;gap:7px;flex-wrap:wrap}.small-btn{padding:7px 10px;min-height:30px;font-size:11px;border-radius:8px;border:1px solid #d7e4e5;background:#f4faf7;color:#1c6956}.dense{padding:12px!important}.monochart{display:flex;height:130px;align-items:flex-end;justify-content:space-between;gap:9px;margin:18px 0}.monochart .bar{background:linear-gradient(#7dd2b4,#319a7b);width:100%;border-radius:5px 5px 0 0}.month-label{text-align:center;font-size:10px;color:#7d929d}.forecast-card{border:1px solid #d6e8dd;background:#f4fbf7;padding:22px;border-radius:15px}.tabs{display:flex;gap:7px;flex-wrap:wrap}.tabs button{border:1px solid #d9e5e7;border-radius:9px;padding:8px 13px;background:white;color:#55707b}.tabs button.selected{background:#1b7e65;color:white;border-color:#1b7e65}.hide{display:none!important}code{font-family:Consolas,monospace;direction:ltr;unicode-bidi:isolate;color:#216b59}.help-list{line-height:2.2;font-size:12px;color:#506573;padding-right:20px}.filearea{padding:16px;border:1px dashed #bed4d0;border-radius:10px;background:#f8fbfa}.filearea input{max-width:100%}
@media(max-width:1100px){.sidebar{width:220px;min-width:220px}.content{padding:24px}.kpis{grid-template-columns:repeat(2,1fr)}.market-grid{grid-template-columns:repeat(2,1fr)}.cards3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:770px){.shell{display:block}.sidebar{height:auto;width:auto;min-width:0;position:relative;padding:12px}.brand{padding:7px 8px 12px}.brand-mark{width:36px;height:36px;border-radius:10px;font-size:22px}.brand strong{font-size:19px}.side-label,.side-bottom{display:none}nav{display:flex;overflow:auto;padding:2px 0 5px;gap:5px;scrollbar-width:thin}nav button{flex-shrink:0;width:auto;padding:8px 11px;font-size:11px}nav button span{font-size:16px;width:15px}.topbar{padding:11px 16px;min-height:54px}.top-actions{gap:6px;font-size:10px}.content{padding:17px 13px 70px}.hero{padding:25px 20px}.hero h1{font-size:19px}.pagehead h1{font-size:19px}.kpis{gap:9px}.kpi{padding:14px}.kpi .metric{font-size:19px}.two-cols{grid-template-columns:1fr}.cards3,.market-grid{grid-template-columns:1fr 1fr;gap:9px}.panel{padding:15px}.modal{padding:18px}.quote .qprice{font-size:17px}}
@media(max-width:420px){.cards3,.market-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.top-actions #dateToday{display:none}.pagehead{align-items:flex-start;flex-direction:column}.kpi .metric{font-size:17px}}

/* === Android-first responsive shell === */
html,body{width:100%;min-width:0;overflow-x:hidden}
button,input,select,textarea{font-family:Vazir,Tahoma,'Segoe UI',Arial,sans-serif}
.drawer-close,.mobile-menu-toggle,.mobile-bottom-nav,.drawer-backdrop{display:none}
.install-btn[hidden]{display:none!important}
.table td[data-label]::before{display:none}
@media(max-width:770px){
  .shell{display:block;min-height:100dvh}
  .sidebar{position:fixed!important;top:0;right:0;bottom:0;left:auto;width:min(320px,86vw)!important;min-width:0!important;height:100dvh!important;z-index:110;display:flex;flex-direction:column;padding:27px 17px 25px;transform:translateX(108%);transition:transform .23s ease;box-shadow:-14px 0 45px rgba(8,32,44,.17);visibility:hidden}
  .drawer-open .sidebar{transform:translateX(0);visibility:visible}
  .drawer-backdrop{position:fixed;inset:0;background:rgba(10,29,40,.5);z-index:109}
  .drawer-open .drawer-backdrop{display:block}
  .drawer-open{overflow:hidden}
  .drawer-close{display:grid;place-items:center;position:absolute;left:14px;top:16px;border:1px solid #385464;border-radius:12px;width:42px;height:42px;color:#e1f5eb;background:#244555;font-size:30px;line-height:1}
  .sidebar .brand{padding:5px 10px 24px}
  .sidebar .brand-mark{width:43px;height:43px}
  .sidebar .side-label{display:block;margin-bottom:10px}
  .sidebar nav{display:grid;gap:6px;padding:0;overflow-y:auto;overflow-x:visible}
  .sidebar nav button{width:100%;font-size:14px;min-height:48px;flex-shrink:1;padding:11px 14px}
  .sidebar nav button span{font-size:20px;width:26px}
  .sidebar .side-bottom{display:flex;margin-top:auto}
  .mobile-menu-toggle{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;border:1px solid #e1e9ec;background:white;border-radius:11px;color:#194d50;font-size:21px}
  .topbar{position:sticky;top:0;z-index:50;min-height:64px;gap:9px;background:rgba(255,255,255,.96);padding:9px 13px;backdrop-filter:blur(10px)}
  .breadcrumb{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
  .breadcrumb span{margin:0 5px}
  .top-actions{gap:5px;white-space:nowrap}
  .top-actions .light-btn{min-height:39px;padding:8px 10px;font-size:11px}
  .top-actions #dateToday{display:none}
  .content{padding:18px 13px calc(104px + env(safe-area-inset-bottom));max-width:100vw}
  .hero{padding:23px 20px;margin-bottom:13px;border-radius:19px}
  .hero h1{font-size:20px}
  .hero p{font-size:12px;line-height:1.95}
  .pagehead{gap:12px}
  .pagehead h1{font-size:20px}
  .pagehead p{font-size:12px}
  .pagehead .actions{width:100%}
  .actions>.btn-primary,.actions>.btn-outline{flex:1;min-height:43px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}
  .kpi{padding:14px 12px;border-radius:15px}
  .kpi .metric{font-size:clamp(15px,4vw,20px);letter-spacing:0}
  .kpi .eyebrow{font-size:11px}
  .kpi p{font-size:10px}
  .two-cols{grid-template-columns:minmax(0,1fr);gap:13px;margin-bottom:13px}
  .panel{padding:16px 14px;border-radius:16px}
  .cards3,.market-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .mini-card,.quote{padding:14px;border-radius:15px;overflow-wrap:anywhere}
  .mini-card .amount{font-size:18px}
  .quote .qprice{font-size:19px}
  .tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:7px;scrollbar-width:thin}
  .tabs button{white-space:nowrap;flex-shrink:0;min-height:41px}
  .mobile-bottom-nav{position:fixed;right:0;left:0;bottom:0;z-index:85;height:calc(68px + env(safe-area-inset-bottom));padding:6px 8px calc(6px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:3px;background:rgba(255,255,255,.98);border-top:1px solid #e4ecee;box-shadow:0 -5px 25px rgba(13,45,54,.06)}
  .mobile-bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;color:#70848b;border-radius:12px;min-width:0;padding:2px 0}
  .mobile-bottom-nav button span{font-size:23px;height:28px;line-height:28px}
  .mobile-bottom-nav button small{font-size:10px;white-space:nowrap}
  .mobile-bottom-nav button.active{background:#e9f7f0;color:#12664e;font-weight:700}
  .toast{left:12px;right:12px;max-width:none;bottom:calc(77px + env(safe-area-inset-bottom));z-index:190;font-size:12px}
  .modal{position:fixed;left:0;right:0;bottom:0;top:auto;margin:0;width:100%;max-width:100%;max-height:min(92dvh,920px);padding:0;border-radius:22px 22px 0 0;border:0;overflow:hidden}
  .modal-header{padding:17px 18px 14px;margin-bottom:0;border-bottom:1px solid var(--edge);background:#fff}
  .modal-header h2{font-size:17px}
  #modalForm{display:flex;flex-direction:column;max-height:calc(92dvh - 65px)}
  .form-grid{grid-template-columns:1fr;gap:13px;overflow-y:auto;padding:17px 17px 23px;overscroll-behavior:contain;flex:1}
  .field.full{grid-column:auto}
  .field input,.field select,.field textarea{font-size:16px;min-height:46px}
  .form-actions{padding:12px 15px calc(14px + env(safe-area-inset-bottom));margin-top:0;gap:10px;background:#fff;box-shadow:0 -6px 15px rgba(20,40,50,.04)}
  .form-actions button{flex:1;min-height:46px}
}
@media(max-width:700px){
  .table-wrap{overflow:visible;border:0;background:transparent}
  .table{width:100%;min-width:0;display:block;font-size:12px}
  .table thead{display:none}
  .table tbody{display:grid;gap:9px}
  .table tr{display:block;border:1px solid var(--edge);background:#fff;border-radius:14px;box-shadow:var(--shadow);padding:8px 13px}
  .table td{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid #f0f4f6!important;padding:11px 0!important;text-align:left;min-width:0;overflow-wrap:anywhere}
  .table td:first-child{border-top:0!important}
  .table td[data-label]::before{content:attr(data-label);display:block;flex:0 0 37%;max-width:37%;color:#718391;line-height:1.5;text-align:right;font-weight:500}
  .table td.num{white-space:normal}
  .table td .list-actions{justify-content:flex-end}
}
@media(max-width:420px){
  .cards3,.market-grid{grid-template-columns:1fr 1fr}
  .pagehead{flex-direction:column}
  .kpi .metric{font-size:15px}
  .quote .qprice,.mini-card .amount{font-size:16px}
  .top-actions .install-btn{display:none!important}
  .btn-primary,.btn-outline,.btn-ghost{white-space:normal}
}
@media(max-width:350px){.kpis,.cards3,.market-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none!important}html{scroll-behavior:auto}}
