*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0f1117;--bg-card: #1a1d27;--bg-card-hover: #222636;--border: #2a2e3d;--text: #e4e6f0;--text-muted: #8b8fa3;--primary: #6c5ce7;--primary-light: #a29bfe;--success: #00b894;--danger: #e17055;--warning: #fdcb6e;--info: #74b9ff;--sidebar-width: 240px;--sidebar-collapsed: 64px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);--tab-bar-height: 64px}html,body{overscroll-behavior-y:contain;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}@media (max-width: 768px){html,body{overflow-x:hidden}}.mobile-tab-bar{position:fixed;left:0;right:0;bottom:0;display:flex;background:#141620eb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-top:1px solid var(--border);padding:6px var(--safe-left) calc(8px + var(--safe-bottom)) var(--safe-right);z-index:100}.mobile-tab-bar button{flex:1;background:none;border:none;color:#5d6378;font-family:inherit;font-size:10px;font-weight:500;padding:6px 4px;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;transition:color .15s}.mobile-tab-bar button.active{color:var(--primary-light)}.mobile-tab-bar button .icon{font-size:22px;line-height:1}.mobile-status-pad{height:var(--safe-top);background:var(--bg)}.mobile-main{padding:14px 16px calc(var(--tab-bar-height) + 24px + var(--safe-bottom));min-height:100vh}@media (max-width: 768px){.dash-stats-grid{grid-template-columns:1fr!important;gap:10px!important;margin-bottom:16px!important}.dash-stats-grid>*{padding:16px 18px!important}.dash-stats-grid>*:first-child{padding:18px 20px!important}.dash-two-col{grid-template-columns:1fr!important;gap:12px!important}.summary-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.summary-grid>.card{padding:12px 14px!important}.card-grid{grid-template-columns:repeat(2,1fr)!important;gap:10px!important}.form-row{flex-direction:column!important;gap:10px!important;align-items:stretch!important}.form-row>*,.form-row>* input,.form-row>* select,.form-row>* textarea{width:100%!important;max-width:none!important;min-width:0!important}.form-row input,.form-row select,.form-row textarea{width:100%!important;max-width:none!important;box-sizing:border-box!important}.form-row>input,.form-row>select{padding:10px 12px!important}.page-header{flex-direction:column!important;align-items:stretch!important;gap:10px!important}.page-header>div{width:100%;min-width:0!important}.page-header h2{font-size:22px!important}.page-header>div:last-child{display:flex!important;flex-wrap:wrap!important;gap:6px!important}.page-header>div:last-child>*{flex:0 1 auto}.page-header .btn{padding:8px 12px!important;font-size:12px!important}.stack-on-mobile{grid-template-columns:1fr!important;gap:12px!important}.recurring-row{flex-wrap:wrap!important;padding:10px 14px!important;gap:8px!important}.recurring-row .rr-recurrence{min-width:0!important;font-size:11px!important;width:100%;order:5}.recurring-row .rr-status{min-width:0!important;padding:2px 7px!important;font-size:10px!important}.recurring-row .rr-status-spacer{display:none!important}.recurring-row .row-actions{opacity:1!important}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}table{font-size:12px;min-width:480px}th,td{padding:8px 10px!important}button,input,select,textarea{font-size:16px}}body{font-family:Inter,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-card);border-right:1px solid var(--border);display:flex;flex-direction:column;transition:width .2s ease;position:fixed;height:100vh;z-index:10}.sidebar.closed{width:var(--sidebar-collapsed)}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px 16px;border-bottom:1px solid var(--border)}.logo{font-size:18px;font-weight:700;white-space:nowrap}.sidebar.closed .logo{display:none}.toggle-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:14px;padding:4px}.sidebar-nav{padding:12px 8px;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border:none;background:none;color:var(--text-muted);cursor:pointer;border-radius:8px;font-size:14px;font-family:inherit;transition:all .15s;white-space:nowrap}.nav-item:hover{background:var(--bg-card-hover);color:var(--text)}.nav-item.active{background:var(--primary);color:#fff}.nav-icon{font-size:18px}.main-content{flex:1;margin-left:var(--sidebar-width);padding:32px;max-width:1200px;transition:margin-left .2s ease}.sidebar.closed~.main-content{margin-left:var(--sidebar-collapsed)}.page-header{margin-bottom:28px}.page-header h2{font-size:28px;font-weight:700}.page-header p{color:var(--text-muted);margin-top:4px}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:28px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px}.card-label{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.card-value{font-size:28px;font-weight:700}.card-value.positive{color:var(--success)}.card-value.negative{color:var(--danger)}.table-container{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:24px}.table-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border)}.table-header h3{font-size:16px;font-weight:600}table{width:100%;border-collapse:collapse}th{text-align:left;padding:12px 20px;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);font-weight:500}td{padding:14px 20px;font-size:14px;border-bottom:1px solid var(--border)}tr:last-child td{border-bottom:none}tr:hover{background:var(--bg-card-hover)}.btn{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;gap:8px}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:#5f4dd0}.btn-success{background:var(--success);color:#fff}.btn-success:hover{opacity:.9}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{opacity:.9}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text)}.btn-sm{padding:6px 12px;font-size:12px}.form-row{display:flex;gap:12px;margin-bottom:16px;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:6px;flex:1;min-width:150px}.form-group label{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}input,select{padding:10px 14px;background:var(--bg);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:inherit;font-size:14px}input:focus,select:focus{outline:none;border-color:var(--primary)}.progress-bar{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin-top:8px}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.progress-fill.good{background:var(--success)}.progress-fill.warning{background:var(--warning)}.progress-fill.danger{background:var(--danger)}.chart-container{background:var(--bg-card);border:1px solid var(--border);border-radius:12px;padding:20px;margin-bottom:24px}.chart-container h3{font-size:16px;font-weight:600;margin-bottom:16px}.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.tag{display:inline-block;padding:3px 10px;border-radius:12px;font-size:12px;font-weight:500}.tag-expense{background:#e1705526;color:var(--danger)}.tag-income{background:#00b89426;color:var(--success)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:28px;width:500px;max-width:90vw;max-height:80vh;overflow-y:auto}.modal h3{font-size:20px;margin-bottom:20px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.empty-state{text-align:center;padding:48px 20px;color:var(--text-muted)}.empty-state p{margin-top:8px;font-size:14px}.amount{font-variant-numeric:tabular-nums}.text-success{color:var(--success)}.text-danger{color:var(--danger)}.text-muted{color:var(--text-muted)}.mb-16{margin-bottom:16px}.mb-24{margin-bottom:24px}.mt-16{margin-top:16px}.flex-between{display:flex;justify-content:space-between;align-items:center}.sync-banner{background:#6c5ce71a;border:1px solid var(--primary);border-radius:8px;padding:12px 16px;margin-bottom:20px;display:flex;align-items:center;justify-content:space-between}.section-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding-bottom:12px;border-bottom:1px solid var(--border)}.section-header h3{font-size:16px;font-weight:600;margin:0}*{scrollbar-width:thin;scrollbar-color:#2a2e3d #0f1117}*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-track{background:#0f1117;border-radius:3px}*::-webkit-scrollbar-thumb{background:#2a2e3d;border-radius:3px}*::-webkit-scrollbar-thumb:hover{background:#3a3f57}@media (max-width: 768px){.sidebar{width:var(--sidebar-collapsed)}.sidebar .nav-label,.sidebar .logo{display:none}.main-content{margin-left:var(--sidebar-collapsed);padding:16px}.charts-row{grid-template-columns:1fr}.card-grid{grid-template-columns:1fr 1fr}.modal{width:92vw!important;max-width:92vw!important}.reports-periods{width:100%!important}.reports-periods button{padding:6px 10px!important;font-size:12px!important;flex:1 1 auto}.four-col-grid{grid-template-columns:repeat(2,1fr)!important}.pay-plan-cols{grid-template-columns:1fr 80px!important}.pay-plan-alloc{display:none!important}.debts-header{flex-wrap:wrap!important;gap:6px!important}.invest-summary{grid-template-columns:repeat(2,1fr)!important}.income-bar{width:72px!important}}
