@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Outfit:wght@700;800&display=swap";:root{--font-main: "Inter", system-ui, sans-serif;--font-fancy: "Outfit", sans-serif;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--text-primary: #1e293b;--text-secondary: #475569;--text-muted: #94a3b8;--border-primary: #e2e8f0;--accent-primary: #2563eb;--accent-hover: #1d4ed8;--danger: #ef4444;--danger-hover: #dc2626;--success: #10b981;--success-hover: #059669;font-family:var(--font-main);line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}[data-theme=dark]{--bg-primary: #0f172a;--bg-secondary: #1e293b;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-muted: #64748b;--border-primary: #334155;--accent-primary: #3b82f6;--accent-hover: #60a5fa}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;width:100%;min-width:320px;min-height:100vh}#root{width:100%}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--accent-primary);color:#fff;cursor:pointer;transition:all .2s ease;white-space:nowrap;min-height:2.5rem}button:hover{background-color:var(--accent-hover)}button:focus,button:focus-visible{outline:2px solid var(--accent-primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed;background-color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;font-weight:500;min-height:2.25rem}.btn-primary{background-color:#2563eb;color:#fff;border:none}.btn-secondary{background-color:#e5e7eb;color:#374151;border:none}.btn-secondary:hover:not(:disabled){background-color:#d1d5db}.btn-danger{background-color:#ef4444;color:#fff;border:none}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-success{background-color:#10b981;color:#fff;border:none}.btn-success:hover:not(:disabled){background-color:#059669}.btn-outline{background-color:transparent;color:#2563eb;border:1px solid #2563eb}.btn-outline:hover:not(:disabled){background-color:#eff6ff}.btn-sm{padding:.375rem .75rem;font-size:.75rem;min-height:1.75rem}.btn-lg{padding:.75rem 1.5rem;font-size:1rem;min-height:2.75rem}@media(prefers-color-scheme:light){:root{color:var(--text-primary);background-color:var(--bg-primary)}}.login-container{display:flex!important;justify-content:center!important;align-items:center!important;min-height:100vh!important;width:100vw!important;position:fixed!important;top:0!important;left:0!important;background:linear-gradient(135deg,#4f46e5,#7c3aed,#9333ea);padding:20px;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;overflow-y:auto}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 45px #0000002e,0 4px 12px #00000014;padding:36px;width:100%;max-width:440px;display:flex;flex-direction:column;box-sizing:border-box;margin:auto;animation:fadeInCard .3s ease-out}@keyframes fadeInCard{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.login-title{margin:0 0 24px!important;font-size:32px;font-weight:800;letter-spacing:-.5px;background:linear-gradient(135deg,#4f46e5,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-align:center}.login-form{display:flex;flex-direction:column;width:100%;gap:16px}.form-group{display:flex;flex-direction:column;gap:6px;width:100%}.form-group label{font-size:13.5px;font-weight:600;color:#374151;text-align:left}.form-group input{width:100%!important;padding:12px 14px;height:44px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:14.5px;font-family:inherit;transition:all .2s ease;background-color:#f9fafb;color:#111827;box-sizing:border-box;display:block}.form-group input::placeholder{color:#9ca3af;font-weight:400}.form-group input:hover{border-color:#cbd5e1;background-color:#fff}.form-group input:focus{outline:none;border-color:#6366f1;background-color:#fff;box-shadow:0 0 0 3px #6366f126}.form-group input:disabled{background-color:#f3f4f6;cursor:not-allowed;opacity:.6}.form-group input:-webkit-autofill,.form-group input:-webkit-autofill:hover,.form-group input:-webkit-autofill:focus,.form-group input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px white inset!important;-webkit-text-fill-color:#111827!important;border:1.5px solid #e5e7eb!important;border-radius:8px!important}.error-message{padding:10px 14px;background-color:#fef2f2;color:#b91c1c;border-radius:8px;font-size:13.5px;border:1px solid #fecaca;text-align:left}.login-button{width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:12px 16px!important;height:46px!important;background:linear-gradient(135deg,#4f46e5,#7c3aed)!important;color:#fff!important;border:none!important;border-radius:8px!important;font-size:15px!important;font-weight:600!important;cursor:pointer!important;transition:all .2s ease!important;margin-top:6px!important;box-shadow:0 4px 12px #4f46e540!important}.login-button:hover:not(:disabled){background:linear-gradient(135deg,#4338ca,#6d28d9)!important;transform:translateY(-1px);box-shadow:0 6px 16px #4f46e559!important}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{opacity:.6;cursor:not-allowed}.divider{display:flex;align-items:center;margin:20px 0 16px;color:#9ca3af;font-size:13px;width:100%}.divider:before,.divider:after{content:"";flex:1;height:1px;background-color:#e5e7eb}.divider span{padding:0 12px;font-weight:500;text-transform:lowercase}.google-button-wrapper{width:100%;display:flex;justify-content:center;margin-bottom:16px}.google-login-button{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px!important;width:100%!important;height:44px!important;padding:10px 16px!important;background-color:#fff!important;border:1.5px solid #e5e7eb!important;border-radius:8px!important;font-size:14.5px!important;font-weight:600!important;color:#374151!important;text-decoration:none!important;cursor:pointer!important;transition:all .2s ease!important;box-sizing:border-box!important}.google-login-button:hover{background-color:#f9fafb!important;border-color:#cbd5e1!important;color:#111827!important;transform:translateY(-1px);box-shadow:0 2px 6px #0000000d}.google-login-button:active{background-color:#f3f4f6!important;transform:translateY(0)}.login-footer{margin-top:10px;text-align:center;font-size:13.5px;color:#6b7280}.login-footer p{margin:0}.toggle-button{background:none;border:none;color:#4f46e5;cursor:pointer;font-weight:600;font-size:13.5px;padding:0;margin-left:4px;text-decoration:none;transition:color .2s}.toggle-button:hover:not(:disabled){color:#7c3aed;text-decoration:underline}.toggle-button:disabled{opacity:.7;cursor:not-allowed}@media(max-width:480px){.login-card{padding:28px 22px;border-radius:14px}.login-title{font-size:28px;margin-bottom:20px!important}}.transaction-form-container{background-color:#fff;border-bottom:1px solid #e5e7eb;padding:10px;width:100%;box-sizing:border-box}.transaction-form{display:flex!important;flex-wrap:wrap!important;flex-direction:row!important;align-items:flex-end!important;gap:4px!important;width:100%!important;box-sizing:border-box!important}.transaction-form-container .transaction-form .form-group{display:flex!important;flex-direction:column!important;gap:2px!important;margin:0!important;padding:0!important;flex:0 0 calc(25% - 4px)!important;min-width:0!important;width:calc(25% - 4px)!important}.submit-btn{flex:0 0 calc(25% - 4px)!important;height:34px!important;background-color:#10b981!important;color:#fff!important;border:none!important;border-radius:4px!important;font-size:.85rem!important;font-weight:600!important;cursor:pointer!important;white-space:nowrap!important;transition:background-color .2s!important;padding:0 4px!important}@media(min-width:1024px){.transaction-form{flex-wrap:nowrap}.transaction-form-container .transaction-form .form-group{flex:1!important;min-width:0!important}.transaction-form-container .transaction-form .form-group:nth-child(6){flex:1!important}.submit-btn{flex:0 0 auto!important;width:auto!important;padding:0 20px}}.form-group label{font-size:.7rem;font-weight:600;color:#4b5563;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-form input[type=date],.transaction-form input[type=number],.transaction-form input[type=text],.transaction-form select{width:100%!important;height:34px!important;padding:0 4px!important;border:1px solid #d1d5db!important;border-radius:4px!important;font-size:.8rem!important;background-color:#fff!important;color:#1f2937!important;box-sizing:border-box!important}*{box-sizing:border-box}html,body,#root,.layout{margin:0;padding:0}h1,h2,h3,h4,h5,h6,p{margin:0}html{margin:0!important;padding:0!important;width:100%;height:100%;overflow:hidden;box-sizing:border-box}body{margin:0!important;padding:0;width:100%;height:100%;overflow:hidden;border:0}#root{width:100%;height:100%;margin:0!important;padding:0;display:flex;overflow:hidden}.layout{display:flex;height:100%;width:100%;background-color:var(--bg-secondary);margin:0!important;padding:0;overflow:hidden;position:relative;transition:background-color .3s ease}.sidebar{background-color:#2563eb;color:#fff;display:flex;flex-direction:column;border-right:1px solid #1e40af;transition:transform .3s ease;overflow-y:auto;position:fixed;left:0;top:0;height:100%;width:200px;z-index:40}.sidebar.open{transform:translate(0)}.sidebar.closed{transform:translate(-200px)}.sidebar-header{height:64px;display:flex;align-items:center;justify-content:center;padding:0 .5rem;border-bottom:1px solid #1e40af;flex-shrink:0;margin:0;position:relative}.sidebar-header h1{font-size:1.25rem;font-weight:700;text-align:center;flex:1}.sidebar-header .toggle-btn{position:absolute;right:.5rem}.toggle-btn{background:none;border:none;color:#fff;cursor:pointer;padding:.25rem;font-size:1.25rem;transition:background-color .2s;border-radius:.375rem}.toggle-btn:hover{background-color:#ffffff1a}.sidebar-nav{flex:1;padding:.5rem 0;space-y:.5rem;display:flex;flex-direction:column;gap:0}.nav-link{display:flex;align-items:center;gap:1rem;padding:.5rem .75rem;color:#fff;text-decoration:none;border-radius:0;transition:background-color .2s;font-size:.95rem;margin:0}.nav-link:hover,.nav-link.active{background-color:#1e40af}.nav-link .icon{font-size:1.25rem;min-width:1.5rem}.sidebar.closed .nav-link{padding:.5rem;justify-content:center}.sidebar-groups{border-top:1px solid #1e40af;padding:1rem .5rem;flex-shrink:0}.groups-label{font-size:.75rem;font-weight:600;color:#bfdbfe;padding:.5rem 1rem;margin-bottom:.5rem}.groups-list{display:flex;flex-direction:column;gap:.5rem;max-height:160px;overflow-y:auto;margin-bottom:.75rem}.group-item{display:flex;align-items:center;gap:.25rem;width:100%}.invite-btn{flex:1;background-color:#3b82f6;border:none;color:#fff;cursor:pointer;padding:.5rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;transition:background-color .2s;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invite-btn:hover{background-color:#2563eb}.create-group-btn{width:100%;padding:.5rem .75rem;background-color:#10b981;border:none;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;border-radius:.375rem;transition:background-color .2s}.create-group-btn:hover{background-color:#059669}.sidebar-subcategories{border-top:1px solid #1e40af;padding:1rem .5rem;flex:1;overflow-y:auto;display:flex;flex-direction:column}.subcategories-label{font-size:.75rem;font-weight:600;color:#bfdbfe;padding:.5rem 1rem;margin-bottom:.5rem}.main-categories-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.main-cat-btn{text-align:left;padding:.5rem .75rem;background:none;border:none;color:#fff;font-size:.875rem;cursor:pointer;border-radius:.375rem;transition:background-color .2s;font-weight:500}.main-cat-btn:hover{background-color:#1e40af}.main-cat-btn.active{background-color:#3b82f6;font-weight:600}.sub-categories-section{display:flex;flex-direction:column;gap:.75rem;flex:1;min-height:0}.sub-cat-header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}.sub-cat-header h4{margin:0;font-size:.875rem;font-weight:600;color:#bfdbfe;text-transform:uppercase;letter-spacing:.5px}.add-sub-cat-btn{background-color:#10b981;border:none;color:#fff;cursor:pointer;padding:.25rem .5rem;border-radius:.375rem;font-size:.875rem;font-weight:600;transition:background-color .2s}.add-sub-cat-btn:hover{background-color:#059669}.sub-categories-list{display:flex;flex-direction:column;gap:.5rem;overflow-y:auto;flex:1}.sub-cat-item{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem;background-color:#ffffff1a;border-radius:.375rem;transition:background-color .2s}.sub-cat-item:hover{background-color:#ffffff26}.sub-cat-name{font-size:.875rem;color:#fff;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edit-btn,.delete-btn{background:none;border:none;color:#fff;cursor:pointer;font-size:.75rem;padding:.25rem;transition:opacity .2s}.edit-btn:hover,.delete-btn:hover{opacity:.7}.no-subcategories{font-size:.875rem;color:#9ca3af;text-align:center;padding:1rem .5rem;margin:0}.sidebar-footer{border-top:1px solid #1e40af;padding:1rem .5rem;flex-shrink:0}.logout-btn{width:100%;padding:.5rem .75rem;background-color:#ef4444;border:none;color:#fff;cursor:pointer;font-size:.875rem;font-weight:500;border-radius:.375rem;transition:background-color .2s}.logout-btn:hover{background-color:#dc2626}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;overflow-y:auto;overflow-x:hidden;width:100%;min-height:0;margin:0!important}.page-header{background:var(--bg-primary);border-bottom:1px solid var(--border-primary);display:flex;flex-direction:column;padding:0;flex-shrink:0;width:100%;z-index:30}.mobile-header{display:none;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top,0px) + .65rem) 1.25rem .65rem 1.25rem;background:var(--accent-primary);color:#fff}.mobile-header .logo-text{margin:0}.logo-text.fancy{font-family:var(--font-fancy);font-size:2.25rem;font-weight:800;letter-spacing:-1.5px;background:linear-gradient(135deg,#fff,#cbd5e1);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 4px 12px rgba(0,0,0,.15);line-height:1}@media(max-width:640px){.logo-text.fancy{font-size:1.75rem;letter-spacing:-1px}}.desktop-nav .logo-text.fancy{font-size:1.875rem;background:linear-gradient(135deg,var(--accent-primary) 0%,#1d4ed8 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;margin-right:2.5rem;letter-spacing:-1px}.desktop-logo{display:flex;align-items:center;padding-left:.5rem}.nav-links{display:flex;align-items:center;gap:.5rem;flex:1}.mobile-actions{display:flex;align-items:center;gap:.5rem}.action-btn{background:none;border:none;color:#fff;padding:.5rem;cursor:pointer;display:flex;align-items:center}.page-header-nav{display:flex;align-items:center;justify-content:flex-start;padding:.5rem 1.5rem;width:100%;gap:.5rem;background:var(--bg-primary)}.nav-divider{width:1px;height:24px;background-color:var(--border-primary);margin:0 .5rem}.page-nav-link{display:flex;align-items:center;gap:.625rem;padding:.5rem .875rem;color:var(--text-secondary);text-decoration:none;border-radius:.5rem;transition:all .2s ease;font-size:.9rem;font-weight:500;white-space:nowrap}.page-nav-link:hover{background-color:var(--bg-secondary);color:var(--accent-primary)}.page-nav-link.active{background-color:#2563eb1a;color:var(--accent-primary)}.page-nav-link{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;color:#475569;text-decoration:none;border-radius:.5rem;transition:all .3s ease;font-size:.95rem;font-weight:500;white-space:nowrap;border:1.5px solid transparent}.page-nav-link:hover{background-color:#e0e7ff;color:#2563eb;transform:translateY(-1px)}.page-nav-link.active{background-color:#2563eb;color:#fff;border-color:#1d4ed8;box-shadow:0 2px 8px #2563eb33}.page-nav-link .icon{font-size:1.25rem;display:flex;align-items:center;justify-content:center;min-width:1.5rem}.page-nav-link span:last-child{text-align:center}.page-nav-link.icon-only{padding:.625rem .875rem}.page-nav-link.icon-only .icon{font-size:1.4rem}.page-title{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin:0;padding:.75rem 1.5rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.desktop-only{display:block}@media(max-width:768px){.desktop-only{display:none}}.expand-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);border:none;color:#fff;cursor:pointer;width:3rem;height:3rem;padding:0;font-size:1.5rem;transition:all .3s ease;border-radius:50%;flex-shrink:0;box-shadow:0 2px 8px #2563eb4d;display:flex;align-items:center;justify-content:center}.expand-btn:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);box-shadow:0 4px 12px #2563eb66;transform:scale(1.1)}.expand-btn:active{transform:scale(.95)}.page-header h2{font-size:0;font-weight:700;color:#1f2937;display:none}.current-group{text-align:right}.group-label{font-size:.75rem;color:#6b7280;margin-bottom:.25rem}.current-group .group-name{font-size:1.125rem;font-weight:600;color:#2563eb;background:none;border:none;padding:0;cursor:default}.page-content{flex:1;overflow:visible;padding:2rem 0;width:100%;max-width:1400px;box-sizing:border-box;display:flex;flex-direction:column}.page-footer{width:100%;height:200px;background-color:#1f2937;border-top:1px solid #374151;padding:1rem 2rem;text-align:center;color:#9ca3af;font-size:.875rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.page-footer p{margin:0}@media(max-width:768px){.mobile-header{display:flex}.desktop-nav{display:none}.main-content{height:auto;min-height:100vh;overflow-y:visible;align-items:stretch}.page-header{border-bottom:none;position:sticky;top:0;z-index:30}.page-content{padding:.5rem;overflow-y:visible;flex:1}}.modal{background-color:var(--bg-primary);color:var(--text-primary);border-radius:1rem;border:1px solid var(--border-primary)}.modal-header h3{color:var(--text-primary)}.settings-content{display:flex;flex-direction:column;gap:1.5rem}.settings-section h4{font-size:.75rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;margin-bottom:.75rem}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0}.setting-info{display:flex;flex-direction:column}.setting-label{font-weight:600;font-size:.95rem}.setting-desc{font-size:.8rem;color:var(--text-muted)}.theme-toggle-switch{width:54px;height:28px;border-radius:14px;padding:3px;background-color:#cbd5e1;border:none;position:relative;transition:background-color .3s;cursor:pointer}.theme-toggle-switch.dark{background-color:#2563eb}.switch-handle{width:22px;height:22px;background-color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#64748b;transition:transform .3s}.dark .switch-handle{transform:translate(26px);color:#2563eb}.logout-btn-alt{width:100%;justify-content:center;margin-top:1rem}.mobile-menu-overlay{position:fixed;inset:0;background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;display:flex}.mobile-sidebar{width:280px;height:100%;background-color:var(--bg-primary);display:flex;flex-direction:column;box-shadow:10px 0 25px #0003;animation:slideIn .3s ease-out}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-sidebar-header{padding:1.5rem;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--border-primary)}.mobile-sidebar-header .logo-text{color:var(--accent-primary);margin:0}.mobile-sidebar-header button{background:none;border:none;color:var(--text-muted)}.mobile-nav{padding:1rem;display:flex;flex-direction:column;gap:.25rem}.mobile-nav-link{display:flex;align-items:center;gap:1rem;padding:.875rem 1rem;color:var(--text-primary);text-decoration:none;border-radius:.75rem;font-weight:500;background:none;border:none;width:100%;text-align:left}.mobile-nav-link .chevron{margin-left:auto;color:var(--text-muted)}.mobile-nav-link:hover,.mobile-nav-link.active{background-color:var(--bg-secondary);color:var(--accent-primary)}.mobile-nav-link.danger{color:var(--danger);margin-top:1rem}.mobile-nav-divider{height:1px;background-color:var(--border-primary);margin:1rem 0}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:50}.modal{background-color:var(--bg-primary);color:var(--text-primary);border-radius:.5rem;box-shadow:0 10px 25px #0000001a;padding:1.5rem;width:100%;max-width:384px}.modal h3{font-size:1.125rem;font-weight:700;color:var(--text-primary);margin-bottom:1rem}.form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column}.form-group label{font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.25rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-info{background-color:#eff6ff;border:1px solid #bfdbfe;border-radius:.375rem;padding:.75rem}.form-info p{font-size:.875rem;color:#1f2937}.btn{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-primary{background-color:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-primary:disabled{background-color:#9ca3af;cursor:not-allowed}.btn-secondary{background-color:#e5e7eb;color:#374151}.btn-secondary:hover{background-color:#d1d5db}.sidebar::-webkit-scrollbar,.groups-list::-webkit-scrollbar,.page-content::-webkit-scrollbar{width:6px}.sidebar::-webkit-scrollbar-track,.groups-list::-webkit-scrollbar-track,.page-content::-webkit-scrollbar-track{background:transparent}.sidebar::-webkit-scrollbar-thumb,.groups-list::-webkit-scrollbar-thumb,.page-content::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:3px}.page-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.sidebar::-webkit-scrollbar-thumb:hover,.groups-list::-webkit-scrollbar-thumb:hover,.page-content::-webkit-scrollbar-thumb:hover{background:#ffffff80}.page-content::-webkit-scrollbar-thumb:hover{background:#94a3b8}button.page-nav-link{border:1.5px solid transparent;background:none;cursor:pointer}button.page-nav-link:disabled{opacity:.5;cursor:not-allowed}button.page-nav-link:disabled:hover{background-color:transparent;transform:none}.calculator-modal{background-color:#1f2937;border-radius:1.25rem;box-shadow:0 25px 50px #00000040;width:360px;overflow:hidden}.calculator-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background-color:#374151}.calculator-header h3{color:#fff;font-size:1.25rem;font-weight:600;margin:0}.calc-close-btn{background:none;border:none;color:#9ca3af;font-size:2rem;cursor:pointer;padding:0;line-height:1;transition:color .2s}.calc-close-btn:hover{color:#fff}.calculator-display{background-color:#111827;color:#fff;font-size:2.5rem;font-weight:300;text-align:right;padding:1.25rem 1.5rem;min-height:80px;word-break:break-all;font-family:SF Mono,Monaco,Consolas,monospace}.calculator-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background-color:#374151;padding:2px}.calc-btn{background-color:#4b5563;border:none;color:#fff;font-size:1.5rem;padding:1.5rem;cursor:pointer;transition:background-color .15s;font-weight:500}.calc-btn:hover{background-color:#6b7280}.calc-btn:active{background-color:#374151}.calc-btn.calc-op{background-color:#f97316;color:#fff}.calc-btn.calc-op:hover{background-color:#fb923c}.calc-btn.calc-clear{background-color:#ef4444;color:#fff}.calc-btn.calc-clear:hover{background-color:#f87171}.calc-btn.calc-equals{background-color:#10b981;color:#fff;grid-row:span 2}.calc-btn.calc-equals:hover{background-color:#34d399}.calc-btn.calc-zero{grid-column:span 2}.calc-btn.calc-plus{grid-row:span 2}.transaction-modal{max-width:680px;width:95%;padding:0;overflow:hidden;border-radius:.75rem;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-primary, #e2e8f0);box-shadow:0 20px 25px -5px #00000040,0 10px 10px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.25rem;background:linear-gradient(135deg,#0f172a,#1e293b);border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{margin:0;font-size:1.05rem;font-weight:700;color:#fff!important;letter-spacing:-.01em}.modal-close-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#cbd5e1;font-size:1.25rem;cursor:pointer;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;line-height:1;transition:all .2s ease}.modal-close-btn:hover{background:#ef444433;border-color:#ef444466;color:#ef4444}.add-transaction-btn{background:linear-gradient(135deg,#10b981,#059669);color:#fff!important;border:none!important;box-shadow:0 2px 8px #10b9814d}.add-transaction-btn:hover{background:linear-gradient(135deg,#059669,#047857)!important;transform:translateY(-2px);box-shadow:0 4px 12px #10b98166}.expense-calendar-wrapper{display:flex;flex-direction:column;gap:1.25rem;width:100%}.calendar-top-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.5rem .25rem}.calendar-nav-controls{display:flex;align-items:center;gap:.6rem}.calendar-nav-btn{background:var(--bg-primary, #0f172a);border:1px solid var(--border-primary, rgba(148, 163, 184, .2));color:var(--text-primary, #f1f5f9);padding:.35rem .75rem;border-radius:.5rem;font-size:.85rem;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.calendar-nav-btn:hover{background:#2563eb;border-color:#2563eb;color:#fff;transform:translateY(-1px)}.calendar-month-heading{display:flex;align-items:baseline;gap:.5rem;min-width:160px;text-align:center;justify-content:center}.calendar-month-name{font-size:1.25rem;font-weight:800;color:var(--text-primary, #ffffff);letter-spacing:-.02em}.calendar-year-name{font-size:1rem;font-weight:600;color:var(--text-secondary, #94a3b8)}.calendar-today-btn{background:#2563eb26;border:1px solid rgba(59,130,246,.4);color:#38bdf8;font-size:.75rem;font-weight:700;padding:.3rem .65rem;border-radius:.4rem;cursor:pointer;transition:all .2s ease}.calendar-today-btn:hover{background:#2563eb;color:#fff}.calendar-stat-badges{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.stat-pill{display:flex;flex-direction:column;padding:.4rem .75rem;border-radius:.5rem;background:var(--bg-primary, rgba(15, 23, 42, .6));border:1px solid var(--border-primary, rgba(148, 163, 184, .15));min-width:105px}.stat-pill .stat-label{font-size:.68rem;font-weight:600;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.03em}.stat-pill .stat-val{font-size:.95rem;font-weight:800;color:var(--text-primary, #ffffff)}.text-emerald{color:#10b981!important}.text-amber{color:#f59e0b!important}.calendar-progress-track{width:100%;height:18px;background:#94a3b81f;border-radius:9999px;overflow:hidden;position:relative}.calendar-progress-bar{height:100%;background:linear-gradient(90deg,#10b981,#059669);border-radius:9999px;transition:width .4s ease;display:flex;align-items:center;justify-content:flex-end;padding-right:.5rem}.calendar-progress-text{font-size:.68rem;font-weight:700;color:#fff;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.4)}.calendar-grid-container{display:flex;flex-direction:column;border-radius:.75rem;border:1px solid var(--border-primary, rgba(148, 163, 184, .18));background:var(--bg-primary, rgba(15, 23, 42, .5));overflow:hidden;box-shadow:0 4px 16px #00000026}.calendar-weekdays-header{display:grid;grid-template-columns:repeat(7,1fr);background:#1e293bb3;border-bottom:1px solid var(--border-primary, rgba(148, 163, 184, .15))}.calendar-weekday-cell{padding:.6rem .4rem;text-align:center;font-size:.78rem;font-weight:700;color:var(--text-secondary, #94a3b8);text-transform:uppercase;letter-spacing:.05em}.calendar-weekday-cell.weekend{color:#38bdf8}.calendar-days-grid{display:grid;grid-template-columns:repeat(7,1fr);background:var(--border-primary, rgba(148, 163, 184, .1));gap:1px}.calendar-day-cell{min-height:95px;background:var(--bg-secondary, #1e293b);padding:.45rem;display:flex;flex-direction:column;justify-content:space-between;cursor:pointer;transition:all .15s ease;position:relative}.calendar-day-cell:hover{background:#334155cc;z-index:2}.calendar-day-cell.empty-cell{background:#0f172a66;cursor:default}.calendar-day-cell.is-today{box-shadow:inset 0 0 0 2px #38bdf8;background:#1e3a6666}.calendar-day-cell.is-selected{box-shadow:inset 0 0 0 2px #60a5fa,0 0 12px #60a5fa66;background:#2563eb2e!important;z-index:3}.calendar-day-cell.has-bills{background:#1e293bf2}.day-cell-header{display:flex;align-items:center;justify-content:space-between;gap:.25rem;margin-bottom:.3rem}.day-number{font-size:.85rem;font-weight:700;color:var(--text-primary, #e2e8f0)}.today-number{color:#38bdf8!important}.today-chip{font-size:.6rem;font-weight:800;background:#0284c7;color:#fff;padding:.1rem .35rem;border-radius:.25rem;letter-spacing:.03em}.day-bills-count-dot{font-size:.65rem;font-weight:700;background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.4);padding:0 .35rem;border-radius:9999px;line-height:1.2}.day-bills-list{display:flex;flex-direction:column;gap:.25rem;flex:1}.bill-mini-chip{display:flex;align-items:center;gap:.25rem;padding:.15rem .3rem;border-radius:.3rem;font-size:.7rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 1px 2px #00000026}.bill-mini-chip.status-paid{background:#10b98126;border:1px solid rgba(16,185,129,.4);color:#34d399}.bill-mini-chip.status-today{background:#f59e0b40;border:1px solid rgba(245,158,11,.6);color:#fbbf24;animation:pulse-border 2s infinite}.bill-mini-chip.status-overdue{background:#ef444433;border:1px solid rgba(239,68,68,.5);color:#f87171}.bill-mini-chip.status-upcoming{background:#3b82f626;border:1px solid rgba(59,130,246,.35);color:#93c5fd}@keyframes pulse-border{0%{box-shadow:0 0 #f59e0b66}70%{box-shadow:0 0 0 4px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}.bill-icon{font-size:.75rem}.bill-name-cut{flex:1;overflow:hidden;text-overflow:ellipsis}.bill-amount-cut{font-weight:700}.bill-check-mark{color:#10b981;font-weight:900}.bill-more-chip{font-size:.65rem;color:var(--text-secondary, #94a3b8);font-weight:600;padding:.1rem .2rem;text-align:right}.day-cell-footer{margin-top:.3rem;text-align:right}.day-due-total{font-size:.72rem;font-weight:800;color:#ef4444;background:#ef44441a;padding:.1rem .35rem;border-radius:.25rem}.day-cell-footer.tx-only{text-align:left}.day-tx-count{font-size:.65rem;color:var(--text-secondary, #94a3b8);font-weight:600}.calendar-day-details-panel{background:var(--bg-primary, #0f172a);border:1px solid var(--border-primary, rgba(148, 163, 184, .25));border-radius:.75rem;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;box-shadow:0 8px 24px #00000040;animation:fadeIn .2s ease-in-out}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.details-panel-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-primary, rgba(148, 163, 184, .15));padding-bottom:.75rem}.details-title-area{display:flex;align-items:center;gap:.5rem}.details-date-icon{font-size:1.3rem}.details-title-area h4{font-size:1.1rem;font-weight:800;color:var(--text-primary, #ffffff);margin:0}.details-close-btn{background:#94a3b826;border:none;color:var(--text-secondary, #94a3b8);width:28px;height:28px;border-radius:9999px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.details-close-btn:hover{background:#ef444433;color:#f87171}.details-content-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}@media(max-width:860px){.details-content-grid{grid-template-columns:1fr}}.details-section-title{display:flex;align-items:center;justify-content:space-between;font-size:.85rem;font-weight:700;color:var(--text-secondary, #94a3b8);text-transform:uppercase;margin:0 0 .75rem;letter-spacing:.04em}.badge-count{background:#3b82f633;color:#60a5fa;padding:.1rem .45rem;border-radius:9999px;font-size:.72rem}.no-details-msg{font-size:.85rem;color:var(--text-secondary, #64748b);font-style:italic;padding:.5rem 0}.scheduled-bills-cards{display:flex;flex-direction:column;gap:.6rem}.scheduled-bill-card{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-radius:.6rem;background:var(--bg-secondary, #1e293b);border:1px solid var(--border-primary, rgba(148, 163, 184, .15));transition:all .2s ease}.scheduled-bill-card.paid{border-left:4px solid #10b981}.scheduled-bill-card.due{border-left:4px solid #f59e0b}.bill-card-left{display:flex;align-items:center;gap:.75rem}.bill-big-icon{font-size:1.4rem}.bill-text-box{display:flex;flex-direction:column;gap:.15rem}.bill-primary-name{font-size:.95rem;font-weight:700;color:var(--text-primary, #ffffff)}.bill-secondary-meta{font-size:.75rem;color:var(--text-secondary, #94a3b8)}.recurring-tag{color:#38bdf8;font-weight:600}.bill-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem}.bill-card-amount{font-size:1.1rem;font-weight:800;color:var(--text-primary, #ffffff)}.status-badge{font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:9999px;line-height:1.2}.status-badge.paid{background:#10b98133;color:#34d399;border:1px solid rgba(16,185,129,.4)}.status-badge.today{background:#f59e0b33;color:#fbbf24;border:1px solid rgba(245,158,11,.4)}.status-badge.overdue{background:#ef444433;color:#f87171;border:1px solid rgba(239,68,68,.4)}.status-badge.upcoming{background:#3b82f633;color:#93c5fd;border:1px solid rgba(59,130,246,.4)}.day-transactions-list{display:flex;flex-direction:column;gap:.45rem}.day-tx-card{display:flex;align-items:center;justify-content:space-between;padding:.5rem .75rem;border-radius:.5rem;background:var(--bg-secondary, #1e293b);border:1px solid var(--border-primary, rgba(148, 163, 184, .1))}.tx-card-left{display:flex;align-items:center;gap:.5rem;overflow:hidden}.tx-type-pill{font-size:.65rem;font-weight:800;padding:.1rem .35rem;border-radius:.25rem;text-transform:uppercase}.tx-type-pill.expense{background:#ef444433;color:#f87171}.tx-type-pill.income{background:#10b98133;color:#34d399}.tx-type-pill.loan{background:#f59e0b33;color:#fbbf24}.tx-desc{font-size:.82rem;font-weight:600;color:var(--text-primary, #ffffff);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-card-right{white-space:nowrap}.tx-amount{font-size:.9rem;font-weight:700}.text-negative{color:#ef4444}.text-positive{color:#10b981}@media(max-width:640px){.calendar-day-cell{min-height:65px;padding:.25rem}.bill-name-cut{display:none}.bill-mini-chip{font-size:.6rem;padding:.1rem .2rem}.calendar-month-name{font-size:1.05rem}.calendar-stat-badges{width:100%;justify-content:space-between}.stat-pill{min-width:0;flex:1}}.dashboard-container{min-height:100vh;background:var(--bg-secondary);font-family:var(--font-main);color:var(--text-primary)}.dashboard-header{display:flex;justify-content:space-between;align-items:center;padding:20px 40px;background:var(--bg-primary);border-bottom:1px solid var(--border-primary);box-shadow:0 2px 8px #0000000d}.header-left{display:flex;align-items:center;gap:16px}.back-button{padding:8px 12px;background:none;border:1px solid #ddd;border-radius:6px;cursor:pointer;font-size:20px;transition:all .2s}.back-button:hover{background:#f5f5f5;border-color:#667eea;color:#667eea}.dashboard-header h1{margin:0;font-size:28px;font-weight:600;color:var(--text-primary)}.logout-button{padding:8px 16px;background:#e0e0e0;color:#333;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.logout-button:hover{background:#d0d0d0}.dashboard-content{max-width:1200px;margin:0 auto;padding:1rem .75rem}.month-selector{display:flex;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.4rem .85rem;background:var(--bg-primary);border-radius:.5rem;border:1px solid var(--border-primary)}.month-selector h3{margin:0;font-size:1.05rem;font-weight:600;color:var(--text-primary);min-width:auto;text-align:center}.month-btn{padding:.28rem .75rem;background:#2563eb;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-weight:600;font-size:.825rem;min-height:auto;transition:all .2s;line-height:1.2;display:inline-flex;align-items:center;justify-content:center}.month-btn:hover:not(:disabled){background:#1d4ed8;box-shadow:0 2px 8px #2563eb4d}.month-btn:disabled{background:#9ca3af;cursor:not-allowed;opacity:.5}.date-range-selector{display:flex;justify-content:center;align-items:center;gap:.35rem;margin-bottom:.6rem;flex-wrap:wrap;padding:.15rem 0}.range-btn{padding:.26rem .65rem;border:1px solid var(--border-primary);background:var(--bg-primary);border-radius:9999px;font-size:.75rem;font-weight:500;color:var(--text-secondary);cursor:pointer;min-height:auto;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 1px 2px #0000000d;white-space:nowrap}.range-btn:hover{border-color:#cbd5e1;color:#334155;transform:translateY(-1px)}.range-btn.active{background:#2563eb;color:#fff;border-color:#2563eb;box-shadow:0 2px 8px #2563eb40}.custom-date-filter{display:flex;justify-content:center;align-items:flex-end;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--bg-primary);opacity:.95;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-primary);border-radius:1rem;box-shadow:0 4px 20px #00000008;flex-wrap:wrap}.advanced-search-panel{flex-direction:column;align-items:stretch;max-width:900px;margin-left:auto;margin-right:auto;gap:1rem}.search-row{display:flex;gap:1.5rem;flex-wrap:wrap}.search-row .filter-group{flex:1;min-width:180px}.desc-group{flex:2!important}.search-select,.search-input{padding:.6rem 1rem;border:1px solid var(--border-primary);border-radius:.5rem;font-size:.875rem;color:var(--text-primary);background:var(--bg-primary);width:100%;transition:all .2s}.search-select:focus,.search-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a;outline:none}.search-actions{display:flex;justify-content:center;gap:1rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid #f1f5f9}.clear-search-btn{padding:.6rem 1.5rem;background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.clear-search-btn:hover{background:#e2e8f0;color:#334155}.custom-date-filter .filter-group{display:flex;flex-direction:column;gap:.5rem}.custom-date-filter label{font-size:.75rem;font-weight:600;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.custom-date-filter .date-input{padding:.6rem 1rem;border:1px solid var(--border-primary);border-radius:.5rem;font-size:.875rem;color:var(--text-primary);background:var(--bg-primary);cursor:pointer;outline:none;transition:all .2s}.custom-date-filter .date-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a}.custom-date-filter .search-btn{padding:.6rem 2rem;background:#1f2937;color:#fff;border:none;border-radius:.5rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;box-shadow:0 2px 10px #1f293726;min-width:120px}.custom-date-filter .search-btn:hover:not(:disabled){background:#111827;transform:translateY(-1px);box-shadow:0 4px 15px #1f293733}.custom-date-filter .search-btn:active{transform:translateY(0)}.custom-date-filter .search-btn:disabled{background:#94a3b8;cursor:not-allowed;box-shadow:none}.period-statistics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem;padding:1.5rem;background:var(--bg-primary);border-radius:.5rem;box-shadow:0 1px 3px #0000001a;border:1px solid var(--border-primary)}.period-stat{padding:1rem;border-radius:.375rem;background:var(--bg-secondary);border-left:4px solid var(--text-muted)}.period-stat.income{border-left-color:#10b981}.period-stat.expense{border-left-color:#ef4444}.period-stat.balance.positive{border-left-color:#10b981}.period-stat.balance.negative{border-left-color:#ef4444}.period-stat.loan{border-left-color:#ca8a04}.stat-label{font-size:.75rem;font-weight:600;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937;margin-bottom:.25rem}.period-stat.income .stat-value{color:#10b981}.period-stat.expense .stat-value{color:#ef4444}.period-stat.balance.positive .stat-value{color:#10b981}.period-stat.balance.negative .stat-value{color:#ef4444}.period-stat.loan .stat-value{color:#ca8a04}.stat-avg{font-size:.75rem;color:#6b7280;font-weight:500}.dashboard{padding:0 1.5rem}.dashboard-title{text-align:center;font-size:1.875rem;font-weight:600;color:#1f2937;margin:0 0 1.5rem}.loading{text-align:center;padding:40px;color:#999;font-size:16px}.summary-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-bottom:.75rem}.card{padding:.5rem .65rem;border-radius:.5rem;box-shadow:0 1px 3px #00000014;background:var(--bg-primary);border:1px solid var(--border-primary);border-left-width:3px;display:flex;flex-direction:column;justify-content:center;transition:transform .15s ease,box-shadow .15s ease}.card:hover{transform:translateY(-1px);box-shadow:0 3px 8px #00000014}.card-label{margin:0;font-size:.62rem;font-weight:600;color:var(--text-muted, #6b7280);text-transform:uppercase;letter-spacing:.4px;margin-bottom:.15rem}.card-amount{margin:0;font-size:1.15rem;font-weight:800;color:var(--text-primary, #1f2937);line-height:1.2}.card.income{border-left-color:#10b981}.card.income .card-amount{color:#10b981}.card.expense{border-left-color:#ef4444}.card.expense .card-amount{color:#ef4444}.card.balance{border-left-color:#2563eb}.card.balance.positive .card-amount{color:#10b981}.card.balance.negative .card-amount{color:#ef4444}.card.credit-card{border-left-color:#f97316}.card.credit-card.neutral .card-amount{color:#6b7280}.card.credit-card.warning .card-amount{color:#f97316}.card.debit-card{border-left-color:#3b82f6}.card.debit-card.positive .card-amount{color:#10b981}.card.debit-card.negative .card-amount{color:#ef4444}.card.transfer{border-left-color:#3b82f6}.card.transfer .card-amount{color:#3b82f6}.card.loan{border-left-color:#ca8a04}.card.loan .card-amount{color:#ca8a04}.card.asset{border-left-color:#7c3aed}.card.asset .card-amount{color:#7c3aed}.transactions-section{background:var(--bg-primary);border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;width:100%;border:1px solid var(--border-primary)}.transactions-section h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.transactions-header h3{margin:0}.clear-filters-btn{padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s}.clear-filters-btn:hover{background:#dc2626}.transaction-filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-primary)}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.875rem;font-weight:500;color:#374151}.filter-group input,.filter-group select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.filter-group input:focus,.filter-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.add-transaction-button{padding:10px 16px;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:all .2s}.add-transaction-button:hover{background:#764ba2}.transaction-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;padding:20px;background:#f9f9f9;border-radius:8px;margin-bottom:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:#333}.form-group input,.form-group select{padding:10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled,.form-group select:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{grid-column:1 / -1;padding:12px;background-color:#fee;color:#c33;border-radius:6px;font-size:14px;border:1px solid #fcc}.submit-button{grid-column:1 / -1;padding:10px;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s}.submit-button:hover:not(:disabled){background:#764ba2}.submit-button:disabled{opacity:.7;cursor:not-allowed}.no-transactions{text-align:center;color:#999;padding:40px;margin:0}.col{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.875rem}.col-date{font-weight:500;color:#6b7280}.col-type{font-size:.75rem}.type-badge{font-weight:600;padding:.25rem .5rem;border-radius:.25rem;text-transform:uppercase;letter-spacing:.5px;text-align:center}.type-badge.income{background-color:#d1fae5;color:#059669}.type-badge.expense{background-color:#fee2e2;color:#991b1b}.type-badge.refund{background-color:#e0f2fe;color:#0284c7}.type-badge.transfer{background-color:#dbeafe;color:#0c4a6e}.type-badge.loan{background-color:#fef08a;color:#92400e}.type-badge.asset{background-color:#ddd6fe;color:#5b21b6}.col-main-cat{font-weight:600;color:#1f2937;background:#e5e7eb;padding:.25rem .5rem;border-radius:.25rem}.col-sub-cat{color:#1f2937;background:#dbeafe;padding:.25rem .5rem;border-radius:.25rem}.col-card{color:#2563eb;font-weight:500}.col-desc{color:#6b7280}.col-amount{font-weight:700;text-align:right}.col-amount.income{color:#10b981}.col-amount.expense{color:#ef4444}.col-amount.transfer{color:#3b82f6}.col-amount.loan{color:#ca8a04}.col-amount.asset{color:#7c3aed}.col-actions{display:flex;justify-content:center;gap:.5rem}.transaction-row.editing{background-color:#fef3c7;border-color:#f59e0b}.edit-input,.edit-select{width:100%;padding:.25rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.75rem}.edit-input:focus,.edit-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.action-btn.save-btn{color:#10b981}.action-btn.cancel-btn{color:#ef4444}.action-btn.edit-btn{color:#3b82f6}.transactions-summary{display:flex;justify-content:flex-end;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.summary-item{display:flex;flex-direction:column;align-items:flex-end}.summary-label{font-size:.75rem;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.summary-amount{font-size:1.125rem;font-weight:700}.summary-item.income .summary-amount{color:#10b981}.summary-item.expense .summary-amount{color:#ef4444}.summary-item.transfer .summary-amount{color:#3b82f6}.summary-item.loan .summary-amount{color:#ca8a04}.summary-item.asset .summary-amount{color:#7c3aed}.summary-item.balance.positive .summary-amount{color:#10b981}.summary-item.balance.negative .summary-amount{color:#ef4444}.category-totals-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}.category-totals-group{background:var(--bg-primary, white);border:1px solid var(--border-primary, #e2e8f0);border-radius:.6rem;padding:.85rem 1rem;box-shadow:0 1px 3px #0000000d;transition:all .2s ease}.category-group-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:.2rem 0}.category-totals-group.expanded .category-group-header{margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-primary, #f1f5f9)}.category-group-title{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.category-group-title h4{margin:0;font-size:.875rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.category-group-summary-badge{font-size:.75rem;font-weight:700;padding:.2rem .55rem;border-radius:9999px;background:var(--bg-secondary, #f1f5f9)}.category-group-summary-badge.expense{background:#fee2e2;color:#ef4444}.category-group-summary-badge.income{background:#dcfce7;color:#10b981}.category-group-summary-badge.loan{background:#fef3c7;color:#d97706}.category-group-summary-badge.asset{background:#ede9fe;color:#7c3aed}.category-group-summary-badge.transfer{background:#dbeafe;color:#2563eb}.category-group-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;min-height:26px;padding:0;border-radius:50%;border:1px solid var(--border-primary, #e2e8f0);background:var(--bg-secondary, #f8fafc);color:var(--text-secondary, #64748b);font-size:.7rem;cursor:pointer;transition:all .2s ease}.category-group-header:hover .category-group-toggle-btn{background:var(--accent-primary, #2563eb);color:#fff;border-color:var(--accent-primary, #2563eb);transform:scale(1.08)}.category-totals-group.expense h4{color:#ef4444}.category-totals-group.income h4{color:#10b981}.category-totals-group.loan h4{color:#ca8a04}.category-totals-group.asset h4{color:#7c3aed}.category-totals-group.transfer h4{color:#3b82f6}.category-totals-column-right{display:flex;flex-direction:column;gap:1rem}.category-totals-list{display:flex;flex-direction:column;gap:.5rem}.category-total-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#f9fafb;border-radius:.375rem;border-left:3px solid #667eea;cursor:pointer;transition:all .2s}.category-total-item:hover{background:#f0f9ff;transform:translate(2px)}.cat-name{flex:1;font-size:.875rem;font-weight:500;color:#1f2937;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-count{font-size:.75rem;color:#6b7280;background:#e5e7eb;padding:.125rem .5rem;border-radius:9999px}.cat-amount{font-size:.875rem;font-weight:700;min-width:80px;text-align:right}.cat-amount.expense{color:#ef4444}.cat-amount.income{color:#10b981}.cat-amount.loan{color:#ca8a04}.cat-amount.asset{color:#7c3aed}.cat-amount.transfer{color:#3b82f6}.category-totals-footer{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;margin-top:.5rem;background:#1f2937;border-radius:.375rem;font-weight:600}.footer-label{flex:1;font-size:.875rem;color:#fff}.footer-count{font-size:.75rem;color:#9ca3af;background:#374151;padding:.125rem .5rem;border-radius:9999px}.footer-amount{font-size:.875rem;font-weight:700;min-width:80px;text-align:right}.footer-amount.expense{color:#fca5a5}.footer-amount.income{color:#6ee7b7}.footer-amount.loan{color:#fbbf24}.footer-amount.asset{color:#c4b5fd}.footer-amount.transfer{color:#93c5fd}@media(max-width:768px){.category-totals-section{grid-template-columns:1fr;gap:.75rem}.category-totals-group{padding:.75rem .6rem}.category-totals-column-right{gap:.75rem}.category-total-item{padding:.375rem .5rem;gap:.5rem}.cat-name{font-size:.75rem}.cat-amount{font-size:.75rem;min-width:60px}}.transactions-list{display:flex;flex-direction:column;gap:1rem;width:100%}.transaction-row{display:grid;grid-template-columns:minmax(80px,1fr) minmax(70px,1fr) minmax(90px,1.2fr) minmax(100px,1.3fr) minmax(80px,1fr) minmax(150px,2.2fr) minmax(70px,1.1fr) minmax(60px,1fr);gap:.75rem;padding:.75rem;background-color:var(--bg-primary, #ffffff);border:1px solid var(--border-primary, #e5e7eb);border-radius:.5rem;transition:all .2s;align-items:center;width:100%}.transaction-row:hover{box-shadow:0 3px 10px #00000014;transform:translateY(-1px)}.transaction-row.expense{background-color:#fff8f8;border-color:#fecaca;border-left:4px solid #ef4444}.transaction-row.expense:hover{background-color:#fee2e2;border-color:#fca5a5}.transaction-row.income,.transaction-row.is-positive,.transaction-row.positive{background-color:#dcfce7;border-color:#86efac;border-left:4px solid #10b981}.transaction-row.income:hover,.transaction-row.is-positive:hover,.transaction-row.positive:hover{background-color:#bbf7d0;border-color:#4ade80}.transaction-row.refund{background-color:#f0f9ff;border-color:#bae6fd;border-left:4px solid #0284c7}.transaction-row.refund:hover{background-color:#e0f2fe;border-color:#7dd3fc}.transaction-row.transfer{background-color:#eff6ff;border-color:#bfdbfe;border-left:4px solid #3b82f6}.transaction-row.transfer:hover{background-color:#dbeafe;border-color:#93c5fd}.transaction-row.loan{background-color:#fffbeb;border-color:#fde68a;border-left:4px solid #f59e0b}.transaction-row.loan:hover{background-color:#fef3c7;border-color:#fcd34d}.transaction-row.asset{background-color:#f5f3ff;border-color:#ddd6fe;border-left:4px solid #8b5cf6}.transaction-row.asset:hover{background-color:#ede9fe;border-color:#c4b5fd}[data-theme=dark] .transaction-row.expense{background-color:#ef444414;border-color:#ef444440;border-left-color:#ef4444}[data-theme=dark] .transaction-row.expense:hover{background-color:#ef444429}[data-theme=dark] .transaction-row.income,[data-theme=dark] .transaction-row.is-positive,[data-theme=dark] .transaction-row.positive{background-color:#10b98124;border-color:#10b98159;border-left-color:#10b981}[data-theme=dark] .transaction-row.income:hover,[data-theme=dark] .transaction-row.is-positive:hover,[data-theme=dark] .transaction-row.positive:hover{background-color:#10b98138}[data-theme=dark] .transaction-row.refund{background-color:#0284c71f;border-color:#0284c74d;border-left-color:#38bdf8}[data-theme=dark] .transaction-row.refund:hover{background-color:#0284c733}[data-theme=dark] .transaction-row.transfer{background-color:#3b82f61f;border-color:#3b82f64d;border-left-color:#60a5fa}[data-theme=dark] .transaction-row.transfer:hover{background-color:#3b82f633}[data-theme=dark] .transaction-row.loan{background-color:#f59e0b1f;border-color:#f59e0b4d;border-left-color:#fbbf24}[data-theme=dark] .transaction-row.loan:hover{background-color:#f59e0b33}[data-theme=dark] .transaction-row.asset{background-color:#8b5cf61f;border-color:#8b5cf64d;border-left-color:#a78bfa}[data-theme=dark] .transaction-row.asset:hover{background-color:#8b5cf633}.transaction-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-date{font-size:.875rem;font-weight:500;color:#6b7280}.transaction-type-badge{font-size:.75rem;font-weight:600;padding:.25rem .5rem;border-radius:.25rem;text-transform:uppercase;letter-spacing:.5px;text-align:center}.transaction-type-badge.income{background-color:#d1fae5;color:#059669}.transaction-type-badge.expense{background-color:#fee2e2;color:#991b1b}.transaction-type-badge.refund{background-color:#e0f2fe;color:#0284c7}.transaction-type-badge.transfer{background-color:#dbeafe;color:#0c4a6e}.transaction-type-badge.loan{background-color:#fef08a;color:#92400e}.transaction-type-badge.asset{background-color:#ddd6fe;color:#5b21b6}.transaction-main-category{font-size:.95rem;font-weight:600;color:#1f2937;background:#e5e7eb;padding:.25rem .5rem;border-radius:.25rem}.transaction-sub-category{font-size:.8rem;font-weight:600;color:#1f2937;background:#dbeafe;padding:.25rem .5rem;border-radius:.25rem}.transaction-description-cell{font-size:.875rem;color:#6b7280}.transaction-payment-cell{font-size:.85rem;color:#2563eb;font-weight:500}.transaction-amount{font-size:1rem;font-weight:700;text-align:right}.transaction-amount.expense{color:#ef4444}.transaction-amount.transfer{color:#3b82f6}.transaction-amount.loan{color:#ca8a04}.transaction-amount.asset{color:#7c3aed}.transaction-actions{display:flex;justify-content:center;align-items:center;gap:.5rem}.action-btn{background:none;border:none;cursor:pointer;font-size:1rem;padding:.25rem;opacity:.6;transition:opacity .2s}.action-btn:hover,.delete-btn:hover{opacity:1}@media(max-width:1200px){.transaction-row{grid-template-columns:minmax(70px,1fr) minmax(60px,1fr) minmax(75px,1.1fr) minmax(80px,1.2fr) minmax(70px,1fr) minmax(120px,1.8fr) minmax(60px,1fr) minmax(50px,.9fr);gap:.5rem;padding:.5rem}.transaction-cell{font-size:.85rem}.transaction-type-badge{padding:.2rem .4rem;font-size:.7rem}}@media(max-width:768px){.dashboard{padding:.5rem .25rem}.dashboard-header{padding:16px 20px;flex-direction:column;gap:12px;text-align:center}.header-left{width:100%;justify-content:center}.dashboard-header h1{font-size:24px}.month-selector{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:.5rem;padding:.35rem .6rem;margin-bottom:.45rem}.month-selector h3{flex:1;order:0;margin:0;font-size:.95rem;text-align:center}.month-selector .month-btn{flex:0 0 auto;padding:.25rem .65rem;min-width:0;font-size:.8rem;min-height:auto}.date-range-selector{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:.3rem!important;padding:.15rem .2rem!important;margin-bottom:.45rem!important;justify-content:flex-start!important}.date-range-selector::-webkit-scrollbar{display:none}.range-btn{flex:0 0 auto!important;padding:.22rem .55rem!important;font-size:.72rem!important;white-space:nowrap!important;min-height:auto!important}.period-statistics{display:grid!important;grid-template-columns:repeat(2,1fr)!important;padding:.45rem!important;gap:.4rem!important;margin-bottom:.55rem!important}.period-stat{padding:.35rem .45rem!important}.stat-label{font-size:.58rem!important}.stat-value{font-size:.95rem!important;font-weight:700!important}.stat-avg{font-size:.58rem!important}.summary-cards{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:.4rem!important;margin-bottom:.55rem!important}.card{flex:none!important;width:100%!important;min-width:0!important;padding:.4rem .55rem!important}.card-label{font-size:.58rem!important;margin-bottom:2px!important}.card-amount{font-size:1.05rem!important;line-height:1.15!important}.transaction-form{grid-template-columns:1fr}.submit-button{grid-column:1}.transactions-section{overflow-x:hidden!important;padding:0!important;width:100%}.transactions-list{display:flex!important;flex-direction:column!important;gap:.6rem;width:100%}.transaction-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;grid-template-areas:"date type amount" "desc desc card" "main sub  actions"!important;align-items:center!important;column-gap:.5rem!important;row-gap:.35rem!important;padding:.65rem .85rem!important;border-radius:.75rem!important;width:100%!important;min-width:0!important;box-shadow:0 1px 4px #00000014}.col-date{grid-area:date;font-size:.75rem!important;text-align:left;color:var(--text-secondary, #94a3b8)!important;font-weight:600;white-space:nowrap;min-width:44px}.col-type{grid-area:type;justify-self:start;white-space:nowrap}.col-amount{grid-area:amount;font-size:1.05rem!important;text-align:right;font-weight:800!important;justify-self:end;white-space:nowrap}.col-desc{grid-area:desc;font-size:.88rem!important;color:var(--text-primary, #334155)!important;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;min-width:0}.col-card{display:block!important;grid-area:card;font-size:.74rem!important;color:#2563eb!important;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;justify-self:end;max-width:130px}.col-main-cat{grid-area:main;font-size:.74rem!important;font-weight:600!important;padding:.12rem .45rem!important;border-radius:.35rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:fit-content;max-width:120px;background:#f1f5f9;color:#334155;border:1px solid #e2e8f0;justify-self:start}.col-sub-cat{display:block!important;grid-area:sub;font-size:.72rem!important;opacity:.9;background:#eff6ff!important;color:#2563eb!important;border:1px solid #dbeafe!important;padding:.1rem .45rem!important;border-radius:.35rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;justify-self:start;width:fit-content;max-width:110px}.col-sub-cat:empty{display:none!important}.col-actions{grid-area:actions;display:flex!important;flex-direction:row!important;justify-content:flex-end;align-items:center;gap:.35rem;justify-self:end}.action-btn{font-size:.95rem!important;padding:.2rem!important;opacity:.75}.type-badge{padding:.15rem .4rem!important;font-size:.65rem!important;font-weight:700!important;width:fit-content}.transaction-row.editing .col-main-cat,.transaction-row.editing .col-sub-cat,.transaction-row.editing .col-card,.transaction-row.editing .col-date,.transaction-row.editing .col-amount{max-width:none!important;width:100%!important;background:transparent!important;padding:0!important;border:none!important}.transaction-row.editing .edit-input,.transaction-row.editing .edit-select{width:100%!important;font-size:.75rem!important;padding:.2rem .35rem!important;box-sizing:border-box!important}}[data-theme=dark] .col-main-cat{background:#ffffff14!important;color:#f1f5f9!important;border:1px solid rgba(255,255,255,.12)!important}[data-theme=dark] .col-sub-cat{background:#3b82f61f!important;color:#93c5fd!important;border:1px solid rgba(59,130,246,.25)!important}[data-theme=dark] .col-card{color:#38bdf8!important}[data-theme=dark] .col-desc{color:#e2e8f0!important}[data-theme=dark] .col-date,[data-theme=dark] .filter-group label{color:#94a3b8!important}[data-theme=dark] .filter-group input,[data-theme=dark] .filter-group select{background-color:var(--bg-secondary, #1e293b)!important;border-color:var(--border-primary, #334155)!important;color:var(--text-primary, #f8fafc)!important}[data-theme=dark] .type-badge.income{background-color:#10b98133!important;color:#34d399!important}[data-theme=dark] .type-badge.expense{background-color:#ef444433!important;color:#f87171!important}[data-theme=dark] .type-badge.refund{background-color:#0284c733!important;color:#38bdf8!important}[data-theme=dark] .type-badge.transfer{background-color:#3b82f633!important;color:#60a5fa!important}[data-theme=dark] .type-badge.loan{background-color:#f59e0b33!important;color:#fbbf24!important}[data-theme=dark] .type-badge.asset{background-color:#8b5cf633!important;color:#c084fc!important}.dashboard-charts-card{margin-bottom:2rem;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:.75rem;box-shadow:0 4px 20px #00000014;overflow:hidden;transition:all .3s ease}.chart-card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);flex-wrap:wrap;gap:.75rem}.chart-header-left{display:flex;align-items:center;gap:.5rem}.chart-section-icon{font-size:1.25rem}.chart-section-title{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.chart-section-badge{font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:1rem;background:#2563eb26;color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.chart-header-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.chart-tab-group{display:flex;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:.5rem;padding:.2rem;gap:.25rem}.chart-tab-btn{padding:.35rem .75rem;border-radius:.35rem;border:none;background:transparent;color:var(--text-secondary);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.35rem}.chart-tab-btn:hover{color:var(--text-primary);background:var(--bg-secondary)}.chart-tab-btn.active{background:#2563eb;color:#fff;box-shadow:0 2px 8px #2563eb4d}.chart-toggle-btn{padding:.35rem .65rem;border-radius:.35rem;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-secondary);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .2s}.chart-toggle-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.cashflow-ratio-container{padding:.85rem 1.25rem;background:var(--bg-primary);border-bottom:1px solid var(--border-primary)}.ratio-labels{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--text-secondary);margin-bottom:.45rem;flex-wrap:wrap;gap:.5rem}.ratio-item{display:flex;align-items:center;gap:.35rem}.ratio-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.ratio-progress-bar{display:flex;height:8px;width:100%;border-radius:4px;overflow:hidden;background:var(--bg-secondary)}.ratio-progress-fill.expense{background:#ef4444;transition:width .4s ease}.ratio-progress-fill.savings{background:#10b981;transition:width .4s ease}.chart-body{padding:1.25rem}.chart-view-panel{display:flex;flex-direction:column}.chart-view-subtitle{font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.chart-responsive-box{width:100%;position:relative}.category-panel-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center}@media(max-width:768px){.category-panel-grid{grid-template-columns:1fr}}.donut-chart-box{position:relative;width:100%;display:flex;justify-content:center;align-items:center}.donut-center-info{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;pointer-events:none;display:flex;flex-direction:column;align-items:center}.donut-center-label{font-size:.7rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase}.donut-center-val{font-size:1.05rem;font-weight:700;color:var(--text-primary)}.donut-legend-list{display:flex;flex-direction:column;gap:.5rem}.donut-legend-title{font-size:.75rem;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.donut-legend-items{display:flex;flex-direction:column;gap:.35rem;max-height:250px;overflow-y:auto;padding-right:.25rem}.donut-legend-row{display:flex;justify-content:space-between;align-items:center;padding:.4rem .6rem;border-radius:.4rem;background:var(--bg-secondary);border:1px solid var(--border-primary);cursor:pointer;transition:all .2s ease}.donut-legend-row:hover{border-color:#3b82f6;transform:translate(2px);background:#3b82f614}.donut-legend-left{display:flex;align-items:center;gap:.5rem;overflow:hidden}.donut-legend-pill{width:10px;height:10px;border-radius:3px;flex-shrink:0}.donut-legend-name{font-size:.8rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.donut-legend-right{display:flex;align-items:center;gap:.6rem;flex-shrink:0}.donut-legend-pct{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.donut-legend-amt{font-size:.8rem;font-weight:700;color:var(--text-primary)}.dashboard-chart-tooltip{background:#0f172af0;border:1px solid rgba(255,255,255,.15);border-radius:.5rem;padding:.6rem .85rem;box-shadow:0 8px 24px #00000059;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.dashboard-chart-tooltip .tooltip-title{font-size:.75rem;font-weight:700;color:#94a3b8;margin-bottom:.35rem;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.25rem;text-transform:uppercase}.dashboard-chart-tooltip .tooltip-items{display:flex;flex-direction:column;gap:.25rem}.dashboard-chart-tooltip .tooltip-row{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;font-weight:600}.dashboard-chart-tooltip .tooltip-name{color:inherit}.dashboard-chart-tooltip .tooltip-val{font-weight:700;color:#f8fafc}.no-chart-data{text-align:center;color:var(--text-secondary);padding:2rem;font-size:.875rem}[data-theme=dark] .category-group-summary-badge.expense{background:#ef44442e;color:#f87171}[data-theme=dark] .category-group-summary-badge.income{background:#10b9812e;color:#4ade80}[data-theme=dark] .category-group-summary-badge.loan{background:#f59e0b2e;color:#fbbf24}[data-theme=dark] .category-group-summary-badge.asset{background:#8b5cf62e;color:#a78bfa}[data-theme=dark] .category-group-summary-badge.transfer{background:#3b82f62e;color:#60a5fa}.categories-container{display:flex;flex-direction:column;gap:1.5rem}.categories-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.categories-header h3{font-size:1.5rem;font-weight:700;color:#1f2937}.form-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:#1f2937}.form-group input[type=color]{padding:.25rem;height:2.5rem;cursor:pointer}.form-buttons{display:flex;gap:.75rem;justify-content:flex-end}.categories-tabs{display:flex;gap:.5rem;border-bottom:1px solid #e5e7eb;margin-bottom:1rem}.tab{padding:.75rem 1rem;background:none;border:none;border-bottom:2px solid transparent;color:#6b7280;font-weight:500;cursor:pointer;transition:all .2s}.tab:hover{color:#1f2937}.tab.active{color:#2563eb;border-bottom-color:#2563eb}.categories-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.category-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;transition:all .2s;display:flex;align-items:center;gap:1rem;cursor:pointer}.category-item:hover{border-color:#2563eb;box-shadow:0 4px 6px #0000001a}.category-item.active{border-color:#2563eb;background-color:#f0f9ff}.category-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.expand-icon{font-size:.75rem;color:#6b7280}.edit-main-btn,.delete-main-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:.875rem;padding:.25rem;transition:opacity .2s;display:flex;align-items:center;justify-content:center}.edit-main-btn:hover{opacity:.7;color:#2563eb}.delete-main-btn:hover{opacity:.7;color:#ef4444}.category-color-indicator{width:40px;height:40px;border-radius:.375rem;flex-shrink:0}.category-info{flex:1}.category-info h4{font-size:1rem;font-weight:600;color:#1f2937;margin:0 0 .25rem}.category-details{display:flex;align-items:center;gap:.75rem;margin-top:.25rem}.category-type{font-size:.875rem;color:#6b7280;text-transform:capitalize;margin:0}.category-balance{font-size:.875rem;color:#2563eb;font-weight:600;margin:0;white-space:nowrap}.no-categories{text-align:center;color:#6b7280;padding:2rem;background-color:#fff;border-radius:.5rem;border:1px solid #e5e7eb}.sub-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;font-size:.7rem;font-weight:700;line-height:1}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-content{background:#fff;border-radius:1rem;width:90%;max-width:480px;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 25px 50px #00000040;animation:slideUp .25s ease;overflow:hidden}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid #e5e7eb;background:linear-gradient(135deg,#f0f9ff,#eff6ff)}.modal-header h4{margin:0;font-size:1.05rem;font-weight:700;color:#1e3a5f;display:flex;align-items:center;gap:.5rem}.modal-color-dot{display:inline-block;width:14px;height:14px;border-radius:4px;flex-shrink:0}.modal-close-btn{background:none;border:none;font-size:1.25rem;color:#6b7280;cursor:pointer;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close-btn:hover{background:#fee2e2;color:#ef4444}.modal-body{padding:1rem 1.5rem 1.5rem;overflow-y:auto;flex:1}.sub-count-label{font-size:.8rem;color:#6b7280;font-weight:500}.sub-categories-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.add-sub-btn{padding:.35rem .75rem;background-color:#10b981;color:#fff;border:none;border-radius:.375rem;font-size:.8rem;font-weight:600;cursor:pointer;transition:background-color .2s}.add-sub-btn:hover{background-color:#059669}.sub-category-form{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.sub-category-form input{flex:1;min-width:200px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem}.sub-category-form input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.sub-category-form .form-buttons{display:flex;gap:.5rem}.sub-categories-list{display:flex;flex-direction:column;gap:.5rem}.sub-category-item{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.65rem .85rem;background-color:#f9fafb;border-radius:.5rem;border:1px solid #e5e7eb;transition:all .15s}.sub-category-item:hover{background-color:#eff6ff;border-color:#93c5fd}.sub-cat-name{font-size:.875rem;color:#1f2937;flex:1}.sub-cat-actions{display:flex;gap:.25rem}.edit-btn,.delete-btn{background:none;border:none;color:#6b7280;cursor:pointer;font-size:.875rem;padding:.25rem;transition:opacity .2s}.edit-btn:hover,.delete-btn:hover{opacity:.7;color:#1f2937}.no-sub-categories{text-align:center;color:#9ca3af;font-size:.875rem;padding:2rem 1rem;margin:0}.payment-cards-section{margin-top:2rem;padding-top:1.5rem;border-top:2px solid #e5e7eb}.payment-cards-section .cards-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.payment-cards-section .cards-header h3{font-size:1rem;font-weight:600;color:#1f2937;margin:0}.add-btn.small{padding:.375rem .75rem;font-size:.75rem}.card-form{margin-bottom:1rem}.form-row.compact{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.form-row.compact input,.form-row.compact select{padding:.375rem .5rem;border:1px solid #d1d5db;border-radius:.25rem;font-size:.75rem;flex:1;min-width:80px}.form-row.compact input:focus,.form-row.compact select:focus{outline:none;border-color:#2563eb}.btn-submit.small,.btn-cancel.small{padding:.375rem .75rem;font-size:.75rem;border-radius:.25rem;border:none;cursor:pointer}.btn-submit.small{background-color:#2563eb;color:#fff}.btn-cancel.small{background-color:#e5e7eb;color:#374151}.cards-list{display:flex;flex-direction:column;gap:.5rem}.card-item-compact{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:#fff;border:1px solid #e5e7eb;border-radius:.375rem;border-left:3px solid #3b82f6}.card-item-compact.credit_card{border-left-color:#f97316}.card-item-compact.debit_card{border-left-color:#10b981}.card-icon{font-size:1rem}.card-name{flex:1;font-size:.875rem;font-weight:500;color:#1f2937}.card-balance{font-size:.875rem;font-weight:600;color:#1f2937}.card-limit{font-size:.75rem;color:#6b7280}.card-actions{display:flex;gap:.25rem}.card-actions button{background:none;border:none;cursor:pointer;font-size:.75rem;padding:.25rem;opacity:.6;transition:opacity .2s}.card-actions button:hover{opacity:1}.no-cards{text-align:center;color:#9ca3af;font-size:.875rem;padding:1rem;margin:0}@media(max-width:768px){.form-row.compact{flex-direction:column}.form-row.compact input,.form-row.compact select{width:100%}}.budgets-container{display:flex;flex-direction:column;gap:1rem}.budgets-title{font-size:1.875rem;font-weight:600;color:#000;text-align:center;margin:0 0 1rem}.month-selector{display:flex;justify-content:center;align-items:center;gap:2rem;margin-bottom:.5rem;padding:1rem;background:#fff;border-radius:.5rem;border-bottom:2px solid #e5e7eb}.month-selector h3{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937;min-width:150px;text-align:center}.month-btn{padding:.75rem 1rem;background:#2563eb;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-weight:500;font-size:.875rem;transition:all .2s;line-height:1.5;display:inline-flex;align-items:center;justify-content:center}.month-btn:hover{background:#1d4ed8;box-shadow:0 2px 8px #2563eb4d}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.5rem;margin-bottom:.5rem}.summary-card{padding:1rem;border-radius:.5rem;background:#fff;border-left:4px solid #ddd;box-shadow:0 1px 3px #0000001a}.summary-card.budget{border-left-color:#2563eb}.summary-card.spent{border-left-color:#ef4444}.summary-card.remaining{border-left-color:#10b981}.summary-card.remaining.negative{border-left-color:#ef4444}.summary-card.balance{border-left-color:#3b82f6}.summary-card.balance.negative{border-left-color:#ef4444}.summary-card .card-label{font-size:.65rem;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.5px;margin-bottom:.25rem}.summary-card .card-amount{font-size:1.25rem;font-weight:700;color:#1f2937}.summary-card.spent .card-amount{color:#ef4444}.summary-card.remaining.positive .card-amount{color:#10b981}.summary-card.remaining.negative .card-amount{color:#ef4444}.summary-card.balance.positive .card-amount{color:#10b981}.summary-card.balance.negative .card-amount{color:#ef4444}.budgets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.budgets-header h3{font-size:1.5rem;font-weight:700;color:#1f2937}.add-btn{padding:.5rem 1rem;background-color:#10b981;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.form-row{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.form-group.checkbox-group{gap:.25rem;flex:0 1 auto;min-width:auto}.custom-checkbox-container{display:flex;align-items:center;position:relative;padding:.5rem .75rem;background:#f9fafb;border-radius:.375rem;border:1px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .2s;gap:.6rem}.custom-checkbox-container:hover{background:#f3f4f6;border-color:#d1d5db}.custom-checkbox-container input{position:absolute;opacity:0;cursor:pointer;height:0;width:0}.checkmark{height:1.25rem;width:1.25rem;background-color:#fff;border:2px solid #d1d5db;border-radius:4px;position:relative;transition:all .2s}.custom-checkbox-container input:checked~.checkmark{background-color:#2563eb;border-color:#2563eb}.checkmark:after{content:"";position:absolute;display:none}.custom-checkbox-container input:checked~.checkmark:after{display:block}.custom-checkbox-container .checkmark:after{left:7px;top:3px;width:5px;height:10px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.label-text{font-weight:500;color:#374151}.form-group.checkbox-group small{font-size:.75rem;color:#6b7280;margin-left:0;font-weight:400}.form-group input:not([type=checkbox]),.form-group select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.form-buttons{display:flex;gap:.5rem;justify-content:flex-end;align-items:flex-end;flex:0 1 auto}.form-row .form-buttons{margin-left:auto}.btn-cancel,.btn-submit{padding:.5rem 1rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.add-form-container .form-buttons .btn-cancel,.add-form-container .form-buttons .btn-submit{padding:0;font-size:1rem;width:1.75rem;height:1.75rem;display:flex;align-items:center;justify-content:center;line-height:1}.budget-sections,.budget-section{display:flex;flex-direction:column;gap:1rem}.section-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:.5rem;border-bottom:2px solid #e5e7eb}.label-with-action{display:flex;align-items:center;gap:.75rem}.btn-quick-add{background:#3b82f6;color:#fff;border:none;border-radius:50%;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000001a}.btn-quick-add:hover{background:#2563eb;transform:scale(1.1)}.section-header h4{margin:0;font-size:1.25rem;font-weight:600;color:inherit}.section-totals{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.total-item{font-size:.75rem;font-weight:500;color:#6b7280}.total-item.spent{color:#ef4444;font-weight:600}.total-item.remaining{font-weight:600}.total-item.remaining.positive{color:#10b981}.total-item.remaining.negative{color:#ef4444}.budgets-grid{display:flex;flex-direction:column;gap:.75rem}.budget-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;padding:1rem 1.5rem;transition:all .2s;display:flex;flex-direction:column}.budget-item:hover{background-color:#f9fafb;border-color:#d1d5db}.budget-header{display:grid;grid-template-columns:50px 2.5fr 1.2fr 4fr 80px;gap:1rem;align-items:center;margin-bottom:0;width:100%;justify-items:stretch;background:linear-gradient(135deg,#f8fafc,#f0f4f8);margin:-1rem -1.5rem 0;padding:1rem 1.5rem;border-radius:.375rem .375rem 0 0}.header-title{display:flex;align-items:center;gap:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.budget-header h4{font-size:.9rem;font-weight:600;color:#1f2937;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.budget-header .budget-summary{display:flex;gap:.75rem;justify-content:center;flex-direction:row;align-items:center;grid-column:4}.budget-header .budget-actions{grid-column:5}.budget-header .budget-summary-item{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;text-align:center;flex:1;min-width:0}.budget-header .budget-summary-item label{color:#6b7280;font-weight:500;text-transform:uppercase;font-size:.65rem}.budget-header .budget-summary-item span{color:#1f2937;font-weight:600;font-size:.8rem}.budget-header .budget-summary-item span.spent{color:#ef4444}.budget-header .budget-summary-item span.remaining,.budget-header .budget-summary-item span.positive,.amount span.remaining,.amount span.positive{color:#10b981}.budget-header .budget-summary-item.cumulative span,.amount.cumulative span{color:#3b82f6;font-weight:700}.budget-header .budget-summary-item span.over-budget,.amount span.over-budget{color:#ef4444}.recurring-column{display:flex;justify-content:center;align-items:center;min-height:2rem}.recurring-badge{display:inline-block;background-color:#dbeafe;color:#0c4a6e;padding:.2rem .5rem;border-radius:.375rem;font-size:.65rem;font-weight:600;white-space:nowrap}.budget-month{font-size:.875rem;color:#6b7280;background-color:transparent;padding:0;border-radius:0;font-weight:600;order:-5}.budget-amounts{display:none}.amount{display:flex;flex-direction:column;gap:.25rem}.amount label{font-size:.75rem;color:#6b7280;font-weight:500;text-transform:uppercase}.amount span{font-size:1rem;font-weight:600;color:#1f2937}.amount span.spent{color:#ef4444}.amount span.remaining{color:#10b981}.amount span.over-budget{color:#ef4444}.budget-progress{display:none}.progress-bar{height:8px;background-color:#e5e7eb;border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .3s ease}.progress-fill.ok{background-color:#10b981}.progress-fill.warning{background-color:#f59e0b}.progress-fill.over-budget{background-color:#ef4444}.progress-text{font-size:.875rem;color:#6b7280;margin:0}.no-budgets{text-align:center;color:#6b7280;padding:2rem;background-color:#fff;border-radius:.5rem;border:1px solid #e5e7eb;grid-column:1 / -1}.budget-item.editing{background-color:#f9fafb;border-color:#2563eb}.budget-item.editing .budget-header{border-bottom:1px solid #e5e7eb;padding-bottom:1rem;margin-bottom:1rem}.budget-actions{display:flex;gap:.5rem;justify-content:center;align-items:center}.action-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem;display:flex;align-items:center;justify-content:center;border-radius:.25rem;transition:all .2s}.action-btn:hover{background-color:#0000000d;transform:scale(1.1)}.action-btn.edit-btn:hover{background-color:#2563eb1a}.action-btn.delete-btn:hover{background-color:#ef44441a}.budget-edit-form{display:flex;flex-direction:row;gap:.75rem;padding:1rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;margin-top:1rem;align-items:flex-end;flex-wrap:wrap;width:100%;justify-content:space-evenly}.edit-field{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:120px}.edit-field label{font-size:.75rem;font-weight:500;color:#6b7280;text-transform:uppercase;margin-bottom:.125rem}.edit-field input[type=number],.edit-field select{padding:2px;border:1px solid #d1d5db;border-radius:.375rem;font-size:.8rem;transition:border-color .2s;min-width:120px;width:100%}.edit-field input[type=number]:focus,.edit-field select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.edit-field.checkbox-field{gap:.25rem}.edit-field.checkbox-field label{display:flex;align-items:center;gap:.5rem;font-weight:400;cursor:pointer;margin:0}.edit-field.checkbox-field input[type=checkbox]{width:1.125rem;height:1.125rem;cursor:pointer;accent-color:#2563eb}.edit-buttons{display:flex;gap:.5rem;justify-content:flex-end;align-self:flex-end;margin:0;padding:0;border:none}.btn-save,.btn-cancel{padding:0;border:none;border-radius:.375rem;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;line-height:1}.btn-save{background-color:#2563eb;color:#fff}.btn-save:hover:not(:disabled){background-color:#1d4ed8;box-shadow:0 2px 8px #2563eb4d}.btn-save:disabled{background-color:#9ca3af;cursor:not-allowed}.btn-cancel:hover:not(:disabled){background-color:#d1d5db}.btn-cancel:disabled{cursor:not-allowed;opacity:.6}.expand-icon{display:inline-block;transition:transform .3s ease;font-size:.875rem;margin-right:.25rem}.expand-icon.open{transform:rotate(90deg)}.budget-item.expanded{border-bottom:none;border-radius:.375rem}.transaction-list-container{border-top:1px solid #e5e7eb;padding:1rem;background-color:#f9fafb;margin-top:1rem;border-radius:0}.transaction-list-header{margin-bottom:1rem}.transaction-list-header h5{margin:0;font-size:.875rem;font-weight:600;color:#374151;text-transform:uppercase;letter-spacing:.5px}.transaction-items{display:flex;flex-direction:column;gap:.75rem}.transaction-item{display:grid;grid-template-columns:80px 120px 1fr 120px;gap:1rem;padding:.75rem;background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;align-items:center;font-size:.875rem}.transaction-date{color:#6b7280;font-weight:500;white-space:nowrap}.transaction-category{color:#374151;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-description{color:#6b7280;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-amount{text-align:right;font-weight:600}.transaction-amount .amount{display:inline-block}.transaction-amount .amount.expense{color:#ef4444}.transaction-amount .amount.income{color:#10b981}.no-transactions{text-align:center;color:#9ca3af;padding:1rem;font-size:.875rem;margin:0}@media(max-width:768px){.budgets-container{padding:.5rem .25rem;gap:1rem}.month-selector{flex-wrap:wrap;gap:.5rem;padding:1rem .5rem}.month-selector h3{flex-basis:100%;order:-1;margin:0 0 .5rem;font-size:1.1rem}.month-selector .month-btn{flex:1;padding:.5rem;font-size:1.25rem}.summary-cards{grid-template-columns:repeat(2,1fr);gap:.5rem}.summary-card{padding:1rem .75rem}.summary-card .card-amount{font-size:1.1rem}.section-header{flex-direction:column;align-items:flex-start;gap:.75rem}.section-totals{width:100%;justify-content:space-between;gap:.5rem}.budget-item{padding:.75rem .5rem}.budget-header{grid-template-columns:50px 1fr 40px;gap:.5rem;padding:.75rem .5rem;margin:-.75rem -.5rem 0}.budget-month{font-size:.75rem}.header-title h4{font-size:.85rem}.recurring-column{grid-column:2;justify-content:flex-start;min-height:0;margin-top:-.25rem}.recurring-badge{padding:.1rem .35rem;font-size:.6rem}.budget-header .budget-summary{grid-column:1 / -1;order:2;margin-top:.5rem;padding-top:.5rem;border-top:1px solid rgba(0,0,0,.05)}.budget-header .budget-summary-item span{font-size:.75rem}.budget-header .budget-actions{grid-column:3;grid-row:1}.action-btn{font-size:1rem}.budget-edit-form{flex-direction:column;align-items:stretch;padding:1rem}.edit-field{min-width:0}.edit-buttons{margin-top:.5rem;justify-content:center}.transaction-item{grid-template-columns:70px 1fr 80px;font-size:.75rem}.transaction-category{display:none}}.import-container{width:100%;max-width:1400px;display:flex;flex-direction:column}.import-section{background:var(--bg-primary);border-radius:.5rem;padding:1.5rem;box-shadow:0 1px 3px #0000001a;width:100%;display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--border-primary)}.import-section h3{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;color:var(--text-primary)}.tab-navigation{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:2px solid var(--border-primary)}.tab-btn{padding:.75rem 1rem;border:none;background:transparent;cursor:pointer;font-size:.875rem;font-weight:500;color:var(--text-secondary);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .2s}.tab-btn:hover{color:#374151}.tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.card-selection{margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-primary)}.card-selection label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.card-selection select{width:100%;padding:.75rem;border:1px solid var(--border-primary);border-radius:.375rem;font-size:.875rem;color:var(--text-primary);background:var(--bg-primary);transition:border-color .2s}.card-selection select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a}.card-selection select:disabled{background-color:#f3f4f6;cursor:not-allowed}.warning{color:#dc2626;font-size:.875rem;margin-top:.5rem}.category-selection{margin-bottom:1.5rem;padding:1rem;background-color:var(--bg-secondary);border-radius:.375rem;border:1px solid var(--border-primary)}.category-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.category-field{display:flex;flex-direction:column}.category-field label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.5rem}.category-field select{width:100%;padding:.75rem;border:1px solid var(--border-primary);border-radius:.375rem;font-size:.875rem;color:var(--text-primary);background:var(--bg-primary);transition:border-color .2s}.category-field select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a}.category-field select:disabled{background-color:var(--bg-secondary);cursor:not-allowed;color:var(--text-muted)}.text-input-section{margin-bottom:1.5rem}.text-input-section label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:.5rem}.parse-debug{margin-top:.75rem;padding:.75rem;background-color:#f0fdf4;border:1px solid #86efac;border-radius:.375rem;color:#15803d;font-size:.875rem}.text-input-section textarea{width:100%;padding:.75rem;border:1px solid var(--border-primary);border-radius:.375rem;font-size:.875rem;font-family:monospace;color:var(--text-primary);background:var(--bg-primary);transition:border-color .2s}.text-input-section textarea:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a}.parse-btn{margin-top:.75rem;padding:.75rem 1.5rem;background-color:#2563eb;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.parse-btn:hover:not(:disabled){background-color:#1d4ed8}.parse-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.parsed-transactions{margin-top:1.5rem;display:flex;flex-direction:column;flex:1;min-height:0}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.transactions-header h4{margin:0;font-size:1rem;font-weight:600;color:var(--text-primary)}.header-actions{display:flex;gap:.75rem;align-items:center}.retry-failed-btn{padding:.5rem 1rem;background-color:#f59e0b;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.retry-failed-btn:hover:not(:disabled){background-color:#d97706}.retry-failed-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.import-all-btn{padding:.5rem 1rem;background-color:#10b981;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s}.import-all-btn:hover:not(:disabled){background-color:#059669}.import-all-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.transactions-list{display:flex;flex-direction:column;gap:.75rem;flex:1;overflow-y:auto;min-height:0}.transaction-card{display:grid;grid-template-columns:auto auto auto auto 1fr auto auto;gap:.75rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:.375rem;transition:all .2s;align-items:center}.transaction-card:hover{background-color:#f3f4f6;border-color:#d1d5db}.transaction-card.success:hover{background-color:#a7f3d0;border-color:#34d399}.transaction-card.error:hover{background-color:#fecaca;border-color:#f87171}.transaction-card.duplicate:hover{background-color:#fde68a;border-color:#fbbf24}.transaction-card.uncategorized{background-color:#f0f9ff;border-color:#bae6fd}.transaction-card.uncategorized:hover{background-color:#e0f2fe;border-color:#7dd3fc}.transaction-date{font-size:.875rem;color:#6b7280;font-weight:600;min-width:75px;flex-shrink:0}.date-input{width:100%;padding:.3rem .4rem;font-size:.825rem;font-weight:600;color:var(--text-secondary);border:1px solid var(--border-primary);border-radius:.25rem;background-color:var(--bg-primary);transition:border-color .2s}.date-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb1a}.date-input:disabled{background-color:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.transaction-amount{font-size:.975rem;font-weight:700;color:#ef4444;text-align:right;min-width:65px;flex-shrink:0}.transaction-amount.income{color:#10b981}.transaction-description{font-size:.925rem;color:#1f2937;font-weight:500;flex:1;display:flex;flex-direction:column;gap:.25rem;cursor:help;min-width:0}.description-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;text-align:left}.description-input{width:100%;padding:.4rem .5rem;font-size:.875rem;font-weight:500;color:var(--text-primary);border:1px solid var(--border-primary);border-radius:.25rem;background-color:var(--bg-primary);transition:border-color .2s,box-shadow .2s}.description-input:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb1a}.description-input:disabled{background-color:var(--bg-secondary);color:var(--text-muted);cursor:not-allowed}.duplicate-warning{font-size:.875rem;color:#d97706;font-weight:600;margin-top:.25rem}.duplicate-checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.duplicate-checkbox-label input[type=checkbox]{cursor:pointer;width:16px;height:16px;flex-shrink:0}.duplicate-checkbox-label input[type=checkbox]:disabled{cursor:not-allowed;opacity:.5}.duplicate-checkbox-label span{flex:1}.transaction-type-select{font-size:.825rem;padding:.4rem;border:1px solid var(--border-primary);border-radius:.25rem;transition:border-color .2s;background-color:var(--bg-primary);color:var(--text-primary);min-width:80px;flex-shrink:0}.transaction-type-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb1a}.transaction-type-select:disabled{background-color:var(--bg-secondary);cursor:not-allowed;color:var(--text-muted)}.transaction-main-category-select,.transaction-sub-category-select{font-size:.825rem;padding:.4rem;border:1px solid var(--border-primary);border-radius:.25rem;transition:border-color .2s;background-color:var(--bg-primary);color:var(--text-primary);width:100%;max-width:150px;min-width:80px}.transaction-main-category-select:focus,.transaction-sub-category-select:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 2px #2563eb1a}.transaction-main-category-select:disabled,.transaction-sub-category-select:disabled{background-color:var(--bg-secondary);cursor:not-allowed;color:var(--text-muted)}.import-btn{padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;width:fit-content;flex-shrink:0}.import-btn:hover:not(:disabled){background-color:#1d4ed8}.import-btn:disabled,.import-btn.disabled{background-color:#d1d5db;cursor:not-allowed;opacity:.6}.import-btn.imported{background-color:#10b981;cursor:default}.import-btn.error{background-color:#f59e0b}.import-btn.error:hover:not(:disabled){background-color:#d97706}.error-message{font-size:.75rem;color:#991b1b;font-weight:600;white-space:nowrap}@media(max-width:768px){.import-container,.import-section{padding:1rem}.transaction-card{grid-template-columns:auto auto auto auto 1fr auto auto;gap:.3rem;padding:.5rem;font-size:.65rem}.transaction-date{font-size:.65rem;min-width:60px}.date-input{font-size:.65rem;padding:.2rem .25rem;min-width:85px}.transaction-type-select{min-width:50px;flex-shrink:0;font-size:.725rem;padding:.2rem .3rem}.transaction-main-category-select,.transaction-sub-category-select{width:100%;max-width:90px;min-width:60px;font-size:.725rem;padding:.2rem .3rem}.transaction-description{font-size:.775rem;min-width:0}.description-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.description-input{font-size:.725rem;padding:.25rem .4rem}.transaction-amount{font-size:.775rem;min-width:50px;text-align:right}.import-btn{padding:.3rem .5rem;font-size:.7rem;min-width:45px}}.receipt-input-section{margin-bottom:1.5rem;padding:1.5rem;background:#f9fafb;border-radius:.5rem}.receipt-input-section label{display:block;font-size:.875rem;font-weight:500;color:#374151;margin-bottom:1rem}.receipt-upload-area{border:2px dashed #d1d5db;border-radius:.5rem;padding:2rem;text-align:center;cursor:pointer;transition:all .2s;background:#fff;margin-bottom:1rem}.receipt-upload-area:hover{border-color:#2563eb;background:#eff6ff}.upload-placeholder{pointer-events:none}.upload-icon{font-size:2.5rem;margin-bottom:.5rem}.upload-placeholder p{margin:.5rem 0;color:#374151;font-size:.9rem;font-weight:500}.upload-placeholder small{color:#6b7280;display:block;font-size:.8rem}.receipt-file-info{pointer-events:none;padding:1rem}.file-icon{font-size:2rem;margin-bottom:.5rem}.file-name{color:#1f2937;font-weight:500;word-break:break-all;margin-bottom:.25rem}.file-size{color:#6b7280;font-size:.875rem;margin-bottom:1rem}.remove-file-btn{pointer-events:all;padding:.5rem 1rem;background:#ef4444;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s}.remove-file-btn:hover{background:#dc2626}.receipt-error{padding:.75rem 1rem;background:#fee2e2;border-left:4px solid #ef4444;color:#991b1b;border-radius:.375rem;font-size:.875rem;margin-bottom:1rem}.parse-receipt-btn{width:100%;padding:.75rem 1rem;background:#2563eb;color:#fff;border:none;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:600;transition:all .2s}.parse-receipt-btn:hover:not(:disabled){background:#1d4ed8}.parse-receipt-btn:disabled{background:#d1d5db;cursor:not-allowed}.category-input-group{display:flex;flex-direction:column;gap:.5rem;flex:1}.new-category-input{display:flex;gap:.5rem;align-items:center;padding:.5rem;background-color:#eff6ff;border:1px solid #93c5fd;border-radius:.375rem;animation:slideIn .2s ease-out}@keyframes slideIn{0%{opacity:0;max-height:0}to{opacity:1;max-height:100px}}.new-category-input input{flex:1;padding:.4rem .5rem;border:1px solid #93c5fd;border-radius:.25rem;font-size:.825rem;background-color:#fff;color:#1f2937;transition:border-color .2s}.new-category-input input::placeholder{color:#9ca3af}.new-category-input input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.create-category-btn{padding:.4rem .75rem;background-color:#10b981;color:#fff;border:none;border-radius:.25rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap;flex-shrink:0}.create-category-btn:hover:not(:disabled){background-color:#059669}.create-category-btn:disabled{background-color:#d1d5db;cursor:not-allowed;color:#9ca3af}.cancel-category-btn{padding:.4rem .75rem;background-color:#ef4444;color:#fff;border:none;border-radius:.25rem;font-size:.75rem;font-weight:600;cursor:pointer;transition:background-color .2s;white-space:nowrap;flex-shrink:0}.cancel-category-btn:hover{background-color:#dc2626}.tax-report-container{padding:1.5rem;max-width:1200px;margin:0 auto;color:var(--text-primary)}.tax-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:2rem;flex-wrap:wrap;gap:1.5rem}.tax-header h1{font-size:1.75rem;font-weight:800;margin-bottom:.25rem;background:linear-gradient(135deg,var(--accent-primary),#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.tax-header .subtitle{color:var(--text-secondary);font-size:.95rem}.header-controls{display:flex;gap:1rem;align-items:center}.year-select,.tax-selector{padding:.6rem 1rem;border-radius:.75rem;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-weight:500;cursor:pointer;outline:none;transition:all .2s}.year-select:focus,.tax-selector:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #2563eb1a}.mapping-toggle-btn{padding:.6rem 1.25rem;border-radius:.75rem;border:1px solid var(--accent-primary);background:transparent;color:var(--accent-primary);font-weight:600;cursor:pointer;transition:all .2s}.mapping-toggle-btn:hover{background:#2563eb0d}.mapping-toggle-btn.active{background:var(--accent-primary);color:#fff}.summary-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;margin-bottom:2.5rem}.summary-card{padding:1.5rem;background:var(--bg-primary);border-radius:1rem;border:1px solid var(--border-primary);display:flex;align-items:center;gap:1.25rem;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 6px -1px #0000000d}.summary-card.has-data{border-color:#2563eb33;background:linear-gradient(135deg,var(--bg-primary),rgba(37,99,235,.03))}.summary-card:hover{transform:translateY(-4px);box-shadow:0 10px 15px -3px #0000001a}.card-icon{width:48px;height:48px;border-radius:.75rem;background:#2563eb1a;color:var(--accent-primary);display:flex;align-items:center;justify-content:center}.card-content{flex:1}.card-label{font-size:.85rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem;display:block}.card-amount{font-size:1.5rem;font-weight:800;margin:0}.meals-note{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.75rem;color:var(--accent-primary);background:#2563eb0d;padding:.35rem .5rem;border-radius:.5rem}.glass-panel{background:var(--bg-primary);border-radius:1.25rem;border:1px solid var(--border-primary);padding:1.75rem;box-shadow:0 4px 6px -1px #0000000d;margin-bottom:2rem}.section-header{margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.section-header h3{margin:0;font-size:1.15rem;font-weight:700;display:flex;align-items:center;gap:.75rem}.info-badge{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-secondary);background:var(--bg-secondary);padding:.4rem .75rem;border-radius:2rem}.tax-categories-list{display:flex;flex-direction:column;gap:.75rem}.tax-cat-item{border:1px solid var(--border-primary);border-radius:1rem;overflow:hidden;transition:all .2s}.item-header{padding:1rem 1.5rem;display:flex;justify-content:space-between;align-items:center;cursor:pointer;background:var(--bg-primary);transition:background .2s}.item-header:hover{background:var(--bg-secondary)}.item-title{display:flex;align-items:center;gap:1rem}.item-text{display:flex;flex-direction:column}.item-text .name{font-weight:700;font-size:1rem}.item-text .eng-name{font-size:.75rem;color:var(--text-secondary)}.item-value{display:flex;align-items:center;gap:1.5rem}.item-value .amount{font-weight:800;font-size:1.15rem}.item-breakdown{padding:.5rem 1.5rem 1.5rem;background:var(--bg-secondary);display:flex;flex-direction:column;gap:.5rem;border-top:1px solid var(--border-primary)}.breakdown-row{display:flex;justify-content:space-between;padding:.5rem 0;border-bottom:1px dashed var(--border-primary);font-size:.9rem}.breakdown-row:last-child{border-bottom:none}.breakdown-row .sub-cat-name{color:var(--text-secondary)}.breakdown-row .sub-cat-amount{font-weight:600;font-family:monospace}.mapping-workspace{display:grid;grid-template-columns:1fr 350px;gap:2rem;align-items:start}.mapping-grid-v2{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.tax-mapping-card{background:var(--bg-primary);border-radius:1.25rem;border:1px solid var(--border-primary);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 4px 6px -1px #0000000d;transition:all .3s ease}.tax-mapping-card:hover{border-color:var(--accent-primary);box-shadow:0 10px 15px -3px #0000001a}.tax-card-header{padding:1.25rem;background:linear-gradient(to bottom,var(--bg-secondary),var(--bg-primary));border-bottom:1px solid var(--border-primary);display:flex;align-items:center;gap:1rem}.tax-icon{width:40px;height:40px;border-radius:.75rem;background:#2563eb1a;color:var(--accent-primary);display:flex;align-items:center;justify-content:center}.tax-info h4{margin:0;font-size:1rem;font-weight:700}.tax-info .eng{font-size:.75rem;color:var(--text-secondary)}.mapped-chips{padding:1.25rem;display:flex;flex-wrap:wrap;gap:.5rem;min-height:80px;background:rgba(var(--accent-primary-rgb),.02)}.cat-chip{display:flex;align-items:center;gap:.5rem;padding:.35rem .75rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:2rem;font-size:.85rem;font-weight:500}.cat-chip .dot{width:8px;height:8px;border-radius:50%}.cat-chip .remove-btn{background:none;border:none;font-size:1.2rem;line-height:1;cursor:pointer;color:var(--text-muted);padding:0;margin-left:.25rem;display:flex;align-items:center;justify-content:center}.cat-chip .remove-btn:hover{color:var(--danger-primary)}.rate-input-wrapper{display:flex;align-items:center;gap:.15rem;background:var(--bg-primary);padding:.15rem .35rem;border-radius:.4rem;border:1px solid var(--border-primary);margin-left:.25rem}.rate-input{width:32px;border:none;background:transparent;padding:0;text-align:right;font-size:.75rem;font-weight:700;color:var(--accent-primary);outline:none}.rate-input::-webkit-inner-spin-button,.rate-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.percent-sign{font-size:.65rem;font-weight:700;color:var(--text-muted)}.rate-badge{font-size:.75rem;color:var(--accent-primary);font-weight:600;margin-left:.5rem}.empty-mapped{width:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:.85rem;font-style:italic;opacity:.7}.drop-zone{padding:.75rem;text-align:center;border-top:1px dashed var(--border-primary);background:var(--bg-secondary)}.drop-zone p{margin:0;font-size:.75rem;color:var(--text-muted)}.unassigned-panel{position:sticky;top:1.5rem;max-height:calc(100vh - 200px);display:flex;flex-direction:column}.panel-header{margin-bottom:1.5rem}.panel-header h3{font-size:1.1rem;margin-bottom:1rem}.filter-controls{display:flex;flex-direction:column;gap:.75rem}.main-cat-select,.filter-input{width:100%;padding:.6rem 1rem;border-radius:.75rem;border:1px solid var(--border-primary);background:var(--bg-secondary);color:var(--text-primary);font-size:.85rem;outline:none;transition:all .2s ease}.main-cat-select:focus,.filter-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px rgba(var(--accent-primary-rgb),.1)}.main-cat-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='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}.unassigned-list{display:flex;flex-direction:column;gap:.75rem;overflow-y:auto;padding-right:.5rem}.unassigned-item{padding:.85rem;background:var(--bg-secondary);border-radius:.75rem;border:1px solid var(--border-primary)}.unassigned-item .item-info{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.unassigned-item .dot{width:10px;height:10px;border-radius:50%}.unassigned-item .text{display:flex;flex-direction:column}.unassigned-item .name{font-weight:600;font-size:.9rem}.unassigned-item .parent{font-size:.7rem;color:var(--text-secondary)}.action-buttons{display:grid;grid-template-columns:repeat(5,1fr);gap:.25rem}.assign-btn{padding:.35rem 0;font-size:.65rem;font-weight:700;text-transform:uppercase;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:.4rem;cursor:pointer;color:var(--text-secondary);transition:all .2s}.assign-btn:hover{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.all-assigned{text-align:center;padding:2rem;color:var(--text-muted);display:flex;flex-direction:column;align-items:center;gap:.75rem}.all-assigned p{margin:0;font-size:.9rem}@media(max-width:1024px){.mapping-workspace{grid-template-columns:1fr}.unassigned-panel{position:static;max-height:none}}@media(max-width:768px){.tax-header{flex-direction:column;align-items:flex-start}.tax-selector{width:100%;max-width:none}}.annual-report{display:flex;flex-direction:column;gap:1.5rem}.report-header{margin-bottom:2rem}.time-selector{display:flex;flex-direction:column;gap:.75rem;width:100%}.time-selector-group{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.time-btn{padding:.5rem 1rem;border-radius:.5rem;border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease}.time-btn:hover{background:var(--bg-secondary);border-color:#667eea}.time-btn.active{background:#667eea;color:#fff;border-color:#667eea;font-weight:600;box-shadow:0 4px 10px #667eea4d}.time-btn.year-btn{font-size:.95rem;padding:.6rem 1.25rem}.time-btn.month-btn{min-width:44px}.report-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:var(--text-secondary, #6b7280)}.loading-spinner{width:40px;height:40px;border:4px solid var(--border-primary);border-top-color:#667eea;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.summary-card{display:flex;align-items:center;gap:.75rem;padding:1.25rem;border-radius:1rem;border:1px solid var(--border-primary);background:var(--bg-primary);transition:transform .2s,box-shadow .2s}.summary-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000014}.summary-card.clickable{cursor:pointer}.summary-card.clickable:active{transform:translateY(0);box-shadow:0 4px 12px #0000001a}.summary-card.income{border-left:4px solid #10b981}.summary-card.expense{border-left:4px solid #ef4444}.summary-card.net{border-left:4px solid #667eea}.summary-card.loan{border-left:4px solid #8b5cf6}.summary-card.transfer{border-left:4px solid #94a3b8}.summary-card.savings{border-left:4px solid #f59e0b}.card-icon{font-size:1.75rem;line-height:1}.card-content{display:flex;flex-direction:column;gap:.15rem}.card-label{font-size:.75rem;color:var(--text-secondary, #6b7280);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.card-value{font-size:1.35rem;font-weight:800;color:var(--text-primary);letter-spacing:-.02em}.chart-section{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:1rem;padding:1.5rem}.chart-title{font-size:1rem;font-weight:700;background:var(--bg-primary);color:var(--text-primary);margin:0 0 1rem}.chart-container{width:100%}.no-data-msg{text-align:center;color:var(--text-secondary, #6b7280);padding:3rem;font-size:.9rem}.report-tooltip{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:.5rem;padding:.75rem 1rem;box-shadow:0 10px 30px #0000001f}.tooltip-label{font-weight:700;color:var(--text-primary, #1f2937);margin:0 0 .25rem;font-size:.85rem}.tooltip-item{margin:0;font-size:.8rem;font-weight:600}.report-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.pie-container{display:flex;flex-direction:column;align-items:center;justify-content:center}.category-click-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;width:100%;margin-top:.5rem;padding-top:1rem;border-top:1px dashed var(--border-primary)}.category-click-item{display:flex;align-items:center;padding:.4rem .5rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:.375rem;cursor:pointer;transition:all .2s ease;font-size:.75rem}.category-click-item:hover{background:var(--bg-primary);transform:translateY(-1px);box-shadow:0 2px 8px #0000000d}.cat-color-box{width:10px;height:10px;border-radius:2px;margin-right:.5rem;flex-shrink:0}.cat-click-name{flex:1;color:var(--text-primary);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-click-val{font-weight:700;color:var(--text-secondary);margin-left:.5rem}.monthly-table-container{max-height:400px;overflow-y:auto}.monthly-table{width:100%;border-collapse:collapse;font-size:.85rem}.monthly-table th{text-align:left;padding:.6rem .75rem;border-bottom:2px solid var(--border-primary);color:var(--text-secondary, #6b7280);font-weight:600;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;position:sticky;top:0;background:var(--bg-primary)}.monthly-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border-primary);color:var(--text-primary)}.monthly-row{cursor:pointer;transition:background-color .15s ease}.monthly-row:hover:not(.future-month){background-color:var(--bg-secondary)}.monthly-table .num{text-align:right;font-variant-numeric:tabular-nums}.monthly-table .income-text{color:#10b981}.monthly-table .expense-text{color:#ef4444}.monthly-table .positive{color:#10b981}.monthly-table .negative{color:#ef4444}.monthly-table .future-month td{opacity:.35}.monthly-table .total-row{background:var(--bg-secondary)}.monthly-table .total-row td{border-bottom:none;border-top:2px solid var(--border-primary);padding-top:.75rem}.recharts-legend-item-text{color:var(--text-primary, #1f2937)!important}.report-modal{width:90%;max-width:500px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.report-modal-body{padding:.75rem;overflow-y:auto;flex:1}.report-tx-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.report-tx-item{display:flex;align-items:center;justify-content:space-between;padding:.35rem .5rem;background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:.375rem;gap:.5rem}.tx-details{display:flex;flex-direction:row;align-items:center;gap:.5rem;flex:1;min-width:0}.tx-date{font-size:.75rem;color:var(--text-secondary);min-width:45px}.tx-desc{font-weight:500;color:var(--text-primary);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.tx-catbadge{font-size:.7rem;background:var(--bg-primary);color:var(--text-secondary);padding:.15rem .35rem;border-radius:.25rem;border:1px solid var(--border-primary)}.tx-amt{font-weight:800;font-size:.95rem;flex-shrink:0;text-align:right;white-space:nowrap}.tx-amt.income{color:#10b981}.tx-amt.expense{color:#ef4444}.report-tx-grouped{display:flex;flex-direction:column;gap:1rem}.tx-group{display:flex;flex-direction:column;gap:.5rem;background:var(--bg-primary);border-radius:.5rem;overflow:hidden;box-shadow:0 1px 3px #0000001a;border:1px solid var(--border-primary)}.tx-group-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background-color:#3b82f6;color:#fff}.tx-group-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .15s ease}.tx-group-header--clickable:hover{background-color:#2563eb}.tx-group-header--clickable.expanded{background-color:#1d4ed8}.tx-group-chevron{font-size:.7rem;margin-left:.5rem;opacity:.85}.tx-group-title{font-weight:700;font-size:1.05rem;color:#fff;text-transform:capitalize;letter-spacing:.02em}.tx-group-totals{display:flex;gap:.75rem}.tx-group-header .tx-amt.income{color:#a7f3d0}.tx-group-header .tx-amt.expense{color:#fecaca}.tx-subgroups{display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.tx-subgroup{display:flex;flex-direction:column;gap:.35rem;background-color:var(--bg-secondary);border-radius:.375rem;overflow:hidden;border-left:4px solid #6366f1}.tx-subgroup-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background-color:var(--bg-secondary);border-bottom:1px solid var(--border-primary)}.tx-subgroup-title{font-weight:600;font-size:.9rem;color:var(--text-primary);text-transform:capitalize}.tx-subgroup-totals .tx-amt{font-size:.9rem}.tx-subgroup-header .tx-amt.income{color:#14b8a6}.tx-subgroup-header .tx-amt.expense{color:#f97316}.report-tx-list.group-list{padding:.25rem .5rem .5rem}.report-tx-list.group-list .report-tx-item{border-left:none;background-color:transparent;border:none;border-bottom:1px dashed var(--border-primary);border-radius:0;padding:.5rem .25rem}.report-tx-list.group-list .report-tx-item:last-child{border-bottom:none}.summary-breakdown-modal{max-width:400px}.breakdown-table th,.breakdown-table td{padding:.75rem 1rem}.breakdown-table .num{font-weight:700;font-size:.95rem}.hint-text{font-size:.75rem;color:var(--text-secondary);text-align:center;margin-top:1rem;font-style:italic}.breakdown-table .net-text.positive,.positive{color:#10b981}.breakdown-table .net-text.negative,.negative{color:#ef4444}.breakdown-table .income-text,.income-text{color:#10b981}.breakdown-table .expense-text,.expense-text{color:#ef4444}.loan-text{color:#8b5cf6}.transfer-text{color:#64748b}@media(max-width:768px){.annual-report{padding:.5rem .25rem;gap:1rem}.summary-cards{grid-template-columns:1fr;gap:.75rem}.report-bottom-grid{grid-template-columns:1fr}}@media(max-width:640px){.year-title{font-size:1.1rem}.card-value{font-size:1.15rem}.summary-card{padding:.85rem 1rem;gap:.5rem}.card-icon{font-size:1.4rem}.chart-section{padding:1rem}.report-modal{width:95%}.report-modal-body{padding:.5rem}.tx-group-header{padding:.4rem .6rem}.tx-group-title{font-size:.9rem}.tx-subgroups{padding:.4rem;gap:.4rem}.tx-subgroup-header{padding:.35rem .5rem}}.card-spending-item{display:flex!important;align-items:center;justify-content:space-between}.card-info-group{display:flex;flex-direction:column;flex:1;margin-left:.5rem}.card-type-tag{font-size:.7rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.card-group-summary{display:flex;flex-direction:column;gap:2rem;padding:1rem 0}.method-comparison{display:flex;flex-direction:column;gap:1.5rem}.comparison-bar{display:flex;height:24px;border-radius:12px;overflow:hidden;background:var(--bg-secondary);box-shadow:inset 0 2px 4px #0000000d}.bar-part{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;color:#fff;transition:width .5s ease;white-space:nowrap}.bar-part.credit{background:linear-gradient(90deg,#667eea,#764ba2)}.bar-part.debit{background:linear-gradient(90deg,#10b981,#34d399)}.comparison-details{display:flex;flex-direction:column;gap:.75rem}.comp-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:.75rem}.comp-label-group{display:flex;align-items:center;gap:.75rem}.comp-dot{width:10px;height:10px;border-radius:50%}.comp-dot.credit{background:#667eea}.comp-dot.debit{background:#10b981}.comp-item .label{font-size:.9rem;color:var(--text-secondary)}.comp-item .val{font-weight:700;font-size:1.1rem}.val.credit-text{color:#667eea}@media(max-width:640px){.bar-part span{display:none}}.payment-cards-container{display:flex;flex-direction:column;gap:1.25rem}.cards-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.5rem}.cards-title-text{font-size:1.35rem;font-weight:700;color:var(--text-color, #f1f5f9);margin:0;white-space:nowrap;letter-spacing:-.01em}.header-actions{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.add-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;background-color:#10b981;color:#fff;border:none;border-radius:.375rem;font-size:.825rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background-color .2s}.add-btn:hover{background-color:#059669}.add-form-container{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;padding:1.5rem;margin-bottom:1.5rem}.add-form{display:flex;flex-direction:column;gap:1rem}.form-row{display:flex;gap:1rem;flex-wrap:wrap}.form-group{display:flex;flex-direction:column;gap:.25rem;flex:1;min-width:150px}.form-group label{font-size:.875rem;font-weight:500;color:#374151}.form-group input,.form-group select{padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-buttons{display:flex;gap:.75rem;justify-content:flex-end;margin-top:.75rem;width:100%}.btn-cancel,.btn-submit{padding:.6rem 1.25rem;border:none;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-cancel{background-color:#e5e7eb;color:#374151}.btn-cancel:hover{background-color:#d1d5db}.btn-submit{background-color:#2563eb;color:#fff}.btn-submit:hover:not(:disabled){background-color:#1d4ed8}.btn-submit:disabled{background-color:#9ca3af;cursor:not-allowed}.error-message{background-color:#fee2e2;color:#991b1b;padding:.75rem;border-radius:.375rem;font-size:.875rem;border:1px solid #fecaca;margin-top:1rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem}.card-item{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-radius:.65rem;padding:.75rem .9rem;color:#0f172a;box-shadow:0 2px 4px -1px #0000000d;border:1px solid #bfdbfe;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:.45rem;position:relative}.card-item.credit{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-color:#cbd5e1}.card-item.clickable-card{cursor:pointer;-webkit-user-select:none;user-select:none}.card-item.clickable-card:hover{transform:translateY(-2px);box-shadow:0 8px 16px -2px #2563eb26;border-color:#60a5fa}.card-item.credit.clickable-card:hover{border-color:#94a3b8;box-shadow:0 8px 16px -2px #64748b33}.card-top-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.card-title-group{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.card-name-full{font-size:.92rem;font-weight:700;color:#1e293b;line-height:1.25;word-break:break-word;margin-bottom:.1rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-badges-row{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.card-menu-wrapper{position:relative;flex-shrink:0}.card-dots-btn{background:#ffffffa6;border:1px solid rgba(0,0,0,.08);border-radius:6px;width:26px;height:26px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#475569;transition:all .15s ease;padding:0}.card-dots-btn:hover{background:#fff;color:#0f172a;border-color:#94a3b8;box-shadow:0 2px 6px #0000001f}.card-dropdown-menu{position:absolute;top:100%;right:0;margin-top:4px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #0000001a;padding:.35rem;min-width:175px;z-index:50;display:flex;flex-direction:column;gap:2px;animation:cardMenuFade .15s ease-out}@keyframes cardMenuFade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.dropdown-menu-item{width:100%;display:flex;align-items:center;gap:8px;padding:.42rem .6rem;background:transparent;border:none;border-radius:5px;font-size:.78rem;font-weight:500;color:#334155;cursor:pointer;text-align:left;transition:all .12s ease;white-space:nowrap}.dropdown-menu-item:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.dropdown-menu-item:disabled{opacity:.5;cursor:not-allowed}.dropdown-menu-item.danger{color:#dc2626}.dropdown-menu-item.danger:hover{background:#fef2f2;color:#b91c1c}.dropdown-divider{height:1px;background:#f1f5f9;margin:.2rem 0}.plaid-badge{background:linear-gradient(135deg,#0ea5e9,#0284c7);color:#fff;font-size:.65rem;font-weight:700;letter-spacing:.04em;padding:.15rem .45rem;border-radius:9999px;box-shadow:0 1px 2px #0284c733}.tx-count-badge{background:#fff;color:#475569;font-size:.7rem;font-weight:600;padding:.15rem .5rem;border-radius:9999px;border:1px solid #cbd5e1}.card-issuer-pill{background:#e0f2fe;color:#0369a1;font-size:.7rem;font-weight:500;padding:.15rem .45rem;border-radius:.25rem}.account-subtype-badge{font-size:.65rem;font-weight:700;letter-spacing:.04em;padding:.15rem .5rem;border-radius:9999px;display:inline-flex;align-items:center;line-height:1.2}.subtype-checking,.subtype-debit{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.subtype-savings{background:#eff6ff;color:#1d4ed8;border:1px solid #bfdbfe}.subtype-retirement{background:#fdf4ff;color:#86198f;border:1px solid #f5d0fe}.subtype-crypto{background:#fffbeb;color:#b45309;border:1px solid #fde68a}.subtype-investment{background:#f5f3ff;color:#6d28d9;border:1px solid #ddd6fe}.subtype-credit{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.subtype-bank,.subtype-cash{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}.card-actions-bar{display:flex;align-items:center;justify-content:flex-end;gap:.35rem;padding:.35rem .5rem;background:#ffffffbf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:.5rem;border:1px solid rgba(203,213,225,.8);margin-top:.1rem}.card-action-icon-btn{background:transparent;border:1px solid transparent;border-radius:.375rem;cursor:pointer;font-size:.9rem;padding:.3rem .45rem;color:#475569;display:inline-flex;align-items:center;justify-content:center;transition:all .15s ease}.card-action-icon-btn:hover{background:#fff;color:#0f172a;border-color:#cbd5e1;box-shadow:0 1px 3px #00000014;transform:translateY(-1px)}.card-action-icon-btn.sync-btn:hover{color:#0284c7;border-color:#bae6fd;background:#f0f9ff}.card-action-icon-btn.merge-btn:hover{color:#7c3aed;border-color:#ddd6fe;background:#f5f3ff}.card-action-icon-btn.delete-btn:hover{color:#dc2626;border-color:#fecaca;background:#fef2f2}.card-body-area{display:flex;align-items:center;gap:.65rem;padding:.25rem 0;margin-top:.1rem}.card-type-icon{font-size:1.45rem;line-height:1}.card-balance-box{display:flex;flex-direction:column}.card-balance-row{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.card-balance-val{font-size:1.25rem;font-weight:800;color:#0f172a;letter-spacing:-.02em;line-height:1.2}.card-balance-date{font-size:.72rem;font-weight:500;color:#0284c7;letter-spacing:-.01em;white-space:nowrap}.card-limit-pill{background:#fff;color:#475569;font-size:.68rem;font-weight:600;padding:.12rem .45rem;border-radius:9999px;border:1px solid #cbd5e1}.card-footer-area{display:flex;align-items:center;justify-content:space-between;gap:.4rem;padding-top:.35rem;border-top:1px solid rgba(0,0,0,.06);font-size:.7rem;color:#64748b}.card-meta-item.sync-time{font-weight:500;color:#0284c7}.card-meta-item.manual-tag{font-weight:500;color:#94a3b8}.no-cards{text-align:center;color:#6b7280;padding:2rem;background-color:#fff;border-radius:.5rem;border:1px solid #e5e7eb;grid-column:1 / -1}.section{display:flex;flex-direction:column;gap:1.25rem;margin-top:1.5rem;padding:0}.section-header{display:flex;align-items:center;margin-bottom:.5rem;border-bottom:2px solid #e5e7eb;padding-bottom:.75rem}.section-header h4{font-size:1.25rem;font-weight:600;color:#1f2937;margin:0}.section-summary{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:stretch}.summary-card{flex:1;min-width:150px;background-color:#f3f4f6;border:1px solid #d1d5db;border-radius:.375rem;padding:1.25rem 1rem;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;transition:all .2s}.summary-card:hover{background-color:#e5e7eb;border-color:#9ca3af;transform:translateY(-2px)}.summary-label{font-size:.875rem;font-weight:500;color:#6b7280;text-align:center;text-transform:uppercase;letter-spacing:.025em}.summary-amount{font-size:1.5rem;font-weight:700;color:#059669;text-align:center}.header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.plaid-btn-wrapper{position:relative;display:inline-flex}.plaid-link-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border:1px solid #334155;border-radius:.375rem;font-size:.825rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s ease-in-out;box-shadow:0 1px 3px #0000001a}.plaid-link-btn:hover:not(:disabled){background:linear-gradient(135deg,#334155,#1e293b);transform:translateY(-1px);box-shadow:0 4px 6px -1px #00000026}.plaid-link-btn:disabled{opacity:.6;cursor:not-allowed}.sync-all-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .85rem;background-color:#fff;color:#0284c7;border:1px solid #bae6fd;border-radius:.375rem;font-size:.825rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:all .2s}.sync-all-btn:hover:not(:disabled){background-color:#f0f9ff;border-color:#7dd3fc;transform:translateY(-1px)}.sync-all-btn:disabled{opacity:.6;cursor:not-allowed}.sync-all-btn.full-sync-all-btn{color:#047857;border-color:#a7f3d0;background-color:#ecfdf5}.sync-all-btn.full-sync-all-btn:hover:not(:disabled){background-color:#d1fae5;border-color:#6ee7b7}.card-action-icon-btn.full-sync-icon-btn{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0;padding:2px 4px}.card-action-icon-btn.full-sync-icon-btn:hover:not(:disabled){background:#d1fae5;color:#065f46}.plaid-error-tooltip{position:absolute;top:calc(100% + 6px);left:0;z-index:50;display:flex;align-items:center;gap:.4rem;padding:.4rem .65rem;background-color:#fef2f2;border:1px solid #fecaca;color:#b91c1c;font-size:.75rem;font-weight:500;border-radius:.375rem;white-space:nowrap;box-shadow:0 4px 6px -1px #0000001a}.plaid-institutions-bar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background-color:#f8fafc;border:1px solid #e2e8f0;border-radius:.5rem;flex-wrap:wrap}.institutions-title{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:600;color:#475569}.institutions-list{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.institution-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;background-color:#fff;border:1px solid #cbd5e1;border-radius:9999px;font-size:.8rem;color:#334155;box-shadow:0 1px 2px #0000000d}.institution-pill .inst-name{font-weight:600}.institution-pill .inst-count{font-size:.75rem;color:#64748b}.inst-sync-btn,.inst-disconnect-btn{background:none;border:none;padding:.2rem;cursor:pointer;color:#64748b;border-radius:.25rem;display:inline-flex;align-items:center;justify-content:center;transition:color .15s}.inst-sync-btn:hover{color:#2563eb}.inst-disconnect-btn:hover{color:#ef4444}.institution-pill.error-pill{border-color:#fca5a5;background:#fef2f2}.inst-reconnect-btn{display:inline-flex!important;align-items:center!important;gap:.25rem!important;padding:.2rem .6rem!important;background:#ef4444!important;color:#fff!important;border:none!important;border-radius:9999px!important;font-size:.72rem!important;font-weight:700!important;cursor:pointer;white-space:nowrap;min-height:auto!important;box-shadow:0 1px 3px #ef444466;transition:all .2s ease}.inst-reconnect-btn:hover{background:#dc2626!important;transform:translateY(-1px)}.card-top-row{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;flex:1}.card-badges-row{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.plaid-badge{font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background-color:#dbeafe;color:#1d4ed8;padding:.1rem .4rem;border-radius:.25rem;border:1px solid #bfdbfe}.tx-count-badge{font-size:.65rem;font-weight:600;background-color:#f1f5f9;color:#475569;padding:.1rem .4rem;border-radius:.25rem;border:1px solid #e2e8f0}.card-sync-time{font-size:.7rem;color:#9ca3af;margin-top:.25rem}.merge-accounts-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #6366f140}.merge-accounts-btn:hover{background:linear-gradient(135deg,#4f46e5,#4338ca);transform:translateY(-1px);box-shadow:0 4px 10px #6366f159}.merge-card-action-btn{background:none;border:none;font-size:1rem;cursor:pointer;padding:.2rem;opacity:.75;transition:opacity .15s,transform .15s}.merge-card-action-btn:hover{opacity:1;transform:scale(1.15)}.modal-overlay{position:fixed;inset:0;background-color:#0f172aa6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem}.merge-modal-content{background-color:#fff;border-radius:1rem;width:100%;max-width:580px;box-shadow:0 25px 50px -12px #00000040;border:1px solid #e2e8f0;overflow:hidden;animation:modalFadeIn .2s ease-out}@keyframes modalFadeIn{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.merge-modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:linear-gradient(135deg,#0f172a,#1e293b);color:#fff}.merge-modal-title{display:flex;align-items:center;gap:.6rem}.merge-modal-title h4{margin:0;font-size:1.15rem;font-weight:700;color:#fff}.merge-title-icon{color:#818cf8}.modal-close-icon-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);color:#cbd5e1;cursor:pointer;padding:.35rem;border-radius:.375rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.modal-close-icon-btn:hover{background:#ef44444d;color:#fca5a5;border-color:#ef444480}.merge-modal-body{padding:1.5rem;display:flex;flex-direction:column;gap:1.15rem}.merge-intro-text{font-size:.875rem;color:#475569;line-height:1.5;margin:0;background-color:#f8fafc;padding:.75rem 1rem;border-radius:.5rem;border-left:4px solid #6366f1}.merge-field-group{display:flex;flex-direction:column;gap:.35rem}.merge-field-group label{font-size:.85rem;font-weight:600;color:#1e293b}.merge-field-group select,.merge-field-group input{padding:.65rem .85rem;border:1.5px solid #cbd5e1;border-radius:.5rem;font-size:.9rem;color:#0f172a;background-color:#fff;transition:border-color .2s,box-shadow .2s}.merge-field-group select:focus,.merge-field-group input:focus{outline:none;border-color:#6366f1;box-shadow:0 0 0 3px #6366f126}.field-hint{font-size:.75rem;color:#64748b;margin-top:.1rem}.merge-flow-divider{display:flex;align-items:center;justify-content:center;gap:.5rem;color:#6366f1;font-size:.8rem;font-weight:600;padding:.25rem 0}.merge-checkbox-group{padding:.75rem 1rem;background-color:#f8fafc;border-radius:.5rem;border:1px solid #e2e8f0}.checkbox-container{display:flex;align-items:center;gap:.6rem;cursor:pointer;-webkit-user-select:none;user-select:none}.checkbox-container input[type=checkbox]{width:1.1rem;height:1.1rem;accent-color:#6366f1;cursor:pointer}.checkbox-label{font-size:.85rem;color:#334155}.merge-preview-box{background:linear-gradient(135deg,#e0e7ff,#f1f5f9);border:1px solid #c7d2fe;border-radius:.6rem;padding:.85rem 1rem}.preview-header{font-size:.85rem;font-weight:700;color:#3730a3;margin-bottom:.35rem}.preview-details{font-size:.825rem;color:#1e1b4b;line-height:1.5}.preview-details code{background-color:#fffc;padding:.1rem .35rem;border-radius:.25rem;font-weight:600;color:#4338ca}.merge-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.5rem;padding-top:1rem;border-top:1px solid #e2e8f0}.btn-merge-submit{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.25rem;background:linear-gradient(135deg,#4f46e5,#3730a3);color:#fff;border:none;border-radius:.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 6px #4f46e54d}.btn-merge-submit:hover:not(:disabled){background:linear-gradient(135deg,#4338ca,#312e81);transform:translateY(-1px);box-shadow:0 4px 12px #4f46e566}.btn-merge-submit:disabled{opacity:.5;cursor:not-allowed}#root{width:100%;height:100%;padding:0;margin:0}
