*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #f8fafc;--bg-surface: #ffffff;--bg-surface-solid: #ffffff;--bg-hover: #f1f5fb;--bg-active: rgba(99, 102, 241, .1);--text: #0f172a;--text-muted: #52617a;--text-dim: #7b879e;--border: rgba(79, 93, 124, .14);--border-hover: rgba(79, 93, 124, .24);--border-focus: rgba(99, 102, 241, .35);--primary: #5b45f5;--primary-hover: #6d5df7;--accent: #5b45f5;--success: #059669;--warning: #f97316;--danger: #ef4444;--sidebar-w: 236px;--sidebar-w-collapsed: 60px;--radius: 8px;--radius-sm: 4px;--radius-lg: 8px;--page-max-w: 1200px;--page-pad-x: 24px;--page-pad-y: 24px;--surface-pad: 16px;--surface-pad-lg: 20px;--page-title-size: clamp(1.2rem, 1.5vw, 1.45rem);--page-subtitle-size: .88rem;--card-title-size: 1rem;--metric-size: clamp(1.15rem, 1.25vw, 1.4rem);--font: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", "Fira Code", monospace;--shadow: 0 16px 44px rgba(30, 41, 59, .08);--shadow-sm: 0 8px 20px rgba(30, 41, 59, .06);--scrollbar-thumb: rgba(15, 23, 42, .12);--scrollbar-track: rgba(0, 0, 0, .03)}html{font-size:14px;scroll-behavior:smooth;max-width:100vw;overflow-x:hidden}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font);background:var(--bg);color:var(--text);line-height:1.6;min-height:100dvh;max-width:100vw;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:color .15s cubic-bezier(.16,1,.3,1)}a:hover{color:var(--primary-hover)}button{cursor:pointer;font-family:inherit;border:none;background:none}button:focus,a:focus,[tabindex]:focus{outline:none}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input,select,textarea{font-family:inherit;font-size:inherit}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}@supports not (scrollbar-color: auto){*::-webkit-scrollbar{width:6px;height:6px}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:3px}*::-webkit-scrollbar-track{background:var(--scrollbar-track)}}.app-shell{display:flex;min-height:100dvh;max-width:100%;overflow-x:hidden}.sidebar{width:var(--sidebar-w);background:#fffffff5;border-right:1px solid rgba(79,93,124,.12);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:width .25s cubic-bezier(.16,1,.3,1),transform .25s cubic-bezier(.16,1,.3,1);overflow-y:auto;overflow-x:hidden;box-shadow:8px 0 24px #1e293b09;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.sidebar.collapsed{width:var(--sidebar-w-collapsed)}.sidebar-header{padding:14px 14px 10px;border-bottom:0;display:flex;align-items:center;gap:10px;min-height:58px}.sidebar.collapsed .sidebar-header{justify-content:center;padding:14px 0 8px}.sidebar-logo{width:32px;height:32px;background:linear-gradient(135deg,#6c55ff,#4f35e8);border-radius:8px;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:800;font-size:.78rem;flex-shrink:0}.sidebar-header h1{font-size:1.02rem;font-weight:800;color:var(--text);letter-spacing:-.01em;white-space:nowrap}.sidebar-collapse-btn{margin-left:auto;background:#f7f8fc;border:1px solid rgba(79,93,124,.1);border-radius:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;color:var(--text-dim);cursor:pointer;flex-shrink:0;transition:background .15s,color .15s}.sidebar-collapse-btn:hover{background:var(--bg-active);color:var(--accent)}.sidebar-expand-btn{margin:6px auto 4px;display:flex}.sidebar-nav{padding:6px 10px 12px;flex:1}.sidebar-nav-link{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;color:var(--text-muted);font-size:.84rem;font-weight:600;margin-bottom:2px;text-decoration:none;position:relative;transition:background .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1),transform .15s cubic-bezier(.16,1,.3,1);white-space:nowrap;cursor:pointer;border:none;background:none;width:100%;text-align:left;font-family:inherit}.sidebar.collapsed .sidebar-nav-link{justify-content:center;padding:8px 0}.sidebar-nav-spaced{margin-top:8px}.sidebar-nav-spaced:before{content:"";position:absolute;top:-5px;left:10px;right:10px;height:1px;background:#4f5d7c1a}.sidebar.collapsed .sidebar-nav-spaced:before{left:12px;right:12px}.sidebar-nav-link:hover{background:#f8f7ff;color:var(--primary);transform:translate(1px)}.sidebar-nav-link.active{background:#f1efff;color:var(--primary);font-weight:750;box-shadow:inset 3px 0 0 var(--primary)}.sidebar-nav-link:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.sidebar-nav-icon{width:22px;height:22px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sidebar-nav-icon svg{width:18px;height:18px;stroke-width:2.1}.sidebar-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#eee9ff;color:var(--primary);display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:800}.sidebar.collapsed .sidebar-nav-icon{margin:0}.main-area{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100dvh;min-width:0;transition:margin-left .25s cubic-bezier(.16,1,.3,1)}.sidebar.collapsed~.main-area{margin-left:var(--sidebar-w-collapsed)}.mobile-menu-btn{display:none;background:var(--bg-hover);border:1px solid var(--border);color:var(--text);font-size:1.1rem;width:36px;height:36px;border-radius:var(--radius);align-items:center;justify-content:center;flex-shrink:0;position:fixed;top:12px;left:12px;z-index:110}.mobile-menu-btn:hover{border-color:var(--border-hover)}.mobile-menu-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.content{padding:var(--page-pad-y) var(--page-pad-x) 48px;flex:1;min-width:0;max-width:var(--page-max-w);margin:0 auto;width:100%}.content-enter{animation:contentFadeIn .3s cubic-bezier(.16,1,.3,1) both}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.page-header{margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;width:100%}.page-header h2{font-size:var(--page-title-size);font-weight:800;line-height:1.3;letter-spacing:-.01em;color:var(--text);margin:0}.page-header p{color:var(--text-muted);font-size:var(--page-subtitle-size);font-weight:500;margin-top:4px}.page-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.page-header-actions .btn,.dashboard-actions .btn,.reports-header-actions .btn{min-height:40px;padding-inline:18px;font-size:.88rem;font-weight:600;border-radius:var(--radius);transition:all .2s cubic-bezier(.16,1,.3,1);display:inline-flex;align-items:center;justify-content:center;gap:6px}.page-header-actions .btn-primary,.dashboard-actions .btn-primary,.reports-header-actions .btn-primary{background:linear-gradient(135deg,#5b45f5,#4f35e8);color:#fff;border:none;box-shadow:0 8px 16px #5b45f533}.page-header-actions .btn-primary:hover,.dashboard-actions .btn-primary:hover,.reports-header-actions .btn-primary:hover{background:linear-gradient(135deg,#6d5df7,#5b45f5);box-shadow:0 10px 20px #5b45f54d;transform:translateY(-1px)}.page-header-actions .btn:active,.dashboard-actions .btn:active,.reports-header-actions .btn:active{transform:scale(.98)}.filter-trigger-btn{display:inline-flex}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:14px;margin-bottom:14px}.dashboard-grid .card{padding:var(--surface-pad)}.dashboard-grid .section-header{margin-bottom:10px}.card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--surface-pad);box-shadow:var(--shadow-sm)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:20px}.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}@media(max-width:640px){.stat-row{grid-template-columns:repeat(2,1fr);gap:10px}}@media(max-width:360px){.stat-row{grid-template-columns:1fr}}.stat-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px 20px}.stat-card .label{font-size:.7rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.stat-card .value{font-size:1.65rem;font-weight:800;letter-spacing:-.02em;overflow-wrap:break-word;word-break:break-word}.stat-card .sub{font-size:.8rem;color:var(--text-muted);margin-top:4px;display:flex;align-items:center;gap:4px}.credit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:0;margin-bottom:16px;padding:16px 18px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 38px #1e293b14}.credit-summary-item{min-width:0;display:flex;align-items:center;gap:12px;padding:0 16px;border-right:1px solid rgba(79,93,124,.16)}.credit-summary-item:first-child{padding-left:0}.credit-summary-item:last-child{border-right:0;padding-right:0}.credit-summary-icon{width:42px;height:42px;flex:0 0 42px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-size:1.4rem;font-weight:800;line-height:1}.credit-summary-icon.is-limit{color:#5b45f5;background:linear-gradient(135deg,#eee8ff,#f7f5ff)}.credit-summary-icon.is-used{color:#059669;background:linear-gradient(135deg,#dcfce7,#effdf5)}.credit-summary-icon.is-available{color:#2563eb;background:linear-gradient(135deg,#e8f2ff,#f5f9ff)}.credit-summary-icon.is-overall{color:#f97316;background:linear-gradient(135deg,#fff1db,#fff8ed)}.credit-summary-label{display:block;color:#435173;font-size:.82rem;font-weight:600;line-height:1.25}.credit-summary strong{display:block;margin-top:4px;color:#071334;font-size:1.12rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}.credit-overall-copy{min-width:112px}.credit-mini-track{flex:1;min-width:58px;max-width:112px;height:6px;display:block;overflow:hidden;border-radius:999px;background:#e9ebf2}.credit-mini-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#6d42ff,#4c2ce8)}.credit-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.credit-card-panel{min-width:0;padding:18px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 40px #1e293b14}.credit-card-top{display:grid;grid-template-columns:44px minmax(0,1fr) auto 24px;align-items:start;gap:12px;margin-bottom:18px}.credit-card-logo{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#f3f6fb;color:#5b45f5;font-size:1.45rem;font-weight:900}.credit-card-logo.is-icici{color:#fff;background:radial-gradient(circle at 40% 56%,#facc15 0 16%,transparent 17%),radial-gradient(circle at 62% 38%,#d31616 0 34%,transparent 35%),linear-gradient(135deg,#fff7ed,#f3f6fb)}.credit-card-logo.is-icici span{font-family:Georgia,serif;font-style:italic;transform:rotate(14deg)}.credit-card-logo.is-hdfc{background:linear-gradient(#2364c8 0,#2364c8 0) center / 15px 15px no-repeat,linear-gradient(#fff 0,#fff 0) center / 23px 23px no-repeat,linear-gradient(#2364c8 0,#2364c8 0) center / 32px 8px no-repeat,linear-gradient(#2364c8 0,#2364c8 0) center / 8px 32px no-repeat,linear-gradient(90deg,#e21b23 0 30%,transparent 30% 70%,#e21b23 70%),linear-gradient(#e21b23 0 30%,transparent 30% 70%,#e21b23 70%)}.credit-card-title{min-width:0}.credit-card-title h3{margin-top:1px;color:#071334;font-size:1.08rem;font-weight:800;line-height:1.2;overflow-wrap:break-word}.credit-card-number{width:fit-content;display:inline-flex;margin-top:5px;padding:2px 10px;color:#5b45f5;background:#f2edff;border:1px solid #e0d6ff;border-radius:8px;font-weight:800;line-height:1.1}.credit-status{display:inline-flex;align-items:center;gap:6px;margin-top:1px;padding:5px 10px;border:1px solid #c9f3de;border-radius:8px;background:#ecfdf5;color:#059669;font-weight:800;white-space:nowrap}.credit-status span{width:8px;height:8px;border-radius:50%;background:currentColor}.credit-menu-btn{width:24px;height:28px;display:inline-flex;align-items:center;justify-content:center;color:#71809b;font-size:1.2rem;line-height:1}.credit-limit-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-bottom:12px}.credit-limit-row span{display:block;color:#596887;font-size:.76rem;font-weight:700;text-transform:uppercase}.credit-limit-row strong{display:block;margin-top:4px;color:#071334;font-size:1.22rem;font-weight:800;letter-spacing:-.02em;line-height:1.1}.credit-limit-row div:last-child{text-align:right}.credit-limit-row div:last-child strong{color:#5b45f5;font-size:1rem}.credit-progress{height:6px;overflow:hidden;border-radius:999px;background:#ebedf4}.credit-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7047ff,#5a35f2)}.credit-amount-row{display:flex;justify-content:space-between;gap:12px;margin-top:9px;color:#64738f;font-size:.82rem;font-weight:600}.credit-date-panel{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;padding:12px;border:1px solid #e3e5fb;border-radius:8px;background:linear-gradient(180deg,#fbfaff,#f8f6ff)}.credit-date-item{min-width:0;display:flex;align-items:center;gap:10px}.credit-date-item+.credit-date-item{padding-left:12px;border-left:1px solid rgba(79,93,124,.14)}.credit-date-icon{width:32px;height:32px;flex:0 0 32px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;background:#f3efff;color:#5b45f5;font-size:1.05rem;font-weight:900;line-height:1}.credit-date-item span span{display:block;color:#64738f;font-size:.78rem;font-weight:600;line-height:1.25}.credit-date-item strong{display:block;margin-top:4px;color:#071334;font-size:.84rem;font-weight:700;line-height:1.2}.credit-actions{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;margin-top:14px}.credit-actions .btn{gap:5px;color:#5b45f5;font-weight:800;min-height:30px}.credit-statement-btn{padding-inline:12px}.credit-actions .credit-archive-btn{color:#ef1f1f}.credit-empty{padding:30px;color:var(--text-dim);background:#fff;border:1px solid var(--border);border-radius:8px}@media(max-width:1200px){.credit-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 0}.credit-summary-item:nth-child(2){border-right:0;padding-right:0}.credit-summary-item:nth-child(3){padding-left:0}.credit-card-grid{gap:16px}}@media(max-width:900px){.credit-card-grid{grid-template-columns:1fr}}@media(max-width:640px){.credit-summary{grid-template-columns:1fr;padding:14px;gap:12px}.credit-summary-item,.credit-summary-item:first-child,.credit-summary-item:nth-child(3),.credit-summary-item:last-child{padding:0;border-right:0}.credit-summary-icon{width:40px;height:40px;flex-basis:40px;font-size:1.3rem}.credit-card-panel{padding:16px}.credit-card-top{grid-template-columns:42px minmax(0,1fr) auto;gap:10px}.credit-card-logo{width:42px;height:42px}.credit-status{padding:5px 9px}.credit-menu-btn{display:none}.credit-date-panel{grid-template-columns:1fr;gap:10px;padding:12px}.credit-date-item+.credit-date-item{padding-left:0;padding-top:10px;border-left:0;border-top:1px solid rgba(79,93,124,.14)}.credit-actions{grid-template-columns:1fr;gap:8px}.credit-actions .btn{justify-content:center}}@media(max-width:420px){.credit-limit-row,.credit-amount-row{display:grid;grid-template-columns:1fr;text-align:left}.credit-limit-row div:last-child{text-align:left}.credit-card-top{grid-template-columns:42px minmax(0,1fr)}.credit-status{grid-column:1 / -1;width:fit-content}}@keyframes statFadeSlide{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes sectionFadeSlide{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dashboard-entrance .dash-stat{animation:statFadeSlide .4s cubic-bezier(.16,1,.3,1) both}.dashboard-entrance .dash-stat:nth-child(1){animation-delay:0ms}.dashboard-entrance .dash-stat:nth-child(2){animation-delay:50ms}.dashboard-entrance .dash-stat:nth-child(3){animation-delay:.1s}.dashboard-entrance .dash-stat:nth-child(4){animation-delay:.15s}.dashboard-entrance .dashboard-grid-primary{animation:sectionFadeSlide .35s cubic-bezier(.16,1,.3,1) .18s both}.dashboard-entrance .dashboard-grid-secondary{animation:sectionFadeSlide .35s cubic-bezier(.16,1,.3,1) .22s both}.dash-stat{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1),border-color .15s}.dash-stat:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.card{transition:transform .2s cubic-bezier(.16,1,.3,1),box-shadow .2s cubic-bezier(.16,1,.3,1)}.card:hover{box-shadow:var(--shadow)}.quick-action{transition:transform .15s cubic-bezier(.16,1,.3,1),border-color .15s,box-shadow .15s}.quick-action:active{transform:scale(.96)}.spending-row{transition:background .15s;border-radius:4px;padding:4px;margin:0 -4px}.spending-row:hover{background:var(--bg-hover)}.bill-row{transition:background .15s;border-radius:4px;padding:6px 4px;margin:0 -4px}.bill-row:hover{background:var(--bg-hover)}.dashboard-date-label{transition:border-color .2s cubic-bezier(.16,1,.3,1)}@media(prefers-reduced-motion:reduce){.dashboard-entrance .dash-stat,.dashboard-entrance .dashboard-grid-primary,.dashboard-entrance .dashboard-grid-secondary{animation:fadeIn .2s ease-out both}.dash-stat,.card,.quick-action,.spending-row,.bill-row,.dashboard-date-label{transition:none}.dash-stat:hover,.card:hover{transform:none;box-shadow:none}.quick-action:active{transform:none}}.dashboard-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px}.dashboard-greeting{min-width:0}.greeting-text{font-size:var(--page-title-size);font-weight:800;color:var(--text);letter-spacing:-.02em;line-height:1.15}.greeting-date{color:var(--text-muted);font-size:var(--page-subtitle-size);font-weight:500;margin-top:4px}.dashboard-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.dashboard-date-label{min-height:40px;padding:0 16px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text);border-radius:var(--radius);display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:.88rem;box-shadow:0 6px 16px #1e293b0a;cursor:default}.period-select{min-height:34px;font-size:.82rem;padding:0 12px;box-shadow:none}.dashboard-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.dash-stat{position:relative;min-height:96px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:14px 16px;box-shadow:var(--shadow-sm);overflow:hidden}.dash-stat-icon{position:absolute;top:14px;right:16px;width:38px;height:38px;border-radius:999px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.dash-stat-icon svg{width:18px;height:18px}.dash-stat-body{display:flex;flex-direction:column;min-width:0;padding-right:46px}.dash-stat-value{font-size:clamp(1.18rem,1.35vw,1.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.16;overflow-wrap:break-word;word-break:break-word;color:var(--text);margin-top:6px}.dash-stat-label{font-size:.84rem;color:currentColor;font-weight:800}.dash-stat-sub{font-size:.78rem;color:var(--text-muted);margin-top:7px;font-weight:600}.dash-stat-balance{color:var(--primary)}.dash-stat-balance .dash-stat-icon{background:#eeeaff;color:var(--primary)}.dash-stat-income{color:var(--success)}.dash-stat-income .dash-stat-icon{background:#e8f7ef;color:var(--success)}.dash-stat-expense{color:var(--danger)}.dash-stat-expense .dash-stat-icon{background:#feecec;color:var(--danger)}.dash-stat-savings{color:#7c3aed}.dash-stat-savings .dash-stat-icon{background:#f3eeff;color:#7c3aed}.tx-type{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text)}.tx-type-dot{width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0}.tx-type-income .tx-type-dot{background:var(--success)}.tx-type-expense .tx-type-dot{background:var(--danger)}.tx-type-transfer .tx-type-dot{background:var(--accent)}.tx-amount{font-family:var(--font-mono);font-weight:600;text-align:right}.tx-amount-income{color:var(--success)}.tx-amount-expense{color:var(--danger)}.tx-category{display:inline-flex;align-items:center;gap:6px}.tx-date{font-size:.85rem}.tx-date-text,.tx-account{color:var(--text-muted)}.tx-bill-title{font-weight:500}.dashboard-grid-primary,.dashboard-grid-secondary{grid-template-columns:1.05fr 1fr}.spending-overview-card,.upcoming-bills-card,.quick-actions-card{min-height:100%}.section-header h3{font-size:1rem;font-weight:800;color:var(--text)}.section-header .btn-ghost{color:var(--primary);font-weight:800}.spending-overview{display:grid;grid-template-columns:minmax(136px,188px) 1fr;align-items:center;gap:14px;min-height:152px}.spending-chart-wrap{display:flex;align-items:center;justify-content:center}.spending-donut{width:min(148px,100%);aspect-ratio:1;border-radius:50%;background:conic-gradient(#bac7ee 0,#bac7ee);display:grid;place-items:center;box-shadow:inset 0 0 0 1px #4f5d7c14}.spending-donut-center{width:64%;aspect-ratio:1;border-radius:50%;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:10px}.spending-donut-center strong{font-size:.96rem;line-height:1.1;color:var(--text)}.spending-donut-center span{color:var(--text-muted);font-size:.66rem;font-weight:700;margin-top:5px}.spending-list{display:grid;gap:8px}.spending-row{display:grid;grid-template-columns:10px minmax(104px,1fr) minmax(74px,auto) 38px;align-items:center;gap:8px;color:var(--text)}.spending-dot{width:9px;height:9px;border-radius:50%}.spending-row strong{justify-self:end;font-size:.84rem}.spending-row em{justify-self:end;color:var(--text-dim);font-style:normal;font-weight:700;font-size:.8rem}.bill-list{display:grid}.bill-row{display:grid;grid-template-columns:30px minmax(116px,1fr) minmax(78px,auto) minmax(88px,auto) minmax(96px,auto);gap:9px;align-items:center;padding:6px 0;border-bottom:1px solid var(--border)}.bill-row strong{font-size:.82rem;line-height:1.25}.bill-icon{width:24px;height:24px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-weight:900;font-size:.78rem}.bill-icon-0{background:#f1f5f9;color:#334155}.bill-icon-1{background:#feecec;color:#ef4444}.bill-icon-2{background:#eaf1ff;color:#3b82f6}.bill-icon-3{background:#fff1f2;color:#dc2626}.bill-icon-4{background:#efeaff;color:var(--primary)}.bill-amount{font-weight:800;color:var(--text);font-size:.84rem}.bill-date,.bill-account{color:var(--text-muted);font-size:.8rem}.manage-bills-btn{width:100%;margin-top:10px;color:var(--primary);background:#f7f4ff;border-color:#6366f138}.quick-actions{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-action{min-height:68px;border:1px solid var(--border);border-radius:8px;background:#fbfcff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center;padding:8px 6px;color:var(--text);transition:transform .15s cubic-bezier(.16,1,.3,1),border-color .15s,box-shadow .15s}.quick-action:hover{transform:translateY(-2px);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}.quick-action span{width:24px;height:24px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;font-weight:900;margin-bottom:2px}.quick-action strong{font-size:.74rem}.quick-action small{color:var(--text-muted);font-size:.66rem}.quick-action-expense{background:linear-gradient(135deg,#fff7f7,#fff)}.quick-action-income{background:linear-gradient(135deg,#f3fff8,#fff)}.quick-action-transfer{background:linear-gradient(135deg,#f8f5ff,#fff)}.quick-action-goal{background:linear-gradient(135deg,#f4f9ff,#fff)}.quick-action-expense span{background:#feecec;color:var(--danger)}.quick-action-income span{background:#e8f7ef;color:var(--success)}.quick-action-transfer span{background:#efeaff;color:var(--primary)}.quick-action-goal span{background:#eaf1ff;color:#3b82f6}@media(max-width:640px){.dashboard-stats{grid-template-columns:1fr 1fr;gap:12px}.dash-stat{padding:16px;min-height:128px}.dash-stat-icon{width:42px;height:42px;top:16px;right:16px}.dash-stat-value{font-size:1.2rem}.dash-stat-body{padding-right:48px}}@media(max-width:420px){.dashboard-stats{grid-template-columns:1fr}}.empty-state{text-align:center;padding:48px 24px;border-radius:var(--radius);background:var(--bg-surface);border:1px dashed var(--border)}.empty-state .icon{font-size:2.5rem;margin-bottom:12px;display:inline-block;opacity:.5}.empty-state h3{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:6px}.empty-state p{font-size:.9rem;color:var(--text-muted);max-width:400px;margin:0 auto 16px;line-height:1.5}.data-table{width:100%;border-collapse:collapse;font-size:.8rem}.data-table th{text-align:left;padding:6px 10px;border-bottom:1px solid var(--border);color:var(--text-dim);font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em}.data-table td{padding:7px 10px;border-bottom:1px solid var(--border);color:var(--text)}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#fafbff}.borrow-person-btn{gap:10px;color:#5b45f5;background:#fff;border-color:#5061802e;box-shadow:0 8px 16px #1e293b0a}.borrow-person-btn:hover{color:#5b45f5;background:#fbfaff;text-decoration:none}.borrow-record-btn{background:linear-gradient(135deg,#5b45f5,#673df0);border-color:transparent;box-shadow:0 8px 16px #5b45f533}.borrow-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}.borrow-summary-card{min-width:0;min-height:100px;display:grid;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:14px;padding:16px 18px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 20px 44px #1e293b14}.borrow-summary-icon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px}.borrow-summary-icon svg{width:24px;height:24px}.borrow-summary-receivable .borrow-summary-icon{color:#059669;background:linear-gradient(135deg,#e8f7ef,#e2f3ec)}.borrow-summary-payable .borrow-summary-icon{color:#ef4444;background:linear-gradient(135deg,#fff0f0,#fce8ea)}.borrow-summary-copy span{display:block;color:#586887;font-size:.78rem;font-weight:700}.borrow-summary-copy strong{display:block;margin-top:2px;font-size:1.35rem;font-weight:900;line-height:1.1;overflow-wrap:anywhere}.borrow-summary-receivable .borrow-summary-copy strong{color:#059669}.borrow-summary-payable .borrow-summary-copy strong{color:#ef4444}.borrow-summary-copy small{display:block;margin-top:4px;color:#667694;font-size:.78rem;font-weight:600}.borrow-section{margin-bottom:20px}.borrow-section-title{display:flex;align-items:center;gap:12px;margin-bottom:10px}.borrow-section-title h3{color:#13264b;font-size:1rem;font-weight:900;line-height:1.2}.borrow-section-status{display:inline-flex;align-items:center;gap:6px;font-size:.8rem;font-weight:800}.borrow-section-status svg{width:16px;height:16px}.borrow-section-pending{color:#f97316}.borrow-section-completed{color:#059669}.borrow-table-card{overflow-x:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 42px #1e293b12}.borrow-table{width:100%;border-collapse:collapse;table-layout:fixed}.borrow-table th{height:40px;padding:0 16px;color:#596887;font-size:.72rem;font-weight:900;text-align:left;text-transform:uppercase;border-bottom:1px solid rgba(79,93,124,.16)}.borrow-table td{height:60px;padding:8px 16px;color:#0d1833;font-size:.88rem;font-weight:700;border-bottom:1px solid rgba(79,93,124,.14);vertical-align:middle}.borrow-table tr:last-child td{border-bottom:0}.borrow-table th:nth-child(1),.borrow-table td:nth-child(1){width:19%}.borrow-table th:nth-child(2),.borrow-table td:nth-child(2){width:30%}.borrow-table th:nth-child(3),.borrow-table td:nth-child(3){width:13%;text-align:right}.borrow-table th:nth-child(4),.borrow-table td:nth-child(4){width:25%}.borrow-table th:nth-child(5),.borrow-table td:nth-child(5){width:18%;text-align:right}.borrow-person-cell,.borrow-date-cell,.borrow-actions,.borrow-direction,.borrow-settle-btn,.borrow-settled-label{display:flex;align-items:center}.borrow-person-cell{gap:10px}.borrow-person-cell strong{color:#0d1833;font-size:.88rem;font-weight:800}.borrow-avatar{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;font-size:.82rem;font-weight:900;flex-shrink:0}.borrow-avatar-purple{color:#6d45ff;background:#f1edff}.borrow-avatar-mint{color:#059669;background:#e8f7ef}.borrow-avatar-blue{color:#2f80ed;background:#eaf3ff}.borrow-avatar-green{color:#059669;background:#e8f7ef}.borrow-direction{width:max-content;min-height:28px;gap:6px;padding:4px 10px;border-radius:6px;font-size:.76rem;font-weight:900;text-transform:uppercase}.borrow-direction svg{width:16px;height:16px}.borrow-direction-payable{color:#f97316;background:#fff2ea}.borrow-direction-receivable{color:#059669;background:#eaf8f1}.borrow-amount{color:#0d1833;font-family:var(--font-mono);font-size:.92rem;font-weight:900}.borrow-date-cell{gap:8px}.borrow-date-cell>svg{width:16px;height:16px;flex-shrink:0;color:#4b5b7b}.borrow-date-cell strong,.borrow-date-cell small{display:block}.borrow-date-cell strong{color:#33415f;font-size:.84rem;font-weight:700}.borrow-date-cell small{margin-top:3px;font-size:.76rem;font-weight:700}.borrow-date-cell small.is-pending{color:#f97316}.borrow-date-cell small.is-settled{color:#059669}.borrow-actions{justify-content:flex-end;gap:8px}.borrow-settle-btn,.borrow-delete-btn{display:inline-flex;align-items:center;justify-content:center;border-radius:6px;font-weight:900}.borrow-settle-btn{min-height:32px;gap:6px;padding:0 10px;color:#5b45f5;background:#fbfaff;border:1px solid #d9d0ff;font-size:.8rem}.borrow-settle-btn svg,.borrow-settled-label svg{width:15px;height:15px}.borrow-delete-btn{width:32px;height:32px;color:#ff1f1f;background:#fff;border:1px solid #f4ced2}.borrow-delete-btn svg{width:16px;height:16px}.borrow-settled-label{justify-content:flex-end;gap:6px;color:#667694;font-size:.82rem;font-weight:700}.borrow-settled-label svg{color:#059669}.borrow-empty{padding:20px 16px;color:var(--text-dim);background:#fff;border:1px dashed rgba(79,93,124,.24);border-radius:8px;font-weight:700}.borrow-empty-section{margin:0;border:0;border-radius:0;border-top:1px solid rgba(79,93,124,.12)}.goals-summary{min-height:88px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch;margin-bottom:20px;padding:16px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 42px #1e293b12}.goals-summary-item{min-width:0;display:grid;grid-template-columns:52px minmax(0,1fr);align-items:center;gap:12px;padding:0 16px;border-right:1px solid rgba(79,93,124,.14)}.goals-summary-item:first-child{padding-left:0}.goals-summary-item:last-child{border-right:0;padding-right:0}.goals-summary-icon,.goal-icon,.goals-tip-icon{display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.goals-summary-icon{width:56px;height:56px}.goals-summary-icon svg{width:28px;height:28px}.goals-summary-purple,.goal-icon-purple{color:#5b45f5;background:linear-gradient(135deg,#f1edff,#e8e2ff)}.goals-summary-green,.goal-icon-green{color:#059669;background:linear-gradient(135deg,#e4f8ee,#d8f4e7)}.goals-summary-blue,.goal-icon-blue{color:#2563eb;background:linear-gradient(135deg,#eaf3ff,#deedff)}.goals-summary-orange{color:#f97316;background:linear-gradient(135deg,#fff0e7,#ffe8dc)}.goals-summary-item span span{display:block;color:#586887;font-size:.76rem;font-weight:700}.goals-summary-item strong{display:block;margin-top:4px;color:#0d1833;font-size:1.15rem;font-weight:900;line-height:1.1;overflow-wrap:anywhere}.goals-summary-item small{display:block;margin-top:4px;color:#6f7e9c;font-size:.72rem;font-weight:600}.goals-summary-track{width:min(100%,170px);height:7px;display:block;overflow:hidden;border-radius:999px;background:#e5e8f0}.goals-summary-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b45f5,#673df0)}.goals-toolbar{display:grid;grid-template-columns:minmax(280px,1fr) auto 160px;align-items:center;gap:24px;margin-bottom:26px}.goals-search,.goals-sort{min-height:50px;display:inline-flex;align-items:center;gap:12px;padding:0 18px;color:#172849;background:#fff;border:1px solid rgba(80,97,128,.18);border-radius:8px;box-shadow:0 12px 26px #1e293b0a}.goals-search svg,.goals-sort svg{width:20px;height:20px;flex-shrink:0;color:#536484}.goals-search input,.goals-sort select{width:100%;min-width:0;border:0;outline:0;color:#172849;background:transparent;font-weight:700}.goals-search input::placeholder{color:#8a97b3}.goals-tabs{min-height:50px;display:inline-flex;align-items:stretch;overflow:hidden;background:#fff;border:1px solid rgba(80,97,128,.18);border-radius:8px}.goals-tabs button{min-width:132px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 18px;color:#33415f;font-weight:800;border-right:1px solid rgba(80,97,128,.12)}.goals-tabs button:last-child{border-right:0}.goals-tabs button svg{width:18px;height:18px}.goals-tabs button.active{color:#5b45f5;background:#f3f0ff;box-shadow:inset 0 0 0 1px #d9d0ff}.goals-sort{justify-self:end;min-width:154px}.goals-sort select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.goals-sort svg:last-child{width:16px;height:16px;margin-left:auto}.goals-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-bottom:28px}.goal-card{min-width:0;padding:22px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 42px #1e293b12;overflow:hidden}.goal-card-top{display:grid;grid-template-columns:60px minmax(0,1fr) auto 24px;align-items:start;gap:16px;margin-bottom:26px}.goal-icon{width:60px;height:60px}.goal-icon svg{width:34px;height:34px}.goal-card h3{margin-top:8px;color:#0d1833;font-size:1.05rem;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.goal-card p{margin-top:10px;color:#657491;font-size:.86rem;font-weight:600;line-height:1.3}.goal-priority{min-height:30px;padding:7px 12px;border-radius:6px;font-size:.7rem;font-weight:900;line-height:1}.goal-priority-high{color:#ef1f1f;background:#fff0f0;border:1px solid #ffc7c7}.goal-priority-medium{color:#f97316;background:#fff2ea;border:1px solid #ffd6a0}.goal-priority-low{color:#2563eb;background:#eef5ff;border:1px solid #c7ddff}.goal-menu-btn{color:#3d5176;line-height:1}.goal-menu-btn svg{width:20px;height:20px}.goal-money-row,.goal-progress-copy,.goal-date-panel,.goal-actions{display:flex;align-items:center}.goal-money-row{justify-content:space-between;gap:18px;margin-bottom:14px}.goal-money-row div:last-child{text-align:right}.goal-money-row strong{display:block;color:#0d1833;font-family:var(--font-mono);font-size:1.02rem;font-weight:900}.goal-money-row span{display:block;margin-top:8px;color:#657491;font-size:.8rem;font-weight:700}.goal-progress-track{height:7px;overflow:hidden;border-radius:999px;background:#e7eaf1}.goal-progress-fill{display:block;height:100%;border-radius:inherit}.goal-progress-purple{color:#5b45f5;background:linear-gradient(90deg,#5b45f5,#673df0)}.goal-progress-green{color:#059669;background:linear-gradient(90deg,#059669,#12b981)}.goal-progress-blue{color:#2563eb;background:linear-gradient(90deg,#2563eb,#1d6bff)}.goal-progress-text.goal-progress-purple,.goal-progress-text.goal-progress-green,.goal-progress-text.goal-progress-blue{background:transparent;color:inherit}.goal-progress-copy{justify-content:space-between;gap:16px;margin-top:14px;font-size:.86rem;font-weight:800}.goal-progress-copy span{color:#657491}.goal-progress-text{font-weight:900}.goal-date-panel{justify-content:space-between;gap:16px;margin-top:34px;padding:16px;background:#fbfaff;border:1px solid rgba(91,69,245,.12);border-radius:8px}.goal-date-panel>div{min-width:0;flex:1;display:flex;align-items:center;gap:12px}.goal-date-panel>div+div{padding-left:18px;border-left:1px solid rgba(79,93,124,.14)}.goal-date-panel svg{width:20px;height:20px;flex-shrink:0;color:#536484}.goal-date-panel small,.goal-date-panel strong{display:block}.goal-date-panel small{color:#657491;font-size:.73rem;font-weight:700}.goal-date-panel strong{margin-top:5px;color:#0d1833;font-size:.78rem;font-weight:800;line-height:1.2}.goal-actions{gap:12px;margin-top:26px;flex-wrap:wrap}.goal-actions .btn{min-height:42px;gap:8px;border-radius:7px;font-weight:900;min-width:0}.goal-actions svg{width:18px;height:18px}.goal-contribute-btn{flex:1 1 180px;min-width:0;border-color:transparent}.goal-contribute-purple{background:linear-gradient(135deg,#5b45f5,#673df0)}.goal-contribute-green{background:linear-gradient(135deg,#059669,#12b981)}.goal-contribute-blue{background:linear-gradient(135deg,#2563eb,#1d6bff)}.goal-action-btn{flex:1 1 120px;min-width:0;color:#0d1833;background:#fff;border-color:#5061802e}.goal-archive-btn{color:#ff1f1f}.goals-tip{display:grid;grid-template-columns:48px minmax(0,1fr) auto 24px;align-items:center;gap:20px;min-height:96px;margin-top:8px;padding:18px 20px;background:linear-gradient(135deg,#fbfaff,#f6f2ff);border:1px solid #d7cdff;border-radius:8px}.goals-tip-icon{width:48px;height:48px;color:#fff;background:linear-gradient(135deg,#5b45f5,#673df0)}.goals-tip-icon svg{width:24px;height:24px}.goals-tip strong{color:#4c2ce8;font-size:.9rem;font-weight:900}.goals-tip p{margin-top:6px;color:#4c2ce8;font-size:.84rem;font-weight:600}.goals-tip-btn{min-height:40px;padding-inline:18px;color:#5b45f5;background:#fff;border-color:#cfc3ff;font-weight:900}.goals-tip-close{color:#71809b}.goals-tip-close svg{width:18px;height:18px}.goals-empty{padding:28px 22px;color:var(--text-dim);background:#fff;border:1px dashed rgba(79,93,124,.24);border-radius:8px;font-weight:700}.goals-empty-filtered{margin-bottom:24px}@media(max-width:900px){.goals-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.goals-summary-item:nth-child(2){border-right:0}.goals-summary-item:nth-child(3){padding-left:0}.goals-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.goals-toolbar{grid-template-columns:1fr}.goals-tabs,.goals-sort{justify-self:stretch}.goals-tabs button{flex:1;min-width:0}.goals-card-grid{grid-template-columns:1fr}}@media(max-width:640px){.goals-page .page-header h2{font-size:1.8rem}.goals-new-btn{width:100%;min-height:44px}.goals-summary{grid-template-columns:1fr;padding:16px;gap:0}.goals-summary-item,.goals-summary-item:first-child,.goals-summary-item:nth-child(3),.goals-summary-item:last-child{padding:14px 0;border-right:0;border-bottom:1px solid rgba(79,93,124,.14)}.goals-summary-item:last-child{border-bottom:0}.goal-card{padding:18px}.goal-card-top{grid-template-columns:52px minmax(0,1fr)}.goal-icon{width:52px;height:52px}.goal-priority{width:fit-content;grid-column:2}.goal-menu-btn{grid-column:1;grid-row:2;width:fit-content}.goal-date-panel,.goal-actions,.goals-tip{grid-template-columns:1fr}.goal-date-panel{align-items:stretch}.goal-date-panel>div+div{padding-left:0;padding-top:12px;border-left:0;border-top:1px solid rgba(79,93,124,.14)}.goal-actions{display:grid}.goals-tip{justify-items:start}}@media(max-width:1100px){.borrow-summary{grid-template-columns:1fr}.borrow-table-card{overflow-x:auto}.borrow-table{min-width:920px}}@media(max-width:640px){.borrow-person-btn,.borrow-record-btn{width:100%;min-height:40px}.borrow-summary-card{min-height:auto;grid-template-columns:44px minmax(0,1fr);gap:12px;padding:14px}.borrow-summary-wallet{display:none}.borrow-summary-icon{width:44px;height:44px}.borrow-summary-icon svg{width:20px;height:20px}.borrow-summary-copy strong{font-size:1.2rem}.borrow-section-title{align-items:flex-start;flex-direction:column;gap:4px}}.recurring-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:14px}.recurring-summary-card{min-width:0;display:flex;align-items:center;gap:12px;min-height:72px;padding:12px 14px 12px 16px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 40px #1e293b12}.recurring-summary-icon{width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;flex-shrink:0}.recurring-summary-icon svg{width:18px;height:18px}.recurring-summary-purple{color:#5b45f5;background:linear-gradient(135deg,#f1edff,#e8e2ff)}.recurring-summary-green{color:#059669;background:linear-gradient(135deg,#e4f8ee,#d8f4e7)}.recurring-summary-amber{color:#f08a00;background:linear-gradient(135deg,#fff4df,#ffebc7)}.recurring-summary-blue{color:#2f80ed;background:linear-gradient(135deg,#eaf3ff,#deedff)}.recurring-summary-card span span{display:block;color:#586887;font-size:.72rem;font-weight:600}.recurring-summary-card strong{display:block;margin-top:3px;color:#0d1833;font-size:1.05rem;font-weight:900;line-height:1.1;overflow-wrap:break-word}.recurring-summary-card small{display:block;margin-top:3px;color:#6f7e9c;font-size:.7rem;font-weight:600}.recurring-toolbar{display:grid;grid-template-columns:minmax(200px,1fr) 180px 180px 180px 110px;gap:10px;align-items:center;margin-bottom:16px}.recurring-search,.recurring-select-wrap,.recurring-filter-btn,.recurring-page-size{min-width:0;min-height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;color:#172849;background:#fff;border:1px solid rgba(80,97,128,.18);border-radius:6px;box-shadow:0 12px 26px #1e293b0a}.recurring-search svg,.recurring-select-wrap svg,.recurring-filter-btn svg,.recurring-page-size svg{width:16px;height:16px;flex-shrink:0;color:#13264b}.recurring-search input,.recurring-select-wrap select{width:100%;min-width:0;border:0;outline:0;color:#172849;background:transparent;font-weight:700}.recurring-search input::placeholder{color:#8a97b3}.recurring-select-wrap select{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer}.recurring-select-wrap svg:last-child,.recurring-page-size svg{width:16px;height:16px;margin-left:auto}.recurring-filter-btn{justify-content:center;font-weight:800}.recurring-table-card{overflow:hidden;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:0 18px 42px #1e293b12}.recurring-table{width:100%;border-collapse:collapse;table-layout:fixed}.recurring-table th{height:38px;padding:0 14px;color:#596887;font-size:.68rem;font-weight:900;text-align:left;text-transform:uppercase;border-bottom:1px solid rgba(79,93,124,.14)}.recurring-table th svg{width:11px;height:11px;margin-left:3px;vertical-align:middle}.recurring-table td{min-height:0;padding:8px 14px;color:#0d1833;font-size:.82rem;font-weight:700;border-bottom:1px solid rgba(79,93,124,.12);vertical-align:middle}.recurring-table tr:last-child td{border-bottom:0}.recurring-table th:nth-child(1),.recurring-table td:nth-child(1){width:22%}.recurring-table th:nth-child(2),.recurring-table td:nth-child(2){width:9%}.recurring-table th:nth-child(3),.recurring-table td:nth-child(3){width:11%}.recurring-table th:nth-child(4),.recurring-table td:nth-child(4){width:11%}.recurring-table th:nth-child(5),.recurring-table td:nth-child(5){width:13%}.recurring-table th:nth-child(6),.recurring-table td:nth-child(6){width:12%}.recurring-table th:nth-child(7),.recurring-table td:nth-child(7){width:11%}.recurring-table th:nth-child(8),.recurring-table td:nth-child(8){width:8%;text-align:right}.recurring-title-cell,.recurring-date{min-width:0;display:flex;align-items:center;gap:10px}.recurring-row-icon{width:34px;height:34px}.recurring-row-icon svg{width:18px;height:18px}.recurring-row-purple{color:#5b45f5;background:linear-gradient(135deg,#f1edff,#e8e2ff)}.recurring-row-green{color:#059669;background:linear-gradient(135deg,#e4f8ee,#d8f4e7)}.recurring-row-red{color:#ff1f1f;background:linear-gradient(135deg,#fff0f0,#ffe6e6)}.recurring-row-blue{color:#2f80ed;background:linear-gradient(135deg,#eaf3ff,#deedff)}.recurring-row-pink{color:#ef3b55;background:linear-gradient(135deg,#ffeef1,#ffe2e8)}.recurring-row-amber{color:#f08a00;background:linear-gradient(135deg,#fff4df,#ffebc7)}.recurring-title-cell strong,.recurring-date strong{display:block;color:#0d1833;font-size:.84rem;font-weight:900;line-height:1.2;overflow-wrap:anywhere}.recurring-title-cell small,.recurring-date small{display:block;margin-top:3px;color:#657491;font-size:.74rem;font-weight:600;line-height:1.15}.recurring-kind,.recurring-status{display:inline-flex;align-items:center;justify-content:center;min-height:24px;padding:2px 8px;border-radius:4px;font-size:.7rem;font-weight:900;line-height:1;white-space:nowrap}.recurring-amount{color:#0d1833;font-family:var(--font-mono);font-size:.85rem;font-weight:900}.recurring-date{gap:6px}.recurring-date>svg{width:14px;height:14px;flex-shrink:0;color:#596887}.recurring-post-btn{min-height:28px;margin-left:6px;padding-inline:8px;color:#5b45f5;border:1px solid #d9d0ff;border-radius:5px;background:#fff;text-decoration:none;font-size:.72rem;font-weight:800}.recurring-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px}.recurring-actions button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:#0d1833;background:#fff;border:1px solid rgba(80,97,128,.16);border-radius:6px}.recurring-actions button svg{width:16px;height:16px}.recurring-actions .is-danger{color:#ff1f1f}.recurring-table-footer{min-height:48px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:8px 16px;color:#657491;font-size:.8rem;font-weight:700;border-top:1px solid rgba(79,93,124,.12)}.recurring-pagination{display:inline-flex;align-items:center;gap:6px}.recurring-pagination button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;color:#172849;background:#fff;border:1px solid rgba(80,97,128,.16);border-radius:6px;font-weight:900;font-size:.8rem}.recurring-pagination button.active{color:#fff;background:linear-gradient(135deg,#5b45f5,#673df0);border-color:transparent;box-shadow:0 10px 20px #5b45f53d}.recurring-pagination button:disabled{color:#9aa6bd;cursor:not-allowed}.recurring-pagination button svg{width:14px;height:14px}.recurring-page-size{justify-self:end;min-height:36px;padding-inline:10px;gap:8px;color:#172849;font-weight:800;font-size:.8rem}.recurring-empty{padding:20px 16px;color:var(--text-dim);background:#fff;border:1px dashed rgba(79,93,124,.24);border-radius:8px;font-weight:700}.recurring-empty-filtered{margin:0;border:0;border-radius:0;border-bottom:1px solid rgba(79,93,124,.12)}@media(max-width:1280px){.recurring-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.recurring-toolbar{grid-template-columns:minmax(240px,1fr) repeat(2,minmax(190px,220px))}.recurring-filter-btn{grid-column:span 1}.recurring-table-card{overflow-x:auto}.recurring-table{min-width:1120px}}@media(max-width:760px){.recurring-summary{grid-template-columns:1fr 1fr;gap:8px}.recurring-summary-card{min-height:auto;gap:10px;padding:10px 12px}.recurring-summary-icon{width:34px;height:34px}.recurring-summary-icon svg{width:16px;height:16px}.recurring-toolbar{grid-template-columns:1fr;gap:8px}.recurring-search,.recurring-select-wrap,.recurring-filter-btn{min-height:38px}.recurring-table-footer{grid-template-columns:1fr;justify-items:stretch;padding:10px}.recurring-pagination{justify-content:center}.recurring-page-size{justify-self:stretch;justify-content:center}}.transactions-page{display:grid;gap:20px}.transactions-header{margin-bottom:0}.transaction-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.transaction-stat-card{min-height:112px;display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:18px;padding:20px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm)}.transaction-stat-icon{width:52px;height:52px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;font-size:1.9rem;font-weight:500;line-height:1}.transaction-stat-card p{color:var(--text-muted);font-size:.84rem;font-weight:700;margin-bottom:4px}.transaction-stat-card strong{display:block;font-size:clamp(1.25rem,1.8vw,1.65rem);line-height:1.16;font-weight:800;letter-spacing:0;overflow-wrap:anywhere}.transaction-stat-card span:not(.transaction-stat-icon){display:inline-block;color:var(--text-muted);font-size:.78rem;font-weight:700;margin-top:6px}.transaction-stat-expense .transaction-stat-icon{background:#feecec;color:var(--danger)}.transaction-stat-expense strong{color:var(--danger)}.transaction-stat-income .transaction-stat-icon{background:#e8f7ef;color:var(--success)}.transaction-stat-income strong{color:var(--success)}.transaction-stat-transfer .transaction-stat-icon{background:#eaf1ff;color:#2563eb}.transaction-stat-transfer strong{color:#2563eb}.transaction-stat-net .transaction-stat-icon{background:#efeaff;color:var(--primary)}.transaction-filter-stack{display:grid;gap:10px}.transaction-filter-bar{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(140px,.65fr) minmax(170px,.75fr) minmax(170px,.75fr) auto;align-items:center;gap:12px}.transaction-search,.transaction-filter-control,.transaction-date-filters input{min-height:40px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text);box-shadow:0 6px 16px #1e293b09}.transaction-search{display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--text-dim)}.transaction-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-weight:600}.transaction-search input::placeholder{color:var(--text-dim);font-weight:600}.transaction-filter-control{width:100%;padding:0 36px 0 14px;font-weight:700;color:var(--text-muted);outline:none}.transaction-search:focus-within,.transaction-filter-control:focus,.transaction-date-filters input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--border-focus)}.transaction-reset-btn{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;color:#2563eb;font-weight:800;padding:0 8px;white-space:nowrap}.transaction-date-filters{display:grid;grid-template-columns:repeat(2,minmax(180px,240px));gap:12px}.transaction-date-filters label{display:grid;gap:4px;color:var(--text-dim);font-size:.76rem;font-weight:800}.transaction-date-filters input{padding:0 12px;outline:none}.transactions-table-card{padding:0;overflow:hidden}.transactions-table-card .data-table{font-size:.86rem}.transactions-table-card .data-table th{padding:13px 22px;background:#fbfcff;font-weight:800}.transactions-table-card .data-table td{padding:10px 22px;vertical-align:middle}.transaction-direction{width:28px;height:28px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;margin-right:14px;font-size:1.25rem;font-weight:800;line-height:1;vertical-align:middle}.transaction-direction-expense{background:#fff0f0;color:var(--danger)}.transaction-direction-income{background:#eaf8ef;color:var(--success)}.transaction-direction-transfer{background:#eaf1ff;color:#2563eb}.transaction-date-main{color:var(--text);font-weight:800}.transaction-category-pill{display:inline-flex;align-items:center;gap:8px;font-weight:700}.transaction-category-pill>span:first-child{width:26px!important;height:26px!important;border-radius:7px;background:#f8fafc;border:1px solid var(--border);color:var(--primary)!important}.transaction-account,.transaction-muted{color:var(--text-muted);font-weight:650}.transaction-amount{text-align:right;font-family:var(--font-mono);font-weight:800;letter-spacing:0;white-space:nowrap}.transaction-amount-income{color:var(--success)}.transaction-amount-expense{color:var(--danger)}.transaction-amount-transfer{color:var(--success)}.transaction-actions{text-align:right;white-space:nowrap}.transaction-icon-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);background:var(--bg-surface);margin-left:6px;transition:background .15s,border-color .15s,color .15s}.transaction-icon-btn:hover{background:#f8fafc;border-color:var(--border-hover);color:var(--text)}.transaction-icon-danger{color:var(--danger)}.transaction-table-footer{min-height:60px;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(100px,1fr);align-items:center;gap:12px;padding:12px 22px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.82rem;font-weight:700}.transaction-pagination{display:flex;align-items:center;justify-content:center;gap:8px}.transaction-page-btn,.transaction-page-size{min-width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text-muted);display:inline-flex;align-items:center;justify-content:center;font-weight:800}.transaction-page-btn.active{color:var(--primary);border-color:var(--primary);box-shadow:0 0 0 3px #5b45f514}.transaction-page-btn:disabled{opacity:.45;cursor:not-allowed}.transaction-page-size{justify-self:end;min-width:88px;padding:0 12px}.transaction-empty{color:var(--text-dim);padding:28px 22px;font-weight:700}.investments-page{display:grid;gap:20px}.investment-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}.investment-stat-card{min-height:88px;display:flex;align-items:center;gap:14px;padding:16px 18px;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);min-width:0}.investment-stat-icon{width:44px;height:44px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-size:1.2rem;font-weight:800;line-height:1;flex-shrink:0}.investment-stat-card p{color:var(--text-muted);font-size:.76rem;font-weight:700;margin-bottom:2px}.investment-stat-card>div{min-width:0}.investment-stat-card strong{display:block;color:var(--text);font-size:clamp(1rem,1.2vw,1.2rem);line-height:1.18;font-weight:800;letter-spacing:0;overflow-wrap:anywhere;max-width:100%}.investment-stat-best strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.investment-stat-card span:not(.investment-stat-icon){display:inline-flex;align-items:center;width:fit-content;color:var(--text-muted);font-size:.72rem;font-weight:700;margin-top:4px}.investment-stat-total .investment-stat-icon{background:#efeaff;color:var(--primary)}.investment-stat-value .investment-stat-icon,.investment-stat-gain .investment-stat-icon{background:#e8f7ef;color:var(--success)}.investment-stat-gain strong{color:var(--success)}.investment-stat-best .investment-stat-icon{background:#eaf1ff;color:#2563eb}.investment-stat-market .investment-stat-icon{background:#fff7e6;color:#c78300}.gain-chip,.loss-chip{padding:2px 10px;border-radius:999px}.gain-chip{background:#dff6ea;color:var(--success)!important}.loss-chip{background:#feecec;color:var(--danger)!important}.investment-filter-bar{display:grid;grid-template-columns:minmax(240px,2fr) minmax(138px,.7fr) minmax(156px,.8fr) minmax(190px,1fr) minmax(108px,auto);align-items:center;gap:12px}.investment-search,.investment-filter-control{min-height:42px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text);box-shadow:0 6px 16px #1e293b09}.investment-search{display:flex;align-items:center;gap:10px;padding:0 14px;color:var(--text-muted)}.investment-search input{width:100%;border:0;outline:0;background:transparent;color:var(--text);font-weight:600}.investment-search input::placeholder{color:var(--text-dim);font-weight:600}.investment-filter-control{width:100%;padding:0 36px 0 14px;color:var(--text-muted);font-weight:700;outline:none}.investment-search:focus-within,.investment-filter-control:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--border-focus)}.investment-filter-btn{min-height:42px;background:var(--bg-surface);font-weight:800}.investment-reset-btn{justify-self:start;color:#2563eb;font-weight:800}.investments-table-card{padding:0;overflow:hidden;max-width:100%}.investments-table-card .data-table{font-size:.86rem;table-layout:fixed;min-width:0}.investments-table-card .data-table th{padding:13px 14px;background:#fbfcff;font-weight:800}.investments-table-card .data-table td{padding:12px 14px;vertical-align:middle}.investments-table-card .data-table th:nth-child(1),.investments-table-card .data-table td:nth-child(1){width:27%}.investments-table-card .data-table th:nth-child(2),.investments-table-card .data-table td:nth-child(2){width:9%}.investments-table-card .data-table th:nth-child(3),.investments-table-card .data-table td:nth-child(3),.investments-table-card .data-table th:nth-child(4),.investments-table-card .data-table td:nth-child(4){width:12%}.investments-table-card .data-table th:nth-child(5),.investments-table-card .data-table td:nth-child(5){width:20%}.investments-table-card .data-table th:nth-child(6),.investments-table-card .data-table td:nth-child(6){width:20%}.investment-name-cell{display:flex;align-items:center;gap:12px;min-width:0;max-width:100%}.investment-row-icon{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;font-size:1.2rem;font-weight:900}.investment-name-cell strong{display:block;color:var(--text);font-size:.92rem;font-weight:800;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.investment-name-cell small{display:block;color:var(--text-muted);font-size:.82rem;font-weight:650;margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.investment-icon-gold .investment-row-icon{background:#fff3cf;color:#d89a00}.investment-icon-mutual_fund .investment-row-icon{background:#eaf4ff;color:#1d8cff}.investment-icon-crypto .investment-row-icon{background:#ffe6d4;color:#f97316}.investment-icon-fd .investment-row-icon{background:#eaf4ff;color:#1d8cff}.investment-icon-stock .investment-row-icon{background:#efeaff;color:var(--primary)}.investment-icon-ppf .investment-row-icon,.investment-icon-epf .investment-row-icon,.investment-icon-nps .investment-row-icon{background:#e8f7ef;color:var(--success)}.investment-icon-bond .investment-row-icon{background:#f1f5f9;color:#475569}.investment-icon-real_estate .investment-row-icon{background:#fff0f0;color:var(--danger)}.investment-icon-other .investment-row-icon{background:#f8fafc;color:var(--text-muted)}.investment-type-pill{min-width:54px;min-height:26px;display:inline-flex;align-items:center;justify-content:center;padding:3px 10px;border-radius:6px;font-size:.75rem;font-weight:900;letter-spacing:0}.investment-type-gold,.investment-type-crypto,.investment-type-stock{background:#f6f1ff;color:var(--primary);border:1px solid rgba(91,69,245,.16)}.investment-type-mutual_fund,.investment-type-fd{background:#eef6ff;color:#2563eb;border:1px solid rgba(37,99,235,.16)}.investment-type-ppf,.investment-type-epf,.investment-type-nps,.investment-type-bond,.investment-type-real_estate,.investment-type-other{background:#f8fafc;color:var(--text-muted);border:1px solid var(--border)}.investment-money{text-align:right;font-family:var(--font-mono);font-weight:750;letter-spacing:0;white-space:nowrap}.investment-gain-cell{text-align:right;color:var(--text)}.investment-gain-wrap{display:flex;align-items:center;justify-content:flex-end;gap:12px;font-family:var(--font-mono);font-weight:850;letter-spacing:0;white-space:nowrap;min-width:0}.investment-gain-wrap>span{overflow:hidden;text-overflow:ellipsis}.investment-gain-cell.positive .investment-gain-wrap{color:var(--success)}.investment-gain-cell.negative .investment-gain-wrap{color:var(--danger)}.investment-sparkline{width:58px;height:28px;flex:0 0 auto}.investment-sparkline polyline{fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.investment-sparkline.positive{color:var(--success)}.investment-sparkline.negative{color:var(--danger)}.investment-flat-line{width:58px;height:2px;border-radius:999px;background:var(--success)}.investment-actions-cell{text-align:right}.investment-actions{display:flex;justify-content:flex-end;gap:6px;white-space:nowrap;min-width:0}.investment-action-btn{min-height:34px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 9px;border:1px solid var(--border);border-radius:8px;color:var(--text-muted);background:var(--bg-surface);font-size:.78rem;font-weight:800;transition:background .15s,border-color .15s,color .15s}.investment-action-btn:hover{background:#f8fafc;border-color:var(--border-hover);color:var(--text)}.investment-action-btn.danger{color:var(--danger)}.investment-table-footer{min-height:62px;display:grid;grid-template-columns:minmax(200px,1fr) auto minmax(160px,1fr);align-items:center;gap:14px;padding:12px 22px;border-top:1px solid var(--border);color:var(--text-muted);font-size:.84rem;font-weight:700}.investment-pagination{display:inline-flex;align-items:center;justify-content:center;gap:10px}.investment-page-btn{min-width:34px;height:34px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text-muted);font-weight:850}.investment-page-btn.active{color:#fff;background:var(--primary);border-color:var(--primary);box-shadow:0 8px 18px #5b45f53d}.investment-page-btn:disabled{opacity:.45;cursor:not-allowed}.investment-rows-control{justify-self:end;display:inline-flex;align-items:center;gap:12px}.investment-rows-control select{min-height:34px;min-width:72px;border:1px solid var(--border);border-radius:8px;background:var(--bg-surface);color:var(--text);padding:0 10px;font-weight:800}.investment-empty{color:var(--text-dim);padding:28px 22px;font-weight:700}.loans-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);margin-bottom:16px;padding:14px 16px}.loan-summary-item{min-width:0;display:grid;grid-template-columns:40px minmax(0,1fr);align-items:center;gap:12px;padding:0 16px;border-right:1px solid var(--border)}.loan-summary-item:first-child{padding-left:10px}.loan-summary-item:last-child{border-right:0;padding-right:10px}.loan-summary-icon,.loan-type-icon,.loan-due-icon,.loan-statement-btn{width:40px;height:40px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.loan-summary-icon svg,.loan-type-icon svg,.loan-due-icon svg,.loan-statement-btn svg,.loan-action-btn svg,.loan-schedule-btn svg{width:18px;height:18px}.loan-summary-purple,.loan-icon-home,.loan-icon-informal,.loan-icon-other{background:linear-gradient(135deg,#f2efff,#e8e3ff);color:var(--primary)}.loan-summary-green{background:linear-gradient(135deg,#e8f8ef,#d9f2e4);color:#059669}.loan-summary-amber,.loan-icon-vehicle,.loan-icon-education{background:linear-gradient(135deg,#fff5d7,#ffefbd);color:#d89100}.loan-summary-blue,.loan-icon-personal{background:linear-gradient(135deg,#eaf3ff,#ddecff);color:#2f80ed}.loan-summary-item span,.loan-amount-block span,.loan-facts span,.loan-progress-label span,.loan-due-row span{display:block;color:#64728b;font-size:.76rem;font-weight:800}.loan-summary-item strong{display:block;color:var(--text);font-size:clamp(1rem,1.45vw,1.25rem);font-weight:900;line-height:1.16;overflow-wrap:break-word;word-break:break-word}.loan-card-grid{display:grid;grid-template-columns:repeat(2,minmax(300px,1fr));gap:16px}.loan-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);padding:18px;min-width:0}.loan-card-top,.loan-title-wrap,.loan-progress-label,.loan-due-row,.loan-actions{display:flex;align-items:center}.loan-card-top{justify-content:space-between;gap:12px;margin-bottom:16px}.loan-title-wrap{gap:12px;min-width:0}.loan-title-wrap h3{font-size:clamp(1rem,1.2vw,1.14rem);font-weight:900;line-height:1.2;color:var(--text);overflow-wrap:break-word}.loan-status{width:max-content;margin-top:5px;min-height:20px;padding:3px 9px;border-radius:999px;background:linear-gradient(135deg,#ddf7e8,#c9f2d8);color:#059669;display:inline-flex;align-items:center;gap:6px;font-size:.72rem;font-weight:900;line-height:1}.loan-status span{width:6px;height:6px;border-radius:999px;background:#10b981}.loan-type-pill{align-self:flex-start;min-height:26px;padding:5px 9px;border:1px solid rgba(91,69,245,.25);border-radius:6px;color:var(--primary);background:#fbfaff;font-size:.68rem;font-weight:900;text-transform:uppercase;flex-shrink:0}.loan-amount-block{margin-bottom:6px}.loan-amount-block span,.loan-progress-label span{text-transform:uppercase;letter-spacing:.04em}.loan-amount-block strong{display:block;margin-top:2px;color:var(--danger);font-size:clamp(1.45rem,2.1vw,1.85rem);font-weight:900;line-height:1.08;overflow-wrap:break-word;word-break:break-word}.loan-facts{display:grid;grid-template-columns:minmax(70px,auto) 1px minmax(112px,1fr) 40px;align-items:center;gap:12px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:10px 0;margin-bottom:14px}.loan-facts strong{color:var(--text);font-size:.9rem;font-weight:800}.loan-facts span{text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.loan-fact-divider{width:1px;height:22px;background:var(--border)}.loan-statement-btn{background:linear-gradient(135deg,#f2efff,#e8e3ff);color:var(--primary);transition:transform .15s,background .15s}.loan-statement-btn:hover{transform:translateY(-1px);background:#e8e3ff}.loan-progress-block{margin-bottom:14px}.loan-progress-label{justify-content:space-between;gap:12px;margin-bottom:6px}.loan-progress-label strong{color:#64728b;font-size:.78rem;font-weight:800;white-space:nowrap}.loan-progress-track{height:6px;border-radius:999px;background:#e8ebf0;overflow:hidden}.loan-progress-track div{height:100%;border-radius:inherit;background:linear-gradient(90deg,#5b45f5,#6c55ff);transition:width .3s cubic-bezier(.16,1,.3,1)}.loan-due-row{min-height:46px;gap:10px;padding:8px 10px;border:1px solid rgba(91,69,245,.16);border-radius:8px;background:#fbfaff;margin-bottom:14px}.loan-due-icon{width:30px;height:30px;background:#eeeaff;color:var(--primary)}.loan-due-icon svg{width:16px;height:16px}.loan-due-row strong{display:block;color:var(--text);font-size:.86rem;font-weight:900;line-height:1.2}.loan-schedule-btn{margin-left:auto;display:inline-flex;align-items:center;gap:5px;color:var(--primary);font-weight:900;font-size:.78rem;white-space:nowrap}.loan-schedule-btn svg{width:15px;height:15px}.loan-actions{justify-content:center;gap:10px;flex-wrap:wrap}.loan-action-btn{min-width:126px;min-height:34px;border-color:#5b45f538;background:#fff;color:#334155;font-weight:900}.loan-action-btn svg{width:16px;height:16px;color:var(--primary)}.loan-archive-btn{border-color:#ef444442;color:var(--danger)}.loan-archive-btn svg{color:var(--danger)}.loans-empty{color:var(--text-dim);padding:28px 22px;background:var(--bg-surface);border:1px dashed var(--border);border-radius:8px;font-weight:700}@media(max-width:1180px){.loans-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 0}.loan-summary-item:nth-child(2){border-right:0}.loan-summary-item:nth-child(3){padding-left:10px}}@media(max-width:980px){.loan-card-grid{grid-template-columns:1fr}}@media(max-width:640px){.loans-overview{grid-template-columns:1fr;padding:12px}.loan-summary-item,.loan-summary-item:first-child,.loan-summary-item:nth-child(3),.loan-summary-item:last-child{padding:12px 4px;border-right:0;border-bottom:1px solid var(--border)}.loan-summary-item:last-child{border-bottom:0}.loan-card{padding:16px}.loan-card-top{align-items:flex-start;margin-bottom:16px}.loan-title-wrap{gap:12px}.loan-type-icon,.loan-summary-icon{width:38px;height:38px}.loan-type-pill{font-size:.68rem;padding-inline:9px}.loan-action-btn{flex:1;min-width:118px}}@media(max-width:420px){.loan-card{padding:16px}.loan-card-top{flex-direction:column}.loan-type-pill{align-self:flex-start}.loan-progress-label{align-items:flex-start;flex-direction:column;gap:2px}.loan-progress-label strong{white-space:normal}}@media(max-width:360px){.loan-facts{grid-template-columns:1fr}.loan-fact-divider{display:none}.loan-statement-btn{width:100%}.loan-due-row{flex-wrap:wrap}.loan-schedule-btn{width:100%;justify-content:space-between;margin-left:0}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-weight:600;font-size:.85rem;border:1px solid var(--border);background:var(--bg-hover);color:var(--text);transition:background .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1);cursor:pointer}.btn:hover{background:var(--bg-hover);border-color:var(--border-hover)}.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed;pointer-events:none}.btn:active{transform:scale(.97)}.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn-primary:hover{background:var(--primary-hover);border-color:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn-danger:hover{background:#a33c3e;border-color:#a33c3e}.btn-sm{padding:5px 10px;font-size:.78rem;border-radius:4px}.btn-ghost{background:none;border-color:transparent;color:var(--text-muted)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text);text-decoration:underline;text-underline-offset:2px}.spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}@media(prefers-reduced-motion:reduce){.spinner{animation-duration:1.5s}}@keyframes spin{to{transform:rotate(360deg)}}.form-field{margin-bottom:16px}.form-label{display:block;font-size:.8rem;font-weight:600;color:var(--text-muted);margin-bottom:4px}.form-field:has(input[required]) .form-label:after,.form-field:has(select[required]) .form-label:after,.form-field:has(textarea[required]) .form-label:after{content:" *";color:var(--danger)}.form-input{width:100%;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);color:var(--text);font-size:.9rem;outline:none;transition:border-color .15s cubic-bezier(.16,1,.3,1),box-shadow .15s cubic-bezier(.16,1,.3,1)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--border-focus)}.form-input:disabled{opacity:.4;cursor:not-allowed}.input-error{border-color:var(--danger)}.input-error:focus{box-shadow:0 0 0 2px #bc474940}.form-error{display:block;font-size:.78rem;color:var(--danger);margin-top:4px}.form-textarea{min-height:80px;resize:vertical}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center;padding:20px}@media(prefers-reduced-motion:no-preference){.modal-overlay{animation:fadeIn .15s ease-out}.overlay-closing{animation:fadeOut .15s ease-in forwards}}.modal-overlay-drawer{justify-content:flex-end;padding:0}.modal-drawer{width:min(440px,92vw);background:var(--bg-surface-solid);border-left:1px solid var(--border);height:100%;display:flex;flex-direction:column}@media(prefers-reduced-motion:no-preference){.modal-drawer{animation:drawerIn .25s cubic-bezier(.16,1,.3,1) forwards}}.modal{background:var(--bg-surface-solid);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:500px;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000004d}@media(prefers-reduced-motion:no-preference){.modal{animation:modalIn .2s cubic-bezier(.16,1,.3,1) forwards}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes drawerIn{0%{transform:translate(100%)}to{transform:translate(0)}}@media(prefers-reduced-motion:no-preference){.overlay-closing{animation:fadeOut .12s ease-in forwards}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.modal-title{font-size:1.05rem;font-weight:700;color:var(--text)}.modal-close{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-muted);width:26px;height:26px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:border-color .15s cubic-bezier(.16,1,.3,1),color .15s cubic-bezier(.16,1,.3,1),background .15s cubic-bezier(.16,1,.3,1)}.modal-close:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.modal-close:hover{color:var(--text);border-color:var(--border-hover)}.modal-body{padding:20px;overflow-y:auto;flex:1}.modal-footer{padding:14px 20px;border-top:1px solid var(--border);background:var(--bg)}.badge{display:inline-block;padding:3px 8px;border-radius:3px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.badge-success{background:#7ab0551f;color:var(--success);border:1px solid rgba(122,176,85,.2)}.badge-warning{background:#f973161f;color:var(--warning);border:1px solid rgba(249,115,22,.2)}.badge-danger{background:#ef44441f;color:var(--danger);border:1px solid rgba(239,68,68,.2)}.badge-info{background:#3b82f614;color:var(--accent);border:1px solid rgba(59,130,246,.18)}.badge-neutral{background:var(--bg-hover);color:var(--text-muted);border:1px solid var(--border)}.badge{transition:background .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1)}.toast-container{position:fixed;top:16px;right:16px;z-index:300;display:flex;flex-direction:column;gap:8px}.toast{padding:10px 16px;border-radius:var(--radius);font-size:.85rem;font-weight:600;cursor:pointer;max-width:360px;box-shadow:var(--shadow);border:1px solid var(--border);display:flex;align-items:center;gap:8px}@media(prefers-reduced-motion:no-preference){.toast{animation:slideIn .25s cubic-bezier(.16,1,.3,1) forwards}.toast-leaving{animation:slideOut .2s cubic-bezier(.4,0,1,1) forwards}}.toast-success{background:var(--bg-surface-solid);color:var(--success);border-color:#7ab05540}.toast-error{background:var(--bg-surface-solid);color:var(--danger);border-color:#bc474940}.toast-info{background:var(--bg-surface-solid);color:var(--text)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:20px}.tab{padding:8px 16px;background:none;border:none;color:var(--text-muted);font-size:.85rem;font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s cubic-bezier(.16,1,.3,1),border-color .15s cubic-bezier(.16,1,.3,1);cursor:pointer}.tab:hover{color:var(--text)}.tab:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius-sm)}.tab-active{color:var(--primary);border-bottom-color:var(--primary)}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:14px}.settings-content{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--surface-pad)}.settings-btn-row{display:flex;flex-wrap:wrap;gap:10px}.settings-card-nested{margin-bottom:16px}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;flex-wrap:wrap;gap:10px}.progress-bar{height:6px;background:var(--bg-hover);border-radius:3px;overflow:hidden}.progress-fill{height:100%;border-radius:3px;background:var(--primary);transition:width .3s cubic-bezier(.16,1,.3,1)}@media(max-width:992px){.dashboard-grid{grid-template-columns:1fr;gap:16px}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.sidebar{transform:translate(-100%);width:min(260px,82vw)!important;box-shadow:16px 0 40px #0000004d}.sidebar.open{transform:translate(0)}.sidebar.collapsed~.main-area{margin-left:0}.main-area{margin-left:0}.mobile-menu-btn{display:flex}.content{padding:72px 18px 20px}.dashboard-topbar{flex-direction:column;gap:16px}.dashboard-actions{width:100%;justify-content:stretch}.dashboard-date-label,.add-transaction-btn{flex:1}.spending-overview{grid-template-columns:1fr}.spending-donut{width:min(220px,72vw)}.bill-row{grid-template-columns:42px 1fr auto;gap:10px}.bill-date,.bill-account{grid-column:2 / -1}.bill-icon{width:20px;height:20px;font-size:.62rem}.page-header{flex-direction:column;align-items:stretch;gap:10px}.page-header-actions{width:100%;justify-content:flex-start;flex-wrap:wrap;gap:6px}.page-header-actions .btn{flex:1;text-align:center;justify-content:center}.card{padding:14px}.filter-trigger-btn{display:inline-flex}.data-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.data-table,.data-table tbody,.data-table tr,.data-table td{display:block;width:100%}.data-table tr{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px}.card .data-table tr{background:transparent;border:none;border-bottom:1px solid var(--border);border-radius:0;padding:10px 0;margin-bottom:0}.card .data-table tr:last-child{border-bottom:none;padding-bottom:0}.card .data-table tr:first-child{padding-top:0}.data-table td{padding:5px 0;border:none;text-align:left!important;display:flex;justify-content:space-between;align-items:center;gap:10px}.data-table td:before{content:attr(data-label);font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600;flex-shrink:0}.data-table td:not([data-label]):before,.data-table td[data-label=""]:before{display:none}.data-table tr:hover td{background:none}.data-table td:not([data-label]),.data-table td[data-label=""]{justify-content:flex-end;gap:6px;padding-top:10px;border-top:1px solid var(--border);margin-top:6px}.settings-btn-row{flex-direction:column}.settings-btn-row .btn{width:100%;justify-content:center}.settings-content{padding:14px;border-left:none;border-right:none;border-radius:0;margin:0 -14px}.settings-content .card{border:none;padding:0;background:transparent}.form-row{grid-template-columns:1fr}.form-input,input,select,textarea{font-size:1rem}.filters-inline{display:none!important}.tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;gap:0}.tab{white-space:nowrap;flex-shrink:0;padding:8px 12px;font-size:.8rem}.settings-content{margin-top:-1px}.report-toolbar-controls{flex-direction:column;align-items:stretch}.report-toolbar-date{flex:1;flex-wrap:wrap;width:100%}.report-toolbar-date>div{display:flex;flex-wrap:wrap;align-items:center;gap:6px;width:100%}.report-toolbar-date input[type=month]{flex:1;min-width:100px;width:auto!important}}@media(max-width:768px){.btn,.tab,.sidebar-nav a,.mobile-menu-btn,.modal-close{min-height:44px;min-width:44px}.btn-sm{min-height:36px;min-width:36px}.btn-full{width:100%;justify-content:center}}.filter-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:250;justify-content:flex-end}@media(max-width:640px){.filter-overlay{display:flex}.modal-overlay-auto-drawer{justify-content:flex-end;padding:0;align-items:stretch}.modal-overlay-auto-drawer .modal{width:min(400px,92vw);max-width:92vw;max-height:100%;border-radius:0;border-left:1px solid var(--border)}@media(prefers-reduced-motion:no-preference){.modal-overlay-auto-drawer .modal{animation:drawerIn .25s cubic-bezier(.16,1,.3,1) forwards}}}.filter-drawer{width:min(300px,85vw);background:var(--bg-surface-solid);border-left:1px solid var(--border);height:100%;display:flex;flex-direction:column}@media(prefers-reduced-motion:no-preference){.filter-drawer{animation:drawerIn .25s cubic-bezier(.16,1,.3,1) forwards}}.filter-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.filter-drawer-header h3{font-size:1rem;font-weight:700}.filter-drawer-body{padding:18px;flex:1;overflow-y:auto}.filter-drawer-footer{display:flex;gap:8px;justify-content:flex-end;padding:10px 18px;border-top:1px solid var(--border)}@media(max-width:480px){:root{--page-title-size: 1.1rem;--page-subtitle-size: .8rem;--surface-pad: 14px}.modal-overlay:not(.modal-overlay-auto-drawer):not(.modal-overlay-drawer) .modal{max-width:calc(100vw - 24px);max-height:90vh}.modal-overlay:not(.modal-overlay-auto-drawer):not(.modal-overlay-drawer) .modal-body{padding:14px}}@media(max-width:1024px)and (min-width:481px){.card-grid{grid-template-columns:1fr 1fr}}@media(max-width:480px){.card-grid,.dashboard-stats{grid-template-columns:1fr}.quick-actions{grid-template-columns:1fr 1fr;gap:10px}.spending-row{grid-template-columns:12px minmax(90px,1fr) auto}.spending-row em{display:none}.bill-row{grid-template-columns:30px minmax(80px,1fr);gap:6px 10px}.bill-amount{grid-column:2}.bill-date,.bill-account{grid-column:2;font-size:.72rem}}@media(max-width:360px){:root{--page-title-size: 1.05rem;--page-subtitle-size: .78rem;--surface-pad: 12px}.content{padding:66px 10px 10px}.card,.stat-card,.dashboard-stats .stat-card,.dash-stat{padding:var(--surface-pad)}.stat-card .value,.dashboard-stats .stat-value,.dash-stat-value{font-size:1rem}.spending-donut{width:min(140px,64vw)}.spending-donut-center strong{font-size:.82rem}.spending-donut-center span{font-size:.65rem}.quick-action{min-height:60px;padding:6px 4px}.quick-action strong{font-size:.68rem}.quick-action small{font-size:.6rem}.data-table tr{padding:10px}.filter-drawer{width:100%}.btn{padding:6px 8px;font-size:.78rem}.btn-sm{padding:4px 6px;font-size:.72rem}.toast-container{top:8px;right:8px;left:8px}}@supports (padding: env(safe-area-inset-top)){.sidebar{padding-top:env(safe-area-inset-top)}}@media(max-width:768px){.mobile-menu-btn{top:calc(12px + env(safe-area-inset-top));left:calc(12px + env(safe-area-inset-left))}}@media(min-width:1440px){.content{max-width:1360px;margin-left:auto;margin-right:auto;width:100%}}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:99;opacity:0;pointer-events:none;transition:opacity .2s cubic-bezier(.16,1,.3,1)}@media(max-width:768px){.sidebar-overlay.visible{opacity:1;pointer-events:auto}}.reports-header{margin-bottom:24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;width:100%}.reports-header h2{font-size:var(--page-title-size);font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--text);margin:0}.reports-header p{color:var(--text-muted);font-size:var(--page-subtitle-size);font-weight:500;margin-top:4px}.reports-header-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.report-action-btn.btn{background:#fff;color:#142033;border-color:#53627e2e;box-shadow:0 8px 20px #1e293b0d}.report-action-btn.btn:hover{background:#f8fbff;color:var(--primary);text-decoration:none}.report-toolbar{margin-bottom:16px}.report-toolbar .tabs{gap:24px;overflow-x:auto}.report-toolbar .tab{padding:10px 0 12px;font-weight:800;color:#4d5d78}.report-toolbar .tab-active{color:#3264ff;border-bottom-color:#3264ff}.report-toolbar-controls{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:16px}.report-toolbar-date{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.report-select,.report-period-pill,.report-chart-select{min-height:38px;width:auto;padding:0 12px;background:#fff;border:1px solid rgba(83,98,126,.16);border-radius:8px;color:#142033;font-size:.84rem;font-weight:800;box-shadow:0 8px 18px #1e293b09}.report-period-pill{display:inline-flex;align-items:center;gap:6px}.report-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}.report-metric-card,.report-chart-card,.report-table-card,.report-dues-card{background:#fff;border:1px solid rgba(83,98,126,.14);border-radius:8px;box-shadow:0 16px 38px #1e293b11}.report-metric-card{min-height:124px;display:flex;align-items:center;gap:16px;padding:20px 18px}.report-icon-bubble{width:48px;height:48px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.report-icon-bubble svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.report-icon-bubble.red{background:#ffe9e9;color:#ff4343}.report-icon-bubble.blue{background:#eaf2ff;color:#3264ff}.report-icon-bubble.purple{background:#efe8ff;color:#6d45ff}.report-icon-bubble.green{background:#dcfce7;color:#16a34a}.report-icon-bubble.orange{background:#fff0dd;color:#f97316}.report-metric-label,.report-due-label{color:#61708d;font-size:.72rem;font-weight:800;line-height:1.2;text-transform:uppercase}.report-metric-value{margin-top:8px;color:#0f172a;font-size:clamp(1.2rem,1.5vw,1.62rem);font-weight:900;line-height:1.15;word-break:break-word}.report-metric-value.red{color:#ff4343}.report-metric-value.blue{color:#3264ff}.report-metric-value.purple{color:#0f172a}.report-metric-sub{margin-top:12px;color:#172238;font-size:.72rem;font-weight:700}.report-chart-card,.report-table-card,.report-dues-card{padding:20px;margin-top:16px}.report-card-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.report-card-header h4,.report-dues-card h4{color:#101828;font-size:1.04rem;font-weight:800;line-height:1.2}.report-chart-tools{display:flex;align-items:center;justify-content:flex-end;gap:16px;flex-wrap:wrap;color:#53627e;font-size:.78rem;font-weight:700}.report-chart-tools span{display:inline-flex;align-items:center;gap:8px}.legend-dot{width:9px;height:9px;border-radius:3px;display:inline-block}.legend-dot.income{background:#3264ff}.legend-dot.expense{background:#ff4b4b}.report-chart-select{min-height:34px;font-size:.78rem}.report-chart-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px;padding:16px;border-radius:8px;background:#f8faff}.report-summary-chip{display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:center;min-width:0}.report-summary-chip span:not(.report-mini-icon){color:#52617c;font-size:.78rem;font-weight:700}.report-summary-chip strong{color:#0f172a;font-size:1.05rem;font-weight:900;line-height:1.15;grid-column:2;word-break:break-word}.report-mini-icon{width:42px;height:42px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;grid-row:span 2;font-weight:900}.report-summary-chip.blue .report-mini-icon{background:#eaf2ff;color:#3264ff}.report-summary-chip.red .report-mini-icon{background:#ffe9e5;color:#ff4343}.report-summary-chip.green .report-mini-icon{background:#dcfce7;color:#16a34a}.report-more-btn{width:34px;height:30px;border-radius:8px;color:#111827;font-size:1.1rem;font-weight:900}.report-more-btn:hover{background:#f4f7fb}.report-rate-cell{display:inline-grid;grid-template-columns:42px 76px;align-items:center;gap:10px;justify-content:end;width:128px}.report-rate-track{height:6px;overflow:hidden;border-radius:999px;background:#e5e9f0}.report-rate-track span{display:block;height:100%;border-radius:inherit;background:#16a34a}.report-dues-card h4{margin-bottom:16px}.report-dues-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.report-due-tile{display:flex;align-items:center;gap:14px;min-height:104px;padding:16px;border:1px solid rgba(83,98,126,.12);border-radius:8px;background:#fff}.report-due-body{min-width:0}.report-due-value{color:#111827;font-size:1.4rem;font-weight:900;line-height:1.1;margin-top:6px;word-break:break-word}.report-due-link{display:inline-block;color:#3264ff;font-size:.76rem;font-weight:800;margin-top:10px}@media(max-width:1180px){.report-stat-grid,.report-dues-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.reports-page{max-width:none}.reports-header{margin-top:44px}.report-chart-summary{grid-template-columns:1fr}.report-card-header{align-items:flex-start;flex-direction:column}.report-chart-tools{justify-content:flex-start;width:100%}}@media(max-width:640px){.reports-header,.report-toolbar-controls{align-items:stretch;flex-direction:column}.reports-header-actions,.report-toolbar-date,.report-period-pill{justify-content:flex-start}.report-action-btn.btn{flex:1 1 140px}.report-stat-grid,.report-dues-grid{grid-template-columns:1fr}.report-metric-card,.report-due-tile{min-height:0}.report-table-card .data-table tr{border:1px solid var(--border)}.report-rate-cell{width:100%}}.tabs{scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}@media(max-width:640px){.toast-container{top:10px;right:10px;left:10px}.toast{max-width:100%;font-size:.82rem;padding:8px 14px}}@media(max-width:480px){.recharts-responsive-container{height:200px!important}}@media(max-width:360px){.recharts-responsive-container{height:170px!important}}@media(max-width:480px){.modal-drawer,.modal-overlay-auto-drawer .modal{width:100%!important;max-width:100%!important}}.card:has(.data-table){overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:640px){.card:has(.data-table){overflow-x:visible}}@media(max-width:480px){.stat-card .value{font-size:1.3rem}}.data-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}@media(max-width:640px){.data-table-wrapper{overflow-x:visible}}@media(max-width:480px){.card-grid .stat-card{gap:6px}}@media(max-width:640px){.card-grid{gap:12px;margin-bottom:12px}}.keypad-btn:hover{background:var(--bg-hover);border-color:var(--border-hover)}.keypad-btn:active{background:var(--bg-active);transform:scale(.96)}.keypad-btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media(max-width:1180px){.transaction-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-filter-bar{grid-template-columns:minmax(260px,1fr) repeat(2,minmax(160px,.55fr))}.investment-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.investment-filter-bar{grid-template-columns:minmax(260px,1fr) repeat(2,minmax(160px,.55fr))}}@media(max-width:768px){.transactions-page{gap:14px}.transaction-stats{grid-template-columns:1fr;gap:12px}.transaction-stat-card{min-height:96px;padding:16px}.transaction-filter-bar{grid-template-columns:1fr;gap:10px}.transaction-date-filters{grid-template-columns:1fr}.transactions-table-card{padding:0;overflow:visible;background:transparent;border:0;box-shadow:none}.transactions-table-card .data-table tr{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.transactions-table-card .data-table td{padding:7px 0;border:0}.transactions-table-card .data-table tr:last-child{border-bottom:1px solid var(--border)}.transaction-direction{width:26px;height:26px;margin-right:8px}.transaction-actions{justify-content:flex-end!important;border-top:1px solid var(--border)!important;margin-top:6px;padding-top:10px!important}.transaction-table-footer{grid-template-columns:1fr;justify-items:stretch;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);margin-top:10px}.transaction-pagination{justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.transaction-page-size{justify-self:start}.investments-page{gap:14px}.investment-stats{grid-template-columns:1fr;gap:12px}.investment-stat-card{min-height:96px;padding:16px}.investment-filter-bar{grid-template-columns:1fr;gap:10px}.investments-table-card{padding:0;overflow:visible;background:transparent;border:0;box-shadow:none}.investments-table-card .data-table tr{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:12px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.investments-table-card .data-table td{padding:7px 0;border:0}.investments-table-card .data-table tr:last-child{border-bottom:1px solid var(--border)}.investment-name-cell{min-width:0;width:100%;justify-content:flex-end;text-align:right}.investment-gain-wrap{gap:12px;flex-wrap:wrap}.investment-actions-cell{justify-content:flex-end!important;border-top:1px solid var(--border)!important;margin-top:6px;padding-top:10px!important}.investment-actions{flex-wrap:wrap}.investment-table-footer{grid-template-columns:1fr;justify-items:stretch;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);margin-top:10px}.investment-pagination{justify-content:flex-start;overflow-x:auto;padding-bottom:2px}.investment-rows-control{justify-self:start}}.investments-table-card.card:has(.data-table){overflow-x:hidden}.investments-table-card .data-table,.investments-table-card .data-table th,.investments-table-card .data-table td{max-width:100%}@media(max-width:768px){.investments-table-card.card:has(.data-table){overflow-x:visible}.investment-actions-cell{text-align:right!important}}@media print{.sidebar,.mobile-menu-btn,.report-toolbar,.toast-container,.filter-overlay,.filter-drawer,.modal-overlay,.sidebar-overlay{display:none!important}.main-area{margin-left:0!important}.content{padding:0!important}.card{break-inside:avoid;border:1px solid #ccc!important}body{background:#fff!important;color:#000!important}.data-table th{color:#666!important}.data-table td{color:#333!important}}.forecast-container{display:flex;flex-direction:column;gap:20px;animation:content-enter .4s cubic-bezier(.16,1,.3,1)}.forecast-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:24px}.forecast-header-main{display:flex;align-items:center;gap:14px}.forecast-header-icon{width:42px;height:42px;border-radius:8px;background:#5b45f514;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #5b45f50a}.forecast-header-main h2{font-size:var(--page-title-size);font-weight:800;line-height:1.15;letter-spacing:-.02em;color:var(--text);margin:0}.forecast-header-main p{color:var(--text-muted);font-size:var(--page-subtitle-size);font-weight:500;margin-top:4px}.forecast-learn-more-btn{border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);padding:6px 14px;border-radius:var(--radius);display:inline-flex;align-items:center;font-size:.82rem;font-weight:600;transition:all .2s cubic-bezier(.16,1,.3,1)}.forecast-learn-more-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--bg-hover);box-shadow:var(--shadow-sm)}.forecast-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:4px}@media(max-width:1024px){.forecast-cards-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media(max-width:768px){.forecast-cards-grid{grid-template-columns:1fr;gap:14px}}.forecast-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--surface-pad);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;transition:transform .2s ease,box-shadow .2s ease}.forecast-card:hover{transform:translateY(-2px);box-shadow:0 12px 30px #1e293b0f}.forecast-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.forecast-card-header h3{font-size:var(--card-title-size);font-weight:800;letter-spacing:-.01em;color:var(--text)}.forecast-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:20px;font-size:.68rem;font-weight:700;letter-spacing:.05em;border:1px solid transparent}.forecast-badge.success{background:#05966914;color:#047857;border-color:#0596691a}.forecast-badge.warning{background:#f9731614;color:#c2410c;border-color:#f973161a}.forecast-badge.danger{background:#ef444414;color:#b91c1c;border-color:#ef44441a}.forecast-badge-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.forecast-badge.success .forecast-badge-dot{background:#059669}.forecast-badge.warning .forecast-badge-dot{background:#f97316}.forecast-badge.danger .forecast-badge-dot{background:#ef4444}.forecast-illustration-wrapper{margin:4px 0 14px;height:90px;display:flex;align-items:center;justify-content:center;overflow:hidden}.forecast-card-metric-group{display:flex;flex-direction:column;gap:3px;margin-bottom:14px}.forecast-metric-label{font-size:.72rem;font-weight:700;color:var(--text-dim);letter-spacing:.06em}.forecast-metric-value.opening{font-size:var(--metric-size);font-weight:700;color:var(--text);letter-spacing:-.01em}.forecast-cashflow-row{display:flex;gap:12px;margin-bottom:14px;border-bottom:1px solid rgba(79,93,124,.08);padding-bottom:14px}.forecast-cashflow-item{display:flex;align-items:center;gap:8px;flex:1}.forecast-arrow-circle{width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.forecast-arrow-circle.income{background:#05966914;color:#059669}.forecast-arrow-circle.expense{background:#ef444414;color:#ef4444}.forecast-cashflow-details{display:flex;flex-direction:column;gap:1px}.forecast-cashflow-label{font-size:.72rem;color:var(--text-dim)}.forecast-cashflow-amount{font-size:.88rem;font-weight:600}.forecast-cashflow-amount.income{color:#059669}.forecast-cashflow-amount.expense{color:#e11d48}.forecast-projected-section{display:flex;flex-direction:column;gap:3px;margin-top:2px}.forecast-metric-value.projected{font-size:var(--metric-size);font-weight:700;letter-spacing:-.01em}.forecast-metric-value.projected.success{color:#059669}.forecast-metric-value.projected.warning{color:#ea580c}.forecast-metric-value.projected.danger{color:#dc2626}.forecast-safe-to-spend{display:flex;align-items:center;gap:4px;font-size:.8rem;color:var(--text-muted);font-weight:500;margin-top:1px}.forecast-info-icon{color:var(--text-dim);cursor:pointer;transition:color .15s;flex-shrink:0}.forecast-info-icon:hover{color:var(--primary)}.forecast-progress-container{height:6px;background:#f1f5f9;border-radius:4px;overflow:hidden;margin-top:14px}.forecast-progress-bar{height:100%;border-radius:4px;transition:width .4s ease}.forecast-progress-bar.success{background:var(--primary)}.forecast-progress-bar.warning{background:var(--warning)}.forecast-progress-bar.danger{background:var(--danger)}.forecast-how-it-works{background:#6366f105;border:1px solid rgba(99,102,241,.08);border-radius:var(--radius);padding:var(--surface-pad);display:flex;flex-direction:column;gap:20px;margin-top:10px}.forecast-how-header{display:flex;align-items:center;gap:10px}.forecast-how-header h3{font-size:var(--card-title-size);font-weight:800;color:var(--text)}.forecast-how-bulb-icon{width:32px;height:32px;border-radius:50%;background:#6366f1;color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 2px 8px #6366f133}.forecast-how-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;border-bottom:1px solid rgba(99,102,241,.06);padding-bottom:20px}@media(max-width:900px){.forecast-how-columns{grid-template-columns:repeat(2,1fr);gap:16px}}@media(max-width:550px){.forecast-how-columns{grid-template-columns:1fr;gap:14px}}.forecast-how-col{display:flex;gap:12px}.forecast-how-icon-box{width:32px;height:32px;border-radius:6px;background:#6366f10f;color:var(--primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.forecast-how-text{display:flex;flex-direction:column;gap:2px}.forecast-how-text h4{font-size:.88rem;font-weight:700;color:var(--text)}.forecast-how-text p{font-size:.78rem;color:var(--text-muted);line-height:1.4}.forecast-how-alert{display:flex;align-items:center;gap:10px;background:#6366f108;border:1px solid rgba(99,102,241,.08);border-radius:8px;padding:10px 14px;font-size:.82rem;color:var(--text-muted);line-height:1.4}.reminders-page{animation:fadeIn .4s cubic-bezier(.16,1,.3,1)}.reminders-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.reminders-summary-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-sm);transition:transform .2s ease,box-shadow .2s ease}.reminders-summary-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.reminders-summary-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.reminders-summary-icon svg{width:22px;height:22px}.reminders-summary-icon.reminders-summary-purple{background:#efe8ff;color:#5b45f5}.reminders-summary-icon.reminders-summary-orange{background:#fff0dd;color:#f97316}.reminders-summary-icon.reminders-summary-blue{background:#eaf2ff;color:#3264ff}.reminders-summary-icon.reminders-summary-green{background:#dcfce7;color:#16a34a}.reminders-summary-card span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}.reminders-summary-card span:last-child span{font-size:.72rem;font-weight:700;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.reminders-summary-card span:last-child strong{font-size:1.6rem;font-weight:900;color:var(--text);line-height:1.15}.reminders-summary-card span:last-child small{font-size:.76rem;color:var(--text-muted);font-weight:600}.reminders-toolbar{display:flex;align-items:center;justify-content:space-between;margin-top:32px;margin-bottom:18px;flex-wrap:wrap;gap:16px}.reminders-tabs{display:flex;gap:4px;background:#0f172a05;padding:4px;border-radius:99px;border:1px solid var(--border)}.reminders-tabs button{background:transparent;border:none;padding:8px 18px;font-size:.84rem;font-weight:800;color:var(--text-muted);border-radius:99px;transition:all .2s ease;cursor:pointer}.reminders-tabs button.active{background:var(--bg-surface);color:var(--primary);box-shadow:0 4px 10px #0f172a0d}.reminders-tabs button:hover:not(.active){color:var(--text);background:#0f172a03}.reminders-filter-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.reminder-select{display:inline-flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border);border-radius:99px;padding:0 14px;height:38px;color:var(--text-muted);font-weight:700;font-size:.82rem;cursor:pointer;transition:all .2s ease;position:relative;box-shadow:0 2px 4px #00000005}.reminder-select:hover{border-color:var(--border-hover);color:var(--text)}.reminder-select svg:first-of-type{width:14px;height:14px;margin-right:8px;color:var(--text-dim)}.reminder-select svg:last-of-type{width:12px;height:12px;margin-left:8px;color:var(--text-dim);pointer-events:none}.reminder-select select{border:none;background:transparent;color:inherit;font-weight:inherit;font-size:inherit;outline:none;cursor:pointer;padding-right:12px;appearance:none;-webkit-appearance:none;-moz-appearance:none}.reminders-table-card{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow-x:auto;margin-bottom:24px}.reminders-table{width:100%;border-collapse:collapse;text-align:left}.reminders-table th{padding:14px 20px;font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--text-dim);letter-spacing:.06em;border-bottom:1px solid var(--border);background:#0f172a03}.reminders-table td{padding:16px 20px;border-bottom:1px solid var(--border);vertical-align:middle;color:var(--text);font-size:.88rem;font-weight:600}.reminders-table tr:last-child td{border-bottom:none}.reminders-table tbody tr{transition:background-color .15s ease}.reminders-table tbody tr:hover{background-color:#5b45f503}.reminder-title-cell{display:flex;align-items:center;gap:12px}.reminder-row-icon{width:36px;height:36px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.reminder-row-icon svg{width:18px;height:18px}.reminder-row-purple{background:#efe8ff;color:#5b45f5}.reminder-row-orange{background:#fff0dd;color:#f97316}.reminder-row-yellow{background:#fffbeb;color:#ca8a04}.reminder-row-red{background:#ffe9e9;color:#ef4444}.reminder-row-green{background:#dcfce7;color:#16a34a}.reminder-row-blue{background:#eaf2ff;color:#3264ff}.reminder-title-cell span:last-child{display:flex;flex-direction:column;gap:1px}.reminder-title-cell strong{font-size:.9rem;font-weight:800;color:var(--text)}.reminder-title-cell small{font-size:.78rem;color:var(--text-dim);font-weight:500}.reminder-type{display:inline-block;padding:4px 8px;font-size:.72rem;font-weight:800;border-radius:4px;letter-spacing:.02em}.reminder-type-purple{color:#6366f1;background:#f5f3ff;border:1px solid rgba(99,102,241,.15)}.reminder-type-orange{color:#f97316;background:#fff7ed;border:1px solid rgba(249,115,22,.15)}.reminder-type-yellow{color:#ca8a04;background:#fef9c3;border:1px solid rgba(202,138,4,.15)}.reminder-type-red{color:#ef4444;background:#fef2f2;border:1px solid rgba(239,68,68,.15)}.reminder-type-green{color:#10b981;background:#ecfdf5;border:1px solid rgba(16,185,129,.15)}.reminder-type-blue{color:#3b82f6;background:#eff6ff;border:1px solid rgba(59,130,246,.15)}.reminder-date-cell{display:flex;align-items:flex-start;gap:8px}.reminder-date-cell svg{width:15px;height:15px;color:var(--text-dim);margin-top:3px;flex-shrink:0}.reminder-date-cell span:last-child{display:flex;flex-direction:column;gap:2px}.reminder-date-cell strong{font-size:.88rem;font-weight:700;color:var(--text)}.reminder-relative{font-size:.76rem;font-weight:600}.reminder-relative-upcoming{color:var(--text-dim)}.reminder-relative-due{color:var(--warning)}.reminder-relative-overdue{color:var(--danger);font-weight:700}.reminder-relative-done{color:var(--success)}.reminder-relative-snoozed{color:var(--text-dim)}.reminder-status{display:inline-block;padding:4px 10px;font-size:.72rem;font-weight:800;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.reminder-status-upcoming{color:#3b82f6;background:#eff6ff;border:1px solid rgba(59,130,246,.15)}.reminder-status-due{color:#f97316;background:#fff7ed;border:1px solid rgba(249,115,22,.15)}.reminder-status-overdue{color:#ef4444;background:#fef2f2;border:1px solid rgba(239,68,68,.15)}.reminder-status-done{color:#10b981;background:#ecfdf5;border:1px solid rgba(16,185,129,.15)}.reminder-status-snoozed{color:var(--text-muted);background:#0f172a0d;border:1px solid var(--border)}.reminder-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.reminder-actions button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;border:1px solid var(--border);background:var(--bg-surface);color:var(--text-muted);transition:all .2s ease;cursor:pointer}.reminder-actions button:hover{background:var(--bg-hover);color:var(--text);border-color:var(--border-hover)}.reminder-actions button.is-danger{color:var(--danger)}.reminder-actions button.is-danger:hover{background:#fef2f2;border-color:#ef444433;color:var(--danger)}.reminder-actions svg{width:15px;height:15px;stroke-width:2.2}.reminder-completed-section{margin-top:32px}.reminder-completed-section h3{font-size:1.1rem;font-weight:800;color:var(--text);margin-bottom:14px}.reminders-table.is-compact-header thead{display:none}.reminders-tip{display:flex;align-items:center;justify-content:space-between;margin-top:40px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#0f172a03;color:var(--text-muted);font-size:.84rem;font-weight:500;flex-wrap:wrap;gap:12px}.reminders-tip span{display:inline-flex;align-items:center}.reminders-tip svg:first-of-type{width:18px;height:18px;color:#eab308;margin-right:10px;flex-shrink:0}.reminders-tip button{display:inline-flex;align-items:center;color:var(--primary);font-weight:700;font-size:.84rem;gap:4px;transition:all .2s ease;cursor:pointer;border:none;background:transparent;padding:0}.reminders-tip button:hover{color:var(--primary-hover);transform:translate(2px)}.reminders-tip button svg{width:14px;height:14px;color:inherit}@media(max-width:1100px){.reminders-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.reminders-toolbar{flex-direction:column;align-items:flex-start;gap:14px;margin-top:20px}.reminders-filter-row{width:100%;justify-content:flex-start}.reminder-select{flex:1 1 auto;min-width:130px;justify-content:space-between}.reminder-select select{width:100%}.reminders-table-card{padding:0;overflow:visible;background:transparent;border:0;box-shadow:none}.reminders-table thead{display:none!important}.reminders-table tbody{display:flex;flex-direction:column;gap:12px}.reminders-table tr{display:flex;flex-direction:column;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-sm);gap:12px}.reminders-table td{padding:0;border:0;display:flex;justify-content:space-between;align-items:center;width:100%}.reminders-table td:before{font-size:.72rem;font-weight:800;text-transform:uppercase;color:var(--text-dim);letter-spacing:.05em}.reminders-table td:nth-child(1):before{content:"Title"}.reminders-table td:nth-child(2):before{content:"Type"}.reminders-table td:nth-child(3):before{content:"Due Date"}.reminders-table td:nth-child(4):before{content:"Frequency"}.reminders-table td:nth-child(5):before{content:"Status"}.reminders-table td:nth-child(6):before{content:"Actions"}.reminder-title-cell,.reminder-date-cell{width:auto;justify-content:flex-end;text-align:right}.reminder-actions{width:auto;justify-content:flex-end}.reminders-tip{flex-direction:column;align-items:flex-start;gap:10px}}@media(max-width:520px){.reminders-summary{grid-template-columns:1fr}}@media(max-width:768px){:root{--page-pad-x: 12px;--page-pad-y: 16px;--surface-pad: 12px;--surface-pad-lg: 14px;--card-title-size: .94rem}.content{padding:calc(58px + env(safe-area-inset-top)) 12px 16px}.page-header,.reports-header,.forecast-header,.dashboard-topbar{margin-bottom:14px;gap:10px}.page-header h2,.reports-header h2,.forecast-header-main h2,.greeting-text{line-height:1.2}.page-header p,.reports-header p,.forecast-header-main p,.greeting-date{margin-top:2px}.page-header-actions,.reports-header-actions,.dashboard-actions{gap:8px}.page-header-actions .btn,.dashboard-actions .btn,.reports-header-actions .btn,.forecast-learn-more-btn{min-height:38px;padding-inline:12px}.card,.credit-card-panel,.goal-card,.loan-card,.forecast-card,.report-chart-card,.report-table-card,.report-dues-card{padding:12px}.dashboard-grid,.forecast-container,.transactions-page,.investments-page{gap:12px}.dashboard-grid{margin-bottom:12px}.dashboard-stats,.transaction-stats,.investment-stats,.report-stat-grid,.report-dues-grid,.recurring-summary,.reminders-summary{gap:10px}.dash-stat,.transaction-stat-card,.investment-stat-card,.report-metric-card,.reminders-summary-card,.recurring-summary-card,.borrow-summary-card,.loan-summary-item,.credit-summary-item,.goals-summary-item{min-height:auto}.dash-stat{padding:12px}.dash-stat-icon{top:12px;right:12px;width:34px;height:34px}.dash-stat-body{padding-right:40px}.transaction-stat-card,.investment-stat-card,.report-metric-card,.reminders-summary-card{padding:12px;gap:10px}.transaction-stat-icon,.investment-stat-icon,.report-icon-bubble,.reminders-summary-icon{width:40px;height:40px;flex-basis:40px;font-size:1.3rem}.transaction-filter-bar,.investment-filter-bar,.recurring-toolbar,.goals-toolbar{gap:8px;margin-bottom:12px}.transaction-search,.transaction-filter-control,.transaction-date-filters input,.investment-search,.investment-filter-control,.recurring-search,.recurring-select-wrap,.recurring-filter-btn,.goals-search,.goals-sort,.goals-tabs{min-height:38px}.transaction-date-filters{gap:8px}.transaction-table-footer,.investment-table-footer,.recurring-table-footer{min-height:0;padding:10px 12px;gap:8px}.transactions-table-card .data-table tr,.investments-table-card .data-table tr,.data-table tr{padding:10px;margin-bottom:8px}.transactions-table-card .data-table td,.investments-table-card .data-table td,.data-table td{min-width:0;gap:8px}.data-table td>*:last-child,.transaction-category-pill,.investment-name-cell,.tx-category{min-width:0}.transaction-account,.transaction-category-pill,.investment-name-cell,.tx-category{overflow-wrap:anywhere}.modal-overlay{padding:10px}.modal{max-height:calc(100dvh - 20px)}.modal-header,.modal-body,.modal-footer{padding-inline:14px}.modal-header{padding-block:12px}.modal-body{padding-block:14px}.form-field{margin-bottom:12px}.form-row{gap:10px}.form-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.form-actions .btn{width:100%}}@media(max-width:640px){.dashboard-stats,.transaction-stats,.investment-stats,.report-stat-grid,.recurring-summary,.reminders-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.transaction-stat-card,.investment-stat-card,.report-metric-card,.reminders-summary-card,.recurring-summary-card{grid-template-columns:1fr;align-items:start}.transaction-stat-card,.investment-stat-card,.report-metric-card,.reminders-summary-card{display:grid}.transaction-stat-card strong,.investment-stat-card strong,.report-metric-value,.reminders-summary-card span:last-child strong,.recurring-summary-card strong{font-size:1rem}.dashboard-date-label,.add-transaction-btn,.goals-new-btn,.borrow-person-btn,.borrow-record-btn{flex:1 1 calc(50% - 4px);width:auto}.credit-summary,.goals-summary,.loans-overview,.borrow-summary{margin-bottom:12px}.credit-card-top,.goal-card-top{margin-bottom:14px}.goal-date-panel,.goal-actions,.goals-tip,.credit-date-panel,.credit-actions{margin-top:12px}.recurring-table-card{overflow:visible;background:transparent;border:0;box-shadow:none}.recurring-table{min-width:0}.recurring-table thead{display:none}.recurring-table,.recurring-table tbody,.recurring-table tr,.recurring-table td{display:block;width:100%}.recurring-table tr{padding:10px;margin-bottom:8px;background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:var(--shadow-sm)}.recurring-table td{min-height:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:0;text-align:right}.recurring-table td:before{color:var(--text-dim);content:attr(data-label);flex-shrink:0;font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.recurring-table td:nth-child(1):before{content:"Title"}.recurring-table td:nth-child(2):before{content:"Kind"}.recurring-table td:nth-child(3):before{content:"Frequency"}.recurring-table td:nth-child(4):before{content:"Amount"}.recurring-table td:nth-child(5):before{content:"Next Due"}.recurring-table td:nth-child(6):before{content:"Account"}.recurring-table td:nth-child(7):before{content:"Status"}.recurring-table td:nth-child(8):before{content:"Actions"}.recurring-title-cell,.recurring-date,.recurring-actions{justify-content:flex-end;text-align:right}.recurring-table-footer{background:#fff;border:1px solid rgba(79,93,124,.14);border-radius:8px;box-shadow:var(--shadow-sm)}.reminders-tabs,.goals-tabs{width:100%;overflow-x:auto}.reminders-tabs button{flex:1 0 auto;padding-inline:12px}}@media(max-width:480px){:root{--page-title-size: 1.05rem;--page-subtitle-size: .78rem;--metric-size: 1.08rem}.content{padding-inline:10px;padding-bottom:12px}.dashboard-stats,.transaction-stats,.investment-stats,.report-stat-grid,.recurring-summary,.reminders-summary,.quick-actions,.credit-summary,.goals-summary,.report-dues-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header-actions .btn,.dashboard-actions .btn,.reports-header-actions .btn,.dashboard-date-label{flex:1 1 calc(50% - 4px);min-width:0}.card-grid,.forecast-cards-grid,.goals-card-grid,.loan-card-grid,.credit-card-grid{gap:10px}.spending-overview{gap:10px;min-height:0}.spending-donut{width:min(150px,58vw)}.bill-row{grid-template-columns:24px minmax(0,1fr) auto}.bill-amount{grid-column:auto}.bill-date,.bill-account{grid-column:2 / -1}.loan-facts,.goal-money-row,.credit-limit-row,.credit-amount-row,.forecast-cashflow-row,.report-chart-summary{gap:8px}.forecast-cashflow-row{flex-direction:column}.report-chart-card,.report-table-card,.report-dues-card{margin-top:10px}}@media(max-width:380px){.dashboard-stats,.transaction-stats,.investment-stats,.report-stat-grid,.recurring-summary,.reminders-summary,.credit-summary,.goals-summary,.report-dues-grid{grid-template-columns:1fr}.quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header-actions .btn,.dashboard-actions .btn,.reports-header-actions .btn,.dashboard-date-label{flex-basis:100%}.form-actions{grid-template-columns:1fr}}
