@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--color-teal-400:#2dd4bf;--color-teal-500:#14b8a6;--color-teal-600:#0d9488;--color-emerald-400:#34d399;--color-emerald-500:#10b981;--color-coral-400:#fb7185;--color-coral-500:#f43f5e;--color-amber-400:#fbbf24;--color-amber-500:#f59e0b;--color-blue-400:#60a5fa;--color-blue-500:#3b82f6;--color-purple-400:#a78bfa;--color-purple-500:#8b5cf6;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px -1px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--chart-1:#14b8a6;--chart-2:#f43f5e;--chart-3:#8b5cf6;--chart-4:#f59e0b;--chart-5:#3b82f6;--chart-6:#ec4899;--chart-7:#06b6d4;--chart-8:#84cc16}[data-theme=dark]{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-surface:#111827b3;--bg-surface-hover:#1f2937cc;--bg-surface-elevated:#1f293780;--bg-overlay:#0009;--border-primary:#ffffff0f;--border-active:#ffffff1f;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-tertiary:#64748b;--text-inverse:#0f172a;--glass-bg:#0f172a99;--glass-border:#ffffff14;--glass-shadow:0 8px 32px #0000004d;--income-color:#34d399;--income-bg:#34d3991a;--income-border:#34d39933;--expense-color:#fb7185;--expense-bg:#fb71851a;--expense-border:#fb718533;--accent-gradient:linear-gradient(135deg, #14b8a6, #10b981);--income-gradient:linear-gradient(135deg, #34d399, #10b981);--expense-gradient:linear-gradient(135deg, #fb7185, #f43f5e);--balance-gradient:linear-gradient(135deg, #60a5fa, #8b5cf6);--navbar-bg:#0a0e1ad9;--sidebar-bg:#0f172a;--input-bg:#1e293b80;--input-border:#ffffff1a;--input-focus:#14b8a64d;--scrollbar-track:#ffffff05;--scrollbar-thumb:#ffffff1a;--skeleton-base:#ffffff0d;--skeleton-shine:#ffffff1a}[data-theme=light]{--bg-primary:#f1f5f9;--bg-secondary:#fff;--bg-surface:#ffffffe6;--bg-surface-hover:#f1f5f9;--bg-surface-elevated:#f1f5f9b3;--bg-overlay:#0f172a66;--border-primary:#00000014;--border-active:#0000002e;--text-primary:#0f172a;--text-secondary:#334155;--text-tertiary:#64748b;--text-inverse:#f8fafc;--glass-bg:#ffffffd9;--glass-border:#00000014;--glass-shadow:0 1px 3px #0000000f, 0 8px 24px #00000012;--income-color:#047857;--income-bg:#0478571a;--income-border:#04785740;--expense-color:#be123c;--expense-bg:#be123c14;--expense-border:#be123c33;--accent-gradient:linear-gradient(135deg, #0d9488, #059669);--income-gradient:linear-gradient(135deg, #047857, #10b981);--expense-gradient:linear-gradient(135deg, #be123c, #f43f5e);--balance-gradient:linear-gradient(135deg, #2563eb, #7c3aed);--navbar-bg:#ffffffe6;--sidebar-bg:#fffffff2;--input-bg:#fff;--input-border:#0000001f;--input-focus:#0d948833;--scrollbar-track:#00000008;--scrollbar-thumb:#00000026;--skeleton-base:#0000000f;--skeleton-shine:#0000001f}[data-theme=light] .sidebar{border-right:1px solid #0000001a;box-shadow:2px 0 8px #0000000a}[data-theme=light] .navbar{border-bottom:1px solid #00000014;box-shadow:0 1px 4px #0000000a}[data-theme=light] .summary-card{box-shadow:0 1px 3px #0000000d,0 4px 16px #0000000f}[data-theme=light] .summary-card:hover{box-shadow:0 2px 6px #00000012,0 8px 24px #00000017}[data-theme=light] .summary-card .card-accent{height:3px}[data-theme=light] .chart-card,[data-theme=light] .table-card,[data-theme=light] .insight-card{border:1px solid #00000012;box-shadow:0 1px 3px #0000000d,0 4px 16px #0000000f}[data-theme=light] .insight-card:hover{box-shadow:0 2px 6px #00000012,0 8px 24px #00000017}[data-theme=light] .tx-table tbody tr:hover{background:#f1f5f9}[data-theme=light] .tx-type-badge.income{background:#0478571f;border-color:#0478574d}[data-theme=light] .tx-type-badge.expense{background:#be123c1a;border-color:#be123c40}[data-theme=light] .tx-category-badge{color:var(--text-secondary);background:#f1f5f9;border-color:#0000001a}[data-theme=light] .custom-dropdown-menu,[data-theme=light] .date-range-dropdown{border:1px solid #0000001a;box-shadow:0 4px 6px #0000000a,0 12px 32px #0000001a}[data-theme=light] .custom-dropdown-item.selected,[data-theme=light] .sidebar-nav-item.active{color:#0d9488;background:#0d948814}[data-theme=light] .role-slider{box-shadow:0 2px 6px #0d948840}[data-theme=light] .modal-content{border:1px solid #00000014;box-shadow:0 8px 32px #00000026}[data-theme=light] .confirm-box{box-shadow:0 8px 32px #00000026}[data-theme=light] .toast{border:1px solid #0000000f;box-shadow:0 4px 16px #0000001f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;width:100%;max-width:100vw;font-size:16px;overflow-x:hidden}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);width:100%;max-width:100vw;transition:background-color var(--transition-slow), color var(--transition-slow);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--radius-full)}.app-layout{width:100%;max-width:100vw;min-height:100vh;display:flex;overflow-x:hidden}.app-main{min-height:100vh;transition:margin-left var(--transition-base);flex-direction:column;flex:1;margin-left:260px;display:flex}.app-content{flex:1;margin-top:64px;padding:24px 32px 40px}@media (width<=1024px){.app-main{margin-left:0}}@media (width<=768px){.app-content{margin-top:56px;padding:16px 12px 32px}}@media (width<=480px){.app-content{padding:12px 8px 24px}}.navbar{background:var(--navbar-bg);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-primary);z-index:100;height:64px;transition:left var(--transition-base);justify-content:space-between;align-items:center;padding:0 32px;display:flex;position:fixed;top:0;left:260px;right:0}@media (width<=768px){.navbar{height:56px;padding:0 12px}}.navbar-left{align-items:center;gap:16px;display:flex}.navbar-left .page-title{color:var(--text-primary);font-size:1.125rem;font-weight:600}.navbar-right{align-items:center;gap:12px;display:flex}@media (width<=480px){.navbar-right{gap:8px}}.menu-toggle{color:var(--text-secondary);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none;padding:8px;display:none}.menu-toggle:hover{background:var(--bg-surface-hover);color:var(--text-primary)}@media (width<=1024px){.navbar{padding:0 16px;left:0}.menu-toggle{display:flex}}.sidebar{background:var(--sidebar-bg);-webkit-backdrop-filter:blur(20px);border-right:1px solid var(--border-primary);z-index:200;width:260px;height:100vh;transition:transform var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-brand{border-bottom:1px solid var(--border-primary);align-items:center;gap:12px;height:64px;padding:0 24px;display:flex}.sidebar-brand .brand-icon-img{border-radius:var(--radius-md);object-fit:cover;width:36px;height:36px}.sidebar-brand .brand-text{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.15rem;font-weight:700}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:16px 12px;display:flex}.sidebar-nav-item{border-radius:var(--radius-md);color:var(--text-secondary);text-align:left;width:100%;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:12px;padding:10px 14px;font-size:.9rem;font-weight:500;display:flex;position:relative}.sidebar-nav-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.sidebar-nav-item.active{color:var(--color-teal-400);background:#14b8a61a}.sidebar-nav-item.active:before{content:"";background:var(--accent-gradient);border-radius:var(--radius-full);width:3px;height:20px;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar-overlay{display:none}@media (width<=1024px){.sidebar{visibility:hidden;transform:translate(-100%)}.sidebar.open{visibility:visible;transform:translate(0)}.sidebar-overlay{background:var(--bg-overlay);z-index:199;opacity:0;pointer-events:none;transition:opacity var(--transition-base);display:block;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;pointer-events:auto}}.summary-cards{grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:28px;display:grid}.summary-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--transition-base);box-shadow:var(--glass-shadow);padding:24px;position:relative;overflow:hidden}.summary-card:hover{box-shadow:var(--glass-shadow), 0 4px 20px #0000001a;transform:translateY(-2px)}.summary-card .card-accent{height:3px;position:absolute;top:0;left:0;right:0}.summary-card.balance .card-accent{background:var(--balance-gradient)}.summary-card.income .card-accent{background:var(--income-gradient)}.summary-card.expense .card-accent{background:var(--expense-gradient)}.summary-card .card-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.summary-card .card-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.85rem;font-weight:500}.summary-card .card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.summary-card.balance .card-icon{color:var(--color-blue-400);background:#60a5fa1f}.summary-card.income .card-icon{background:var(--income-bg);color:var(--income-color)}.summary-card.expense .card-icon{background:var(--expense-bg);color:var(--expense-color)}.summary-card .card-value{letter-spacing:-.02em;margin-bottom:4px;font-size:1.75rem;font-weight:700;line-height:1.2}.summary-card .card-sub{color:var(--text-tertiary);font-size:.8rem}@media (width<=768px){.summary-cards{grid-template-columns:1fr;gap:12px}.summary-card{padding:20px}.summary-card .card-value{font-size:1.5rem}}@media (width<=480px){.summary-card .card-value{font-size:1.35rem}}.charts-grid{grid-template-columns:1.5fr 1fr;gap:20px;margin-bottom:28px;display:grid}.chart-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);padding:24px}.chart-card .chart-title{color:var(--text-primary);margin-bottom:20px;font-size:1rem;font-weight:600}.recharts-text{fill:var(--text-secondary)!important;font-size:.75rem!important}.recharts-cartesian-grid line{stroke:var(--border-primary)!important}@media (width<=900px){.charts-grid{grid-template-columns:1fr}}.table-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);overflow:hidden}.table-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.table-header h3{font-size:1rem;font-weight:600}.table-header-actions{gap:8px;display:flex}.table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=768px){.tx-table th,.tx-table td{padding:10px 12px;font-size:.8125rem}}@media (width<=420px){.tx-table th,.tx-table td{padding:8px 6px}.tx-type-badge span{display:none}.tx-type-badge{justify-content:center;align-items:center;min-height:24px;padding:4px;display:flex}}@media (width<=480px){.tx-table th:first-child,.tx-table td:first-child,.tx-table th:nth-child(4),.tx-table td:nth-child(4){display:none}}.tx-table{border-collapse:collapse;width:100%}.tx-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);border-bottom:1px solid var(--border-primary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast);padding:12px 20px;font-size:.75rem;font-weight:600}.tx-table th:hover{color:var(--text-secondary)}.tx-table th .sort-icon{opacity:.5;vertical-align:middle;margin-left:4px;display:inline-flex}.tx-table th.sorted{color:var(--color-teal-400)}.tx-table th.sorted .sort-icon{opacity:1}.tx-table td{border-bottom:1px solid var(--border-primary);white-space:nowrap;transition:background var(--transition-fast);padding:14px 20px;font-size:.875rem}@media (width<=480px){.tx-table th,.tx-table td{padding:10px 8px;font-size:.8rem}}@media (width<=420px){.tx-table th,.tx-table td{padding:8px 4px;font-size:.75rem}}.tx-table tbody tr{transition:background var(--transition-fast)}.tx-table tbody tr:hover{background:var(--bg-surface-hover)}.tx-table tbody tr:last-child td{border-bottom:none}.tx-description{text-overflow:ellipsis;white-space:nowrap;max-width:240px;font-weight:500;overflow:hidden}@media (width<=768px){.tx-description{max-width:140px}}@media (width<=420px){.tx-description{max-width:100px}}@media (width<=768px){.tx-description{max-width:140px}}@media (width<=480px){.tx-description{max-width:110px}}.tx-amount{font-variant-numeric:tabular-nums;font-weight:600}.tx-amount.income{color:var(--income-color)}.tx-amount.expense{color:var(--expense-color)}.tx-type-badge{border-radius:var(--radius-full);text-transform:capitalize;align-items:center;gap:4px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.tx-type-badge.income{background:var(--income-bg);color:var(--income-color);border:1px solid var(--income-border)}.tx-type-badge.expense{background:var(--expense-bg);color:var(--expense-color);border:1px solid var(--expense-border)}.tx-category-badge{border-radius:var(--radius-full);background:var(--bg-surface-elevated);border:1px solid var(--border-primary);color:var(--text-secondary);padding:3px 10px;font-size:.75rem;font-weight:500;display:inline-flex}.tx-actions{gap:4px;display:flex}@media (width<=420px){.tx-actions{gap:2px}.tx-actions button{width:28px;height:28px}}.tx-actions button{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.tx-actions button:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.tx-actions button.delete:hover{background:var(--expense-bg);color:var(--expense-color)}.table-pagination{border-top:1px solid var(--border-primary);color:var(--text-secondary);justify-content:space-between;align-items:center;padding:12px 24px;font-size:.8rem;display:flex}.pagination-buttons{gap:4px;display:flex}.pagination-buttons button{border-radius:var(--radius-sm);border:1px solid var(--border-primary);min-width:32px;height:32px;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:0 8px;font-size:.8rem;font-weight:500;display:flex}.pagination-buttons button:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-active)}.pagination-buttons button.active{background:var(--accent-gradient);color:#fff;border-color:#0000}.pagination-buttons button:disabled{opacity:.3;cursor:not-allowed}.table-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:60px 20px;display:flex}.table-empty .empty-icon{border-radius:var(--radius-lg);background:var(--bg-surface-elevated);width:64px;height:64px;color:var(--text-tertiary);justify-content:center;align-items:center;margin-bottom:16px;display:flex}.table-empty h4{margin-bottom:4px;font-size:1rem;font-weight:600}.table-empty p{color:var(--text-tertiary);font-size:.85rem}.filter-bar{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.filter-bar .search-box{flex:1;min-width:220px;position:relative}.filter-bar .search-box .search-icon{color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.filter-bar input,.filter-bar select{border-radius:var(--radius-md);border:1px solid var(--input-border);background:var(--input-bg);height:40px;color:var(--text-primary);transition:all var(--transition-fast);outline:none;width:100%;padding:0 14px;font-size:.85rem}.filter-bar .search-box input{padding-left:40px}.filter-bar input:focus,.filter-bar select:focus{border-color:var(--color-teal-500);box-shadow:0 0 0 3px var(--input-focus)}.filter-bar select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:32px}.filter-select-wrapper{min-width:140px}@media (width<=768px){.filter-bar{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.filter-bar .search-box{grid-column:span 2}.filter-select-wrapper,.custom-dropdown,.date-range-picker,.date-range-trigger{width:100%;min-width:0}}.date-range-picker{position:relative}.date-range-trigger{border-radius:var(--radius-md);border:1px solid var(--input-border);background:var(--input-bg);height:40px;color:var(--text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);align-items:center;gap:8px;padding:0 14px;font-size:.85rem;font-weight:500;display:flex}.date-range-trigger:hover{border-color:var(--border-active);color:var(--text-primary)}.date-range-trigger.active{border-color:var(--color-teal-500);color:var(--text-primary);background:#14b8a60f}.date-range-label{text-overflow:ellipsis;max-width:220px;overflow:hidden}.date-range-clear{border-radius:var(--radius-full);background:var(--bg-surface-hover);width:18px;height:18px;color:var(--text-tertiary);transition:all var(--transition-fast);justify-content:center;align-items:center;margin-left:2px;display:flex}.date-range-clear:hover{background:var(--expense-bg);color:var(--expense-color)}.date-range-dropdown{z-index:50;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);min-width:300px;padding:16px;animation:.15s dropdownFade;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 40px #00000040}@media (width<=480px){.date-range-dropdown{width:calc(100vw - 32px);min-width:0;max-width:320px;position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%);box-shadow:0 20px 60px #0006}}@keyframes dropdownFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.date-range-fields{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px;display:grid}@media (width<=480px){.date-range-fields{grid-template-columns:1fr;gap:8px}}.date-range-field label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);margin-bottom:4px;font-size:.7rem;font-weight:600;display:block}.date-range-field input{border-radius:var(--radius-sm);border:1px solid var(--input-border);background:var(--input-bg);width:100%;height:38px;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);outline:none;padding:0 10px;font-family:inherit;font-size:.82rem}.date-range-field input:focus{border-color:var(--color-teal-500);box-shadow:0 0 0 3px var(--input-focus)}.date-range-actions{border-top:1px solid var(--border-primary);justify-content:flex-end;gap:8px;padding-top:10px;display:flex}.custom-dropdown{min-width:140px;position:relative}.custom-dropdown-trigger{border-radius:var(--radius-md);border:1px solid var(--input-border);background:var(--input-bg);width:100%;height:40px;color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);justify-content:space-between;align-items:center;gap:8px;padding:0 12px 0 14px;font-size:.85rem;font-weight:500;display:flex}.custom-dropdown-trigger:hover{border-color:var(--border-active)}.custom-dropdown-trigger.open{border-color:var(--color-teal-500);box-shadow:0 0 0 3px var(--input-focus)}.custom-dropdown-value{text-overflow:ellipsis;overflow:hidden}.custom-dropdown-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.custom-dropdown-chevron.rotated{transform:rotate(180deg)}.custom-dropdown-menu{z-index:50;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-md);min-width:160px;animation:.15s dropdownFade;position:absolute;top:calc(100% + 5px);left:0;right:0;overflow:hidden;box-shadow:0 12px 40px #00000040}@media (width<=480px){.custom-dropdown-menu{border-radius:var(--radius-md);width:100%;position:absolute;inset:calc(100% + 5px) 0 auto;box-shadow:0 12px 40px #00000040}}.custom-dropdown-scroll{max-height:240px;padding:4px;overflow-y:auto}.custom-dropdown-item{width:100%;color:var(--text-secondary);text-align:left;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;font-size:.84rem;font-weight:450;display:flex}.custom-dropdown-item:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.custom-dropdown-item.selected{color:var(--color-teal-400);background:#14b8a614;font-weight:600}.custom-dropdown-check{color:var(--color-teal-400);flex-shrink:0}@media (width<=768px){.custom-dropdown{width:100%;min-width:0}}.btn{border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;border:none;align-items:center;gap:8px;padding:8px 18px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--accent-gradient);color:#fff;box-shadow:0 2px 8px #14b8a640}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 16px #14b8a659}.btn-secondary{background:var(--bg-surface-elevated);color:var(--text-secondary);border:1px solid var(--border-primary)}.btn-secondary:hover{background:var(--bg-surface-hover);color:var(--text-primary);border-color:var(--border-active)}.btn-danger{background:var(--expense-bg);color:var(--expense-color);border:1px solid var(--expense-border)}.btn-danger:hover{background:#f43f5e33}.btn-icon{justify-content:center;align-items:center;width:36px;height:36px;padding:8px;display:flex}.btn-sm{padding:6px 12px;font-size:.8rem}.role-switcher{background:var(--input-bg);border-radius:var(--radius-full);border:1px solid var(--border-primary);align-items:center;padding:3px;display:flex;position:relative}.role-option{border-radius:var(--radius-full);color:var(--text-tertiary);transition:all var(--transition-fast);z-index:1;background:0 0;border:none;align-items:center;gap:6px;padding:5px 14px;font-size:.78rem;font-weight:600;display:flex;position:relative}@media (width<=600px){.role-option span{display:none}.role-option{justify-content:center;min-width:36px;padding:2px 10px}}.role-option.active{color:#fff}.role-slider{border-radius:var(--radius-full);background:var(--accent-gradient);height:calc(100% - 6px);transition:all var(--transition-base);position:absolute;top:3px;box-shadow:0 2px 8px #14b8a64d}.theme-toggle{border-radius:var(--radius-md);border:1px solid var(--border-primary);background:var(--input-bg);width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.theme-toggle:hover{background:var(--bg-surface-hover);color:var(--color-amber-400);border-color:var(--border-active)}.theme-toggle svg{transition:transform var(--transition-base)}.theme-toggle:hover svg{transform:rotate(20deg)}.modal-overlay{background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-xl);flex-direction:column;width:100%;max-width:500px;max-height:calc(100vh - 40px);display:flex;overflow:hidden;box-shadow:0 25px 50px #0000004d}@media (width<=600px){.modal-content{border-radius:var(--radius-lg);max-width:100%}.modal-overlay{padding:12px}}.modal-body{overflow:visible auto}.modal-content .custom-dropdown-menu{z-index:1010}.modal-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.modal-header h3{font-size:1.1rem;font-weight:600}.modal-header .close-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-header .close-btn:hover{background:var(--bg-surface-hover);color:var(--text-primary)}.modal-body{padding:24px}.form-group{margin-bottom:18px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.8rem;font-weight:600;display:block}.form-group input,.form-group select{border-radius:var(--radius-md);border:1px solid var(--input-border);background:var(--input-bg);width:100%;height:42px;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:0 14px;font-size:.9rem}.form-group input:focus,.form-group select:focus{border-color:var(--color-teal-500);box-shadow:0 0 0 3px var(--input-focus)}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:16px;padding-right:32px}.form-row{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=540px){.form-row{grid-template-columns:1fr;gap:0}}.modal-footer{border-top:1px solid var(--border-primary);justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.insights-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:28px;display:grid}.insight-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:all var(--transition-base);padding:24px}.insight-card:hover{box-shadow:var(--glass-shadow), 0 4px 20px #0000001a;transform:translateY(-2px)}.insight-card .insight-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:16px;display:flex}.insight-card .insight-icon.green{background:var(--income-bg);color:var(--income-color)}.insight-card .insight-icon.red{background:var(--expense-bg);color:var(--expense-color)}.insight-card .insight-icon.blue{color:var(--color-blue-400);background:#60a5fa1f}.insight-card .insight-icon.yellow{color:var(--color-amber-400);background:#fbbf241f}.insight-card .insight-icon.purple{color:var(--color-purple-400);background:#a78bfa1f}.insight-card .insight-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.8rem;font-weight:500}.insight-card .insight-value{letter-spacing:-.02em;margin-bottom:6px;font-size:1.5rem;font-weight:700}.insight-card .insight-value.green{color:var(--income-color)}.insight-card .insight-value.red{color:var(--expense-color)}.insight-card .insight-value.blue{color:var(--color-blue-400)}.insight-card .insight-value.yellow{color:var(--color-amber-400)}.insight-card .insight-value.purple{color:var(--color-purple-400)}.insight-card .insight-detail{color:var(--text-secondary);font-size:.83rem;line-height:1.5}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.page-header h2{letter-spacing:-.02em;font-size:1.5rem;font-weight:700}@media (width<=480px){.page-header h2{font-size:1.25rem}.page-header p{max-width:280px;font-size:.825rem}}.page-header p{color:var(--text-secondary);max-width:600px;margin-top:4px;font-size:.9rem}.page-header-actions{flex-wrap:wrap;gap:10px;display:flex}@media (width<=768px){.page-header-actions{gap:8px}}@media (width<=640px){.page-header-actions button:not(.btn-primary) span{display:none}.page-header-actions button:not(.btn-primary){justify-content:center;min-width:40px;padding:8px}.page-header-actions .btn-primary{flex:1;justify-content:center;min-width:140px}}.section{margin-bottom:28px}.section-title{margin-bottom:16px;font-size:1.125rem;font-weight:600}.skeleton{background:var(--skeleton-base);border-radius:var(--radius-md);position:relative;overflow:hidden}.skeleton:after{content:"";background:linear-gradient(90deg, transparent, var(--skeleton-shine), transparent);animation:1.8s ease-in-out infinite skeleton-shine;position:absolute;inset:0}@keyframes skeleton-shine{0%{transform:translate(-100%)}to{transform:translate(100%)}}.skeleton-card{height:140px}.skeleton-chart{height:320px}.skeleton-table-row{height:52px;margin-bottom:2px}.toast-container{z-index:2000;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg);align-items:center;gap:10px;min-width:280px;padding:12px 20px;font-size:.85rem;font-weight:500;display:flex}.toast.success{border-left:3px solid var(--income-color)}.toast.error{border-left:3px solid var(--expense-color)}.toast.info{border-left:3px solid var(--color-blue-400)}.text-muted{color:var(--text-secondary)}.text-xs{font-size:.75rem}.recent-tx-section .chart-title{justify-content:space-between;align-items:center;display:flex}.view-all-link{color:var(--color-teal-400);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;font-size:.8rem;font-weight:500}.view-all-link:hover{color:var(--color-teal-500)}.confirm-overlay{background:var(--bg-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1001;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-box{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);text-align:center;width:100%;max-width:400px;padding:28px;box-shadow:0 25px 50px #0000004d}.confirm-box h4{margin-bottom:8px;font-size:1.05rem}.confirm-box p{color:var(--text-secondary);margin-bottom:20px;font-size:.85rem}.confirm-actions{justify-content:center;gap:10px;display:flex}.group-header{background:var(--bg-surface-elevated);border-bottom:1px solid var(--border-primary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;padding:10px 20px;font-size:.8rem;font-weight:600}
