:root{--color-bg:#0f0f0f;--color-bg-secondary:#1a1a1a;--color-bg-tertiary:#242424;--color-surface:#ffffff08;--color-surface-hover:#ffffff0f;--color-border:#ffffff14;--color-border-hover:#ffffff26;--color-text:#fff;--color-text-secondary:#a0a0a0;--color-text-muted:#666;--color-primary:#6366f1;--color-primary-hover:#818cf8;--color-primary-bg:#6366f11a;--color-success:#22c55e;--color-success-bg:#22c55e1a;--color-warning:#f59e0b;--color-warning-bg:#f59e0b1a;--color-danger:#ef4444;--color-danger-bg:#ef44441a;--color-info:#06b6d4;--color-info-bg:#06b6d41a;--glass-bg:#ffffff05;--glass-border:#ffffff0d;--glass-shadow:0 8px 32px #0000004d;--glass-blur:blur(12px);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100vw;font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;overflow-x:hidden}.glass-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);transition:transform .2s,box-shadow .2s;overflow:hidden}.glass-card:hover{box-shadow:0 12px 40px #0006}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--color-bg-secondary);border-right:1px solid var(--color-border);width:260px;height:100vh;transition:width var(--transition-normal)cubic-bezier(.4,0,.2,1);z-index:50;flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:visible}.sidebar-scroll-wrapper{padding:var(--spacing-lg);gap:var(--spacing-lg);flex-direction:column;flex:1;display:flex;overflow:hidden auto}.sidebar-scroll-wrapper::-webkit-scrollbar{display:none}.sidebar-header{justify-content:space-between;align-items:center;min-height:48px;display:flex}.sidebar-logo{align-items:center;gap:var(--spacing-md);display:flex;overflow:hidden}.brand-logo{background:linear-gradient(135deg,var(--color-primary),var(--color-info));border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:32px;min-width:32px;height:32px;font-size:1.2rem;font-weight:800;display:flex;box-shadow:0 4px 12px #6366f133}.brand-text{color:var(--color-text);white-space:nowrap;opacity:1;font-size:1.15rem;font-weight:700;transition:opacity .2s}.sidebar-nav{flex-direction:column;gap:6px;display:flex}.nav-item{align-items:center;gap:var(--spacing-md);color:var(--color-text-secondary);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;height:44px;padding:10px 12px;text-decoration:none;display:flex}.nav-item:hover{background:var(--color-surface-hover);color:var(--color-text)}.nav-item.active{background:var(--color-primary-bg);color:var(--color-primary)}.nav-icon-wrapper{justify-content:center;align-items:center;width:24px;height:24px;display:flex}.nav-item-icon{width:20px;height:20px}.sidebar-footer{padding-top:var(--spacing-md);border-top:1px solid var(--color-border);gap:var(--spacing-md);flex-direction:column;margin-top:auto;display:flex}.user-profile{align-items:center;gap:var(--spacing-md);display:flex;overflow:hidden}.user-avatar{background:var(--color-surface);border:1px solid var(--color-border);width:36px;min-width:36px;height:36px;color:var(--color-text);border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:600;display:flex}.user-info{flex-direction:column;flex:1;display:flex;overflow:hidden}.user-name{color:var(--color-text);white-space:nowrap;font-size:.85rem;font-weight:500}.user-email{color:var(--color-text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.75rem;overflow:hidden}.user-actions{align-items:center;display:flex}.logout-btn{align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);width:100%;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;height:40px;padding:8px 12px;transition:all .2s;display:flex}.logout-btn:hover{background:var(--color-surface);color:var(--color-danger)}.sidebar-toggle-btn{background:var(--color-bg-secondary);border:1px solid var(--color-border);width:24px;height:24px;color:var(--color-text-muted);cursor:pointer;z-index:100;border-radius:50%;justify-content:center;align-items:center;transition:all .2s;display:flex;position:absolute;top:36px;right:-12px;box-shadow:0 4px 8px #0003}.sidebar-toggle-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary);transform:scale(1.1)}body.sidebar-collapsed .sidebar{width:80px}body.sidebar-collapsed .brand-text,body.sidebar-collapsed .nav-item-label,body.sidebar-collapsed .user-info,body.sidebar-collapsed .logout-text,body.sidebar-collapsed .user-actions{opacity:0;width:0;display:none}body.sidebar-collapsed .sidebar-header,body.sidebar-collapsed .nav-item,body.sidebar-collapsed .user-profile,body.sidebar-collapsed .logout-btn{justify-content:center;padding-left:0;padding-right:0}body.sidebar-collapsed .nav-item{align-self:center;width:44px;padding:0}body.sidebar-collapsed .sidebar-logo{gap:0}body.sidebar-collapsed .logout-btn{align-self:center;width:36px;height:36px;padding:0}.main-content{padding:var(--spacing-xl);min-height:100vh;transition:margin-left var(--transition-normal)cubic-bezier(.4,0,.2,1);flex:1;margin-left:260px}body.sidebar-collapsed .main-content{margin-left:80px}.page-header{margin-bottom:var(--spacing-xl);justify-content:space-between;align-items:center;display:flex}.page-title{color:var(--color-text);font-size:1.75rem;font-weight:600}.page-subtitle{color:var(--color-text-secondary);margin-top:var(--spacing-xs);font-size:.95rem}.stats-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(240px,1fr));display:grid}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-normal)}.stat-card:hover{border-color:var(--color-border-hover);transform:translateY(-2px)}.stat-card-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;display:flex}.stat-card-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;min-height:42px;font-size:.875rem;line-height:1.4;display:block}.stat-card-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:40px;height:40px;display:flex}.stat-card-icon.primary{background:var(--color-primary-bg);color:var(--color-primary)}.stat-card-icon.success{background:var(--color-success-bg);color:var(--color-success)}.stat-card-icon.warning{background:var(--color-warning-bg);color:var(--color-warning)}.stat-card-icon.danger{background:var(--color-danger-bg);color:var(--color-danger)}.stat-card-icon.info{background:var(--color-info-bg);color:var(--color-info)}.stat-card-value{color:var(--color-text);font-size:1.75rem;font-weight:700;font-family:var(--font-mono)}.stat-card-change{margin-top:var(--spacing-xs);font-size:.8rem}.stat-card-change.positive{color:var(--color-success)}.stat-card-change.negative{color:var(--color-danger)}.table-container{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.table-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.table-title{font-size:1.125rem;font-weight:600}.table-actions{gap:var(--spacing-sm);display:flex}table{border-collapse:collapse;width:100%}thead{background:var(--color-surface)}th{padding:var(--spacing-md)var(--spacing-lg);text-align:left;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border);font-size:.8rem;font-weight:500}td{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--color-border);font-size:.95rem}tr:last-child td{border-bottom:none}tr:hover td{background:var(--color-surface-hover)}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);border:none;font-size:.875rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.btn-secondary:hover{background:var(--color-surface-hover);border-color:var(--color-border-hover)}.btn-ghost{color:var(--color-text-secondary);background:0 0}.btn-ghost:hover{background:var(--color-surface);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#dc2626}.btn-success{background:var(--color-primary);color:#fff}.btn-success:hover{background:var(--color-primary-hover)}.btn-success:disabled{background:var(--color-primary);opacity:.5;cursor:not-allowed}.btn-sm{padding:var(--spacing-xs)var(--spacing-sm);font-size:.8rem}.btn-lg{padding:var(--spacing-md)var(--spacing-xl);font-size:1rem}.badge{text-transform:uppercase;letter-spacing:.3px;border-radius:100px;align-items:center;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-flex}.badge-primary{background:var(--color-primary-bg);color:var(--color-primary)}.badge-success{background:var(--color-success-bg);color:var(--color-success)}.badge-warning{background:var(--color-warning-bg);color:var(--color-warning)}.badge-danger{background:var(--color-danger-bg);color:var(--color-danger)}.badge-info{background:var(--color-info-bg);color:var(--color-info)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);font-size:.875rem;font-weight:500;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:var(--spacing-md);color:var(--color-text);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:all var(--transition-fast);font-family:inherit;font-size:.95rem}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-bg);outline:none}.form-input::placeholder{color:var(--color-text-muted)}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23666666' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:16px;padding-right:40px}.form-textarea{resize:vertical;min-height:100px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;animation:fadeIn var(--transition-fast);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;animation:slideUp var(--transition-normal);overflow-y:auto}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:1.25rem;font-weight:600}.modal-close{color:var(--color-text-muted);cursor:pointer;padding:var(--spacing-sm);border-radius:var(--radius-sm);transition:all var(--transition-fast);background:0 0;border:none}.modal-close:hover{background:var(--color-surface);color:var(--color-text)}.modal-body{padding:var(--spacing-lg)}.modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--color-border);display:flex}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.text-muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.tabs{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-radius:var(--radius-md);background:#ffffff0d;width:fit-content;padding:4px;display:flex}.tab{border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-weight:500;transition:all .2s}.tab:hover{color:var(--color-text);background:#ffffff0d}.tab.active{background:var(--color-surface);color:var(--color-text);box-shadow:0 2px 8px #0003}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.text-primary{color:var(--color-primary)}.font-mono{font-family:var(--font-mono)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.empty-state{padding:var(--spacing-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state-icon{width:64px;height:64px;color:var(--color-text-muted);margin-bottom:var(--spacing-lg)}.empty-state-title{margin-bottom:var(--spacing-sm);font-size:1.25rem;font-weight:600}.empty-state-text{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.filters-bar{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-lg);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-wrap:wrap;display:flex}.filter-group{gap:var(--spacing-xs);flex-direction:column;min-width:150px;display:flex}.filter-label{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:.75rem}.category-dot{width:8px;height:8px;margin-right:var(--spacing-sm);border-radius:50%;display:inline-block}.amount{font-family:var(--font-mono);font-weight:500}.amount.income{color:var(--color-success)}.amount.expense{color:var(--color-danger)}.amount.neutral{color:var(--color-text)}@media (max-width:768px){.app-layout{flex-direction:column}.sidebar{transition:transform var(--transition-normal);z-index:100;width:280px;height:100vh;box-shadow:var(--glass-shadow);transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-content{padding:var(--spacing-md);width:100%;margin-left:0;padding-top:80px}.desktop-toggle{display:none}.mobile-close{display:inline-flex}.page-header{align-items:flex-start;gap:var(--spacing-md);flex-direction:column}.page-header>div:last-child{align-self:flex-start}.stats-grid{grid-template-columns:1fr}.glass-card{padding:var(--spacing-md)}.table-container{overflow-x:auto}table{min-width:600px}.mobile-toggle{top:var(--spacing-md);left:var(--spacing-md);z-index:90;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);padding:8px;display:flex;position:fixed}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:95;opacity:0;pointer-events:none;transition:opacity var(--transition-normal);background:#00000080;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1;pointer-events:auto}}@media (min-width:769px){.mobile-toggle,.sidebar-overlay{display:none}}
@media print{.sidebar,.filters-bar,.page-header a,.btn,.mobile-toggle,.sidebar-overlay{display:none!important}body{color:#000;background-color:#fff}.app-layout{padding:0;display:block}.content-area{max-width:100%;margin:0;padding:20px}.table-container{box-shadow:none;border:1px solid #ddd}table{font-size:10pt}canvas{max-height:400px}}
