*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}@media (min-width: 1536px){.container{max-width:1536px}}.mb-2{margin-bottom:.5rem}.mb-4{margin-bottom:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.inline{display:inline}.table{display:table}.grid{display:grid}.grow{flex-grow:1}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.lowercase{text-transform:lowercase}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}:root{--font-sans: "Inter", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--bg-page: #f0f4ff;--bg-card: #ffffff;--bg-card-hover: #f8faff;--bg-input: #f1f5f9;--bg-nav: rgba(255, 255, 255, .85);--text-primary: #0f172a;--text-secondary: #64748b;--text-muted: #94a3b8;--text-on-accent: #ffffff;--accent-primary: #4f46e5;--accent-primary-hover: #4338ca;--accent-primary-light: rgba(79, 70, 229, .12);--accent-income: #059669;--accent-income-light: rgba(5, 150, 105, .12);--accent-expense: #dc2626;--accent-expense-light: rgba(220, 38, 38, .12);--accent-warning: #d97706;--accent-warning-light: rgba(217, 119, 6, .12);--border-color: #e2e8f0;--border-radius-sm: 8px;--border-radius: 14px;--border-radius-lg: 20px;--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow: 0 4px 16px rgba(0,0,0,.08), 0 1px 4px rgba(0,0,0,.04);--shadow-lg: 0 10px 40px rgba(0,0,0,.12), 0 4px 16px rgba(0,0,0,.06);--shadow-glow: 0 0 0 3px rgba(79, 70, 229, .2);--bg-gradient-1: rgba(129, 140, 248, .18);--bg-gradient-2: rgba(45, 212, 191, .12);--bg-gradient-3: rgba(244, 114, 182, .1);--transition: all .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: all .4s cubic-bezier(.4, 0, .2, 1);--navbar-height: 68px}.dark{--bg-page: #080d1a;--bg-card: #111827;--bg-card-hover: #1a2234;--bg-input: #0d1526;--bg-nav: rgba(11, 17, 32, .9);--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #475569;--accent-primary: #818cf8;--accent-primary-hover: #6366f1;--accent-primary-light: rgba(129, 140, 248, .15);--accent-income: #34d399;--accent-income-light: rgba(52, 211, 153, .12);--accent-expense: #f87171;--accent-expense-light: rgba(248, 113, 113, .12);--accent-warning: #fbbf24;--accent-warning-light: rgba(251, 191, 36, .12);--border-color: rgba(255, 255, 255, .07);--shadow-sm: 0 1px 3px rgba(0,0,0,.4);--shadow: 0 4px 16px rgba(0,0,0,.4);--shadow-lg: 0 10px 40px rgba(0,0,0,.5);--bg-gradient-1: rgba(129, 140, 248, .12);--bg-gradient-2: rgba(45, 212, 191, .08);--bg-gradient-3: rgba(244, 114, 182, .08)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background-color:var(--bg-page);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .3s ease,color .3s ease;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 12%,var(--bg-gradient-1),transparent 34%),radial-gradient(circle at 82% 24%,var(--bg-gradient-2),transparent 30%),radial-gradient(circle at 36% 84%,var(--bg-gradient-3),transparent 32%);z-index:-1}*{scrollbar-width:thin;scrollbar-color:rgba(148,163,184,.45) transparent}*::-webkit-scrollbar{width:9px;height:9px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:999px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#94a3b88c;background-clip:padding-box}*::-webkit-scrollbar-corner{background:transparent}*::-webkit-scrollbar-button{display:none;width:0;height:0}.material-symbols-rounded{font-variation-settings:"FILL" 1,"wght" 450,"opsz" 24;vertical-align:middle}a{text-decoration:none;color:var(--accent-primary);transition:var(--transition)}.container{max-width:1280px;margin:0 auto;padding:0 16px}@media (min-width: 640px){.container{padding:0 24px}}@media (min-width: 1024px){.container{padding:0 32px}}.card{background-color:var(--bg-card);border-radius:var(--border-radius);padding:24px;border:1px solid var(--border-color);box-shadow:var(--shadow);transition:var(--transition)}.card-hover:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg)}.glass{background:var(--bg-nav);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;letter-spacing:-.02em;color:var(--text-primary)}h1{font-size:clamp(1.5rem,3vw,2.25rem)}h2{font-size:clamp(1.25rem,2.5vw,1.75rem)}h3{font-size:clamp(1rem,2vw,1.25rem)}.text-secondary{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.text-income{color:var(--accent-income)}.text-expense{color:var(--accent-expense)}.text-primary-accent{color:var(--accent-primary)}.navbar{position:sticky;top:0;z-index:100;height:var(--navbar-height);background:var(--bg-nav);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:background .3s ease}.navbar-container{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand-link{display:flex;align-items:center;gap:10px;text-decoration:none}.brand-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--accent-primary),#7c3aed);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 4px 12px #4f46e559}.brand-icon .material-symbols-rounded{font-size:20px;font-variation-settings:"FILL" 1,"wght" 550,"opsz" 24}.brand-logo-img{width:36px;height:36px;border-radius:10px;object-fit:cover;box-shadow:0 6px 16px #4f46e547}.brand-text{font-size:1.2rem;font-weight:800;color:var(--text-primary);letter-spacing:-.04em}.nav-links{display:none;align-items:center;gap:4px}@media (min-width: 768px){.nav-links{display:flex}}.nav-link{display:flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:var(--transition);position:relative}.nav-icon{font-size:18px;font-variation-settings:"FILL" 1,"wght" 500,"opsz" 20;color:var(--accent-primary);opacity:.9}.nav-link:hover .nav-icon,.nav-link.active .nav-icon,.mobile-nav-link:hover .nav-icon,.mobile-nav-link.active .nav-icon{opacity:1}.nav-link:hover{color:var(--text-primary);background:var(--accent-primary-light)}.nav-link.active{color:var(--accent-primary);background:var(--accent-primary-light);font-weight:600}.nav-actions{display:flex;align-items:center;gap:8px}.theme-toggle{width:40px;height:40px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:var(--transition)}.theme-toggle .material-symbols-rounded{font-size:20px;font-variation-settings:"FILL" 1,"wght" 500,"opsz" 24}.theme-toggle:hover{background:var(--accent-primary-light);color:var(--accent-primary);border-color:transparent}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--accent-primary)}.user-avatar-placeholder{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--accent-primary),#7c3aed);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;color:#fff}.hamburger{display:flex;flex-direction:column;justify-content:center;align-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--border-color);background:var(--bg-card);cursor:pointer;gap:5px;transition:var(--transition)}@media (min-width: 768px){.hamburger{display:none}}.hamburger span{display:block;width:20px;height:2px;background:var(--text-primary);border-radius:2px;transition:var(--transition);transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-menu{display:none;position:fixed;top:var(--navbar-height);left:0;right:0;bottom:0;background:var(--bg-card);z-index:99;padding:24px;flex-direction:column;gap:8px;overflow-y:auto;border-top:1px solid var(--border-color);animation:slideDown .25s ease}@media (min-width: 768px){.mobile-menu{display:none!important}}.mobile-menu.open{display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.mobile-nav-link{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;font-size:1rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:var(--transition)}.mobile-nav-link:hover,.mobile-nav-link.active{color:var(--accent-primary);background:var(--accent-primary-light)}.mobile-menu-divider{height:1px;background:var(--border-color);margin:8px 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--border-radius-sm);font-weight:600;font-size:.9rem;cursor:pointer;border:none;transition:var(--transition);white-space:nowrap;font-family:var(--font-sans);letter-spacing:-.01em}.btn:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.btn-primary{background:linear-gradient(135deg,var(--accent-primary),#6366f1);color:#fff;box-shadow:0 4px 12px #4f46e54d}.btn-primary:hover{filter:brightness(1.1);box-shadow:0 6px 20px #4f46e573;transform:translateY(-1px)}.btn-success{background:linear-gradient(135deg,var(--accent-income),#10b981);color:#fff;box-shadow:0 4px 12px #0596694d}.btn-success:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-danger{background:transparent;color:var(--accent-expense);border:1px solid var(--accent-expense)}.btn-danger:hover{background:var(--accent-expense-light)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border-color)}.btn-ghost:hover{background:var(--bg-input);color:var(--text-primary)}.btn-sm{padding:7px 14px;font-size:.82rem}.btn-icon{padding:8px;border-radius:8px}.btn-outline-dev{background:transparent;border:1px dashed var(--text-muted);color:var(--text-secondary);width:100%}.btn-outline-dev:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:var(--accent-primary-light)}.form-group{margin-bottom:20px}.form-label{display:block;margin-bottom:6px;color:var(--text-secondary);font-size:.85rem;font-weight:500}.form-control{width:100%;padding:11px 14px;background:var(--bg-input);border:1.5px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);font-size:.95rem;font-family:var(--font-sans);transition:var(--transition);outline:none}.form-control:focus{border-color:var(--accent-primary);box-shadow:var(--shadow-glow);background:var(--bg-card)}.form-control::placeholder{color:var(--text-muted)}select.form-control{appearance:none;background-image:url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}.toggle-wrap{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-input{display:none}.toggle-track{width:44px;height:24px;background:var(--border-color);border-radius:12px;position:relative;transition:var(--transition)}.toggle-thumb{position:absolute;top:3px;left:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:var(--transition);box-shadow:var(--shadow-sm)}.toggle-input:checked+.toggle-track{background:var(--accent-primary)}.toggle-input:checked+.toggle-track .toggle-thumb{transform:translate(20px)}.toggle-label{font-size:.9rem;font-weight:500;color:var(--text-secondary)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:.75rem;font-weight:600;letter-spacing:.03em}.badge-income{background:var(--accent-income-light);color:var(--accent-income)}.badge-expense{background:var(--accent-expense-light);color:var(--accent-expense)}.badge-primary{background:var(--accent-primary-light);color:var(--accent-primary)}.badge-savings{background:var(--accent-warning-light);color:var(--accent-warning)}.table-wrapper{overflow-x:auto;border-radius:var(--border-radius);border:1px solid var(--border-color)}table{width:100%;border-collapse:collapse;min-width:600px}thead th{padding:12px 20px;text-align:left;font-size:.78rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-input);border-bottom:1px solid var(--border-color)}tbody td{padding:14px 20px;border-bottom:1px solid var(--border-color);vertical-align:middle;font-size:.9rem;color:var(--text-primary)}tbody tr:last-child td{border-bottom:none}tbody tr{transition:var(--transition)}tbody tr:hover{background:var(--bg-card-hover)}.stat-card{text-align:left}.stat-card .stat-label{font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;display:block}.stat-card .stat-value{font-size:clamp(1.5rem,3vw,2rem);font-weight:800;letter-spacing:-.04em;line-height:1}.stat-card .stat-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:16px}.progress-bar-track{width:100%;height:8px;background:var(--bg-input);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;border-radius:4px;transition:width .6s cubic-bezier(.4,0,.2,1)}.progress-bar-fill.safe{background:var(--accent-income)}.progress-bar-fill.warn{background:var(--accent-warning)}.progress-bar-fill.danger{background:var(--accent-expense)}.empty-state{text-align:center;padding:60px 20px}.empty-state-icon{font-size:3rem;opacity:.25;margin-bottom:16px}.empty-state-icon .material-symbols-rounded{font-size:44px}.empty-state p{color:var(--text-secondary);font-size:.95rem}@keyframes shimmer{0%{background-position:-468px 0}to{background-position:468px 0}}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,var(--bg-card-hover) 37%,var(--bg-card) 63%);background-size:800px 104px;animation:shimmer 1.5s infinite linear;border-radius:var(--border-radius-sm)}.toast-container{position:fixed;top:80px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:380px;width:calc(100vw - 40px)}.toast{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--border-radius-sm);background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-lg);animation:toastIn .3s cubic-bezier(.34,1.56,.64,1)}.toast.removing{animation:toastOut .25s ease forwards}@keyframes toastIn{0%{opacity:0;transform:translate(100px) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(0) scale(1)}to{opacity:0;transform:translate(100px) scale(.9)}}.toast-icon{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px}.toast.success .toast-icon{background:var(--accent-income-light);color:var(--accent-income)}.toast.error .toast-icon{background:var(--accent-expense-light);color:var(--accent-expense)}.toast.info .toast-icon{background:var(--accent-primary-light);color:var(--accent-primary)}.toast-body{flex:1}.toast-title{font-size:.88rem;font-weight:600;margin-bottom:2px;color:var(--text-primary)}.toast-message{font-size:.82rem;color:var(--text-secondary);line-height:1.4}.toast-close{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:16px;padding:0;line-height:1;flex-shrink:0;transition:var(--transition)}.toast-close:hover{color:var(--text-primary)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.w-full{width:100%}.text-right{text-align:right}.text-center{text-align:center}.font-mono{font-family:SF Mono,Fira Code,monospace}.font-bold{font-weight:700}.font-semibold{font-weight:600}.mt-1{margin-top:4px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mb-1{margin-bottom:4px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.p-4{padding:16px}.p-6{padding:24px}.col-span-2{grid-column:1 / -1}.ml-auto{margin-left:auto}.grid{display:grid;gap:20px}.grid-1,.grid-2,.grid-3{grid-template-columns:1fr}.grid-4{grid-template-columns:repeat(2,1fr)}@media (min-width: 640px){.grid-2,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (min-width: 768px){.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}}.page{padding:28px 0 48px}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:28px}.page-title{font-size:clamp(1.4rem,3vw,2rem);font-weight:800;letter-spacing:-.04em;color:var(--text-primary)}.page-subtitle{font-size:.9rem;color:var(--text-secondary);margin-top:4px}.gradient-text{background:linear-gradient(135deg,var(--accent-primary),#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.divider{height:1px;background:var(--border-color);margin:20px 0}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:fadeInUp .35s ease both}.dialog-backdrop{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;background:#0f172a66;backdrop-filter:blur(8px) saturate(180%);-webkit-backdrop-filter:blur(8px) saturate(180%);z-index:2000;animation:backdropFadeIn .3s ease forwards}.dialog-card{width:min(440px,100%);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);padding:24px;position:relative;animation:dialogScaleIn .3s cubic-bezier(.34,1.56,.64,1) forwards}.dialog-card h3{margin-bottom:12px;font-size:1.25rem;letter-spacing:-.01em}.dialog-card p{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:24px}.dialog-actions{display:flex;justify-content:flex-end;gap:12px}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes dialogScaleIn{0%{opacity:0;transform:scale(.9) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.table-wrapper{max-height:65vh;overflow:auto;border-radius:var(--border-radius)}@media (max-width: 768px){.table-wrapper table,.table-wrapper thead,.table-wrapper tbody,.table-wrapper th,.table-wrapper td,.table-wrapper tr{display:block;width:100%;min-width:0!important}.table-wrapper thead{display:none}.table-wrapper tr{border-bottom:2px solid var(--border-color);padding:16px;margin-bottom:8px;background:var(--bg-card);border-radius:var(--border-radius)}.table-wrapper tr:last-child{margin-bottom:0}.table-wrapper td{text-align:left!important;padding:10px 0;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.04)!important;min-height:44px}.table-wrapper td:last-child{border-bottom:none!important}.table-wrapper td[data-label]:before{content:attr(data-label);font-weight:500;color:var(--text-muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.table-wrapper .row-actions{margin-top:8px;padding-top:12px;border-top:1px solid var(--border-color);width:100%;display:flex;justify-content:space-around}.table-wrapper td .progress-bar-track{width:120px;height:4px!important}}.money{font-family:SF Mono,Fira Code,monospace;font-weight:700;letter-spacing:-.02em}
