@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-tertiary:#1f2937;--bg-quaternary:#374151;--bg-elevated:#1a1f36;--glass:#ffffff0a;--glass-border:#ffffff14;--glass-hover:#ffffff12;--glass-active:#ffffff1a;--glass-blur:16px;--accent-primary:#6366f1;--accent-primary-hover:#818cf8;--accent-primary-light:#a5b4fc;--accent-primary-glow:#6366f140;--accent-primary-bg:#6366f11a;--accent-secondary:#8b5cf6;--accent-secondary-hover:#a78bfa;--accent-secondary-glow:#8b5cf640;--accent-success:#10b981;--accent-success-hover:#34d399;--accent-success-light:#6ee7b7;--accent-success-bg:#10b9811a;--accent-success-glow:#10b98140;--accent-danger:#ef4444;--accent-danger-hover:#f87171;--accent-danger-light:#fca5a5;--accent-danger-bg:#ef44441a;--accent-danger-glow:#ef444440;--accent-warning:#f59e0b;--accent-warning-hover:#fbbf24;--accent-warning-light:#fcd34d;--accent-warning-bg:#f59e0b1a;--accent-warning-glow:#f59e0b40;--accent-info:#3b82f6;--accent-info-hover:#60a5fa;--accent-info-bg:#3b82f61a;--accent-info-glow:#3b82f640;--text-primary:#f9fafb;--text-secondary:#9ca3af;--text-tertiary:#6b7280;--text-muted:#4b5563;--text-inverse:#111827;--border:#ffffff14;--border-hover:#ffffff26;--border-focus:var(--accent-primary);--border-subtle:#ffffff0a;--gradient-primary:linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);--gradient-primary-hover:linear-gradient(135deg, #818cf8 0%, #a78bfa 100%);--gradient-success:linear-gradient(135deg, #059669 0%, #10b981 100%);--gradient-danger:linear-gradient(135deg, #dc2626 0%, #ef4444 100%);--gradient-warning:linear-gradient(135deg, #d97706 0%, #f59e0b 100%);--gradient-info:linear-gradient(135deg, #2563eb 0%, #3b82f6 100%);--gradient-dark:linear-gradient(180deg, #0a0e1a 0%, #111827 100%);--gradient-card:linear-gradient(145deg, #ffffff0d 0%, #ffffff05 100%);--gradient-mesh:radial-gradient(at 40% 20%, #6366f114 0px, transparent 50%), radial-gradient(at 80% 0%, #8b5cf60f 0px, transparent 50%), radial-gradient(at 0% 50%, #3b82f60d 0px, transparent 50%);--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--fs-2xs:.625rem;--fs-xs:.75rem;--fs-sm:.875rem;--fs-base:1rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:1.875rem;--fs-4xl:2.25rem;--fs-5xl:3rem;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-extrabold:800;--lh-tight:1.2;--lh-normal:1.5;--lh-relaxed:1.75;--ls-tight:-.025em;--ls-normal:0;--ls-wide:.025em;--ls-wider:.05em;--space-0:0;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--radius-xs:.25rem;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-2xl:1.25rem;--radius-3xl:1.5rem;--radius-full:9999px;--shadow-sm:0 1px 3px #00000040, 0 1px 2px #0003;--shadow-md:0 4px 6px -1px #0000004d, 0 2px 4px -2px #00000040;--shadow-lg:0 10px 15px -3px #0000004d, 0 4px 6px -4px #00000040;--shadow-xl:0 20px 25px -5px #00000059, 0 8px 10px -6px #0000004d;--shadow-2xl:0 25px 50px -12px #00000080;--shadow-glow-primary:0 0 20px var(--accent-primary-glow), 0 0 40px #6366f11a;--shadow-glow-success:0 0 20px var(--accent-success-glow);--shadow-glow-danger:0 0 20px var(--accent-danger-glow);--ease-out:cubic-bezier(.33, 1, .68, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition-fast:.15s var(--ease-out);--transition-normal:.25s var(--ease-out);--transition-slow:.4s var(--ease-in-out);--transition-spring:.5s var(--ease-spring);--sidebar-width:260px;--sidebar-collapsed:72px;--header-height:64px;--content-max-width:1400px;--content-padding:var(--space-8);--z-base:1;--z-dropdown:100;--z-sticky:200;--z-sidebar:300;--z-modal-backdrop:400;--z-modal:500;--z-toast:600;--z-tooltip:700}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:16px}body{font-family:var(--font-family);font-size:var(--fs-base);font-weight:var(--fw-regular);line-height:var(--lh-normal);color:var(--text-primary);background-color:var(--bg-primary);background-image:var(--gradient-mesh);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--bg-quaternary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}*{scrollbar-width:thin;scrollbar-color:var(--bg-quaternary) transparent}::selection{background-color:var(--accent-primary);color:#fff}h1,h2,h3,h4,h5,h6{font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);color:var(--text-primary)}h1{font-size:var(--fs-4xl)}h2{font-size:var(--fs-3xl)}h3{font-size:var(--fs-2xl)}h4{font-size:var(--fs-xl)}p{color:var(--text-secondary);line-height:var(--lh-relaxed)}a{color:var(--accent-primary);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--accent-primary-hover)}small{font-size:var(--fs-sm);color:var(--text-tertiary)}strong{font-weight:var(--fw-semibold);color:var(--text-primary)}ul,ol{list-style:none}img,svg,video{max-width:100%;height:auto;display:block}table{border-collapse:collapse;border-spacing:0;width:100%}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;color:inherit;background:0 0;border:none;outline:none}button{cursor:pointer;-webkit-user-select:none;user-select:none}input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.text-gradient{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-success{color:var(--accent-success)!important}.text-danger{color:var(--accent-danger)!important}.text-warning{color:var(--accent-warning)!important}.text-info{color:var(--accent-info)!important}.text-muted{color:var(--text-tertiary)!important}.hidden{display:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes shine{0%{left:-100%}to{left:200%}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes progressFill{0%{width:0%}}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.animate-fade-in{animation:fadeIn .4s var(--ease-out) forwards}.animate-fade-in-up{animation:fadeInUp .5s var(--ease-out) forwards}.animate-fade-in-down{animation:fadeInDown .5s var(--ease-out) forwards}.animate-scale-in{animation:scaleIn .3s var(--ease-spring) forwards}.animate-slide-in-right{animation:slideInRight .35s var(--ease-out) forwards}.animate-slide-out-right{animation:slideOutRight .3s var(--ease-out) forwards}.animate-pulse{animation:pulse 2s var(--ease-in-out) infinite}.animate-spin{animation:1s linear infinite spin}.animate-progress{animation:progressFill 1s var(--ease-out) forwards}.stagger-children>*{opacity:0;animation:fadeInUp .5s var(--ease-out) forwards}.stagger-children>:first-child{animation-delay:50ms}.stagger-children>:nth-child(2){animation-delay:.1s}.stagger-children>:nth-child(3){animation-delay:.15s}.stagger-children>:nth-child(4){animation-delay:.2s}.stagger-children>:nth-child(5){animation-delay:.25s}.stagger-children>:nth-child(6){animation-delay:.3s}.hover-lift{transition:transform var(--transition-normal), box-shadow var(--transition-normal)}.hover-lift:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.hover-scale:active{transform:scale(.98)}.shimmer{position:relative;overflow:hidden}.shimmer:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0a,#0000);width:50%;height:100%;animation:3s ease-in-out infinite shine;position:absolute;top:0;left:-100%}.app{min-height:100vh;display:flex;position:relative}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border);height:100vh;z-index:var(--z-sidebar);transition:width var(--transition-slow), transform var(--transition-slow);flex-direction:column;display:flex;position:fixed;top:0;left:0;overflow:hidden}.sidebar__brand{align-items:center;gap:var(--space-3);padding:var(--space-6) var(--space-5);border-bottom:1px solid var(--border);min-height:72px;display:flex}.sidebar__logo{border-radius:var(--radius-lg);background:var(--gradient-primary);width:36px;height:36px;box-shadow:var(--shadow-glow-primary);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary);white-space:nowrap}.sidebar__subtitle{font-size:var(--fs-2xs);font-weight:var(--fw-medium);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--ls-wider);white-space:nowrap}.sidebar__nav{padding:var(--space-4) var(--space-3);flex:1;overflow:hidden auto}.sidebar__section{margin-bottom:var(--space-6)}.sidebar__section-title{font-size:var(--fs-2xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--ls-wider);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-1);white-space:nowrap}.sidebar__link{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;margin-bottom:2px;text-decoration:none;display:flex;position:relative}.sidebar__link:hover{color:var(--text-primary);background:var(--glass-hover)}.sidebar__link.active{color:var(--accent-primary-light);background:var(--accent-primary-bg)}.sidebar__link.active:before{content:"";background:var(--gradient-primary);border-radius:0 var(--radius-full) var(--radius-full) 0;width:3px;height:60%;position:absolute;top:50%;left:0;transform:translateY(-50%)}.sidebar__link-icon{flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;display:flex}.sidebar__link-badge{border-radius:var(--radius-full);background:var(--accent-danger);color:#fff;min-width:20px;height:20px;font-size:var(--fs-2xs);font-weight:var(--fw-bold);flex-shrink:0;justify-content:center;align-items:center;margin-left:auto;padding:0 6px;display:flex}.sidebar__footer{padding:var(--space-4) var(--space-3);border-top:1px solid var(--border)}.sidebar__user{align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);cursor:pointer;transition:background var(--transition-fast);display:flex}.sidebar__user:hover{background:var(--glass-hover)}.sidebar__avatar{border-radius:var(--radius-full);background:var(--gradient-primary);width:36px;height:36px;font-size:var(--fs-sm);font-weight:var(--fw-bold);color:#fff;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sidebar__user-name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.sidebar__user-role{font-size:var(--fs-2xs);color:var(--text-tertiary)}.main{margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left var(--transition-slow);flex-direction:column;flex:1;display:flex}.header{height:var(--header-height);padding:0 var(--content-padding);-webkit-backdrop-filter:blur(var(--glass-blur));border-bottom:1px solid var(--border);z-index:var(--z-sticky);background:#0a0e1acc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header__left{align-items:center;gap:var(--space-4);display:flex}.header__menu-btn{border-radius:var(--radius-lg);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:none}.header__menu-btn:hover{background:var(--glass-hover);color:var(--text-primary)}.header__title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary)}.header__subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:2px}.header__right{align-items:center;gap:var(--space-3);display:flex}.header__action{border-radius:var(--radius-lg);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:relative}.header__action:hover{background:var(--glass-hover);color:var(--text-primary)}.header__action-badge{border-radius:var(--radius-full);background:var(--accent-danger);border:2px solid var(--bg-primary);width:8px;height:8px;animation:2s infinite pulseDot;position:absolute;top:6px;right:6px}.header__month-selector{align-items:center;gap:var(--space-2);background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-1) var(--space-2);display:flex}.header__month-btn{border-radius:var(--radius-full);width:32px;height:32px;color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.header__month-btn:hover{background:var(--glass-hover);color:var(--text-primary)}.header__month-label{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary);text-align:center;min-width:140px}.content{padding:var(--content-padding);max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.sidebar-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:calc(var(--z-sidebar) - 1);background:#00000080;display:none;position:fixed;inset:0}.sidebar-overlay.active{animation:fadeIn .3s var(--ease-out);display:block}@media (width<=768px){:root{--content-padding:var(--space-4)}.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.header__menu-btn{display:flex}.header__month-selector{display:none}}.card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-normal);position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,#0000,#ffffff1a,#0000);height:1px;position:absolute;top:0;left:0;right:0}.card:hover{border-color:var(--border-hover);background:var(--glass-hover)}.card--elevated{background:var(--bg-secondary);box-shadow:var(--shadow-md)}.card--no-padding{padding:0}.card__header{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.card__title{font-size:var(--fs-base);font-weight:var(--fw-semibold);color:var(--text-primary)}.card__subtitle{font-size:var(--fs-sm);color:var(--text-tertiary);margin-top:var(--space-1)}.card__icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.card__icon--primary{background:var(--accent-primary-bg);color:var(--accent-primary)}.card__icon--success{background:var(--accent-success-bg);color:var(--accent-success)}.card__icon--danger{background:var(--accent-danger-bg);color:var(--accent-danger)}.card__icon--warning{background:var(--accent-warning-bg);color:var(--accent-warning)}.card__icon--info{background:var(--accent-info-bg);color:var(--accent-info)}.summary-cards{gap:var(--space-6);grid-template-columns:repeat(4,1fr);display:grid}.summary-card{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-5);transition:all var(--transition-normal);position:relative;overflow:hidden}.summary-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.summary-card:after{content:"";border-radius:var(--radius-xl) var(--radius-xl) 0 0;height:3px;position:absolute;top:0;left:0;right:0}.summary-card--balance:after{background:var(--gradient-primary)}.summary-card--income:after{background:var(--gradient-success)}.summary-card--expenses:after{background:var(--gradient-danger)}.summary-card--savings:after{background:var(--gradient-warning)}.summary-card__top{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.summary-card__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.summary-card__value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);color:var(--text-primary);margin-bottom:var(--space-2)}.summary-card__footer{justify-content:space-between;align-items:center;display:flex}.summary-card__change{font-size:var(--fs-xs);font-weight:var(--fw-medium);align-items:center;gap:4px;display:inline-flex}.summary-card__change--positive{color:var(--accent-success)}.summary-card__change--negative{color:var(--accent-danger)}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--fs-sm);font-weight:var(--fw-semibold);border-radius:var(--radius-lg);transition:all var(--transition-fast);white-space:nowrap;cursor:pointer;border:none;display:inline-flex;position:relative;overflow:hidden}.btn:active{transform:scale(.97)}.btn--primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover{background:var(--gradient-primary-hover);box-shadow:var(--shadow-md), 0 0 20px var(--accent-primary-glow);transform:translateY(-1px)}.btn--secondary{background:var(--glass);border:1px solid var(--border);color:var(--text-primary)}.btn--secondary:hover{background:var(--glass-hover);border-color:var(--border-hover)}.btn--ghost{color:var(--text-secondary);background:0 0}.btn--ghost:hover{background:var(--glass-hover);color:var(--text-primary)}.btn--danger{background:var(--gradient-danger);color:#fff}.btn--danger:hover{box-shadow:0 0 20px var(--accent-danger-glow)}.btn--success{background:var(--gradient-success);color:#fff}.btn--success:hover{box-shadow:0 0 20px var(--accent-success-glow)}.btn--sm{padding:var(--space-2) var(--space-3);font-size:var(--fs-xs);border-radius:var(--radius-md)}.btn--lg{padding:var(--space-4) var(--space-8);font-size:var(--fs-base);border-radius:var(--radius-xl)}.btn--icon{border-radius:var(--radius-lg);width:40px;height:40px;padding:0}.btn--icon.btn--sm{width:32px;height:32px}.input-group{gap:var(--space-2);flex-direction:column;display:flex}.input-group__label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary)}.input-group__label--required:after{content:" *";color:var(--accent-danger)}.input{width:100%;padding:var(--space-3) var(--space-4);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-sm);transition:all var(--transition-fast)}.input:hover{border-color:var(--border-hover)}.input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow);background:var(--bg-secondary)}.input::placeholder{color:var(--text-muted)}.select{appearance:none;width:100%;padding:var(--space-3) var(--space-4);padding-right:var(--space-10);background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-lg);color:var(--text-primary);font-size:var(--fs-sm);cursor:pointer;transition:all var(--transition-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%239ca3af' viewBox='0 0 16 16'%3E%3Cpath d='M4.646 6.646a.5.5 0 0 1 .708 0L8 9.293l2.646-2.647a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat}.select:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px var(--accent-primary-glow)}.select option{background:var(--bg-secondary);color:var(--text-primary)}.toggle{flex-shrink:0;width:44px;height:24px;position:relative}.toggle input{display:none}.toggle__slider{background:var(--bg-quaternary);border-radius:var(--radius-full);cursor:pointer;transition:background var(--transition-fast);position:absolute;inset:0}.toggle__slider:after{content:"";border-radius:var(--radius-full);width:18px;height:18px;transition:transform var(--transition-fast);box-shadow:var(--shadow-sm);background:#fff;position:absolute;top:3px;left:3px}.toggle input:checked+.toggle__slider{background:var(--accent-primary)}.toggle input:checked+.toggle__slider:after{transform:translate(20px)}.badge{font-size:var(--fs-xs);font-weight:var(--fw-semibold);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:2px 10px;display:inline-flex}.badge--primary{background:var(--accent-primary-bg);color:var(--accent-primary-light)}.badge--success{background:var(--accent-success-bg);color:var(--accent-success)}.badge--danger{background:var(--accent-danger-bg);color:var(--accent-danger)}.badge--warning{background:var(--accent-warning-bg);color:var(--accent-warning)}.badge--info{background:var(--accent-info-bg);color:var(--accent-info)}.badge--outline{background:0 0;border:1px solid}.data-table{border-collapse:separate;border-spacing:0;width:100%}.data-table thead th{padding:var(--space-3) var(--space-4);font-size:var(--fs-xs);font-weight:var(--fw-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--ls-wider);text-align:left;border-bottom:1px solid var(--border);background:var(--bg-secondary)}.data-table tbody tr{transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--glass-hover)}.data-table tbody td{padding:var(--space-4);font-size:var(--fs-sm);color:var(--text-secondary);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table tbody td:first-child{color:var(--text-primary);font-weight:var(--fw-medium)}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state__icon{border-radius:var(--radius-2xl);background:var(--glass);width:80px;height:80px;margin-bottom:var(--space-6);color:var(--text-tertiary);justify-content:center;align-items:center;display:flex}.empty-state__title{font-size:var(--fs-xl);font-weight:var(--fw-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state__text{font-size:var(--fs-sm);color:var(--text-tertiary);max-width:400px;margin-bottom:var(--space-6)}.tabs{gap:var(--space-1);background:var(--glass);padding:var(--space-1);border-radius:var(--radius-xl);border:1px solid var(--border);display:flex}.tabs__tab{padding:var(--space-2) var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-secondary);border-radius:var(--radius-lg);text-align:center;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex:1}.tabs__tab:hover{color:var(--text-primary)}.tabs__tab.active{background:var(--accent-primary);color:#fff;box-shadow:var(--shadow-sm)}.progress{background:var(--bg-tertiary);border-radius:var(--radius-full);width:100%;height:8px;overflow:hidden}.progress__bar{border-radius:var(--radius-full);background:var(--gradient-primary);height:100%;transition:width 1s var(--ease-out);position:relative}.progress--success .progress__bar{background:var(--gradient-success)}.progress--danger .progress__bar{background:var(--gradient-danger)}.progress--warning .progress__bar{background:var(--gradient-warning)}.transaction-item{align-items:center;gap:var(--space-4);padding:var(--space-4);border-radius:var(--radius-lg);transition:background var(--transition-fast);display:flex}.transaction-item:hover{background:var(--glass-hover)}.transaction-item__icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.transaction-item__info{flex:1;min-width:0}.transaction-item__name{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.transaction-item__category{font-size:var(--fs-xs);color:var(--text-tertiary);margin-top:2px}.transaction-item__amount{font-size:var(--fs-sm);font-weight:var(--fw-semibold);text-align:right;white-space:nowrap}.transaction-item__amount--income{color:var(--accent-success)}.transaction-item__amount--expense{color:var(--accent-danger)}.transaction-item__date{font-size:var(--fs-xs);color:var(--text-tertiary);text-align:right;margin-top:2px}.chip{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-full);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 12px;display:inline-flex}.chip__dot{border-radius:var(--radius-full);width:8px;height:8px}.checkbox{align-items:center;gap:var(--space-3);cursor:pointer;font-size:var(--fs-sm);color:var(--text-secondary);display:flex}.checkbox input{display:none}.checkbox__mark{border:2px solid var(--border-hover);border-radius:var(--radius-sm);width:20px;height:20px;transition:all var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.checkbox input:checked+.checkbox__mark{background:var(--accent-primary);border-color:var(--accent-primary)}.checkbox input:checked+.checkbox__mark:after{content:"";border:2px solid #fff;border-width:0 2px 2px 0;width:6px;height:10px;transform:rotate(45deg)translate(-1px,-1px)}.dashboard-grid{gap:var(--space-6);grid-template-columns:1fr 1fr;display:grid}.dashboard-grid__full{grid-column:1/-1}.alert-banner{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);margin-bottom:var(--space-6);animation:fadeInDown .5s var(--ease-out);display:flex}.alert-banner--danger{background:var(--accent-danger-bg);border:1px solid #ef444433}.alert-banner--warning{background:var(--accent-warning-bg);border:1px solid #f59e0b33}.alert-banner__icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.alert-banner--danger .alert-banner__icon{color:var(--accent-danger);background:#ef444426}.alert-banner--warning .alert-banner__icon{color:var(--accent-warning);background:#f59e0b26}.alert-banner__content{flex:1}.alert-banner__title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.alert-banner__text{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:2px}.alert-banner__action{flex-shrink:0}.recent-transactions{max-height:420px;overflow-y:auto}.goal-preview__item{background:var(--glass);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--transition-fast);margin-bottom:var(--space-3)}.goal-preview__item:hover{border-color:var(--border-hover)}.goal-preview__header{margin-bottom:var(--space-3);justify-content:space-between;align-items:center;display:flex}.goal-preview__name{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.goal-preview__percent{font-size:var(--fs-sm);font-weight:var(--fw-bold);color:var(--accent-primary)}.goal-preview__info{margin-top:var(--space-2);justify-content:space-between;display:flex}.goal-preview__current,.goal-preview__target{font-size:var(--fs-xs);color:var(--text-tertiary)}@media (width<=1200px){.summary-cards{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=480px){.summary-cards{grid-template-columns:1fr}}.form{gap:var(--space-5);flex-direction:column;display:flex}.form__row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form__actions{justify-content:flex-end;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border);margin-top:var(--space-2);display:flex}.modal-backdrop{-webkit-backdrop-filter:blur(8px);z-index:var(--z-modal-backdrop);padding:var(--space-8);animation:fadeIn .2s var(--ease-out);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-2xl);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-2xl);animation:scaleIn .3s var(--ease-spring);overflow-y:auto}.modal--lg{max-width:720px}.modal--sm{max-width:400px}.modal__header{padding:var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;display:flex}.modal__title{font-size:var(--fs-lg);font-weight:var(--fw-bold);color:var(--text-primary)}.modal__close{border-radius:var(--radius-lg);width:36px;height:36px;color:var(--text-tertiary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal__close:hover{background:var(--glass-hover);color:var(--text-primary)}.modal__body{padding:var(--space-6)}.modal__footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);display:flex}.confirm-dialog{text-align:center;padding:var(--space-8) var(--space-6)}.confirm-dialog__icon{border-radius:var(--radius-full);width:64px;height:64px;margin:0 auto var(--space-5);justify-content:center;align-items:center;display:flex}.confirm-dialog__icon--danger{background:var(--accent-danger-bg);color:var(--accent-danger)}.confirm-dialog__title{font-size:var(--fs-xl);font-weight:var(--fw-bold);color:var(--text-primary);margin-bottom:var(--space-3)}.confirm-dialog__text{font-size:var(--fs-sm);color:var(--text-secondary);margin-bottom:var(--space-6)}.confirm-dialog__actions{justify-content:center;gap:var(--space-3);display:flex}.toast-container{top:var(--space-6);right:var(--space-6);z-index:var(--z-toast);gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);pointer-events:auto;min-width:320px;max-width:420px;animation:slideInRight .4s var(--ease-spring);display:flex}.toast--exiting{animation:slideOutRight .3s var(--ease-out) forwards}.toast__icon{border-radius:var(--radius-lg);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.toast--success .toast__icon{background:var(--accent-success-bg);color:var(--accent-success)}.toast--error .toast__icon{background:var(--accent-danger-bg);color:var(--accent-danger)}.toast--warning .toast__icon{background:var(--accent-warning-bg);color:var(--accent-warning)}.toast--info .toast__icon{background:var(--accent-info-bg);color:var(--accent-info)}.toast__content{flex:1;min-width:0}.toast__title{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-primary)}.toast__message{font-size:var(--fs-xs);color:var(--text-secondary);margin-top:2px}.toast__close{border-radius:var(--radius-md);width:28px;height:28px;color:var(--text-tertiary);transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast__close:hover{background:var(--glass-hover);color:var(--text-primary)}.input-currency{position:relative}.input-currency__prefix{left:var(--space-4);font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-tertiary);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.input-currency .input{padding-left:var(--space-10)}@media (width<=768px){.form__row{grid-template-columns:1fr}.modal{margin:var(--space-4);max-height:calc(100vh - var(--space-8))}.toast-container{left:var(--space-4);right:var(--space-4)}.toast{min-width:auto;max-width:100%}}.chart-container{width:100%;padding:var(--space-4);position:relative}.chart-container--sm{height:200px}.chart-container--md{height:300px}.chart-container--lg{height:400px}@media print{.sidebar,.header,.toast-container,.modal-backdrop,.sidebar-overlay{display:none!important}.main{margin-left:0!important}body{color:#000;background:#fff}}
