@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vazirmatn-arabic-400-normal-DMZFCm7K.woff2)format("woff2"),url(/assets/vazirmatn-arabic-400-normal-C4W5XURk.woff)format("woff")}@font-face{font-family:Vazirmatn;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/vazirmatn-arabic-700-normal-Dge_DOjm.woff2)format("woff2"),url(/assets/vazirmatn-arabic-700-normal-B5nPuCFv.woff)format("woff")}@font-face{font-family:Lalezar;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/lalezar-arabic-400-normal-D6_F3AeY.woff2)format("woff2"),url(/assets/lalezar-arabic-400-normal-BT7j_n2X.woff)format("woff")}:root{--page:#f4efe6;--ink:#3d3428;--muted:#6a5f50;--rule:#cbbfad;--accent:#0f6b6b;--danger:#8b3a2f;--text-amount:3.25rem;--text-name:1.375rem;--text-title:1.25rem;--text-action:1rem;--text-status:.9375rem;--text-meta:.875rem;--font-display:Lalezar, Vazirmatn, Tahoma, sans-serif}body{background:var(--page);height:100%;color:var(--ink);margin:0;overflow:hidden}html{direction:rtl;height:100dvh;font-family:Vazirmatn,Tahoma,sans-serif;overflow:hidden}#root{height:100%;overflow:hidden}.app-shell{max-width:480px;height:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-inline:env(safe-area-inset-left) env(safe-area-inset-right);box-sizing:border-box;margin:0 auto;overflow:hidden}.page{padding:1rem 1.25rem}.page h1{font-size:var(--text-title);margin:0 0 .5rem;font-weight:700}.page p{color:var(--muted);font-size:var(--text-meta);margin:0}.auth-loading,.auth-offline{box-sizing:border-box;justify-content:center;align-items:center;min-height:100%;display:flex}.auth-offline{text-align:center;flex-direction:column;gap:1rem;padding:1.5rem 1.25rem}.auth-retry{border:1px solid var(--rule);min-height:44px;color:var(--ink);font-family:inherit;font-size:var(--text-action);background:0 0;border-radius:8px;padding:.7rem 1.25rem}.auth-page{box-sizing:border-box;justify-content:center;align-items:center;min-height:100%;padding-top:2rem;padding-bottom:2rem;display:flex;overflow-y:auto}.auth-card{border:1px solid var(--rule);background:#faf6ef;border-radius:12px;width:100%;padding:1.5rem 1.25rem;box-shadow:0 1px #3d34280f}.auth-card h1{font-family:var(--font-display);margin-bottom:.35rem}.auth-lead{line-height:1.5;margin-bottom:1.25rem!important}.auth-form{flex-direction:column;gap:.65rem;display:flex}.auth-label{font-size:var(--text-status);color:var(--muted);font-weight:700}.auth-input{box-sizing:border-box;border:1px dashed var(--rule);background:var(--page);width:100%;color:var(--ink);font:inherit;border-radius:8px;padding:.65rem .75rem}.auth-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-style:solid}.auth-error{color:var(--danger)!important;font-size:var(--text-status)!important;margin:0!important}.auth-submit{background:var(--accent);color:#f4efe6;font:inherit;cursor:pointer;border:none;border-radius:8px;margin-top:.5rem;padding:.7rem 1rem;font-weight:700}.auth-submit:disabled{opacity:.65;cursor:wait}.sync-banner{color:var(--muted);font-size:var(--text-meta);text-align:center;border-bottom:1px solid var(--rule);background:#efe8db;flex-shrink:0;padding:.5rem .875rem}.sync-banner--failed{color:var(--danger);background:#f3e3df}.settings-failed{margin:0 0 .75rem;padding:0;list-style:none}.settings-failed-row{border-bottom:1px solid var(--rule);align-items:center;gap:.5rem;padding:.5rem 0;display:flex}.settings-failed-what{font-size:var(--text-status);flex:1}.settings-failed-when{color:var(--muted);font-size:var(--text-meta)}.settings-failed-discard{min-height:44px;color:var(--danger);font-family:inherit;font-size:var(--text-meta);background:0 0;border:0;padding:0 .5rem}.home{flex-direction:column;height:100%;display:flex;overflow:hidden}.home-bar{border-bottom:1px solid var(--rule);flex-shrink:0;grid-template-columns:2rem 1fr 2rem;align-items:center;padding:.75rem;display:grid}.home-title{text-align:center;font-size:var(--text-title);font-weight:400;font-family:var(--font-display);margin:0}.home-gear{color:var(--muted);text-align:left;font-size:var(--text-title);line-height:1;text-decoration:none}.home-body{flex:1;min-height:0;padding:.5rem .875rem 1rem;overflow-y:auto}.home-list{flex-direction:column;display:flex}.person-row{border-bottom:1px dashed var(--rule);color:inherit;padding:.75rem .125rem;text-decoration:none;display:block}.person-row__name{font-size:var(--text-name);font-weight:400;font-family:var(--font-display)}.person-row__meta{font-size:var(--text-status);color:var(--muted);margin-top:.125rem}.home-empty,.home-muted{text-align:center;color:var(--muted);font-size:var(--text-meta);margin:1rem 0}.home-add{width:100%;color:var(--accent);font:inherit;font-weight:700;font-size:var(--text-action);text-align:center;cursor:pointer;background:0 0;border:none;margin-top:.875rem;padding:0;display:block}.home-add-form{flex-direction:column;gap:.5rem;margin-top:.875rem;display:flex}.home-add-input{box-sizing:border-box;border:1px dashed var(--rule);background:var(--page);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:.5rem .625rem}.home-add-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-style:solid}.home-add-actions{justify-content:center;gap:.5rem;display:flex}.home-add-submit,.home-add-cancel{border:1px solid var(--rule);background:var(--page);color:var(--ink);font:inherit;font-size:var(--text-status);cursor:pointer;border-radius:6px;padding:.4rem .75rem}.home-add-submit{background:var(--accent);border-color:var(--accent);color:#f4efe6;font-weight:700}.home-add-error{color:var(--danger);font-size:var(--text-meta);text-align:center;margin:0}.home-cap{color:var(--muted);font-size:var(--text-meta);text-align:center;box-sizing:border-box;background:#efe8db;flex-shrink:0;min-height:1.9rem;padding:.5rem}.nav-back{min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex}.person{flex-direction:column;height:100%;display:flex;overflow:hidden}.person-bar{border-bottom:1px solid var(--rule);flex-shrink:0;grid-template-columns:2rem 1fr 2rem;align-items:center;padding:.75rem;display:grid}.person-title{text-align:center;font-size:var(--text-title);font-weight:400;font-family:var(--font-display);margin:0}.person-body{flex:1;min-height:0;padding:.5rem .875rem 1rem;overflow-y:auto}.person-sec{font-size:var(--text-meta);color:var(--muted);justify-content:space-between;align-items:center;margin:.5rem 0;font-weight:700;display:flex}.person-link{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.person-list{flex-direction:column;display:flex}.balance-row{border-bottom:1px dashed var(--rule);color:inherit;justify-content:space-between;align-items:center;padding:.75rem .125rem;text-decoration:none;display:flex}.balance-row:last-child{border-bottom:0}.balance-row__label{font-size:var(--text-name);font-weight:700}.balance-row__qty{font-size:var(--text-name);font-variant-numeric:tabular-nums;font-weight:700}.person-list--settled .balance-row__qty{color:var(--muted);font-weight:400}.person-settled{border-top:1px dashed var(--rule);color:var(--accent);font-weight:700;font-size:var(--text-action);text-align:center;margin-top:1.125rem;padding-top:.875rem;text-decoration:none;display:block}.person-muted{text-align:center;color:var(--muted);font-size:var(--text-meta);margin:1rem 0}.person-add-form{flex-direction:column;gap:.5rem;margin:.5rem 0;display:flex}.person-add-input{box-sizing:border-box;border:1px dashed var(--rule);background:var(--page);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:.5rem .625rem}.person-add-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-style:solid}.person-add-actions{justify-content:center;gap:.5rem;display:flex}.person-add-submit,.person-add-cancel{border:1px solid var(--rule);background:var(--page);color:var(--ink);font:inherit;font-size:var(--text-status);cursor:pointer;border-radius:6px;padding:.4rem .75rem}.person-add-submit{background:var(--accent);border-color:var(--accent);color:#f4efe6;font-weight:700}.person-add-error{color:var(--danger);font-size:var(--text-meta);text-align:center;margin:0}.person-cap{color:var(--muted);font-size:var(--text-meta);text-align:center;box-sizing:border-box;background:#efe8db;flex-shrink:0;min-height:1.9rem;padding:.5rem}.balance{flex-direction:column;height:100%;display:flex;overflow:hidden}.balance-bar{border-bottom:1px solid var(--rule);flex-shrink:0;grid-template-columns:2rem 1fr 2rem;align-items:center;padding:.75rem;display:grid}.balance-title{text-align:center;font-size:var(--text-title);font-weight:400;font-family:var(--font-display);margin:0}.balance-body{flex:1;min-height:0;padding:.75rem .875rem 1rem;overflow-y:auto}.balance-hero{text-align:center;border-bottom:1px solid var(--rule);padding:1rem .5rem}.balance-hero-label{font-size:var(--text-meta);color:var(--muted)}.balance-hero-num{font-size:var(--text-amount);font-variant-numeric:tabular-nums;margin-top:.25rem;font-weight:800}.balance-hero-totals{grid-template-columns:1fr 1fr;gap:.5rem;margin:.75rem 0 0;display:grid}.balance-hero-total-label{font-size:var(--text-meta);color:var(--muted)}.balance-hero-total-num{font-size:var(--text-action);font-variant-numeric:tabular-nums;margin:0}.balance-actions{grid-template-columns:1fr 1fr;gap:.5rem;margin:.75rem 0;display:grid}.balance-btn{background:var(--accent);color:var(--page);font:inherit;cursor:pointer;border:none;border-radius:8px;padding:.625rem;font-weight:700}.balance-btn--ghost{color:var(--accent);border:1px solid var(--accent);background:0 0}.balance-sec{font-size:var(--text-meta);color:var(--muted);margin:.5rem 0;font-weight:700}.balance-history{flex-direction:column;display:flex}.balance-tx{border:none;border-bottom:1px dashed var(--rule);width:100%;color:inherit;font:inherit;font-size:var(--text-status);text-align:right;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:.625rem .125rem;display:flex}.balance-tx:disabled{opacity:.6;cursor:wait}.balance-tx-date{font-size:var(--text-meta);color:var(--muted);margin-top:.125rem}.balance-tx-amt{font-variant-numeric:tabular-nums;font-weight:800}.balance-tx-amt--plus{color:var(--accent)}.balance-tx-amt--minus{color:var(--danger)}.balance-muted{text-align:center;color:var(--muted);font-size:var(--text-meta);margin:1rem 0}.balance-delete{border:1px solid var(--danger);width:100%;color:var(--danger);font:inherit;cursor:pointer;background:0 0;border-radius:8px;margin-top:1rem;padding:.5rem;font-weight:700;display:block}.confirm-press{font:inherit;cursor:pointer}.confirm-press--armed{background:var(--danger);color:#f4efe6;border-color:var(--danger)}.balance-cap{color:var(--muted);font-size:var(--text-meta);text-align:center;box-sizing:border-box;background:#efe8db;flex-shrink:0;min-height:1.9rem;padding:.5rem}.jalali-date{position:relative}.jalali-date-field,.tx-form-input{box-sizing:border-box;border:1px dashed var(--rule);background:var(--page);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:.5rem .625rem}button.jalali-date-field{cursor:pointer;text-align:start;justify-content:space-between;align-items:center;display:flex}.jalali-date-field:focus,.tx-form-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-style:solid}.jalali-date-popover{z-index:20;border:1px solid var(--rule);background:#faf6ef;border-radius:12px;padding:.625rem;position:absolute;top:calc(100% + 4px);left:0;right:0;box-shadow:0 6px 18px #3d34281f}.jalali-date-nav{font-weight:700;font-size:var(--text-status);justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.jalali-date-nav button{font:inherit;cursor:pointer;color:var(--ink);background:0 0;border:none;padding:.25rem .5rem}.jalali-date-weekdays,.jalali-date-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.jalali-date-weekdays{font-size:var(--text-meta);color:var(--muted);margin-bottom:.25rem}.jalali-date-day{font:inherit;font-size:var(--text-meta);cursor:pointer;color:var(--ink);background:0 0;border:none;border-radius:8px;padding:.4rem 0}.jalali-date-day--muted{opacity:.3}.jalali-date-day--selected{background:var(--accent);color:#f4efe6;font-weight:700}.jalali-date-today{width:100%;color:var(--accent);font:inherit;font-size:var(--text-meta);cursor:pointer;background:0 0;border:none;margin-top:.5rem;font-weight:700;display:block}.tx-form{flex-direction:column;gap:.5rem;margin:.75rem 0;display:flex}.tx-form-title{font-size:var(--text-status);color:var(--muted);text-align:center;font-weight:700}.segmented{border:1px solid var(--rule);border-radius:10px;display:flex;overflow:hidden}.segmented-item{color:var(--muted);font:inherit;font-size:var(--text-status);cursor:pointer;background:0 0;border:none;flex:1;padding:.55rem .5rem}.segmented-item--selected{background:var(--accent);color:#f4efe6;font-weight:700}.segmented-item:disabled{opacity:.65;cursor:wait}.tx-form-actions{justify-content:center;gap:.5rem;display:flex}.tx-form-submit,.tx-form-cancel{border:1px solid var(--rule);background:var(--page);color:var(--ink);font:inherit;font-size:var(--text-status);cursor:pointer;border-radius:6px;padding:.4rem .75rem}.tx-form-submit{background:var(--accent);border-color:var(--accent);color:#f4efe6;font-weight:700}.tx-form-error{color:var(--danger);font-size:var(--text-meta);text-align:center;margin:0}.settings{flex-direction:column;height:100%;display:flex;overflow:hidden}.settings-bar{border-bottom:1px solid var(--rule);flex-shrink:0;grid-template-columns:2rem 1fr 2rem;align-items:center;padding:.75rem;display:grid}.settings-title{text-align:center;font-size:var(--text-title);font-weight:400;font-family:var(--font-display);margin:0}.settings-body{flex:1;min-height:0;padding:.75rem .875rem 1rem;overflow-y:auto}.settings-section{border-bottom:1px dashed var(--rule);padding:.875rem 0}.settings-section--last{border-bottom:none;padding-top:1.25rem}.settings-sec-title{font-size:var(--text-status);color:var(--muted);margin:0 0 .5rem;font-weight:700}.settings-lead{font-size:var(--text-status);color:var(--muted);margin:0 0 .75rem;line-height:1.5}.settings-form{flex-direction:column;gap:.5rem;display:flex}.settings-label{font-size:var(--text-meta);color:var(--muted);font-weight:700}.settings-input{box-sizing:border-box;border:1px dashed var(--rule);background:var(--page);width:100%;color:var(--ink);font:inherit;border-radius:6px;padding:.5rem .625rem}.settings-input:focus{outline:2px solid var(--accent);outline-offset:1px;border-style:solid}.settings-btn{background:var(--accent);color:#f4efe6;font:inherit;font-weight:700;font-size:var(--text-status);cursor:pointer;border:none;border-radius:8px;margin-top:.25rem;padding:.55rem .75rem}.settings-btn:disabled{opacity:.65;cursor:wait}.settings-btn--ghost{color:var(--accent);border:1px solid var(--accent);background:0 0}.settings-btn.confirm-press--armed{background:var(--danger);color:#f4efe6;border-color:var(--danger)}.settings-error{color:var(--danger);font-size:var(--text-meta);margin:0}.settings-success{color:var(--accent);font-size:var(--text-meta);margin:0}.settings-file{display:none}.settings-logout{border:1px solid var(--danger);width:100%;color:var(--danger);font:inherit;font-weight:700;font-size:var(--text-status);cursor:pointer;background:0 0;border-radius:8px;padding:.55rem;display:block}.settings-logout:disabled{opacity:.65;cursor:wait}.settings-cap{color:var(--muted);font-size:var(--text-meta);text-align:center;box-sizing:border-box;background:#efe8db;flex-shrink:0;min-height:1.9rem;padding:.5rem}.person-delete-hint{color:var(--muted);font-size:var(--text-meta);text-align:center;margin:1.25rem 0 0}.person-delete{border:0;border-top:1px solid var(--rule);min-height:44px;color:var(--danger);font-size:var(--text-action);cursor:pointer;background:0 0;width:100%;margin:1.25rem 0 0;padding:.5rem 0;font-family:inherit}.totp-enroll{flex-direction:column;gap:.65rem;display:flex}.totp-enroll__lead{color:var(--muted);font-size:var(--text-status);margin:0;line-height:1.5}.totp-enroll__qr{border:1px solid var(--rule);background:#faf6ef;border-radius:8px;justify-content:center;padding:.75rem;display:flex}.totp-enroll__secret{text-align:center;font-family:monospace;font-size:var(--text-status);letter-spacing:.08em;color:var(--ink);word-break:break-all;margin:0}.totp-enroll__actions{align-items:center;gap:.5rem;display:flex}
