.app-container{background:radial-gradient(ellipse at 14% 0%, #932a3014, transparent 44%), var(--surface-bg,#0b0f1a);flex-direction:column;height:100vh;display:flex;overflow:hidden}@supports (color:lab(0% 0 0)){.app-container{background:radial-gradient(ellipse at 14% 0%, lab(34.7484% 44.642 23.3089/.08), transparent 44%), var(--surface-bg,#0b0f1a)}}.app-header{z-index:12;border-top:none;border-left:none;border-right:none;border-radius:0 0 18px 18px;padding:12px 20px}.dashboard-shell{flex:1;min-height:0;padding:14px clamp(12px,2vw,22px)}.header-content{justify-content:space-between;align-items:center;max-width:1240px;margin:0 auto;display:flex}.dashboard-brand{align-items:center;margin:0;display:inline-flex}.dashboard-brand-logo{object-fit:contain;height:auto}.profile-dropdown{position:relative}.profile-trigger{cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;padding:4px;display:flex}.profile-avatar{background:var(--ember,var(--ember));color:#fbf8f5;color:lab(97.6712% .835896 1.65989);letter-spacing:.5px;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.78rem;font-weight:700;display:flex}.profile-avatar-lg{background:var(--ember,var(--ember));color:#fbf8f5;color:lab(97.6712% .835896 1.65989);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:.9rem;font-weight:700;display:flex}.profile-chevron{color:var(--text-secondary);transition:transform .2s}.profile-chevron.open{transform:rotate(180deg)}.profile-menu{z-index:100;border-radius:14px;width:260px;padding:14px;animation:.2s profile-drop;position:absolute;top:calc(100% + 8px);right:0}@keyframes profile-drop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.profile-info{align-items:center;gap:12px;padding-bottom:12px;display:flex}.profile-name{color:var(--text-primary);margin:0;font-size:.88rem;font-weight:700}.profile-email{color:var(--text-secondary);margin:2px 0 0;font-size:.76rem}.profile-divider{border:none;border-top:1px solid var(--border-color);margin:0 0 8px}.profile-menu-item{width:100%;color:var(--on-surface-primary,#f1f5f9);cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:8px;padding:10px 8px;font-size:.82rem;font-weight:600;transition:background .2s;display:flex}.profile-menu-item:hover{background:var(--surface-elev,#261d1b)}@supports (color:lab(0% 0 0)){.profile-menu-item:hover{background:var(--surface-elev,lab(11.7214% 4.136 2.75914))}}.app-main{max-width:1240px;height:100%;margin:0 auto;padding:0 6px 96px;overflow-y:auto}.page-content{padding:14px 0 0}.page-bar{border-radius:var(--r-md,8px);border:1px solid var(--surface-divider,#ffffff0f);z-index:8;background:var(--surface-card,#0b0f1af2);gap:2px;padding:6px;display:flex;position:sticky;top:0;overflow:visible}.nav-dropdown-wrapper{display:flex;position:relative}.dropdown-chevron{opacity:.7;margin-left:2px;transition:transform .2s}.nav-dropdown-wrapper:hover .dropdown-chevron{transform:rotate(180deg)}.nav-dropdown-menu{background:var(--surface-card,#0b0f1af2);opacity:0;visibility:hidden;z-index:100;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:2px;min-width:180px;padding:6px;transition:all .2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:calc(100% + 8px);left:0;transform:translateY(-8px);box-shadow:0 10px 30px #00000080,inset 0 1px #ffffff0d}.nav-dropdown-wrapper:hover .nav-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{color:var(--on-surface-secondary,#94a3b8);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.85rem;font-weight:500;text-decoration:none;transition:all .2s;display:flex}.dropdown-item:hover{color:var(--on-surface-primary,#f1f5f9);background:#ffffff0d}.dropdown-item.active{color:var(--ember,#fb923c);background:#932a301f;background:lab(34.7484% 44.642 23.3089/.12);font-weight:600}.dropdown-icon{opacity:.8}.dropdown-item.active .dropdown-icon{color:var(--ember,#fb923c);opacity:1}.page-tab{color:var(--on-surface-muted,#64748b);white-space:nowrap;letter-spacing:.01em;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;flex-shrink:0;align-items:center;gap:6px;padding:8px 14px;font-family:inherit;font-size:.8rem;font-weight:600;line-height:1;text-decoration:none;transition:color .2s,background .2s,border-color .2s,transform .15s;display:flex;position:relative}.page-tab:hover{color:var(--on-surface-primary,#cbd5e1);background:#ffffff0a;border-color:#ffffff14;transform:translateY(-1px)}.page-tab.active{color:#fff}.nav-indicator{border-radius:var(--r-sm,6px);z-index:-1;pointer-events:none;background:#932a3024;background:lab(34.7484% 44.642 23.3089/.14);border:1px solid #932a3052;border:1px solid lab(34.7484% 44.642 23.3089/.32);position:absolute;inset:0}.stat-card{transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,background .35s}.stat-card:hover{background:var(--surface-elev,#ffffff0a);border-color:#932a3052;border-color:lab(34.7484% 44.642 23.3089/.32);transform:translateY(-2px)}.page-tab-icon{opacity:.7;flex-shrink:0;width:16px;height:16px;transition:opacity .2s}.page-tab.active .page-tab-icon{opacity:1}.bottom-nav{z-index:30;border-bottom:none;border-left:none;border-right:none;border-radius:24px 24px 0 0;justify-content:space-around;width:100%;padding:12px 10px 22px;display:flex;position:fixed;bottom:0;left:0}.nav-item{color:var(--text-secondary);pointer-events:auto;flex-direction:column;flex:1;align-items:center;gap:4px;font-size:.74rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.nav-item:hover,.nav-item.active{color:var(--accent-primary);transform:translateY(-2px)}.dashboard-content{flex-direction:column;gap:22px;display:flex}.welcome-section h1{font-size:clamp(1.45rem,2.5vw,2rem);font-family:var(--font-display);margin-bottom:6px}.text-secondary{color:var(--text-secondary)}.quick-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.quick-action-btn{color:var(--on-surface-primary,#e2e8f0);border:1px solid var(--surface-divider,#ffffff14);border-radius:var(--r-sm,6px);background:var(--surface-card,#111827b3);align-items:center;gap:8px;padding:10px 14px;font-size:.87rem;font-weight:600;text-decoration:none;transition:background .18s,border-color .18s;display:inline-flex}.quick-action-btn:hover{background:var(--surface-elev,#ffffff0a);border-color:#932a3052;border-color:lab(34.7484% 44.642 23.3089/.32)}.error-banner{color:#fecdd3;background:#fb71851f;border:1px solid #fb71856b;border-radius:10px;padding:12px 14px;font-weight:600}.stats-grid{flex-direction:column;gap:12px;display:flex}.stat-row{gap:12px;display:flex}.stat-row .stat-card{flex:1}.stat-card{border-radius:16px;flex-direction:column;gap:12px;padding:18px;display:flex}.main-stat{border:1px solid #932a3038;border:1px solid lab(34.7484% 44.642 23.3089/.22);padding:22px}.stat-header{justify-content:space-between;align-items:center;display:flex}.stat-title{color:var(--text-secondary);font-size:.88rem;font-weight:600}.stat-icon-wrapper{border-radius:50%;justify-content:center;align-items:center;padding:8px;display:flex}.stat-icon-wrapper.blue{color:var(--ember,var(--accent-primary));background:#932a301f;background:lab(34.7484% 44.642 23.3089/.12)}.stat-icon-wrapper.green{color:var(--accent-success);background:#34d39926}.stat-icon-wrapper.red{color:var(--accent-danger);background:#fb718526}.stat-value{font-family:var(--font-numeric);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "zero" 1;color:var(--on-surface-primary);font-size:1.5rem;font-weight:500}.stat-value.small{font-size:1.38rem}.stat-trend{align-items:center;gap:6px;font-size:.83rem;font-weight:700;display:flex}.stat-trend.positive{color:var(--accent-success)}.stat-trend.negative{color:var(--accent-danger)}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.chart-card{padding:18px}.section-title{color:var(--text-primary);font-size:1.05rem;font-weight:700;font-family:var(--font-display);margin-bottom:10px}.chart-wrap{width:100%;height:260px}.empty-chart{min-height:220px;color:var(--text-secondary);text-align:center;justify-content:center;align-items:center;font-size:.9rem;display:flex}.pie-legend{flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:10px;display:flex}.pie-legend-item{color:var(--text-secondary);align-items:center;gap:6px;font-size:.78rem;font-weight:600;display:flex}.pie-legend-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.tables-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.table-card{padding:18px}.table-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.table-link{color:var(--ember);font-size:.85rem;font-weight:700;text-decoration:none}.table-link:hover{color:var(--ember-soft)}.table-scroll{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;min-width:420px}.data-table td{height:40px;color:var(--on-surface-primary,#e2e8f0);vertical-align:middle;border-bottom:1px solid #94a3b81a;padding:0 10px;font-size:.84rem}.data-table th{border-bottom:1px solid var(--border-color);height:32px;color:var(--on-surface-muted,#64748b);letter-spacing:.04em;text-transform:uppercase;text-align:left;vertical-align:middle;padding:0 10px;font-size:.75rem}.data-table.compact td,.data-table.compact th{height:32px}.factLine{border:1px solid var(--border-subtle,var(--surface-divider));border-radius:var(--r-md);background:var(--surface-card);align-items:baseline;gap:12px;margin-bottom:12px;padding:14px 16px;display:flex}.factLineLabel{color:var(--on-surface-secondary);font-size:12px}.factLineValue{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;color:var(--on-surface-primary);font-size:1.5rem;font-weight:500}.factLineDelta{font-family:var(--font-numeric);color:var(--semantic-success);font-variant-numeric:tabular-nums;align-items:center;gap:3px;margin-left:auto;font-size:12px;display:flex}.kvRow{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px;display:grid}.kvCell{border:1px solid var(--border-subtle,var(--surface-divider));border-radius:var(--r-md);background:var(--surface-card);padding:10px 12px}.kvLabel{text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-muted);margin-bottom:4px;font-size:11px;font-weight:600}.kvValue{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;color:var(--on-surface-primary);font-size:14px}@media (max-width:640px){.kvRow{grid-template-columns:repeat(2,1fr)}}.empty-cell{text-align:center;color:var(--text-secondary)}.loading-state{min-height:240px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex}@media (max-width:900px){.dashboard-shell{padding:12px}.analytics-grid,.tables-grid{grid-template-columns:1fr}}@media (max-width:640px){.stat-row{flex-direction:column}}@media (max-width:1023px){.dashboard-shell{padding:10px}.app-main{padding-bottom:98px}}@media (min-width:1024px){.bottom-nav{display:none}.app-main{padding-bottom:20px}.page-content{padding-top:16px}}.forecast-panel{margin-bottom:24px;padding:20px}.forecast-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.forecast-title-group{flex-direction:column;gap:8px;display:flex}.forecast-title{align-items:center;gap:8px;display:flex}.forecast-title h2{margin:0;font-size:1.1rem;font-weight:600}.balance-input-group{align-items:center;gap:8px;font-size:.85rem;display:flex}.balance-label{color:var(--text-secondary)}.balance-display-btn{background:var(--surface-card,#1e293b80);color:#f8fafc;cursor:pointer;border:1px dashed #94a3b866;border-radius:6px;padding:4px 10px;font-weight:500;transition:all .2s}.balance-display-btn:hover{border-color:var(--ember,var(--ember));background:#932a301a;background:lab(34.7484% 44.642 23.3089/.1)}.balance-edit{background:var(--surface-bg,#0f172a);border:1px solid var(--ember,var(--ember));border-radius:6px;align-items:center;padding:2px 8px;display:flex}.balance-edit .currency-symbol{color:var(--on-surface-secondary,#94a3b8);margin-right:4px}.balance-edit input{color:#fff;background:0 0;border:none;outline:none;width:80px;font-family:inherit;font-size:.85rem}.safe-to-spend-widget{background:var(--surface-card,#0f172a66);border:1px solid;border-radius:12px;align-items:center;gap:12px;padding:12px 18px;display:flex}.safe-to-spend-widget.healthy{border-color:#34d3994d}.safe-to-spend-widget.healthy .widget-icon,.safe-to-spend-widget.healthy .widget-value{color:var(--semantic-success)}.safe-to-spend-widget.warning{border-color:#fb71854d}.safe-to-spend-widget.warning .widget-icon,.safe-to-spend-widget.warning .widget-value{color:var(--semantic-danger)}.widget-info{flex-direction:column;display:flex}.widget-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.widget-value{font-size:1.25rem;font-weight:700}.forecast-chart-container{height:220px;margin-bottom:20px}.forecast-upcoming{border-top:1px solid #94a3b81a;padding-top:16px}.upcoming-title{color:var(--text-secondary);margin-bottom:12px;font-size:.85rem;font-weight:600}.upcoming-list{flex-direction:column;gap:8px;display:flex}.day-events{flex-wrap:wrap;gap:8px;display:flex}.event-pill{background:var(--surface-card,#1e293b80);border:1px solid #94a3b826;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:.8rem;display:flex}.event-pill.income{border-color:#34d3994d}.event-pill.income .event-amount{color:var(--semantic-success);font-weight:600}.event-pill.expense{border-color:#fb71854d}.event-pill.expense .event-amount{color:var(--semantic-danger);font-weight:600}.event-date{color:var(--on-surface-secondary,#94a3b8);font-variant-numeric:tabular-nums}.event-name{color:var(--on-surface-primary,#e2e8f0)}.no-events{color:var(--on-surface-muted,#64748b);font-size:.85rem;font-style:italic}@media (max-width:768px){.forecast-header{flex-direction:column;gap:16px}.safe-to-spend-widget{width:100%}}.dashboard-grid{grid-template-columns:var(--shell-sidebar-w,240px) 1fr;background:radial-gradient(ellipse at 14% 0%, #932a3014, transparent 44%), var(--surface-bg,#0b0f1a);height:100vh;display:grid;overflow:hidden}@supports (color:lab(0% 0 0)){.dashboard-grid{background:radial-gradient(ellipse at 14% 0%, lab(34.7484% 44.642 23.3089/.08), transparent 44%), var(--surface-bg,#0b0f1a)}}@media (max-width:900px){.dashboard-grid{grid-template-columns:1fr}}.sidebar{background:var(--surface-card,#141824eb);border-right:1px solid var(--surface-divider,#334155);flex-direction:column;height:100vh;padding:14px 0 16px;display:flex;position:sticky;top:0;overflow-y:auto}@media (max-width:900px){.sidebar{display:none}}.sidebar-brand{color:var(--on-surface-primary,#f1f5f9);letter-spacing:-.01em;align-items:center;gap:10px;padding:4px 18px 16px;font-size:1.02rem;font-weight:700;text-decoration:none;display:flex}.sidebar-nav{flex-direction:column;flex:1;gap:14px;padding:4px 0;display:flex}.sidebar-section{flex-direction:column;gap:2px;display:flex}.sidebar-section-label{text-transform:uppercase;letter-spacing:.08em;color:var(--on-surface-muted,#64748b);padding:4px 18px;font-size:.66rem;font-weight:600}.sidebar-section-items{flex-direction:column;gap:1px;display:flex}.sidebar-item{color:var(--on-surface-secondary,#94a3b8);align-items:center;gap:10px;padding:7px 18px;font-size:.84rem;font-weight:500;text-decoration:none;transition:color .12s,background .12s;display:flex}.sidebar-item:hover{color:var(--on-surface-primary,#f1f5f9);background:var(--surface-elev,#261d1b)}@supports (color:lab(0% 0 0)){.sidebar-item:hover{background:var(--surface-elev,lab(11.7214% 4.136 2.75914))}}.sidebar-item.active{color:var(--ember,#bb584d);background:#932a301a;background:lab(34.7484% 44.642 23.3089/.1);font-weight:600}@supports (color:lab(0% 0 0)){.sidebar-item.active{color:var(--ember,lab(50.058% 40.1205 26.1271))}}.sidebar-item-icon{color:currentColor;opacity:.85;flex-shrink:0}.sidebar-item.active .sidebar-item-icon{opacity:1}.sidebar-foot{border-top:1px solid var(--surface-divider,#334155);margin-top:12px;padding:12px 0 0}.sidebar-drawer,.sidebar-drawer-backdrop{display:none}@media (max-width:900px){.sidebar-drawer{background:var(--surface-card,#141824fa);border-right:1px solid var(--surface-divider,#334155);z-index:200;flex-direction:column;width:min(280px,86vw);padding:14px 0 16px;transition:transform .22s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto;transform:translate(-100%)}.sidebar-drawer.open{transform:translate(0)}.sidebar-drawer-backdrop{z-index:150;background:#0000008c;background:lab(0% 0 0/.55);display:block;position:fixed;inset:0}.drawer-trigger{display:inline-flex!important}}.drawer-close{color:var(--on-surface-secondary,#94a3b8);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;margin-left:auto;padding:4px;display:inline-flex}.drawer-close:hover{color:var(--on-surface-primary,#f1f5f9)}.dashboard-main{flex-direction:column;min-width:0;height:100vh;display:flex;overflow:hidden}.topbar{height:var(--shell-topbar-h,56px);border-bottom:1px solid var(--surface-divider,#334155);background:var(--surface-bg,#120b0a);z-index:10;flex-shrink:0;align-items:center;gap:14px;padding:0 22px;display:flex;position:sticky;top:0}@supports (color:lab(0% 0 0)){.topbar{background:var(--surface-bg,lab(3.63897% 2.20029 1.30533))}}.drawer-trigger{background:var(--surface-card,#1e293bb3);border:1px solid var(--surface-divider,#334155);color:var(--on-surface-secondary,#94a3b8);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;display:none}.drawer-trigger:hover{color:var(--on-surface-primary,#f1f5f9);border-color:var(--ember,#bb584d)}@supports (color:lab(0% 0 0)){.drawer-trigger:hover{border-color:var(--ember,lab(50.058% 40.1205 26.1271))}}.topbar-title{color:var(--on-surface-primary,#f1f5f9);letter-spacing:-.005em;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;margin:0;font-size:1rem;font-weight:600;overflow:hidden}.topbar-actions{align-items:center;gap:8px;margin-left:auto;display:flex}.topbar-icon-btn{color:var(--on-surface-secondary,#94a3b8);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;padding:6px 8px;display:inline-flex;position:relative}.topbar-icon-btn:hover{color:var(--on-surface-primary,#f1f5f9);border-color:var(--surface-divider,#334155)}.topbar-badge{background:var(--semantic-danger,var(--semantic-danger));color:#fbf8f5;color:lab(97.6712% .835896 1.65989);border-radius:999px;justify-content:center;align-items:center;width:16px;height:16px;font-size:.6rem;font-weight:700;line-height:1;display:flex;position:absolute;top:2px;right:2px}.topbar-popover{background:var(--surface-card,#141824fa);border:1px solid var(--surface-divider,#334155);box-shadow:var(--shadow-popover,0 8px 32px #00000073);z-index:200;border-radius:10px;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.popover-head{border-bottom:1px solid var(--surface-divider,#334155);color:var(--on-surface-primary,#f1f5f9);justify-content:space-between;align-items:center;padding:12px 14px;font-size:.9rem;font-weight:600;display:flex}.popover-action{color:var(--ember,#bb584d);cursor:pointer;background:0 0;border:none;font-size:.78rem;font-weight:600}@supports (color:lab(0% 0 0)){.popover-action{color:var(--ember,lab(50.058% 40.1205 26.1271))}}.popover-empty{color:var(--on-surface-secondary,#94a3b8);text-align:center;padding:24px 16px;font-size:.9rem}.alert-row{border-bottom:1px solid var(--surface-divider,#334155);cursor:pointer;background:#932a300f;background:lab(34.7484% 44.642 23.3089/.06);align-items:flex-start;gap:10px;padding:12px 16px;display:flex;overflow:hidden}.alert-row.read{cursor:default;background:0 0}.alert-title{color:var(--on-surface-primary,#f1f5f9);margin-bottom:2px;font-size:.85rem;font-weight:600}.alert-row.read .alert-title{color:var(--on-surface-secondary,#94a3b8);font-weight:400}.alert-body{color:var(--on-surface-secondary,#94a3b8);font-size:.78rem}.alert-dismiss{color:var(--on-surface-muted,#475569);cursor:pointer;background:0 0;border:none;padding:2px}.alert-dismiss:hover{color:var(--on-surface-primary,#f1f5f9)}.profile-menu-item.danger{color:var(--semantic-danger,var(--semantic-danger))}.profile-menu-item.danger:hover{background:#ca55511a;background:lab(52.12% 47.1194 27.3658/.1)}.page-area{flex:1;min-height:0;padding:16px 24px 96px;overflow-y:auto}@media (max-width:600px){.page-area{padding:12px 14px 96px}}.bottom-nav{display:none!important}@media (max-width:600px){.topbar{gap:8px;padding:0 12px}.topbar-popover{max-width:calc(100vw - 16px);right:8px}}@media (max-width:480px){.page-area{padding:4px 0 96px}.profile-avatar{width:30px;height:30px;font-size:.72rem}}