:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#f8fafc;background-color:#0f172a}body{margin:0;min-height:100vh}a{color:#38bdf8;text-decoration:none}a:hover{text-decoration:underline}.onboarding-overlay{position:fixed;inset:0;background:#0f172af2;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;overflow-y:auto}.onboarding-card{background:#1e293bfa;border:1px solid rgba(148,163,184,.25);border-radius:16px;max-width:440px;width:100%;padding:1.75rem;box-shadow:0 20px 40px #0000004d}.onboarding-progress{margin-bottom:1.5rem}.onboarding-step-indicator{display:block;font-size:.8rem;color:#94a3b8;margin-bottom:.75rem}.onboarding-dots{display:flex;gap:.5rem}.onboarding-dot{flex:1;height:4px;border-radius:2px;background:#94a3b84d;transition:background .2s}.onboarding-dot.active{background:#0ea5e9}.onboarding-dot.done{background:#38bdf880}.onboarding-content{min-height:140px}.onboarding-title{font-size:1.25rem;margin:0 0 .75rem;color:#f8fafc;line-height:1.3}.onboarding-body{font-size:.95rem;color:#cbd5e1;line-height:1.55;margin:0 0 1rem}.onboarding-cta-link{display:inline-block;color:#38bdf8;font-size:.9rem;font-weight:500;text-decoration:none}.onboarding-cta-link:hover{text-decoration:underline}.onboarding-dont-show{display:flex;align-items:center;gap:.5rem;margin-top:1rem;font-size:.85rem;color:#94a3b8;cursor:pointer}.onboarding-dont-show input{accent-color:#0ea5e9}.onboarding-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid rgba(148,163,184,.2)}.onboarding-actions-right{display:flex;gap:.5rem;align-items:center;margin-left:auto}.onboarding-btn{padding:.5rem 1rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;border:none}.onboarding-btn.primary{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff}.onboarding-btn.primary:hover{opacity:.95}.onboarding-btn.secondary{background:transparent;border:1px solid rgba(148,163,184,.4);color:#94a3b8}.onboarding-btn.secondary:hover{border-color:#64748b;color:#cbd5e1}.onboarding-btn.skip{background:transparent;color:#94a3b8;font-weight:400}.onboarding-btn.skip:hover{color:#cbd5e1}@media(max-width:768px){.onboarding-card{padding:1.25rem}.onboarding-title{font-size:1.1rem}.onboarding-body{font-size:.9rem}.onboarding-actions{flex-direction:column;align-items:stretch}.onboarding-actions-right{margin-left:0;justify-content:flex-end}}.layout{min-height:100vh;background:#0f172a;color:#f8fafc}.layout-nav{display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:#0f172af2;border-bottom:1px solid rgba(148,163,184,.2)}.layout-brand{font-weight:700;font-size:1.1rem;color:#f8fafc;text-decoration:none}.layout-links{display:flex;gap:1rem;flex:1}.layout-links a{color:#94a3b8;text-decoration:none;font-size:.9rem}.layout-links a:hover{color:#38bdf8}.layout-user{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.layout-user span{color:#94a3b8}.layout-user button{background:transparent;border:1px solid rgba(148,163,184,.4);color:#94a3b8;padding:.35rem .75rem;border-radius:6px;cursor:pointer;font-size:.85rem}.layout-user button:hover{background:#ef444433;border-color:#ef4444;color:#fca5a5}.layout-main{padding:1.5rem 2rem;max-width:1200px;margin:0 auto}.layout-onboarding-fab{position:fixed;right:1.25rem;bottom:1.25rem;width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;border:none;font-size:1.35rem;font-weight:700;cursor:pointer;box-shadow:0 4px 12px #0ea5e966;z-index:200;display:flex;align-items:center;justify-content:center;line-height:1}.layout-onboarding-fab:hover{opacity:.95;transform:scale(1.05)}.layout-bottom-nav{display:none}@media(max-width:768px){.layout-links,.layout-user span{display:none}.layout-nav{padding:.5rem 1rem}.layout-main{padding:1rem;padding-bottom:calc(1rem + 56px)}.layout-bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:56px;background:#0f172afa;border-top:1px solid rgba(148,163,184,.2);align-items:center;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom,0);z-index:100}.layout-bottom-link{flex:1;display:flex;align-items:center;justify-content:center;color:#94a3b8;text-decoration:none;font-size:.75rem;padding:.5rem}.layout-bottom-link:hover{color:#38bdf8}.layout-bottom-link.active{color:#38bdf8;font-weight:600}.layout-onboarding-fab{right:1rem;bottom:calc(56px + .75rem);bottom:calc(56px + env(safe-area-inset-bottom,0) + .75rem);width:44px;height:44px;font-size:1.25rem}}.auth-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f172a,#1e293b,#334155)}.auth-card{background:#1e293be6;border:1px solid rgba(148,163,184,.2);border-radius:16px;padding:2.5rem;width:100%;max-width:380px}.auth-card h1{font-size:1.5rem;font-weight:700;color:#f8fafc;margin:0 0 .25rem}.auth-subtitle{color:#94a3b8;font-size:.9rem;margin-bottom:1.5rem}.auth-error{background:#ef444433;border:1px solid rgba(239,68,68,.4);color:#fca5a5;padding:.5rem .75rem;border-radius:8px;font-size:.875rem;margin-bottom:1rem}.auth-card form{display:flex;flex-direction:column;gap:.875rem}.auth-card input{background:#0f172a99;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.75rem 1rem;color:#f8fafc;font-size:.95rem}.auth-card input::placeholder{color:#64748b}.auth-card input:focus{outline:none;border-color:#38bdf8}.auth-card button{background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;border-radius:8px;padding:.75rem 1rem;color:#fff;font-weight:600;font-size:.95rem;cursor:pointer;margin-top:.25rem}.auth-card button:hover{opacity:.95}.auth-footer{margin-top:1.25rem;color:#94a3b8;font-size:.9rem}.auth-footer a{color:#38bdf8;text-decoration:none}.auth-footer a:hover{text-decoration:underline}.dashboard h1{font-size:1.5rem;margin-bottom:.25rem}.page-intro{color:#94a3b8;font-size:.9rem;margin:0 0 1.25rem}.getting-started-card{background:#3b82f61f;border:1px solid rgba(59,130,246,.35);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.getting-started-card h2{font-size:1rem;margin:0 0 .75rem;color:#e2e8f0}.getting-started-card ol{margin:0 0 1rem;padding-left:1.25rem;color:#cbd5e1;font-size:.9rem;line-height:1.6}.getting-started-card a{color:#38bdf8;text-decoration:none;font-weight:500}.getting-started-card a:hover{text-decoration:underline}.getting-started-dismiss{background:#38bdf840;border:1px solid rgba(56,189,248,.5);color:#38bdf8;padding:.4rem .85rem;border-radius:8px;cursor:pointer;font-size:.875rem}.getting-started-dismiss:hover{background:#38bdf859}.empty-state{margin-top:.5rem}.empty-state .muted{margin-bottom:.75rem}.empty-state-cta{display:inline-block;text-decoration:none}.dashboard-loading{text-align:center;padding:2rem;color:#94a3b8}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:1rem 1.25rem}.stat-card.net-worth{grid-column:1 / -1;border-color:#3b82f666;background:#3b82f614}.stat-card.balance{border-color:#22c55e66;background:#22c55e14}.link-button{background:none;border:none;color:#38bdf8;cursor:pointer;font-size:.8rem;margin-top:.5rem;padding:0}.link-button:hover{text-decoration:underline}.net-worth-breakdown{margin-top:.75rem;padding-top:.75rem;border-top:1px solid rgba(148,163,184,.2);font-size:.85rem;color:#94a3b8}.net-worth-breakdown p{margin:.25rem 0}.stat-card span{display:block;font-size:.8rem;color:#94a3b8;margin-bottom:.25rem}.stat-card strong{font-size:1.25rem}.stat-card .positive{color:#4ade80}.stat-card .negative{color:#f87171}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:2rem}@media(max-width:900px){.dashboard-grid{grid-template-columns:1fr}}@media(max-width:768px){.dashboard-cards{grid-template-columns:1fr 1fr;gap:.75rem}.stat-card strong{font-size:1.1rem}.stat-card{padding:.75rem 1rem}}.dashboard-section{background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:1.25rem}.dashboard-section h2{font-size:1rem;margin:0 0 1rem;color:#e2e8f0}.category-list,.tx-list{list-style:none;padding:0;margin:0}.category-list li,.tx-list li{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px solid rgba(148,163,184,.1);font-size:.9rem}.category-list li:last-child,.tx-list li:last-child{border-bottom:none}.tx-type{font-size:.75rem;padding:.15rem .4rem;border-radius:4px;text-transform:uppercase;width:70px}.tx-type.income{background:#22c55e33;color:#4ade80}.tx-type.expense{background:#ef444433;color:#f87171}.tx-type.lend,.tx-type.borrow,.tx-type.repayment,.tx-type.repayment_made{background:#3b82f633;color:#60a5fa}.tx-type.transfer{background:#94a3b833;color:#cbd5e1}.tx-type.loan_payment{background:#a855f733;color:#c084fc}.tx-type.credit_card_payment{background:#22c55e33;color:#4ade80}.tx-desc{flex:1;margin:0 .5rem;color:#94a3b8}.due-hint{font-size:.85em;color:#94a3b8;font-weight:400}.muted{color:#64748b;font-size:.9rem}.link-more{display:inline-block;margin-top:.75rem;color:#38bdf8;font-size:.9rem;text-decoration:none}.link-more:hover{text-decoration:underline}.accounts-page h1{font-size:1.5rem;margin-bottom:.25rem}.accounts-page .page-intro{color:#94a3b8;font-size:.9rem;margin:0 0 1rem}.accounts-page .empty-state .muted{margin-bottom:.75rem}.page-loading{text-align:center;padding:2rem;color:#94a3b8}.form-error{background:#ef444433;color:#fca5a5;padding:.5rem .75rem;border-radius:8px;margin-bottom:1rem;font-size:.9rem}.btn-primary{background:linear-gradient(135deg,#0ea5e9,#0284c7);border:none;color:#fff;padding:.5rem 1rem;border-radius:8px;font-weight:600;cursor:pointer;margin-bottom:1.5rem}.btn-primary:hover{opacity:.95}.account-form{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1.5rem;padding:1rem;background:#1e293b99;border-radius:12px}.account-form input,.account-form select{background:#0f172acc;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.5rem .75rem;color:#f8fafc}.account-form button{background:#0ea5e9;border:none;color:#fff;padding:.5rem 1rem;border-radius:8px;cursor:pointer}.accounts-list{display:flex;flex-direction:column;gap:.75rem}.account-card{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px}.account-type{display:block;font-size:.75rem;color:#94a3b8;text-transform:capitalize}.account-credit-info{display:flex;flex-direction:column;gap:.15rem;font-size:.8rem;margin-top:.35rem;color:#cbd5e1}.account-loan-hint{margin:.5rem 0 0;font-size:.8rem;color:#94a3b8}.account-loan-hint a{color:#38bdf8;text-decoration:none}.account-loan-hint a:hover{text-decoration:underline}.account-actions .btn-sm.btn-secondary{text-decoration:none}.account-actions{display:flex;gap:.5rem;align-items:center}.btn-sm{background:#38bdf833;border:1px solid rgba(56,189,248,.4);color:#38bdf8;padding:.35rem .6rem;border-radius:6px;font-size:.8rem;cursor:pointer}.btn-sm.danger{background:#ef444433;border-color:#ef444466;color:#f87171}.badge{font-size:.75rem;color:#4ade80;padding:.25rem .5rem}.muted{color:#64748b}@media(max-width:768px){.account-card{flex-direction:column;align-items:flex-start;gap:.75rem}.account-actions{flex-wrap:wrap;width:100%}.account-form{flex-direction:column}.account-form input,.account-form select{width:100%}}.transaction-form-page h1{font-size:1.5rem;margin-bottom:.25rem}.transaction-form-page .page-intro{color:#94a3b8;font-size:.9rem;margin:0 0 1rem}.transaction-form-page .type-hint{margin-bottom:.25rem}.tx-form{max-width:480px;display:flex;flex-direction:column;gap:1rem}.form-row{display:flex;flex-direction:column;gap:.35rem}.form-row label{font-size:.85rem;color:#94a3b8}.form-row input,.form-row select{background:#1e293bcc;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.6rem .75rem;color:#f8fafc}.form-row .mt-1{margin-top:.35rem}.tx-form .btn-primary{margin-top:.5rem;padding:.75rem}.tx-form .btn-primary:disabled{opacity:.5;cursor:not-allowed}.form-error{background:#ef444426;border:1px solid rgba(239,68,68,.4);border-radius:8px;padding:.75rem;color:#f87171;margin-bottom:1rem}.form-hint{color:#94a3b8;font-size:.9rem;margin:0}.transactions-page h1{font-size:1.5rem;margin-bottom:.25rem}.transactions-page .page-intro{color:#94a3b8;font-size:.9rem;margin:0 0 1rem}.transactions-page .empty-state .muted{margin-bottom:.75rem}.transactions-page .empty-state-cta{display:inline-block;text-decoration:none}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.filters{display:flex;gap:.75rem;margin-bottom:1.5rem}.filters select,.filters input{background:#1e293bcc;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.5rem .75rem;color:#f8fafc}.tx-table{display:flex;flex-direction:column;gap:.5rem}.tx-row{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:8px;font-size:.9rem}.tx-date{width:100px;color:#94a3b8}.tx-type-badge{width:80px;padding:.2rem .4rem;border-radius:4px;font-size:.75rem;text-transform:uppercase}.tx-type-badge.income{background:#22c55e33;color:#4ade80}.tx-type-badge.expense{background:#ef444433;color:#f87171}.tx-type-badge.lend,.tx-type-badge.borrow,.tx-type-badge.repayment,.tx-type-badge.repayment_made{background:#3b82f633;color:#60a5fa}.tx-type-badge.transfer{background:#94a3b833;color:#cbd5e1}.tx-type-badge.loan_payment{background:#a855f733;color:#c084fc}.tx-type-badge.credit_card_payment{background:#22c55e33;color:#4ade80}.tx-detail{flex:1;color:#cbd5e1}.positive{color:#4ade80}.negative{color:#f87171}@media(max-width:768px){.page-header{flex-direction:column;align-items:flex-start;gap:.75rem}.filters{flex-wrap:wrap;gap:.5rem}.filters select,.filters input{min-width:0}.tx-row{flex-wrap:wrap;gap:.5rem}.tx-date,.tx-type-badge{width:auto;min-width:0}.tx-detail{flex:1 1 100%;order:3}}.reminders-page h1{font-size:1.5rem;margin-bottom:.25rem}.reminders-page .page-intro{color:#94a3b8;font-size:.9rem;margin:0 0 1rem}.reminders-page .empty-state .muted{margin-bottom:.75rem}.reminder-form-full{display:flex;flex-direction:column;gap:1rem;max-width:480px;margin:1rem 0 1.5rem;padding:1.25rem;background:#1e293b99;border-radius:12px}.reminder-form-full .form-row{display:flex;flex-direction:column;gap:.35rem}.reminder-form-full label{font-size:.85rem;color:#94a3b8}.reminder-form-full input,.reminder-form-full select{background:#0f172acc;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.5rem .75rem;color:#f8fafc}.reminder-form-full .mt-1{margin-top:.35rem}.badge-type{font-size:.7rem;padding:.15rem .4rem;border-radius:4px;margin-right:.5rem}.badge-type.credit{background:#22c55e33;color:#4ade80}.badge-type.debit{background:#ef444433;color:#f87171}.badge-kind{font-size:.7rem;color:#64748b;margin-right:.5rem}.reminders-list{display:flex;flex-direction:column;gap:.75rem}.reminder-card{display:flex;justify-content:space-between;align-items:flex-start;padding:1rem;background:#1e293bcc;border:1px solid rgba(148,163,184,.2);border-radius:12px}.reminder-card strong{display:block}.reminder-card .person,.reminder-card .due,.reminder-card .amount{font-size:.8rem;color:#94a3b8;display:inline-block;margin-right:.75rem}.reminder-actions{display:flex;gap:.5rem}.reminder-form-full .form-hint{font-size:.8rem;color:#94a3b8;margin-top:.25rem}@media(max-width:768px){.reminder-card{flex-direction:column;gap:.75rem}.reminder-actions{flex-wrap:wrap}}.settings-page h1{font-size:1.5rem;margin-bottom:.5rem}.settings-desc{color:#94a3b8;font-size:.9rem;margin-bottom:1.5rem}.settings-form{max-width:400px;display:flex;flex-direction:column;gap:1rem}.settings-form .form-row label{display:block;font-size:.85rem;color:#94a3b8;margin-bottom:.35rem}.settings-form select{width:100%;background:#1e293bcc;border:1px solid rgba(148,163,184,.3);border-radius:8px;padding:.6rem .75rem;color:#f8fafc}.settings-form .message{font-size:.9rem}.settings-form .message.success{color:#4ade80}.settings-form .message.error{color:#f87171}.onboarding-again-section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(148,163,184,.2);max-width:480px}.onboarding-again-section h2{font-size:1rem;margin:0 0 .5rem;color:#e2e8f0}.onboarding-again-desc{color:#94a3b8;font-size:.9rem;margin:0 0 .75rem}.btn-secondary-outline{background:transparent;border:1px solid rgba(148,163,184,.4);color:#94a3b8;padding:.5rem 1rem;border-radius:8px;font-size:.9rem;cursor:pointer}.btn-secondary-outline:hover{border-color:#64748b;color:#cbd5e1}.pwa-install-section{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(148,163,184,.2);max-width:480px}.pwa-install-section h2{font-size:1rem;margin:0 0 .5rem;color:#e2e8f0}.pwa-install-desc{color:#94a3b8;font-size:.9rem;margin:0 0 .75rem}.pwa-install-steps{margin:0;padding-left:1.25rem;color:#cbd5e1;font-size:.9rem;line-height:1.6}.pwa-install-steps li{margin-bottom:.5rem}.pwa-install-steps strong{color:#e2e8f0}*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;-webkit-font-smoothing:antialiased}.app-loading,.auth-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#94a3b8}
