:root{--b:#2563eb;--bs:#eff6ff;--bg:#f5f7fb;--t:#172033;--m:#718096;--bd:#e7ebf2;font-family:Inter,system-ui,-apple-system,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--t);margin:0}button{font:inherit;cursor:pointer}.client-layout{min-height:100vh}.client-sidebar{border-right:1px solid var(--bd);z-index:10;background:#fff;flex-direction:column;width:244px;padding:20px 14px;display:flex;position:fixed;inset:0 auto 0 0}.client-brand{border-bottom:1px solid var(--bd);align-items:center;gap:10px;padding:0 8px 20px;display:flex}.client-brand b{font-size:19px}.client-brand b span{color:var(--b)}.client-brand small{color:var(--m);margin-top:2px;font-size:10px;display:block}.client-nav{gap:3px;padding-top:18px;display:grid}.client-nav button{color:#526078;text-align:left;background:0 0;border:0;border-radius:11px;padding:11px 13px;font-size:13px}.client-nav button.active{background:var(--bs);color:var(--b);font-weight:700}.client-nav i{width:24px;font-style:normal;display:inline-block}.client-assist{background:#f5f9ff;border:1px solid #dbeafe;border-radius:16px;margin-top:auto;padding:16px}.client-assist b{font-size:13px}.client-assist p{color:#5f7190;font-size:11px;line-height:1.5}.client-content{min-height:100vh;padding-left:244px}.client-header{border-bottom:1px solid var(--bd);background:#fff;justify-content:space-between;align-items:center;height:72px;padding:0 28px;display:flex}.client-header strong{font-size:20px;display:block}.client-header span{color:var(--m);margin-top:3px;font-size:12px;display:block}.client-avatar{background:var(--bs);width:38px;height:38px;color:var(--b);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.client-main{padding:30px 34px}.client-placeholder{max-width:1320px;margin:0 auto;padding:28px}.client-placeholder h2{margin:0;font-size:22px}.client-placeholder p{color:var(--m);margin:8px 0 0;font-size:13px}.client-user{align-items:center;gap:12px;display:flex}.client-user-name{text-align:right}.client-user-name b{font-size:12px;display:block}.client-user-name span{font-size:10px}.tenant-name,.tenant-select{border:1px solid var(--bd);color:#526078;max-width:160px;font:inherit;background:#fff;border-radius:8px;padding:7px 9px;font-size:11px}.client-logout{color:#64748b;background:0 0;border:0;font-size:11px;font-weight:700}.client-logout:hover{color:#dc2626}.top{border-bottom:1px solid var(--bd);background:#fff;align-items:center;gap:24px;height:72px;padding:0 28px;display:flex}.brand{align-items:center;gap:10px;width:244px;display:flex}.logo{color:#fff;background:linear-gradient(135deg,#2563eb,#3b82f6);border-radius:11px;place-items:center;width:38px;height:38px;font-weight:800;display:grid}.brand b{font-size:19px}.brand span{color:var(--b)}.title{flex:1;font-size:20px;font-weight:750}.muted{color:var(--m);font-size:13px}.avatar{background:var(--bs);width:38px;height:38px;color:var(--b);border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid}.layout{min-height:calc(100vh - 72px);display:flex}.side{border-right:1px solid var(--bd);background:#fff;flex-direction:column;width:244px;padding:20px 14px;display:flex}.nav{gap:3px;display:grid}.nav button{color:#526078;text-align:left;background:0 0;border:0;border-radius:11px;padding:11px 13px;font-size:13px}.nav button.active{background:var(--bs);color:var(--b);font-weight:700}.nav i{width:24px;font-style:normal;display:inline-block}.assist{background:#f5f9ff;border:1px solid #dbeafe;border-radius:16px;margin-top:auto;padding:16px}.assist b{font-size:13px}.assist p{color:#5f7190;font-size:11px;line-height:1.5}.assist button,.primary{background:var(--b);color:#fff;border:0;border-radius:10px;padding:10px 13px;font-size:12px;font-weight:700}.assist button{width:100%}.main{flex:1;padding:30px 34px}.container{max-width:1320px;margin:auto}.head{justify-content:space-between;align-items:end;margin-bottom:24px;display:flex}.eyebrow{color:var(--m);margin-bottom:5px;font-size:13px}.head h1{letter-spacing:-.8px;margin:0;font-size:28px}.actions{align-items:center;gap:10px;display:flex}.period{border:1px solid var(--bd);color:#53617a;background:#fff;border-radius:10px;padding:10px 13px;font-size:12px}.alert{color:#46617f;background:#f5f9ff;border:1px solid #dbeafe;border-radius:12px;margin-bottom:18px;padding:12px 14px;font-size:12px}.cards{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.card{border:1px solid var(--bd);background:#fff;border-radius:16px;box-shadow:0 3px 12px #18274b08}.kpi{min-height:126px;padding:18px}.kl{color:var(--m);font-size:12px;font-weight:600}.ki{float:right;background:var(--bs);width:32px;height:32px;color:var(--b);border-radius:9px;place-items:center;font-weight:800;display:grid}.kv{margin-top:12px;font-size:23px;font-weight:800}.meta{margin-top:8px;font-size:11px}.green{color:#16a34a}.red{color:#dc2626}.grid{grid-template-columns:1.55fr .9fr;gap:16px;margin-top:16px;display:grid}.panel{padding:20px}.ph{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.pt{font-size:14px;font-weight:750}.ps{color:var(--m);margin-top:3px;font-size:11px}.link{color:var(--b);background:0 0;border:0;font-size:11px;font-weight:700}.empty{text-align:center;color:#94a3b8;padding:48px 10px;font-size:12px}.bars{border-bottom:1px solid #edf0f5;align-items:end;gap:7px;height:240px;padding:10px 4px 22px;display:flex}.barcol{flex:1;align-items:end;gap:3px;height:100%;display:flex;position:relative}.bar{border-radius:5px 5px 0 0;flex:1}.inc{background:#93c5fd}.exp{background:#2563eb}.lbl{text-align:center;color:#9aa4b5;width:100%;font-size:9px;position:absolute;bottom:-20px}.cat{margin-bottom:14px}.ch{justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.track{background:#eef1f6;border-radius:99px;height:6px}.track span{background:#3b82f6;border-radius:99px;height:100%;display:block}table{border-collapse:collapse;width:100%}th{text-align:left;color:#8994a7;border-bottom:1px solid #eef1f5;padding-bottom:10px;font-size:10px}td{border-bottom:1px solid #f1f3f7;padding:13px 0;font-size:11px}.tx{align-items:center;gap:10px;display:flex}.txi{background:#f1f5f9;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.txn{font-weight:700;display:block}.txs{color:#9aa4b5;font-size:10px}.amt{text-align:right;font-weight:750}.insight{background:#f5f9ff;border:1px solid #dbeafe;border-radius:14px;gap:12px;margin-top:12px;padding:14px;display:flex}.ii{width:34px;height:34px;color:var(--b);background:#dbeafe;border-radius:10px;flex:0 0 34px;place-items:center;display:grid}.insight h4{margin:0;font-size:12px}.insight p{color:#64748b;margin:5px 0 0;font-size:11px;line-height:1.5}.fab{background:var(--b);color:#fff;border:0;border-radius:50%;width:52px;height:52px;font-size:18px;position:fixed;bottom:25px;right:26px;box-shadow:0 10px 24px #2563eb47}@media (width<=1050px){.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}}@media (width<=720px){.side,.client-sidebar{display:none}.main,.client-main{padding:22px 15px}.top{padding:0 16px}.title,.muted{display:none}.brand{width:auto}.client-content{padding-left:0}.client-header{padding:0 16px}.head{flex-direction:column;align-items:flex-start;gap:15px}.cards{grid-template-columns:1fr 1fr}}.family-page{width:100%}.transactions-panel{padding:20px}.transactions-panel table{width:100%}.transaction-actions{white-space:nowrap;text-align:right}.transaction-actions button,.pagination button,.form-actions>button{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:8px;margin-left:6px;padding:7px 9px;font-size:11px;font-weight:700}.transaction-actions .danger{color:#dc2626}.pagination{color:var(--m);justify-content:flex-end;align-items:center;gap:10px;margin-top:16px;font-size:12px;display:flex}.transaction-modal{z-index:50;background:#17203380;place-items:center;padding:24px;display:grid;position:fixed;inset:0;overflow:auto}.transaction-form{gap:13px;width:min(560px,100%);padding:22px;display:grid}.form-heading{justify-content:space-between;align-items:center;display:flex}.form-heading h2{margin:0;font-size:18px}.transaction-form label{color:#526078;gap:6px;font-size:12px;font-weight:700;display:grid}.transaction-form input,.transaction-form select{border:1px solid var(--bd);width:100%;font:inherit;color:var(--t);background:#fff;border-radius:9px;padding:10px 11px}.form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.form-actions>button{margin:0}.form-actions .primary{border:0}.category-groups{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.category-panel{padding:20px}.category-row{border-top:1px solid #f1f3f7;align-items:center;gap:10px;padding:13px 0;display:flex}.category-icon{border-radius:9px;place-items:center;width:34px;height:34px;font-size:14px;font-weight:800;display:grid}.category-name{flex:1;min-width:0}.category-name b,.category-name span{display:block}.category-name b{font-size:12px}.category-name span{color:var(--m);margin-top:3px;font-size:10px}.category-row .transaction-actions button:disabled{opacity:.45;cursor:not-allowed}@media (width<=1050px){.category-groups{grid-template-columns:1fr}}.family-container{max-width:1320px;margin:0 auto}.family-head{justify-content:space-between;align-items:flex-end;margin-bottom:24px;display:flex}.family-head h1{letter-spacing:-.8px;margin:0;font-size:28px}.family-head p{color:var(--m);margin:5px 0 0;font-size:13px}.family-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:16px;display:grid}.family-stat{min-height:120px;padding:18px}.family-stat-icon{float:right;background:var(--bs);width:34px;height:34px;color:var(--b);border-radius:10px;place-items:center;display:grid}.family-stat-label{color:var(--m);font-size:12px;font-weight:600;display:block}.family-stat strong{margin-top:12px;font-size:25px;display:block}.family-stat small{color:var(--m);font-size:11px}.family-panel{margin-bottom:16px;padding:20px}.family-panel-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.family-title{font-size:14px;font-weight:750}.family-subtitle{color:var(--m);margin-top:3px;font-size:11px}.family-member,.family-invitation{border-top:1px solid #f1f3f7;align-items:center;gap:14px;padding:15px 0;display:flex}.family-avatar{background:var(--bs);width:42px;height:42px;color:var(--b);border-radius:12px;place-items:center;font-weight:800;display:grid}.family-member-main{flex:1;min-width:0}.family-member-main strong{font-size:12px;display:block}.family-member-main span{color:var(--m);margin-top:3px;font-size:10px;display:block}.family-role-badge{border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700;display:inline-block}.role-owner{color:#2563eb;background:#eff6ff}.role-member{color:#16a34a;background:#f0fdf4}.role-viewer{color:#64748b;background:#f8fafc}.family-status{color:#16a34a;white-space:nowrap;font-size:10px}.status-dot{background:#16a34a;border-radius:50%;width:6px;height:6px;margin-right:4px;display:inline-block}.family-joined{color:var(--m);white-space:nowrap;font-size:10px}.family-action{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:8px;padding:7px 10px;font-size:10px;font-weight:700}.family-owner{color:var(--m);font-size:10px;font-weight:600}.family-invite-icon{color:#64748b;background:#f8fafc;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.family-pending{color:#c2410c;background:#fff7ed;border-radius:999px;padding:5px 9px;font-size:10px;font-weight:700}.family-alert{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:12px;margin-bottom:18px;padding:12px 14px;font-size:12px}@media (width<=720px){.family-head{flex-direction:column;align-items:flex-start;gap:15px}.family-stats{grid-template-columns:1fr}.family-member,.family-invitation{flex-wrap:wrap;align-items:flex-start}.family-role,.family-status,.family-joined{margin-left:56px}}.family-modal-backdrop{z-index:1000;background:#0f172a61;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.family-modal{border:1px solid var(--bd);background:#fff;border-radius:18px;width:min(100%,500px);padding:22px;box-shadow:0 24px 70px #0f172a2e}.family-modal-head{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.family-modal-title{color:#182338;font-size:17px;font-weight:800}.family-modal-subtitle{color:var(--m);margin-top:4px;font-size:11px}.family-modal-close{color:#64748b;cursor:pointer;background:#f5f7fa;border:0;border-radius:9px;width:32px;height:32px;font-size:22px}.family-field{margin-bottom:16px;display:block}.family-field>span{color:#526078;margin-bottom:7px;font-size:11px;font-weight:700;display:block}.family-field input{box-sizing:border-box;border:1px solid var(--bd);color:#182338;background:#fff;border-radius:10px;outline:none;width:100%;padding:11px 12px;font-family:inherit;font-size:12px}.family-field input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #2563eb14}.family-field input:disabled{background:#f8fafc}.family-role-options{grid-template-columns:1fr 1fr;gap:10px;display:grid}.family-role-option{text-align:left;border:1px solid var(--bd);cursor:pointer;background:#fff;border-radius:11px;padding:12px}.family-role-option strong{color:#182338;font-size:11px;display:block}.family-role-option small{color:var(--m);margin-top:4px;font-size:9px;line-height:1.4;display:block}.family-role-option.selected{background:#eff6ff;border-color:#93c5fd}.family-role-option:disabled{cursor:default;opacity:.7}.family-modal-actions{justify-content:flex-end;gap:9px;margin-top:22px;display:flex}.family-secondary-button{border:1px solid var(--bd);color:#526078;cursor:pointer;background:#fff;border-radius:9px;padding:9px 14px;font-family:inherit;font-size:11px;font-weight:700}.family-secondary-button:disabled,.family-modal-actions .primary:disabled{cursor:default;opacity:.6}.family-success{color:#15803d;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;margin-bottom:16px;padding:11px 13px;font-size:11px;font-weight:600}@media (width<=560px){.family-modal{padding:18px}.family-role-options{grid-template-columns:1fr}.family-modal-actions{flex-direction:column-reverse}.family-modal-actions button{width:100%}}.family-permissions-section{background:#fafafa;border:1px solid #e5e7eb;border-radius:16px;margin-top:20px;padding:18px}.family-permissions-heading{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.family-permissions-heading strong{color:#111827;font-size:15px;display:block}.family-permissions-heading p{color:#6b7280;margin:5px 0 0;font-size:13px;line-height:1.45}.family-permissions-saving{color:#6b7280;white-space:nowrap;font-size:12px}.family-permissions-list{gap:8px;display:grid}.family-permission-row{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 13px;transition:all .15s;display:flex}.family-permission-row:hover{border-color:#cbd5e1}.family-permission-row.is-active{background:#f8fafc;border-color:#111827}.family-permission-checkbox{color:#fff;background:#fff;border:1.5px solid #cbd5e1;border-radius:6px;flex:0 0 20px;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:flex}.family-permission-checkbox.is-checked{background:#111827;border-color:#111827}.family-permission-content{flex-direction:column;gap:2px;min-width:0;display:flex}.family-permission-content strong{color:#111827;font-size:13px}.family-permission-content small{color:#9ca3af;font-size:11px}.family-permissions-save{color:#fff;cursor:pointer;background:#111827;border:0;border-radius:10px;width:100%;margin-top:12px;padding:11px 14px;font-size:13px;font-weight:600}.family-permissions-save:disabled{opacity:.55;cursor:not-allowed}.family-permissions-loading,.family-permissions-empty{color:#6b7280;background:#fff;border-radius:10px;padding:14px;font-size:13px}.client-header-main{align-items:center;gap:12px;min-width:0;display:flex}.client-menu-toggle{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:10px;flex:0 0 38px;width:38px;height:38px;font-size:16px;line-height:1;display:none}.client-sidebar-close{color:#94a3b8;background:0 0;border:0;margin-left:auto;font-size:15px;display:none}.client-scrim{display:none}.client-placeholder-actions{flex-wrap:wrap;gap:8px;margin-top:18px;display:flex}.client-placeholder-actions button{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:9px;padding:9px 12px;font-size:12px;font-weight:700}.client-placeholder-actions .primary{background:var(--b);color:#fff;border:0}.client-placeholder code{background:#f1f5f9;border-radius:6px;padding:2px 6px;font-size:12px}.alert-error{color:#7f1d1d;background:#fef2f2;border-color:#fecaca}.accounts-toggle{color:#526078;align-items:center;gap:7px;font-size:12px;font-weight:600;display:inline-flex}.accounts-cards{margin-bottom:16px}.accounts-default-name{text-overflow:ellipsis;white-space:nowrap;font-size:17px;overflow:hidden}.accounts-panel{margin-top:0}.account-row{border-top:1px solid #f1f3f7;align-items:center;gap:14px;padding:15px 0;display:flex}.account-row.is-inactive{opacity:.55}.account-icon{background:var(--bs);width:40px;height:40px;color:var(--b);border-radius:11px;flex:0 0 40px;place-items:center;font-size:15px;font-weight:800;display:grid}.account-main{flex:1;min-width:0}.account-main b{font-size:12.5px;display:block}.account-main>span{color:var(--m);margin-top:4px;font-size:10.5px;display:block}.account-badge{color:var(--b);vertical-align:middle;background:#eff6ff;border-radius:999px;margin-left:7px;padding:3px 8px;font-size:9.5px;font-weight:700;display:inline-block}.account-badge-muted{color:#64748b;background:#f1f5f9}.account-balance{text-align:right;white-space:nowrap}.account-balance b{font-size:14px;font-weight:800;display:block}.account-balance span{color:var(--m);margin-top:3px;font-size:10px;display:block}.account-row .transaction-actions button:disabled{opacity:.45;cursor:not-allowed}.accounts-checkbox{align-items:center;gap:8px;font-size:12px;display:flex!important}.accounts-checkbox input{width:auto!important}.accounts-hint{color:var(--m);margin:0;font-size:11px;line-height:1.5}@media (width<=900px){.account-row{flex-wrap:wrap}.account-balance{text-align:left}.account-row .transaction-actions{text-align:left;width:100%}.account-row .transaction-actions button{margin:6px 6px 0 0}}@media (width<=720px){.client-sidebar{z-index:60;transition:transform .22s;display:flex;transform:translate(-100%);box-shadow:0 0 40px #0f172a26}.client-sidebar.is-open{transform:translate(0)}.client-sidebar-close,.client-menu-toggle{place-items:center;display:inline-grid}.client-scrim{z-index:50;background:#0f172a66;display:block;position:fixed;inset:0}.client-header{gap:10px}.client-user-name,.tenant-name{display:none}.tenant-select{max-width:118px}.accounts-cards{grid-template-columns:1fr 1fr}}.dashboard-presets{flex-wrap:wrap;gap:6px;display:flex}.dashboard-presets button{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:999px;padding:8px 13px;font-size:11.5px;font-weight:600}.dashboard-presets button:hover{border-color:#cbd5e1}.dashboard-presets button.active{background:var(--bs);color:var(--b);border-color:#0000;font-weight:700}.kpi-clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.kpi-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 20px #18274b14}.kpi-clickable:focus-visible{outline:2px solid var(--b);outline-offset:2px}.ki.green-soft,.txi.green-soft{color:#16a34a;background:#f0fdf4}.ki.red-soft,.txi.red-soft{color:#ef4444;background:#fef2f2}.dashboard-alert{align-items:center;gap:12px;display:flex}.dashboard-alert span{flex:1}.dashboard-alert button{color:inherit;background:0 0;border:0;font-weight:700;text-decoration:underline}.dashboard-wide{margin-top:16px}.dashboard-updated{text-align:right;color:var(--m);margin:18px 0 0;font-size:11px}.grid-even{grid-template-columns:1fr 1fr}.chart-legend{flex-wrap:wrap;gap:14px;display:flex}.chart-legend span{color:#64748b;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.chart-legend i{border-radius:3px;width:11px;height:11px}.chart-legend i.dashed{background-image:repeating-linear-gradient(90deg,currentColor 0 3px,#0000 3px 6px);border-radius:2px;height:3px}.chart{width:100%;position:relative}.chart-svg{width:100%;height:100%;display:block;overflow:visible}.chart-grid line{stroke:#eef1f6;stroke-width:1px;vector-effect:non-scaling-stroke}.chart-guide{stroke:#cbd5e1;stroke-width:1px;stroke-dasharray:4 4;vector-effect:non-scaling-stroke}.chart-yaxis span{text-align:right;color:#94a3b8;font-variant-numeric:tabular-nums;pointer-events:none;width:62px;font-size:9.5px;position:absolute;left:0;transform:translateY(-50%)}.chart-xaxis span{color:#94a3b8;white-space:nowrap;pointer-events:none;font-size:9.5px;position:absolute;bottom:0;transform:translate(-50%)}.chart-tooltip{z-index:5;color:#fff;pointer-events:none;background:#0f172aeb;border-radius:10px;gap:4px;min-width:150px;margin-left:12px;padding:10px 12px;font-size:11px;display:grid;position:absolute;top:12px}.chart-tooltip.flip{margin-left:0;transform:translate(calc(-100% - 12px))}.chart-tooltip b{font-size:11.5px}.chart-tooltip span{color:#cbd5e1;white-space:nowrap;align-items:center;gap:6px;display:flex}.chart-tooltip i{border-radius:2px;flex:0 0 8px;width:8px;height:8px}.chart-tooltip em{color:#fff;font-variant-numeric:tabular-nums;margin-left:auto;font-style:normal;font-weight:700}.barchart{border-bottom:1px solid #eef1f6;align-items:flex-end;gap:8px;padding-bottom:22px;display:flex}.barchart-group{border-radius:8px 8px 0 0;flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex;position:relative}.barchart-group.hovered{background:#f8fafc}.barchart-bars{justify-content:center;align-items:flex-end;gap:3px;height:100%;display:flex}.barchart-bar{border-radius:4px 4px 0 0;width:100%;max-width:16px;transition:opacity .15s}.barchart-label{text-align:center;color:#94a3b8;text-transform:capitalize;width:100%;font-size:9.5px;position:absolute;bottom:-20px}.barchart-tooltip{margin-left:0;top:auto;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.category-split{grid-template-columns:160px 1fr;align-items:center;gap:20px;display:grid}.donut{width:160px;height:160px;position:relative}.donut-svg{width:100%;height:100%}.donut-arc{cursor:pointer;transition:stroke-width .15s}.donut-center{text-align:center;pointer-events:none;place-content:center;display:grid;position:absolute;inset:0}.donut-center b{font-size:15px;font-weight:800;display:block}.donut-center small{max-width:96px;color:var(--m);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9.5px;display:block;overflow:hidden}.category-legend{gap:9px;display:grid}.category-legend-row{align-items:center;gap:8px;font-size:11px;display:flex}.category-legend-row i{border-radius:3px;flex:0 0 9px;width:9px;height:9px}.category-legend-row span{text-overflow:ellipsis;white-space:nowrap;color:#526078;flex:1;min-width:0;overflow:hidden}.category-legend-row b{font-variant-numeric:tabular-nums}.category-legend-row small{text-align:right;width:34px;color:var(--m)}.commitments{gap:10px;margin-bottom:4px;display:grid}.commitment{border:1px solid var(--bd);border-radius:12px;justify-content:space-between;align-items:center;padding:13px 15px;display:flex}.commitment span{color:var(--m);font-size:11.5px}.commitment strong{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}@media (width<=1050px){.grid-even{grid-template-columns:1fr}}@media (width<=900px){.head .actions{flex-wrap:wrap;width:100%}.dashboard-presets{width:100%}.category-split{grid-template-columns:1fr;justify-items:center}.category-legend{width:100%}}@media (width<=720px){.chart-yaxis span{width:48px;font-size:8.5px}.chart-tooltip{min-width:128px;font-size:10px}}.installment-toggle{color:var(--b);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-top:4px;padding:0;font-size:10.5px;display:inline-flex}.installment-toggle:hover{text-decoration:underline}.installment-badge{background:var(--bs);color:var(--b);border-radius:999px;padding:2px 7px;font-size:9.5px;font-weight:700;display:inline-block}.transaction-child-row td{background:#fbfcfe}.transaction-child{align-items:center;gap:8px;padding-left:18px;display:inline-flex}.transaction-child-index{color:#64748b;background:#eef2f7;border-radius:6px;padding:2px 7px;font-size:10px;font-weight:700}.filters{border-bottom:1px solid #eef1f6;margin-bottom:4px;padding-bottom:18px}.filters-row{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));align-items:end;gap:12px;display:grid}.filters-advanced{border-top:1px dashed #e6eaf1;margin-top:12px;padding-top:14px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>span{color:var(--m);letter-spacing:.2px;text-transform:uppercase;font-size:10.5px;font-weight:600}.field input,.field select{border:1px solid var(--bd);width:100%;max-width:none;height:38px;color:var(--t);font:inherit;background:#fff;border-radius:9px;padding:0 11px;font-size:12.5px}.field select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#8a94a6 50%),linear-gradient(135deg,#8a94a6 50%,#0000 50%);background-position:calc(100% - 15px) 17px,calc(100% - 11px) 17px;background-repeat:no-repeat;background-size:4px 4px;padding-right:28px}.field input:focus,.field select:focus{border-color:var(--b);outline:none;box-shadow:0 0 0 3px #2563eb1f}.field-search{grid-column:span 2}.field-range .range{align-items:center;gap:7px;display:flex}.field-range .range i{color:#b3bccc;flex:none;font-size:11px;font-style:normal}.field-range .range input{min-width:0}.filters-toggle{border:1px solid var(--bd);color:#526078;white-space:nowrap;background:#fff;border-radius:9px;justify-content:center;align-items:center;gap:7px;width:100%;height:38px;margin:0;padding:0 13px;font-size:12px;font-weight:600;display:inline-flex}.filters-toggle:hover{border-color:#cbd5e1}.filters-toggle.open{background:var(--bs);color:var(--b);border-color:#0000}.filters-toggle em{background:var(--b);color:#fff;border-radius:999px;padding:1px 7px;font-size:10px;font-style:normal;font-weight:700}.filters-toggle i{opacity:.6;font-size:8px;font-style:normal}.filters-actions{justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;display:flex}.filters-summary{color:var(--m);margin-right:auto;font-size:11.5px}.filters-actions button{border-radius:9px;height:38px;margin:0;padding:0 20px;font-size:12.5px;font-weight:700}.filters-actions .ghost{border:1px solid var(--bd);color:#526078;background:#fff}.filters-actions .ghost:hover{border-color:#cbd5e1}.filters-actions .primary{background:var(--b);color:#fff;border:0}@media (width<=720px){.filters-row{grid-template-columns:1fr 1fr}.field-search,.filters-toggle{grid-column:span 2}.filters-actions{flex-wrap:wrap}.filters-summary{width:100%;margin:0 0 4px}.filters-actions button{flex:1}}.toolbar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-bottom:18px;display:flex}.toolbar .actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.toolbar-context{color:var(--m);margin:0;font-size:12px}.toolbar>div:first-child:not(.actions){margin-right:auto}.toolbar>.primary,.toolbar .actions>.primary{border-radius:9px;height:38px;padding:0 18px;font-size:12.5px;font-weight:700}.period{border:1px solid var(--bd);color:#53617a;background:#fff;border-radius:9px;align-items:center;gap:8px;height:38px;padding:0 12px;font-size:12px;display:inline-flex}.period input[type=date]{width:auto;height:26px;color:var(--t);font:inherit;font-variant-numeric:tabular-nums;background:0 0;border:0;padding:0;font-size:12px}.period input[type=date]:focus{color:var(--b);outline:none}.period input[type=date]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}.period input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.8}.period>span{color:#b3bccc;font-size:11px}.period .link{border:0;border-left:1px solid var(--bd);height:26px;color:var(--b);white-space:nowrap;background:0 0;border-radius:0;margin:0 0 0 4px;padding:0 0 0 10px;font-size:11.5px;font-weight:700}.period .link:disabled{color:var(--m)}.dashboard-presets button{height:38px;padding:0 15px}@media (width<=900px){.toolbar{justify-content:stretch}.toolbar .actions{width:100%}.period{flex:1;justify-content:space-between}}@media (width<=720px){.toolbar .actions>.primary{width:100%}}.transaction-modal{z-index:60;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#0f172a73;place-items:center;padding:24px;animation:.16s modal-fade;display:grid;position:fixed;inset:0;overflow:auto}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}@keyframes modal-rise{0%{opacity:0;transform:translateY(10px)scale(.985)}to{opacity:1;transform:none}}.transaction-form{border:0;border-radius:18px;flex-direction:column;gap:0;width:min(600px,100%);max-height:min(88vh,860px);padding:0;animation:.2s cubic-bezier(.22,1,.36,1) modal-rise;display:flex;box-shadow:0 24px 60px #0f172a3d}.form-heading{border-bottom:1px solid #eef1f6;flex:none;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 26px 18px;display:flex}.form-heading h2{letter-spacing:-.4px;margin:0;font-size:18px}.form-heading p{color:var(--m);margin:5px 0 0;font-size:12px}.modal-close{border:1px solid var(--bd);color:#8a94a6;background:#fff;border-radius:9px;flex:0 0 32px;width:32px;height:32px;margin:0;padding:0;font-size:12px;line-height:1}.modal-close:hover{color:#526078;border-color:#cbd5e1}.modal-body{flex:auto;gap:16px;padding:20px 26px 24px;display:grid;overflow-y:auto}.form-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}.transaction-form>label{color:#526078;gap:6px;padding:0 26px;font-size:12px;font-weight:700;display:grid}.transaction-form>label:first-of-type{padding-top:20px}.transaction-form>label:last-of-type{padding-bottom:22px}.transaction-form input,.transaction-form select{border:1px solid var(--bd);width:100%;max-width:none;height:42px;color:var(--t);font:inherit;background:#fff;border-radius:10px;padding:0 12px;font-size:13px;font-weight:500}.transaction-form select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#8a94a6 50%),linear-gradient(135deg,#8a94a6 50%,#0000 50%);background-position:calc(100% - 16px) 19px,calc(100% - 12px) 19px;background-repeat:no-repeat;background-size:4px 4px;padding-right:30px}.transaction-form input:focus,.transaction-form select:focus{border-color:var(--b);outline:none;box-shadow:0 0 0 3px #2563eb1f}.transaction-form input:disabled,.transaction-form select:disabled{color:#94a3b8;background:#f6f8fb}.transaction-form input[type=color]{height:42px;padding:4px}.modal-body .field>span em{color:#b3bccc;text-transform:none;margin-left:5px;font-style:normal;font-weight:500}.modal-body .field small{color:var(--m);font-size:10.5px;font-weight:500}.modal-body .field small.highlight{color:var(--b);font-weight:700}.segmented{background:#f2f5f9;border-radius:12px;grid-auto-columns:1fr;grid-auto-flow:column;gap:6px;padding:4px;display:grid}.segmented button{color:#64748b;background:0 0;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;height:36px;margin:0;padding:0;font-size:12.5px;font-weight:700;display:inline-flex}.segmented button i{font-size:13px;font-style:normal}.segmented button.active{background:#fff;box-shadow:0 1px 3px #0f172a1f}.segmented button.active.expense{color:#ef4444}.segmented button.active.income{color:#16a34a}.segmented.is-locked{opacity:.7}.segmented button:disabled{cursor:default}.amount-input{position:relative}.amount-input i{color:#8a94a6;pointer-events:none;font-size:14px;font-style:normal;font-weight:700;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.field-amount input{letter-spacing:-.3px;font-variant-numeric:tabular-nums;height:54px!important;padding-left:44px!important;font-size:21px!important;font-weight:700!important}.form-actions{background:#fbfcfe;border-top:1px solid #eef1f6;border-radius:0 0 18px 18px;flex:none;justify-content:flex-end;align-items:center;gap:9px;margin:0;padding:16px 26px;display:flex}.form-error{color:#b91c1c;margin-right:auto;font-size:11.5px;font-weight:600}.transaction-form .form-actions>button{border-radius:10px;height:40px;margin:0;padding:0 20px;font-size:12.5px;font-weight:700}.transaction-form .form-actions>.ghost,.transaction-form .form-actions>button[type=button]{border:1px solid var(--bd);color:#526078;background:#fff}.transaction-form .form-actions>.ghost:hover,.transaction-form .form-actions>button[type=button]:hover{border-color:#cbd5e1}.transaction-form .form-actions>.primary,.transaction-form .form-actions>button[type=submit]{background:var(--b);color:#fff;border:0}.transaction-form .form-actions>.primary:hover{background:#1d4fd8}.transaction-form .form-actions>button:disabled{opacity:.55}@media (width<=620px){.transaction-modal{place-items:end stretch;padding:0}.transaction-form{border-radius:18px 18px 0 0;width:100%;max-height:94vh}.form-grid{grid-template-columns:1fr}.form-actions{border-radius:0}.transaction-form .form-actions>button{flex:1}}.month-nav{color:#172033;align-items:center;gap:12px;font-size:13px;font-weight:700;display:flex}.month-nav button{border:1px solid var(--bd);color:#526078;background:#fff;border-radius:9px;width:32px;height:32px;font-size:15px}.month-nav button:hover{border-color:#cbd5e1}.month-today{margin-left:8px;font-size:11px;font-weight:700}.budgets-cards,.budget-general{margin-bottom:16px}.budget-row{border-top:1px solid #f1f3f7;align-items:flex-start;gap:14px;padding:16px 0;display:flex}.budget-row:first-of-type{border-top:0}.budget-icon{border-radius:11px;flex:0 0 38px;place-items:center;width:38px;height:38px;font-size:14px;font-weight:800;display:grid}.budget-row-body{flex:1;min-width:0}.budget-row-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px;display:flex}.budget-row-head b{font-size:13px}.budget-status{white-space:nowrap;border-radius:999px;flex:none;padding:3px 9px;font-size:10px;font-weight:700}.budget-status.is-ok{color:#16a34a;background:#f0fdf4}.budget-status.is-warning{color:#d97706;background:#fffbeb}.budget-status.is-over{color:#dc2626;background:#fef2f2}.budget-track{background:#eef1f6;border-radius:999px;height:8px;overflow:hidden}.budget-track-fill{border-radius:999px;height:100%;transition:width .25s;display:block}.budget-track-fill.is-ok{background:#3b82f6}.budget-track-fill.is-warning{background:#f59e0b}.budget-track-fill.is-over{background:#ef4444}.budget-row-foot{color:var(--m);justify-content:space-between;gap:10px;margin-top:7px;font-size:10.5px;display:flex}.budget-suggestions{margin-top:16px}.budget-suggestion-row{border-top:1px solid #f1f3f7;align-items:center;gap:12px;padding:12px 0;display:flex}.budget-suggestion-row:first-of-type{border-top:0}.budget-suggestion-row .budget-row-body{flex-direction:column;gap:2px;display:flex}.budget-suggestion-row b{font-size:12.5px}.budget-suggestion-row .primary{border-radius:9px;flex:none;height:34px;margin:0;padding:0 14px;font-size:11.5px}@media (width<=720px){.toolbar{flex-direction:column;align-items:stretch}.month-nav{justify-content:center}.budget-row,.budget-suggestion-row{flex-wrap:wrap}.budget-row .transaction-actions{text-align:left;width:100%;margin-top:6px}}.recurring-cards{margin-bottom:16px}.recurring-row{border-top:1px solid #f1f3f7;align-items:center;gap:14px;padding:15px 0;display:flex}.recurring-row:first-of-type{border-top:0}.recurring-row.is-inactive{opacity:.55}@media (width<=720px){.recurring-row{flex-wrap:wrap}.recurring-row .account-balance{text-align:left}.recurring-row .transaction-actions{text-align:left;width:100%;margin-top:6px}.recurring-row .transaction-actions button{margin:6px 6px 0 0}}.alerts-tabs{width:auto;display:inline-grid}.alerts-tabs button{padding:0 18px}.alert-type-description{color:var(--m);margin:-8px 0 4px;font-size:11.5px;line-height:1.5}.alert-rule-row,.alert-event-row{border-top:1px solid #f1f3f7;align-items:center;gap:14px;padding:15px 0;display:flex}.alert-rule-row:first-of-type,.alert-event-row:first-of-type{border-top:0}.alert-rule-row.is-inactive{opacity:.55}.alert-event-row .account-main span{-webkit-line-clamp:2;white-space:normal;-webkit-box-orient:vertical;line-height:1.5;display:-webkit-box;overflow:hidden}.alert-event-time{color:var(--m);white-space:nowrap;flex:none;font-size:10.5px}.status-badge{white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:10px;font-weight:700;display:inline-block}.status-sent,.status-confirmed{color:#16a34a;background:#f0fdf4}.status-pending{color:#d97706;background:#fffbeb}.status-failed,.status-cancelled{color:#dc2626;background:#fef2f2}@media (width<=720px){.alert-rule-row,.alert-event-row{flex-wrap:wrap}.alert-rule-row .transaction-actions{text-align:left;width:100%;margin-top:6px}.alert-event-time{width:100%;margin-top:4px}}.subscription-summary .ph{align-items:flex-start}.subscription-status-badge{padding:5px 12px;font-size:11px}.subscription-details{border-top:1px solid #f1f3f7;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin:4px 0 0;padding:18px 0;display:grid}.subscription-details dt{color:var(--m);text-transform:uppercase;letter-spacing:.04em;margin-bottom:5px;font-size:10.5px;font-weight:700}.subscription-details dd{color:var(--t);margin:0;font-size:13px;font-weight:700}.subscription-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;margin-bottom:16px;padding:12px 14px;font-size:12px;line-height:1.6}.subscription-cancel-link{color:#dc2626;background:0 0;border:0;padding:0;font-size:12.5px;font-weight:700}.subscription-cancel-link:hover{text-decoration:underline}.subscription-empty .ph{padding-bottom:4px}.subscription-cancel-warning{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:18px;padding:13px 15px;font-size:12px;line-height:1.6}.subscription-confirm-cancel{background:#dc2626!important}.subscription-confirm-cancel:hover{background:#b91c1c!important}.subscription-discounted-price{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.subscription-price-strike{color:#b3bccc;font-size:12px;text-decoration:line-through}.subscription-discount-tag{color:#16a34a;background:#dcfce7;border-radius:999px;padding:2px 8px;font-size:10.5px;font-weight:800}.referral-panel{margin-top:16px}.referral-share{border-bottom:1px solid #f1f3f7;margin-bottom:18px;padding-bottom:18px}.referral-link-row{gap:8px;display:flex}.referral-link-input{color:#526078;background:#f8fafc;flex:1;min-width:0;font-family:ui-monospace,monospace;font-size:12.5px}.referral-copy-btn{background:var(--b);color:#fff;white-space:nowrap;border:0;border-radius:11px;flex:none;height:44px;padding:0 18px;font-size:12.5px;font-weight:700}.referral-copy-btn:hover{background:#1d4fd8}.referral-hint{color:var(--m);margin:10px 0 0;font-size:12px;line-height:1.6}.referral-stats{grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;display:grid}.referral-stat{border:1px solid var(--bd);text-align:center;border-radius:12px;flex-direction:column;gap:4px;padding:14px;display:flex}.referral-stat-value{letter-spacing:-.5px;color:var(--t);font-size:22px;font-weight:800}.referral-stat-label{color:var(--m);font-size:10.5px;font-weight:600}.referral-progress{flex-direction:column;gap:8px;display:flex}.referral-progress-track{background:#eef1f6;border-radius:999px;height:8px;overflow:hidden}.referral-progress-fill{background:linear-gradient(90deg,#3b82f6,#16a34a);border-radius:999px;height:100%;transition:width .3s;display:block}.referral-progress-label{color:var(--m);text-align:center;font-size:11.5px}.referral-fine-print{color:#94a3b8;border-top:1px solid #f1f3f7;margin:16px 0 0;padding-top:14px;font-size:10.5px;line-height:1.6}@media (width<=640px){.referral-stats{grid-template-columns:1fr}.referral-link-row{flex-direction:column}.referral-copy-btn{width:100%}}.family-invite-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.family-action-danger{color:#b91c1c;border-color:#fecaca}.family-invite-link{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 14px;padding:12px 14px;display:flex}.family-invite-link span{color:#475569;font-size:11px;font-weight:700}.family-invite-link input{color:#0f172a;background:#fff;border:1px solid #cbd5e1;border-radius:8px;flex:1;min-width:220px;padding:8px 10px;font-size:12px}
