:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border-color:#e5e4e7;--card-bg:#f9f9fb;--accent:#4169e1;--accent-hover:#3555c4;--accent-contrast:#fff;--badge-neutral-bg:#eceef3;--badge-neutral-fg:#4b5563;--badge-ok-bg:#dcfce7;--badge-ok-fg:#15803d;--badge-warn-bg:#fef3c7;--badge-warn-fg:#92400e;--badge-error-bg:#fee2e2;--badge-error-fg:#b91c1c;--sans:system-ui, "Segoe UI", Roboto, sans-serif;font:16px/1.5 var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border-color:#2e303a;--card-bg:#1f2028;--accent:#6f8ff2;--accent-hover:#86a0f5;--accent-contrast:#0b1020;--badge-neutral-bg:#262832;--badge-neutral-fg:#cbd5e1;--badge-ok-bg:#14532d;--badge-ok-fg:#bbf7d0;--badge-warn-bg:#78350f;--badge-warn-fg:#fde68a;--badge-error-bg:#7f1d1d;--badge-error-fg:#fecaca}}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}h1,h2{font-family:var(--sans);color:var(--text-h);font-weight:600}a{color:var(--accent)}button,input,select{font:inherit;color:inherit}input,select{border:1px solid var(--border-color);background:var(--bg);border-radius:8px;width:100%;padding:.6rem .75rem}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent);background:0 0;border:none;padding:0}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}.btn{cursor:pointer;background:var(--accent);color:var(--accent-contrast);border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:.6rem 1.1rem;font-weight:600;display:inline-flex}.btn:hover{background:var(--accent-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{color:var(--accent);border:1px solid var(--accent);background:0 0}.btn-secondary:hover{background:var(--accent);color:var(--accent-contrast)}.badge{white-space:nowrap;border-radius:999px;align-items:center;padding:.25rem .6rem;font-size:.75rem;display:inline-flex}.badge-neutral{background:var(--badge-neutral-bg);color:var(--badge-neutral-fg)}.badge-ok{background:var(--badge-ok-bg);color:var(--badge-ok-fg)}.badge-warn{background:var(--badge-warn-bg);color:var(--badge-warn-fg)}.badge-error{background:var(--badge-error-bg);color:var(--badge-error-fg)}.auth-page{justify-content:center;align-items:center;min-height:100vh;padding:1.5rem;display:flex}.auth-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;width:100%;max-width:380px;padding:2rem}.auth-card h1{color:var(--accent);margin:0 0 1.5rem;font-size:1.4rem}.field{flex-direction:column;gap:.35rem;margin-bottom:1rem;display:flex}.field label{font-size:.85rem;font-weight:600}.auth-error{background:var(--badge-error-bg);color:var(--badge-error-fg);border-radius:8px;margin-bottom:1rem;padding:.6rem .75rem;font-size:.85rem}.auth-card .btn{width:100%;margin-top:.5rem}.auth-switch{text-align:center;margin-top:1.5rem;font-size:.85rem}.layout{flex-direction:column;min-height:100vh;display:flex}.layout-header{padding:max(1rem, env(safe-area-inset-top)) 1rem 1rem;border-bottom:1px solid var(--border-color);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.layout-brand{color:var(--accent);order:1;font-size:1.1rem;font-weight:700}.layout-user{order:2}.layout-nav{flex-wrap:wrap;order:3;gap:.25rem;width:100%;display:flex}.layout-nav-link{color:var(--text);border-radius:8px;padding:.4rem .75rem;font-size:.85rem;text-decoration:none}.layout-nav-link.active{background:var(--badge-neutral-bg);color:var(--accent);font-weight:600}@media (width>=768px){.layout-nav{flex:1;order:2;justify-content:center;width:auto}.layout-user{order:3}}.layout-user{align-items:center;gap:.75rem;font-size:.9rem;display:flex}.layout-usd-rate{color:var(--text);background:var(--card-bg);border:1px solid var(--border-color);white-space:nowrap;border-radius:999px;padding:.25rem .65rem;font-size:.75rem}.layout-content{padding:1rem;padding-bottom:max(1rem, env(safe-area-inset-bottom));flex:1}@media (width>=768px){.layout-header{padding-left:2rem;padding-right:2rem}.layout-content{padding:2rem}}@media (width>=1024px){.layout-content{padding:2rem 3rem}}.home-section{margin:1.75rem 0}.home-section-header{justify-content:space-between;align-items:baseline;margin-bottom:.75rem;display:flex}.home-section h2{margin:0 0 .75rem;font-size:1.05rem}.home-section-header h2{margin:0}.home-balance-group{margin-bottom:1.25rem}.home-balance-group:last-child{margin-bottom:0}.home-balance-group-label{color:var(--text);margin-bottom:.5rem;font-size:.8rem}.home-stat-cards{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.home-stat-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.home-stat-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.1rem 1.25rem}.home-stat-currency{color:var(--text);margin-bottom:.35rem;font-size:.8rem}.home-stat-amount{font-size:1.3rem;font-weight:700}.home-stat-amount.negative{color:var(--badge-error-fg)}.home-stat-amount.income{color:var(--badge-ok-fg)}.home-stat-sub{color:var(--text);margin-top:.25rem;font-size:.75rem}.home-list{flex-direction:column;gap:.5rem;display:flex}.home-list-row{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;font-size:.9rem;display:flex}.home-list-row .income{color:var(--badge-ok-fg);font-weight:600}.home-list-row .expense{color:var(--badge-error-fg);font-weight:600}.home-list-date{color:var(--text);font-size:.75rem}.home-requests-list{flex-direction:column;gap:.5rem;display:flex}.home-request-row{background:var(--card-bg);border:1px solid var(--border-color);color:var(--text-h);border-radius:10px;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem 1rem;font-size:.9rem;text-decoration:none;display:flex}.home-request-row:hover{border-color:var(--accent)}.accounts-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.accounts-toolbar h1{margin:0;font-size:1.3rem}.create-form{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem;padding:1.25rem;display:grid}@media (width>=640px){.create-form{grid-template-columns:repeat(2,1fr);align-items:end}.create-form .field-full{grid-column:1/-1}}.accounts-empty{color:var(--text);text-align:center;padding:2rem 0}.accounts-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.accounts-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.accounts-grid{grid-template-columns:repeat(3,1fr)}}.account-card{background:var(--card-bg);border:1px solid var(--border-color);border-top:3px solid var(--accent);border-radius:12px;flex-direction:column;gap:.5rem;padding:1.25rem;display:flex}.account-card-header{justify-content:space-between;align-items:flex-start;gap:.5rem;display:flex}.account-card h3{color:var(--text-h);margin:0;font-size:1.05rem}.account-type{color:var(--text);font-size:.8rem}.account-balance{color:var(--text-h);font-size:1.6rem;font-weight:700}.account-balance.negative{color:var(--badge-error-fg)}.account-meta{flex-wrap:wrap;gap:.5rem;margin-top:.25rem;display:flex}.account-actions{justify-content:space-between;align-items:center;margin-top:.5rem;font-size:.85rem;display:flex}.link-danger{color:var(--badge-error-fg);cursor:pointer;background:0 0;border:none;padding:.25rem 0;font-size:.8rem}.user-autocomplete{flex:1;position:relative}.user-autocomplete-list{z-index:10;background:var(--card-bg);border:1px solid var(--border-color);border-radius:8px;max-height:220px;margin:0;padding:.25rem;list-style:none;position:absolute;top:calc(100% + .25rem);left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #00000026}.user-autocomplete-list li{cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem .6rem;display:flex}.user-autocomplete-list li:hover{background:var(--bg)}.user-autocomplete-info{flex-direction:column;min-width:0;display:flex}.user-autocomplete-name{font-size:.9rem;font-weight:600}.user-autocomplete-email{color:var(--text);font-size:.75rem}.tx-back{margin-bottom:.75rem;font-size:.85rem;display:inline-block}.tx-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1.25rem;display:flex}.tx-header h1{margin:0 0 .25rem;font-size:1.3rem}.tx-balance{font-size:1.4rem;font-weight:700}.tx-balance.negative{color:var(--badge-error-fg)}.tx-header-actions{gap:.5rem;display:flex}.transfer-preview{background:var(--bg);border:1px solid var(--border-color);border-radius:8px;padding:.6rem .75rem;font-size:.85rem}.tx-row-meta{color:var(--text);font-size:.75rem}.tx-type-toggle{grid-column:1/-1;gap:.5rem;display:flex}.tx-type-toggle button{border:1px solid var(--border-color);background:var(--bg);cursor:pointer;border-radius:8px;flex:1;padding:.5rem;font-weight:600}.tx-type-toggle button.active-expense{background:var(--badge-error-bg);color:var(--badge-error-fg);border-color:var(--badge-error-fg)}.tx-type-toggle button.active-income{background:var(--badge-ok-bg);color:var(--badge-ok-fg);border-color:var(--badge-ok-fg)}.tx-list{flex-direction:column;gap:.5rem;display:flex}.tx-row{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}@media (width<=480px){.tx-row{flex-wrap:wrap;align-items:flex-start}.tx-row-date{flex-basis:100%;order:1;margin-top:.25rem}.tx-row-amount{order:2;margin-left:auto}}.tx-row-emoji{font-size:1.3rem}.tx-row-main{flex:1;min-width:0}.tx-row-category{font-weight:600}.tx-row-note{color:var(--text);font-size:.8rem}.tx-template-toggle{align-items:center;gap:.75rem;font-size:.85rem;display:flex}.tx-template-toggle label{align-items:center;gap:.4rem;font-weight:400;display:flex}.tx-row-creator{color:var(--text);opacity:.7;margin-top:.15rem;font-size:.75rem}.tx-row-date{color:var(--text);white-space:nowrap;font-size:.75rem}.tx-row-amount{white-space:nowrap;font-weight:700}.tx-row-amount.income{color:var(--badge-ok-fg)}.tx-row-amount.expense{color:var(--badge-error-fg)}.tx-empty{color:var(--text);text-align:center;padding:2rem 0}.members-section{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;margin-bottom:1.25rem;padding:1rem 1.25rem}.members-section-header{cursor:pointer;justify-content:space-between;align-items:center;display:flex}.members-section-header h2{margin:0;font-size:1rem}.members-list{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.member-row{align-items:center;gap:.65rem;font-size:.9rem;display:flex}.member-row-info{flex:1;min-width:0}.member-row-email{color:var(--text);font-size:.75rem}.invite-form{gap:.5rem;margin-top:1rem;display:flex}.invite-form input{flex:1}.pending-invites{flex-direction:column;gap:.4rem;margin-top:1rem;display:flex}.pending-invite-row{color:var(--text);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.categories-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.categories-toolbar h1{margin:0;font-size:1.3rem}.categories-columns{grid-template-columns:1fr;gap:1.5rem;display:grid}@media (width>=768px){.categories-columns{grid-template-columns:1fr 1fr}}.categories-column h2{color:var(--text);margin:0 0 .75rem;font-size:1rem}.category-list{flex-direction:column;gap:.5rem;display:flex}.category-row{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;align-items:center;gap:.65rem;padding:.6rem .85rem;display:flex}.category-emoji{font-size:1.2rem}.category-name{flex:1;font-weight:500}.category-row-actions{gap:.5rem;font-size:.8rem;display:flex}.category-row-actions button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:.15rem .3rem}.category-row-actions .link-danger{color:var(--badge-error-fg)}.category-empty{color:var(--text);font-size:.9rem}.budgets-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.budgets-toolbar h1{margin:0;font-size:1.3rem}.budgets-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.budgets-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.budgets-grid{grid-template-columns:repeat(3,1fr)}}.budget-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:.6rem;padding:1.25rem;display:flex}.budget-card-header{justify-content:space-between;align-items:flex-start;display:flex}.budget-card h3{margin:0;font-size:1.05rem}.budget-period{color:var(--text);font-size:.75rem}.budget-amounts{justify-content:space-between;font-size:.85rem;display:flex}.budget-bar-track{background:var(--badge-neutral-bg);border-radius:999px;height:8px;overflow:hidden}.budget-bar-fill{border-radius:999px;height:100%}.budget-bar-fill.ok{background:#22c55e}.budget-bar-fill.warn{background:#f59e0b}.budget-bar-fill.over{background:var(--badge-error-fg)}.budget-percent{font-size:.8rem;font-weight:600}.goals-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.goals-toolbar h1{margin:0;font-size:1.3rem}.goals-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.goals-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.goals-grid{grid-template-columns:repeat(3,1fr)}}.goal-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:.6rem;padding:1.25rem;display:flex}.goal-card-header{justify-content:space-between;align-items:flex-start;display:flex}.goal-card h3{margin:0;font-size:1.05rem}.goal-meta{color:var(--text);font-size:.75rem}.goal-bar-track{background:var(--badge-neutral-bg);border-radius:999px;height:10px;overflow:hidden}.goal-bar-fill{background:var(--accent);border-radius:999px;height:100%}.goal-amounts{justify-content:space-between;font-size:.85rem;display:flex}.goal-contribute{gap:.5rem;margin-top:.25rem;display:flex}.goal-contribute input{flex:1}.debts-toolbar{justify-content:space-between;align-items:center;margin-bottom:1.25rem;display:flex}.debts-toolbar h1{margin:0;font-size:1.3rem}.debts-direction-toggle{grid-column:1/-1;gap:.5rem;display:flex}.debts-direction-toggle button{border:1px solid var(--border-color);background:var(--bg);cursor:pointer;border-radius:8px;flex:1;padding:.5rem;font-weight:600}.debts-direction-toggle button.active-owed{background:var(--badge-ok-bg);color:var(--badge-ok-fg);border-color:var(--badge-ok-fg)}.debts-direction-toggle button.active-owe{background:var(--badge-error-bg);color:var(--badge-error-fg);border-color:var(--badge-error-fg)}.debts-list{flex-direction:column;gap:.75rem;display:flex}.debt-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;flex-direction:column;gap:.5rem;padding:1rem 1.25rem;display:flex}.debt-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.debt-party{font-weight:600}.debt-description{color:var(--text);font-size:.85rem}.debt-amount{white-space:nowrap;font-size:1.3rem;font-weight:700}.debt-amount.owed{color:var(--badge-ok-fg)}.debt-amount.owe{color:var(--badge-error-fg)}.debt-actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.debt-waiting{color:var(--text);font-size:.8rem;font-style:italic}.debt-settled{color:var(--badge-ok-fg);font-size:.8rem}.friends-section{margin:1.75rem 0}.friends-section h2{margin:0 0 .75rem;font-size:1.05rem}.invitations-list{flex-direction:column;gap:.75rem;display:flex}.invitation-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;display:flex}.invitation-info{flex-direction:column;gap:.15rem;display:flex}.invitation-account{font-weight:600}.invitation-from{color:var(--text);font-size:.85rem}.invitation-actions{align-items:center;gap:.5rem;display:flex}.forecast-section{margin-bottom:2rem}.forecast-section h2{margin:0 0 1rem;font-size:1.05rem}.summary-cards{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.summary-cards{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}}.summary-card{background:var(--card-bg);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.summary-card-currency{color:var(--text);margin-bottom:.5rem;font-size:.8rem}.summary-row{justify-content:space-between;padding:.25rem 0;font-size:.9rem;display:flex}.summary-row.net{border-top:1px solid var(--border-color);margin-top:.5rem;padding-top:.5rem;font-weight:700}.summary-row .income{color:var(--badge-ok-fg)}.summary-row .expense{color:var(--badge-error-fg)}.recurring-type-toggle{grid-column:1/-1;gap:.5rem;display:flex}.recurring-type-toggle button{border:1px solid var(--border-color);background:var(--bg);cursor:pointer;border-radius:8px;flex:1;padding:.5rem;font-weight:600}.recurring-type-toggle button.active-expense{background:var(--badge-error-bg);color:var(--badge-error-fg);border-color:var(--badge-error-fg)}.recurring-type-toggle button.active-income{background:var(--badge-ok-bg);color:var(--badge-ok-fg);border-color:var(--badge-ok-fg)}.recurring-list,.suggestions-list{flex-direction:column;gap:.5rem;display:flex}.recurring-row,.suggestion-row{background:var(--card-bg);border:1px solid var(--border-color);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.recurring-row-wrapper.paused .recurring-row{opacity:.6}.apply-form{background:var(--bg);border:1px solid var(--border-color);border-top:none;border-radius:0 0 10px 10px;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-top:-.5rem;padding:.75rem 1rem 1rem;display:grid}.apply-form .field-full{grid-column:1/-1}.recurring-row-main{flex:1;min-width:160px}.recurring-row-category{font-weight:600}.recurring-row-meta{color:var(--text);font-size:.75rem}.recurring-row-amount{white-space:nowrap;font-weight:700}.recurring-row-amount.income{color:var(--badge-ok-fg)}.recurring-row-amount.expense{color:var(--badge-error-fg)}.recurring-row-actions{align-items:center;gap:.5rem;display:flex}.suggestion-info{flex:1;min-width:160px}.suggestion-amount{font-weight:700}
