:root{color:#071432;background:#f4f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{border:0;cursor:pointer}.login-page{align-items:center;background:linear-gradient(135deg,#061225,#0d4e33);display:flex;justify-content:center;min-height:100vh;padding:24px}.login-panel{background:#fff;border:1px solid #e2eaf2;border-radius:8px;box-shadow:0 26px 80px #03102647;max-width:430px;padding:32px;width:100%}.brand-lock,.brand-mark{align-items:center;background:linear-gradient(135deg,#19b95f,#0a8b44);border-radius:8px;color:#fff;display:flex;height:48px;justify-content:center;width:48px}h1,h2,h3,p{margin-top:0}.login-panel h1,.topbar h2,.panel h2,.friend-card h3{letter-spacing:0;margin-bottom:0}.login-panel p{color:#53627a}.stack{display:grid;gap:14px}.auth-switch{background:#edf4f0;border-radius:8px;display:grid;gap:6px;grid-template-columns:1fr 1fr;margin:18px 0;padding:5px}.auth-switch button{background:transparent;border-radius:7px;color:#314056;font-weight:800;min-height:38px}.auth-switch button.active{background:#0aa44f;color:#fff}label{color:#4f5f77;display:grid;font-size:.86rem;font-weight:700;gap:6px}input,select{background:#fff;border:1px solid #d8e2ed;border-radius:8px;color:#071432;min-height:42px;padding:9px 11px;width:100%}.primary,.secondary,.ghost,.top-actions button,.sidebar nav button,.panel-head button,.tabs button{align-items:center;border-radius:8px;display:inline-flex;font-weight:800;gap:8px;justify-content:center;min-height:40px;padding:9px 12px}.primary{background:#0aa44f;color:#fff}.secondary{background:#edf3f8;border:1px solid #d9e4ef;color:#273850}.secondary.danger{background:#fff0ef;border-color:#f1b9b2;color:#b9352b}.ghost{background:#ffffff14;color:#e8f3ff;width:100%}.error{background:#fff0ef;border:1px solid #f1b9b2;border-radius:8px;color:#9a2e23;margin:0;padding:10px 12px}.banner{margin-bottom:16px}.loading{align-items:center;display:flex;justify-content:center;min-height:100vh}.app-shell{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:linear-gradient(180deg,#061225,#061b33 54%,#041426);color:#fff;display:flex;flex-direction:column;gap:16px;overflow:hidden;padding:18px 14px;position:sticky;top:0;height:100vh}.sidebar-main{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.brand{align-items:center;display:flex;gap:12px;padding:2px 8px 16px}.brand-mark{flex:0 0 auto}.brand h1{font-size:1.22rem;margin:0}.brand p,.quick-summary span,.profile-chip small{color:#9eb0c6;display:block;font-size:.82rem;margin:0}.sidebar nav{display:grid;flex:1 1 auto;gap:5px;overflow-y:auto;overscroll-behavior:contain;padding:0 4px 18px 0;scrollbar-width:thin}.sidebar nav button{background:transparent;color:#e3ecf8;justify-content:flex-start;min-height:38px;padding:8px 10px;width:100%}.sidebar nav button:hover,.sidebar nav button.active{background:linear-gradient(90deg,#12aa55,#069240);color:#fff}.sidebar-footer{border-top:1px solid rgba(255,255,255,.1);display:grid;flex:0 0 auto;gap:12px;padding-top:16px}.quick-summary{border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:14px}.quick-summary p{color:#f4f8ff;font-size:.8rem;font-weight:900;margin-bottom:12px;text-transform:uppercase}.quick-summary strong{color:#25e171;display:block;font-size:.92rem;line-height:1.35;margin:5px 0 14px;overflow-wrap:anywhere}.nav-backdrop,.sidebar-close{display:none}.content{min-width:0;padding:24px 26px 34px}.topbar{align-items:center;background:#ffffffe6;border-bottom:1px solid #e6edf5;display:flex;gap:16px;justify-content:space-between;margin:-24px -26px 24px;padding:18px 26px;position:sticky;top:0;z-index:2}.title-line,.top-actions,.profile-chip{align-items:center;display:flex;gap:14px}.title-line h2{font-size:1.35rem}.top-actions{flex-wrap:wrap;justify-content:flex-end}.top-actions button,.panel-head button,.tabs button{background:#fff;border:1px solid #dfe8f2;color:#071432}.icon-button{min-height:38px;padding:8px;width:42px}.menu-button{display:none}.profile-chip span{align-items:center;background:#d8e8ff;border-radius:50%;color:#123c69;display:flex;font-weight:900;height:34px;justify-content:center;width:34px}.profile-chip strong{display:block;font-size:.9rem}.metric-grid{display:grid;gap:16px;margin-bottom:18px}.metric-grid.six{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.metric,.panel,.friend-card,.action-tile{background:#fff;border:1px solid #e4ebf3;border-radius:8px;box-shadow:0 10px 28px #0714320f}.metric{display:grid;gap:9px;min-height:150px;padding:20px}.metric-icon,.round-icon{align-items:center;border-radius:8px;display:inline-flex;height:42px;justify-content:center;width:42px}.metric-icon.green,.color-0{background:#d9f7e4;color:#0aa44f}.metric-icon.blue,.color-1{background:#e3efff;color:#2878db}.metric-icon.red,.color-2{background:#ffe6e6;color:#ef3d3d}.metric-icon.amber,.color-3{background:#fff2d6;color:#e59300}.metric-icon.purple,.color-4{background:#efe4ff;color:#864ee8}.metric-icon.orange{background:#fff0de;color:#f27d12}.metric span{color:#30425c;font-size:.88rem;font-weight:800}.metric strong{color:#061225;font-size:1.15rem;overflow-wrap:anywhere}.metric small{color:#0aa44f;font-weight:700}.dashboard-main,.dashboard-lower{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:18px}.transaction-toolbar{margin-bottom:16px}.tabs{background:#f8fbfe;border:1px solid #d9e5f1;border-radius:8px;box-shadow:inset 0 1px #ffffffd9;display:flex;gap:4px;overflow-x:auto;padding:5px;scrollbar-width:thin}.tabs button{background:transparent;border:1px solid transparent;color:#40526b;flex:0 0 auto;font-size:.9rem;min-height:34px;padding:7px 13px;transition:background .14s ease,color .14s ease,box-shadow .14s ease}.tabs button:hover{background:#eef5fb;color:#071432}.tabs button.active{background:#0aa44f;border-color:#0aa44f;box-shadow:0 8px 18px #0aa44f2e;color:#fff}.compact-tabs{margin-bottom:14px;width:fit-content}.workspace-grid{display:grid;gap:16px;grid-template-columns:minmax(0,.95fr) minmax(360px,1.05fr);margin-bottom:16px}.wide-grid{display:grid;gap:16px;grid-template-columns:1fr;margin-bottom:16px}.panel{min-width:0;padding:18px}.panel-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.panel h2{font-size:1rem}.panel-head button{color:#0b9b4e;font-size:.78rem;min-height:34px;padding:7px 12px}.modal-backdrop{align-items:center;background:#07132b85;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:22px;position:fixed;z-index:60}.modal-card{background:#fff;border:1px solid #dfe8f2;border-radius:8px;box-shadow:0 24px 70px #07132b38;max-height:min(780px,calc(100vh - 44px));max-width:920px;overflow:auto;padding:18px;width:min(920px,100%)}.modal-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:14px}.modal-head h2{font-size:1rem}.donut-layout{align-items:center;display:flex;gap:10px}.category-legend{display:grid;flex:1;gap:10px}.category-legend div{align-items:center;color:#253750;display:grid;font-size:.84rem;gap:8px;grid-template-columns:10px 1fr auto}.category-legend span{border-radius:3px;height:9px;width:9px}.form-grid{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}.wide{grid-column:1 / -1}.check{align-items:center;display:flex;flex-direction:row;gap:9px;min-height:42px}.check input{min-height:auto;width:18px}.currency-checks{border:1px solid #d9e4ef;border-radius:8px;display:grid;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr));padding:10px}.account-picker{display:grid;gap:8px}.account-picker span{color:#506179;font-weight:800}.table-wrap{overflow-x:auto}table{border-collapse:collapse;min-width:680px;width:100%}th,td{border-bottom:1px solid #e5edf5;padding:11px 8px;text-align:left;vertical-align:middle}th{color:#506179;font-size:.77rem;text-transform:uppercase}td{color:#14243d;font-size:.88rem}tfoot td{background:#f8fbfd;border-bottom:0;color:#07132b}.subtotal-row td{background:#f6faf8;color:#07132b;font-weight:900}.account-balance-wrap table{min-width:760px}.account-balance-wrap td:not(:first-child),.account-balance-wrap th:not(:first-child){white-space:nowrap}.account-group-row td{background:#eef5fb;color:#304159;font-size:.74rem;font-weight:900;letter-spacing:0;padding:9px 8px;text-transform:uppercase}.clickable-row{cursor:pointer}.clickable-row:hover,.selected-row{background:#f0faf4}.row-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:2px}.row-actions button{background:#fff;border:1px solid #dfe8f2;border-radius:8px;color:#0b8d48;font-size:.72rem;font-weight:800;min-height:28px;padding:4px 8px}.row-actions button.danger{border-color:#f1b9b2;color:#b9352b}.row-actions button:hover{background:#eef5fb}.row-actions button.danger:hover{background:#fff0ef}.table-name,.account-row span,.compact-row span,.client-row{align-items:center;display:inline-flex;gap:8px}.table-account-cell{display:grid;gap:7px}.muted-tag{background:#edf3f8;border-radius:999px;color:#64748b;font-size:.68rem;font-weight:800;padding:2px 7px;text-transform:uppercase}.payment-list,.compact-list,.account-list,.loan-register,.budget-list{display:grid;gap:10px}.loan-register{gap:12px}.loan-card{border:1px solid #e2ebf4;border-radius:8px;display:grid;gap:12px;padding:14px}.loan-card-head,.loan-title-row{align-items:center;display:flex;gap:12px;justify-content:space-between;width:100%}.loan-title-copy{min-width:0}.loan-status-stack{align-items:center;display:flex;flex:0 0 auto;flex-wrap:wrap;gap:6px;justify-content:flex-end}.due-pill{background:#ffe6e6;border-radius:999px;color:#db3232;font-size:.78rem;font-weight:800;padding:5px 10px;white-space:nowrap}.loan-card h3{color:#071432;font-size:1rem;margin:0 0 4px}.loan-card p{color:#65758c;font-size:.82rem;margin:0}.loan-amounts{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.loan-amounts div{background:#f8fbfd;border:1px solid #edf2f7;border-radius:8px;display:grid;gap:4px;padding:10px}.loan-amounts span{color:#65758c;font-size:.74rem;font-weight:900}.loan-amounts strong{color:#071432;font-size:.86rem}.loan-payment-summary{background:#f7fafc;border:1px solid #dfe8f2;border-radius:8px;display:grid;gap:8px;padding:12px}.loan-payment-summary div{align-items:center;display:flex;justify-content:space-between}.loan-payment-summary span{color:#65758c;font-size:.82rem;font-weight:800}.loan-payment-summary strong{color:#071432}.mini-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;margin-top:2px}.mini-actions button{background:#fff;border:1px solid #dfe8f2;border-radius:8px;color:#0b8d48;font-size:.76rem;font-weight:800;min-height:32px;padding:5px 9px;white-space:nowrap}.mini-actions button.danger{border-color:#f1b9b2;color:#b9352b}.mini-actions button.danger:hover{background:#fff0ef}.settings-account-groups{display:grid;gap:14px}.settings-account-groups section{background:#fff;border:1px solid #e2ebf4;border-radius:8px;display:grid;gap:10px;padding:12px}.settings-account-groups h3,.settings-account-section h4{color:#071432;margin:0}.settings-account-groups h3{align-items:center;border-bottom:1px solid #edf2f7;display:flex;font-size:.9rem;gap:8px;padding-bottom:9px}.settings-account-section{background:#f8fbfd;border:1px solid #edf2f7;border-radius:8px;display:grid;gap:9px;padding:10px}.settings-account-section h4{color:#52647c;font-size:.74rem;letter-spacing:0;text-transform:uppercase}.settings-account-chips{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.settings-account-chips span{align-items:center;background:#fff;border:1px solid #dfe8f2;border-radius:8px;color:#071432;display:flex;gap:6px;font-size:.8rem;font-weight:800;min-height:36px;padding:8px 10px}.settings-account-chips span svg{color:#0b8d48;flex:0 0 auto}.friend-chips span svg{color:#2f7de1}.settings-empty{color:#65758c;font-size:.82rem;font-weight:800;margin:0}.account-detail{display:grid;gap:16px}.account-detail-head{align-items:end;display:grid;gap:14px;grid-template-columns:minmax(220px,320px) 1fr}.selected-balance{background:#f7fafd;border:1px solid #dce7f2;border-radius:8px;display:grid;gap:4px;padding:12px 14px}.selected-balance span{color:#667792;font-size:.82rem;font-weight:800}.selected-balance strong{color:#071432;overflow-wrap:anywhere}.payment-row,.compact-row,.account-row,.client-row{align-items:center;border-bottom:1px solid #e8eef5;display:grid;gap:10px;padding:8px 0}.payment-row{background:#fff;border:1px solid #e2ebf4;border-radius:8px;box-shadow:0 10px 26px #0f20380a;grid-template-columns:52px minmax(0,1fr) minmax(180px,auto);padding:14px;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.payment-row:hover{border-color:#cfddea;box-shadow:0 14px 34px #0f203812;transform:translateY(-1px)}.payment-row strong,.client-row strong{color:#071432;font-size:.95rem}.payment-row span,.payment-amount span{color:#6a7890;display:block;font-size:.82rem}.payment-amount{align-items:flex-end;display:grid;gap:7px;justify-items:end;text-align:right}.payment-amount strong{font-size:1rem;line-height:1.1}.payment-amount span{background:#ffe6e6;border-radius:999px;color:#db3232;margin-top:5px;padding:3px 8px}.payment-row.paid-row{background:#f8fcfa;border-color:#d9f1e3;border-radius:8px}.payment-amount span.paid-badge{background:#dff8e9;color:#07873f}.payment-actions{display:flex;flex-wrap:wrap;gap:7px;justify-items:end;justify-content:flex-end;margin-top:2px}.payment-amount button{background:#fff;border:1px solid #dfe8f2;border-radius:8px;color:#0b8d48;font-size:.74rem;font-weight:900;min-height:30px;padding:5px 9px}.payment-amount button:hover{background:#f4fbf7;border-color:#bfe8cf}.payment-amount button.danger{border-color:#f1b9b2;color:#b9352b}.payment-amount button.danger:hover{background:#fff5f4;border-color:#ec9c93}.client-row{grid-template-columns:auto 1fr auto}.avatar{align-items:center;border-radius:50%;display:inline-flex;font-weight:900;height:34px;justify-content:center;width:34px}.positive-pill,.negative-pill{border-radius:999px;font-size:.8rem;padding:5px 9px}.positive-pill{background:#dff7e8;color:#07863d}.negative-pill{background:#ffe5e5;color:#d72f2f}.budget-card{border:1px solid #e2ebf4;border-radius:8px;display:grid;gap:12px;padding:14px}.budget-card-head{align-items:start;display:flex;gap:12px;justify-content:space-between}.budget-card h3{color:#071432;font-size:1rem;margin:0 0 4px}.budget-card p{color:#65758c;font-size:.82rem;margin:0}.budget-state{background:#e8f7ee;border-radius:999px;color:#078640;font-size:.74rem;font-weight:900;padding:5px 9px;white-space:nowrap}.budget-state.warning{background:#fff4d8;color:#9a6500}.budget-state.exceeded{background:#ffe5e5;color:#d72f2f}.budget-card-grid{display:grid;gap:10px;grid-template-columns:repeat(4,minmax(0,1fr))}.budget-card-grid div{background:#f8fbfd;border:1px solid #edf2f7;border-radius:8px;display:grid;gap:4px;padding:10px}.budget-card-grid span{color:#65758c;font-size:.74rem;font-weight:900}.budget-card-grid strong{color:#071432;font-size:.86rem}.budget-progress-line{align-items:center;display:grid;gap:10px;grid-template-columns:1fr auto}.budget-progress-line em{color:#52647c;font-size:.78rem;font-style:normal;font-weight:900}.progress{background:#e7edf4;border-radius:999px;height:7px;overflow:hidden}.progress i{background:#0aa44f;display:block;height:100%}.progress i.hot{background:#f4a000}.friend-grid{display:grid;gap:12px;grid-template-columns:repeat(4,minmax(0,1fr))}.friend-card{display:grid;gap:8px;padding:18px}.friend-card p{color:#53647d;font-weight:800;margin:0;overflow-wrap:anywhere}.quick-actions{display:grid;gap:14px;grid-template-columns:repeat(7,minmax(0,1fr))}.action-tile{align-items:center;color:#071432;display:grid;font-weight:800;gap:12px;justify-items:center;min-height:120px;padding:18px}.status{background:#edf2f7;border-radius:999px;color:#33435a;display:inline-flex;font-size:.78rem;font-weight:800;padding:4px 8px}.status.pending,.status.overdue,.status.paid{background:#ffe6e6;color:#d72f2f}.status.received{background:#def7e8;color:#07863d}.empty{background:#f7fafd;border:1px dashed #cbd9e8;border-radius:8px;color:#667792;margin:0;padding:18px}.form-message{background:#f0faf4;border:1px solid #bfe8cf;border-radius:8px;color:#0c7c3a;font-weight:800;margin:0;padding:10px 12px}@media(max-width:1400px){.metric-grid.six,.metric-grid.five{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-main,.dashboard-lower{grid-template-columns:1fr 1fr}.quick-actions{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:980px){.app-shell{grid-template-columns:1fr}.sidebar{border-radius:0 16px 16px 0;box-shadow:26px 0 70px #020b1a59;height:100dvh;left:0;max-width:min(86vw,320px);position:fixed;top:0;transform:translate(-105%);transition:transform .18s ease;width:320px;z-index:20}.nav-open .sidebar{transform:translate(0)}.nav-backdrop{background:#020a1885;bottom:0;display:block;left:0;opacity:0;pointer-events:none;position:fixed;right:0;top:0;transition:opacity .18s ease;z-index:15}.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.sidebar-close{align-items:center;background:#ffffff14;border-radius:8px;color:#fff;display:inline-flex;height:38px;justify-content:center;margin-left:auto;width:38px}.sidebar nav{padding-bottom:20px}.menu-button{display:inline-flex}.dashboard-main,.dashboard-lower,.workspace-grid,.friend-grid{grid-template-columns:1fr}}@media(max-width:720px){.content{padding:14px}.topbar{align-items:flex-start;flex-direction:column;gap:12px;margin:-14px -14px 16px;padding:12px 14px}.top-actions{justify-content:flex-start}.header-tools{display:grid;grid-template-columns:repeat(2,minmax(0,auto)) 42px 1fr;width:100%}.profile-chip{justify-self:end}.title-line{width:100%}.title-line h2{font-size:1.18rem}.metric-grid.six,.metric-grid.five,.form-grid,.currency-checks,.quick-actions{grid-template-columns:1fr}.metric,.panel,.action-tile{padding:14px}.metric{min-height:126px}.metric strong{font-size:1rem}.donut-layout{align-items:stretch;flex-direction:column}.budget-card-grid,.loan-amounts,.budget-progress-line{grid-template-columns:1fr}.budget-card-head,.loan-card-head,.loan-title-row{align-items:stretch;flex-direction:column}.loan-status-stack{align-items:flex-start;justify-content:flex-start}.account-detail-head{grid-template-columns:1fr}.mini-actions,.row-actions{justify-content:flex-start}.payment-row,.client-row{grid-template-columns:auto 1fr}.payment-amount,.client-row strong{grid-column:2;justify-items:start;text-align:left}.payment-actions{justify-content:flex-start}.friend-grid{grid-template-columns:1fr}}@media(max-width:430px){.header-tools{grid-template-columns:1fr 1fr}.profile-chip{justify-self:start}.sidebar{max-width:92vw;width:300px}}
