.dashboard-page{--dash-income:#10b981;--dash-expense:#f43f5e;--dash-balance:#3b82f6;--dash-card-shadow:0 1px 3px rgba(15,23,42,0.08),0 8px 24px rgba(15,23,42,0.06)}.dashboard-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:1.5rem}.dashboard-kpi-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-bottom:1.5rem}@media (max-width:767.98px){.dashboard-kpi-row{grid-template-columns:1fr}}.dashboard-kpi{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1.125rem 1.25rem;box-shadow:var(--dash-card-shadow)}.dashboard-kpi-label{color:#64748b;font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.dashboard-kpi-value{margin-top:.375rem;font-size:1.75rem;font-weight:700;line-height:1.2}.dashboard-kpi-change{margin-top:.5rem;font-size:.875rem}.dashboard-kpi-change.positive{color:#059669}.dashboard-kpi-change.negative{color:#e11d48}.dashboard-kpi-change.neutral{color:#64748b}.dashboard-kpi.income .dashboard-kpi-value{color:var(--dash-income)}.dashboard-kpi.expense .dashboard-kpi-value{color:var(--dash-expense)}.dashboard-kpi.balance .dashboard-kpi-value{color:var(--dash-balance)}.dashboard-kpi.savings .dashboard-kpi-value{color:#8b5cf6}.dashboard-summary{background:linear-gradient(135deg,#f8fafc,#eef2ff);border:1px solid #e0e7ff;border-radius:1rem;padding:1.25rem 1.5rem;margin-bottom:1.5rem;box-shadow:var(--dash-card-shadow)}.dashboard-summary h2{font-size:1.125rem;margin-bottom:0}.dashboard-summary-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.875rem}.dashboard-summary-actions{display:flex;flex-wrap:wrap;gap:.5rem}.dashboard-insights{border-top-color:#fde68a}.dashboard-insights .dashboard-correlations-title{color:#92400e}.dashboard-correlations{margin-top:1.25rem;padding-top:1rem;border-top:1px dashed #c7d2fe}.dashboard-correlations-title{font-size:1rem;font-weight:600;margin-bottom:.75rem;color:#312e81}.dashboard-correlations-intro{color:#475569;line-height:1.55;margin-bottom:1rem}.dashboard-correlations-list{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.dashboard-correlation-item{display:flex;gap:.75rem;align-items:flex-start;padding:.875rem 1rem;background:#fff;border:1px solid #e2e8f0;border-radius:.75rem}.dashboard-correlation-badge{flex:0 0 auto;padding:.2rem .55rem;border-radius:999px;font-size:.8125rem;font-weight:600;line-height:1.4;white-space:nowrap}.dashboard-correlation-badge-together{background:#dcfce7;color:#166534}.dashboard-correlation-badge-opposite{background:#ffedd5;color:#9a3412}.dashboard-correlation-badge-concentration{background:#ede9fe;color:#5b21b6}.dashboard-correlation-badge-volatile{background:#fce7f3;color:#9d174d}.dashboard-correlation-badge-anomaly-high{background:#fee2e2;color:#b91c1c}.dashboard-correlation-badge-anomaly-low{background:#dbeafe;color:#1d4ed8}.dashboard-correlation-badge-drift{background:#e0f2fe;color:#0369a1}.dashboard-correlation-badge-neutral{background:#f1f5f9;color:#475569}.dashboard-correlation-badge-savings-high{background:#dcfce7;color:#166534}.dashboard-correlation-badge-savings-low{background:#fef3c7;color:#b45309}.dashboard-correlation-title{font-weight:600;color:#0f172a;margin-bottom:.25rem}.dashboard-correlation-text{color:#475569;line-height:1.5;font-size:.9375rem}.dashboard-correlations-empty{margin:0;color:#64748b;line-height:1.55}.dashboard-correlations p{margin-bottom:.625rem;color:#334155;line-height:1.55}.dashboard-correlations-status{margin-top:.75rem}.dashboard-summary p{margin-bottom:.625rem;color:#334155;line-height:1.55}.dashboard-summary p:last-child{margin-bottom:0}.dashboard-charts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}@media (max-width:991.98px){.dashboard-charts{grid-template-columns:1fr}}.dashboard-chart-card{background:#fff;border:1px solid #e2e8f0;border-radius:1rem;padding:1rem 1rem .5rem;box-shadow:var(--dash-card-shadow)}.dashboard-chart-card.full-width{grid-column:1/-1}.dashboard-chart-title{font-size:.9375rem;font-weight:600;color:#0f172a;margin:0 .5rem .75rem}.dashboard-chart-subtitle{font-size:.8125rem;font-weight:500}.dashboard-chart{min-height:320px}.dashboard-chart.tall{min-height:380px}.expense-categories-card{padding-bottom:1rem}.expense-categories-header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.expense-categories-subtitle{margin:0;font-size:.8125rem;color:#64748b}.expense-categories-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.expense-categories-search{border:1px solid #e2e8f0;border-radius:.5rem;padding:.375rem .75rem;font-size:.8125rem;min-width:11rem;background:#fff}.expense-categories-search:focus{outline:2px solid #93c5fd;outline-offset:0;border-color:#93c5fd}.expense-categories-btn{border:1px solid #e2e8f0;border-radius:.5rem;padding:.375rem .75rem;font-size:.8125rem;background:#fff;color:#475569;cursor:pointer}.expense-categories-btn:hover{background:#f8fafc;border-color:#cbd5e1}.expense-sections-row{display:flex;flex-wrap:wrap;gap:.625rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px dashed #e2e8f0}.expense-section-chip{display:inline-flex;align-items:center;gap:.5rem;border:1px solid #cbd5e1;border-radius:.75rem;padding:.5rem .875rem;font-size:.8125rem;font-weight:500;background:#f8fafc;color:#334155;cursor:pointer;transition:opacity .15s,border-color .15s,background .15s;max-width:100%}.expense-section-chip.active{border-color:color-mix(in srgb,var(--chip-color) 50%,#cbd5e1);background:color-mix(in srgb,var(--chip-color) 10%,#fff);color:#0f172a}.expense-section-chip:not(.active){opacity:.5}.expense-section-chip-dot{width:.625rem;height:.625rem;border-radius:50%;background:var(--chip-color);flex-shrink:0}.expense-section-chip-name{line-height:1.3;text-align:left}.expense-section-chip-value{color:#64748b;font-variant-numeric:tabular-nums;font-weight:600;flex-shrink:0}.expense-categories-groups{display:flex;flex-direction:column;gap:.875rem;margin-bottom:1rem;max-height:14rem;overflow-y:auto}.expense-categories-section-group{display:flex;flex-direction:column;gap:.375rem}.expense-categories-section-title{margin:0;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.expense-categories-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:0;max-height:none;overflow:visible;padding:0}.expense-category-chip.section-off{pointer-events:none}.expense-category-chip{display:inline-flex;align-items:center;gap:.375rem;border:1px solid #e2e8f0;border-radius:999px;padding:.25rem .625rem .25rem .5rem;font-size:.75rem;background:#fff;color:#64748b;cursor:pointer;transition:opacity .15s,border-color .15s,background .15s;max-width:100%}.expense-category-chip.active{border-color:color-mix(in srgb,var(--chip-color) 55%,#e2e8f0);background:color-mix(in srgb,var(--chip-color) 8%,#fff);color:#0f172a}.expense-category-chip:not(.active){opacity:.55}.expense-category-chip-dot{width:.5rem;height:.5rem;border-radius:50%;background:var(--chip-color);flex-shrink:0}.expense-category-chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:10rem}.expense-category-chip-value{color:#94a3b8;font-variant-numeric:tabular-nums;flex-shrink:0}.expense-category-chip.active .expense-category-chip-value{color:#64748b}.expense-categories-chart-wrap{min-height:320px;height:320px}.expense-categories-empty,.expense-categories-no-match{margin:0;padding:2rem 1rem;text-align:center;color:#64748b;font-size:.875rem}.expense-granularity-toggle{display:inline-flex;margin-top:.625rem;border:1px solid #e2e8f0;border-radius:.5rem;overflow:hidden;background:#f8fafc}.expense-granularity-toggle button{border:none;background:transparent;padding:.375rem .75rem;font-size:.8125rem;color:#64748b;cursor:pointer}.expense-granularity-toggle button.active{background:#fff;color:#0f172a;font-weight:600;box-shadow:0 1px 2px rgba(15,23,42,.08)}.expense-period-tooltip{border-radius:.5rem;border:1px solid #e2e8f0;background:#fff;padding:.625rem .75rem;box-shadow:0 8px 24px rgba(15,23,42,.12);font-size:.8125rem;max-width:16rem}.expense-period-tooltip-title{margin:0 0 .375rem;font-weight:600;color:#0f172a}.expense-period-tooltip-list{max-height:9rem;overflow-y:auto;overscroll-behavior:contain}.expense-period-tooltip-row{margin:0;line-height:1.45}.expense-period-tooltip-more,.expense-period-tooltip-muted{margin:.25rem 0 0;color:#64748b}.expense-period-tooltip-hint{margin:.5rem 0 0;padding-top:.375rem;border-top:1px dashed #e2e8f0;font-size:.75rem;color:#94a3b8}.expense-day-modal-overlay{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:1rem;background:rgba(15,23,42,.4);cursor:pointer}.expense-day-modal-card{width:min(100%,28rem);max-height:min(80vh,32rem);display:flex;flex-direction:column;background:#fff;border-radius:.75rem;box-shadow:0 16px 48px rgba(15,23,42,.2);cursor:default}.expense-day-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1rem 1rem .5rem}.expense-day-modal-title{margin:0;font-size:1.0625rem;font-weight:600;color:#0f172a}.expense-day-modal-close{border:none;background:none;font-size:1.5rem;line-height:1;color:#64748b;cursor:pointer;padding:0 .25rem}.expense-day-modal-total{margin:0;padding:0 1rem .75rem;font-size:.875rem;font-weight:600;color:#334155}.expense-day-modal-body{overflow-y:auto;padding:0 1rem 1rem}.expense-day-modal-section+.expense-day-modal-section{margin-top:.875rem}.expense-day-modal-section-title{margin:0 0 .375rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.expense-day-modal-list{list-style:none;margin:0;padding:0}.expense-day-modal-item{display:flex;align-items:center;gap:.5rem;padding:.375rem 0;border-bottom:1px solid #f1f5f9;font-size:.875rem}.expense-day-modal-item:last-child{border-bottom:none}.expense-day-modal-item-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.expense-day-modal-item-name{flex:1;color:#334155}.expense-day-modal-item-amount{font-variant-numeric:tabular-nums;font-weight:600;color:#0f172a}.expense-day-modal-empty{margin:0;padding:0 1rem 1.5rem;color:#64748b;font-size:.875rem}.dashboard-chart-card,.dashboard-chart-card-compact{--chart-height:320px}.dashboard-chart,.dashboard-chart-card-compact .dashboard-chart{min-height:var(--chart-height,320px)}.expense-view-mode-toggle{display:inline-flex;margin-top:.625rem;margin-right:.5rem;border:1px solid #e2e8f0;border-radius:.5rem;overflow:hidden;background:#f8fafc}.expense-view-mode-toggle button{border:none;background:transparent;padding:.5rem .875rem;min-height:44px;font-size:.8125rem;color:#64748b;cursor:pointer}.expense-view-mode-toggle button.active{background:#fff;color:#0f172a;font-weight:600;box-shadow:0 1px 2px rgba(15,23,42,.08)}.expense-filters-spoiler{margin-bottom:1rem;border:1px solid #e2e8f0;border-radius:.75rem;background:#f8fafc}.expense-filters-spoiler-summary{padding:.75rem 1rem;font-size:.875rem;font-weight:600;color:#334155;cursor:pointer;list-style:none;min-height:44px;display:flex;align-items:center}.expense-filters-spoiler-summary::-webkit-details-marker{display:none}.expense-filters-spoiler-body{padding:0 1rem 1rem;border-top:1px solid #e2e8f0}.expense-category-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:.5rem}.expense-category-list-section-title{margin:0 0 .5rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:#64748b}.expense-category-list-items{list-style:none;margin:0;padding:0;border:1px solid #e2e8f0;border-radius:.75rem;overflow:hidden;background:#fff}.expense-category-list-row{display:flex;align-items:center;gap:.625rem;width:100%;padding:.75rem 1rem;min-height:44px;border:none;border-bottom:1px solid #f1f5f9;background:#fff;text-align:left;cursor:pointer}.expense-category-list-row:last-child{border-bottom:none}.expense-category-list-dot{width:.625rem;height:.625rem;border-radius:50%;flex-shrink:0}.expense-category-list-name{flex:1;font-size:.875rem;color:#334155;line-height:1.35}.expense-category-list-amount{font-size:.875rem;font-weight:600;font-variant-numeric:tabular-nums;color:#0f172a;flex-shrink:0}.expense-list-period-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.expense-list-period-select-wrap{display:flex;flex-direction:column;gap:.25rem;min-width:10rem;flex:1}.expense-list-period-select-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.03em}.expense-list-period-select{border:1px solid #e2e8f0;border-radius:.5rem;padding:.5rem .75rem;min-height:44px;font-size:.875rem;background:#fff;color:#334155;width:100%;max-width:16rem}.expense-list-period-select:focus{outline:2px solid #93c5fd;outline-offset:0;border-color:#93c5fd}.expense-list-period-date-wrap{display:flex;flex-direction:column;gap:.25rem;min-width:8.5rem;flex:1}.expense-list-period-date{border:1px solid #e2e8f0;border-radius:.5rem;padding:.5rem .75rem;min-height:44px;font-size:.875rem;background:#fff;color:#334155;width:100%;max-width:11rem}.expense-list-period-date:focus{outline:2px solid #93c5fd;outline-offset:0;border-color:#93c5fd}@media (max-width:767.98px){.expense-list-period-controls{flex-direction:column;align-items:stretch}.expense-list-period-date,.expense-list-period-date-wrap,.expense-list-period-select,.expense-list-period-select-wrap{max-width:none}.dashboard-kpi{padding:1rem}.dashboard-chart-card{--chart-height:220px;padding:.75rem .75rem .5rem}.dashboard-chart-card-compact{--chart-height:220px}.dashboard-chart-card-pie{--chart-height:280px}.dashboard-chart-card-pie .dashboard-chart{min-height:280px}.expense-categories-actions-desktop{display:none}.expense-categories-chart-wrap{min-height:clamp(240px,50vh,360px);height:clamp(240px,50vh,360px)}.expense-categories-groups{max-height:none}.expense-categories-search{min-width:0;flex:1}.expense-granularity-toggle button{min-height:44px;padding:.5rem .875rem}.expense-categories-btn{min-height:44px}.expense-day-modal-card{width:calc(100vw - 1.5rem);max-height:90dvh}.expense-day-modal-overlay{align-items:flex-end;padding:.75rem}}@media (min-width:768px){.expense-filters-spoiler{display:none}}