:root{--color-primary: hsl(270, 75%, 65%);--color-primary-dark: hsl(270, 75%, 55%);--color-primary-light: hsl(270, 75%, 75%);--color-primary-ultra-light: hsl(270, 75%, 95%);--color-secondary: hsl(195, 85%, 60%);--color-secondary-light: hsl(195, 85%, 70%);--color-accent: hsl(330, 85%, 65%);--color-accent-light: hsl(330, 85%, 75%);--color-success: hsl(145, 70%, 55%);--color-warning: hsl(40, 95%, 60%);--color-danger: hsl(0, 80%, 62%);--color-info: hsl(205, 90%, 65%);--color-bg-primary: hsl(245, 18%, 8%);--color-bg-secondary: hsl(245, 15%, 11%);--color-bg-tertiary: hsl(245, 12%, 14%);--color-bg-elevated: hsl(245, 15%, 16%);--glass-bg: hsla(245, 15%, 18%, .7);--glass-bg-strong: hsla(245, 15%, 20%, .85);--glass-border: hsla(0, 0%, 100%, .12);--glass-border-strong: hsla(0, 0%, 100%, .18);--color-text-primary: hsl(0, 0%, 96%);--color-text-secondary: hsl(0, 0%, 75%);--color-text-muted: hsl(0, 0%, 55%);--color-text-disabled: hsl(0, 0%, 40%);--gradient-primary: linear-gradient(135deg, hsl(270, 75%, 65%) 0%, hsl(330, 85%, 65%) 100%);--gradient-secondary: linear-gradient(135deg, hsl(195, 85%, 60%) 0%, hsl(270, 75%, 65%) 100%);--gradient-success: linear-gradient(135deg, hsl(145, 70%, 50%) 0%, hsl(145, 70%, 65%) 100%);--gradient-warm: linear-gradient(135deg, hsl(330, 85%, 65%) 0%, hsl(40, 95%, 60%) 100%);--gradient-cool: linear-gradient(135deg, hsl(195, 85%, 60%) 0%, hsl(270, 75%, 65%) 100%);--shadow-xs: 0 1px 3px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .2);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .6), 0 8px 24px rgba(0, 0, 0, .5);--shadow-glow-primary: 0 0 24px hsla(270, 75%, 65%, .4);--shadow-glow-accent: 0 0 24px hsla(330, 85%, 65%, .4);--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .4s cubic-bezier(.68, -.55, .265, 1.55);--safe-area-inset-top: env(safe-area-inset-top);--safe-area-inset-bottom: env(safe-area-inset-bottom);--safe-area-inset-left: env(safe-area-inset-left);--safe-area-inset-right: env(safe-area-inset-right);--touch-target-min: 44px;--spacing-safe-top: max(var(--spacing-lg), var(--safe-area-inset-top));--spacing-safe-bottom: max(var(--spacing-lg), var(--safe-area-inset-bottom));--spacing-safe-left: max(var(--spacing-md), var(--safe-area-inset-left));--spacing-safe-right: max(var(--spacing-md), var(--safe-area-inset-right))}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--color-bg-primary);color:var(--color-text-primary);line-height:var(--line-height-normal);min-height:100vh;overflow-x:hidden;font-weight:var(--font-weight-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body:before{content:"";position:fixed;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at 15% 30%,hsla(270,75%,65%,.18) 0%,transparent 45%),radial-gradient(circle at 85% 75%,hsla(330,85%,65%,.15) 0%,transparent 45%),radial-gradient(circle at 50% 50%,hsla(195,85%,60%,.08) 0%,transparent 50%);z-index:-1;animation:gradientShift 20s ease-in-out infinite}@keyframes gradientShift{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--color-bg-primary);display:flex;align-items:center;justify-content:center;z-index:9999;animation:fadeOut .5s ease-in-out .5s forwards}@keyframes fadeOut{to{opacity:0;pointer-events:none}}.loading-content{text-align:center}.loading-spinner{width:60px;height:60px;border:4px solid var(--glass-border);border-top-color:var(--color-primary);border-right-color:var(--color-accent);border-radius:50%;animation:spin .8s cubic-bezier(.68,-.55,.265,1.55) infinite;margin:0 auto var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}.loading-content h2{font-size:var(--font-size-lg);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.container{max-width:1400px;margin:0 auto;padding:var(--spacing-lg)}.header{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--glass-border-strong);border-radius:var(--radius-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-lg);overflow:hidden;position:relative}.header:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--gradient-primary)}.header-content{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.header-left{display:flex;flex-direction:column;gap:var(--spacing-md)}.header-illustration{width:200px;height:200px;object-fit:contain;animation:float 6s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-10px) rotate(2deg)}75%{transform:translateY(-5px) rotate(-2deg)}}.logo{display:flex;align-items:center;gap:var(--spacing-md)}.logo-icon{font-size:3rem;animation:pulse 3s ease-in-out infinite;filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.logo h1{font-size:var(--font-size-3xl);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-weight:var(--font-weight-bold);letter-spacing:-.02em}.logo-subtitle{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:calc(var(--spacing-xs) * -1);font-weight:var(--font-weight-medium)}.nav{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.nav-btn{flex:1;min-width:130px;padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);position:relative;overflow:hidden}.nav-btn:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.nav-btn span{font-size:1.3rem;position:relative;z-index:1}.nav-btn>*:not(span):before{position:relative;z-index:1}.nav-btn:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);color:var(--color-text-primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.nav-btn:hover:before{opacity:.1}.nav-btn.active{background:var(--gradient-primary);border-color:transparent;color:#fff;box-shadow:var(--shadow-md),var(--shadow-glow-primary)}.nav-btn.active:before{opacity:0}.main-content{animation:fadeInUp .6s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.view{display:none}.view.active{display:block;animation:fadeInUp .4s ease-out}.view-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl);flex-wrap:wrap;gap:var(--spacing-md)}.view-header h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.card{background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--glass-border-strong);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);transition:all var(--transition-base);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.card:hover{border-color:var(--glass-border-strong);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card:hover:before{opacity:1}.card h3{font-size:var(--font-size-xl);margin-bottom:var(--spacing-lg);color:var(--color-text-primary);font-weight:var(--font-weight-bold);letter-spacing:-.01em}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.summary-card{display:flex;align-items:center;gap:var(--spacing-lg);padding:var(--spacing-xl);position:relative;overflow:hidden;background:var(--glass-bg-strong)}.summary-card:after{content:"";position:absolute;top:0;right:0;width:100px;height:100%;background:linear-gradient(90deg,transparent,hsla(270,75%,65%,.05));transition:transform var(--transition-base)}.summary-card:hover:after{transform:translate(10px)}.card-icon{font-size:3.5rem;position:relative;z-index:1;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3));transition:transform var(--transition-bounce)}.summary-card:hover .card-icon{transform:scale(1.1) rotate(5deg)}.card-content{flex:1;position:relative;z-index:1}.card-content h3{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--spacing-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.amount{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-primary-light);letter-spacing:-.02em;text-shadow:0 2px 8px rgba(0,0,0,.2)}.balance-card .amount{color:var(--color-success)}.balance-text{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs);font-weight:var(--font-weight-medium)}.clickable-card{cursor:pointer;transition:all var(--transition-base);position:relative}.clickable-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base);pointer-events:none;border-radius:var(--radius-xl)}.clickable-card:hover{transform:translateY(-6px) scale(1.02);box-shadow:var(--shadow-xl),var(--shadow-glow-primary);border-color:var(--color-primary)}.clickable-card:hover:before{opacity:.08}.clickable-card:active{transform:translateY(-4px) scale(1.01);transition:transform var(--transition-fast)}.card-add-icon{position:absolute;top:var(--spacing-md);right:var(--spacing-md);width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);color:#fff;font-size:2rem;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);box-shadow:var(--shadow-md),var(--shadow-glow-primary);opacity:0;transform:scale(.8);transition:all var(--transition-bounce);z-index:2;pointer-events:none}.clickable-card:hover .card-add-icon{opacity:1;transform:scale(1) rotate(90deg)}.hidden{display:none!important}.stats-section,.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:var(--spacing-lg)}.btn{padding:var(--spacing-md) var(--spacing-xl);border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--spacing-sm);font-family:var(--font-family);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:active:after{width:300px;height:300px}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-md)}.btn-primary:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg),var(--shadow-glow-primary)}.btn-secondary{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--glass-border)}.btn-secondary:hover{background:var(--color-bg-secondary);border-color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-danger{background:var(--color-danger);color:#fff;box-shadow:var(--shadow-sm)}.btn-danger:hover{background:#e83030;transform:translateY(-3px);box-shadow:var(--shadow-md)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.05em}.input{width:100%;padding:var(--spacing-md);background:var(--color-bg-tertiary);border:1.5px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-base);font-family:var(--font-family);transition:all var(--transition-base);font-weight:var(--font-weight-medium)}.input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px #a663e926;background:var(--color-bg-secondary);transform:translateY(-1px)}textarea.input{resize:vertical;min-height:100px;line-height:var(--line-height-relaxed)}select.input{cursor:pointer}.filters-container{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-lg)}.filter-group{flex:1;min-width:180px}.expenses-list{display:flex;flex-direction:column;gap:var(--spacing-md);max-height:650px;overflow-y:auto;padding-right:var(--spacing-sm)}.expenses-list-compact{display:flex;flex-direction:column;gap:var(--spacing-md);max-height:450px;overflow-y:auto}.expenses-list::-webkit-scrollbar,.expenses-list-compact::-webkit-scrollbar{width:10px}.expenses-list::-webkit-scrollbar-track,.expenses-list-compact::-webkit-scrollbar-track{background:var(--color-bg-tertiary);border-radius:var(--radius-sm)}.expenses-list::-webkit-scrollbar-thumb,.expenses-list-compact::-webkit-scrollbar-thumb{background:var(--gradient-primary);border-radius:var(--radius-sm)}.expenses-list::-webkit-scrollbar-thumb:hover,.expenses-list-compact::-webkit-scrollbar-thumb:hover{background:var(--gradient-cool)}.expense-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);background:var(--color-bg-tertiary);border:1.5px solid var(--glass-border);border-radius:var(--radius-lg);transition:all var(--transition-base);gap:var(--spacing-lg);position:relative;overflow:hidden}.expense-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gradient-primary);opacity:0;transition:opacity var(--transition-base)}.expense-item:hover{background:var(--color-bg-elevated);border-color:var(--color-primary);transform:translate(8px);box-shadow:var(--shadow-md)}.expense-item:hover:before{opacity:1}.expense-info{flex:1}.expense-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.expense-icon{font-size:2rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.expense-description{font-weight:var(--font-weight-bold);color:var(--color-text-primary);font-size:var(--font-size-lg)}.expense-details{display:flex;gap:var(--spacing-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary);flex-wrap:wrap}.expense-detail{display:flex;align-items:center;gap:.4rem;font-weight:var(--font-weight-medium)}.expense-amount-section{text-align:right}.expense-amount{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-primary-light);letter-spacing:-.01em;text-shadow:0 2px 8px rgba(0,0,0,.2)}.expense-person{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-xs);font-weight:var(--font-weight-medium)}.expense-actions{display:flex;gap:var(--spacing-sm)}.btn-icon{padding:var(--spacing-sm);background:var(--color-bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-sm);cursor:pointer;font-size:1.3rem;transition:all var(--transition-base);width:40px;height:40px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--color-bg-elevated);transform:scale(1.1) rotate(5deg);box-shadow:var(--shadow-sm)}.btn-edit:hover{color:var(--color-secondary);border-color:var(--color-secondary)}.btn-delete:hover{color:var(--color-danger);border-color:var(--color-danger)}.modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:1000;align-items:center;justify-content:center;padding:var(--spacing-lg)}.modal.active{display:flex;animation:fadeIn .3s ease-out}.modal-content{background:var(--color-bg-secondary);border:1.5px solid var(--glass-border-strong);border-radius:var(--radius-xl);max-width:650px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUpBounce .4s cubic-bezier(.68,-.55,.265,1.55)}@keyframes slideUpBounce{0%{transform:translateY(100px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-bottom:1.5px solid var(--glass-border);position:relative}.modal-header:after{content:"";position:absolute;bottom:-1.5px;left:0;right:0;height:2px;background:var(--gradient-primary);opacity:.3}.modal-header h3{margin:0;font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.modal-close{background:var(--color-bg-tertiary);border:1px solid var(--glass-border);font-size:2rem;color:var(--color-text-secondary);cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all var(--transition-base)}.modal-close:hover{background:var(--color-danger);color:#fff;transform:rotate(90deg);border-color:transparent}#expense-form{padding:var(--spacing-xl)}.modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;padding-top:var(--spacing-lg);border-top:1.5px solid var(--glass-border);margin-top:var(--spacing-xl)}.settings-container{display:flex;flex-direction:column;gap:var(--spacing-lg)}.data-management{display:flex;flex-direction:column;gap:var(--spacing-md)}.info-text{margin-top:var(--spacing-lg);padding:var(--spacing-lg);background:var(--color-bg-tertiary);border-left:4px solid var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--line-height-relaxed)}.categories-management{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);max-height:300px;overflow-y:auto;padding-right:var(--spacing-xs)}.category-management-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);background:var(--color-bg-tertiary);border:1.5px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-base)}.category-management-item:hover{border-color:var(--color-primary);transform:translate(4px)}.category-info{display:flex;align-items:center;gap:var(--spacing-md);flex:1}.category-pill{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.2)}.category-pill .icon{font-size:1.1rem}.btn-delete-category{padding:var(--spacing-xs) var(--spacing-md);background:var(--color-danger);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-base)}.btn-delete-category:hover{background:#e83030;transform:scale(1.05)}.add-category-form{margin-top:var(--spacing-md)}.form-group-inline{display:flex;gap:var(--spacing-sm);align-items:stretch;flex-wrap:wrap}.form-group-inline .input{flex:1;min-width:120px}.form-group-inline .btn{white-space:nowrap}.category-breakdown{max-height:500px;overflow-y:auto}.category-breakdown-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.category-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:all var(--transition-base)}.category-item:hover{background:var(--color-bg-elevated);border-color:var(--color-primary);transform:translate(4px)}.category-item-info{display:flex;align-items:center;gap:var(--spacing-md)}.category-item-icon{font-size:1.8rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.category-item-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.category-item-amount{font-weight:var(--font-weight-bold);color:var(--color-primary-light);font-size:var(--font-size-lg)}.toast-container{position:fixed;top:var(--spacing-xl);right:var(--spacing-xl);z-index:2000;display:flex;flex-direction:column;gap:var(--spacing-md)}.toast{padding:var(--spacing-lg);background:var(--glass-bg-strong);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1.5px solid var(--glass-border-strong);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);min-width:320px;animation:slideInRight .4s cubic-bezier(.68,-.55,.265,1.55);font-weight:var(--font-weight-medium)}@keyframes slideInRight{0%{transform:translate(420px);opacity:0}to{transform:translate(0);opacity:1}}.toast.success{border-left:4px solid var(--color-success);box-shadow:var(--shadow-xl),0 0 20px #3cdd7f4d}.toast.error{border-left:4px solid var(--color-danger);box-shadow:var(--shadow-xl),0 0 20px #ec51514d}.toast.info{border-left:4px solid var(--color-secondary);box-shadow:var(--shadow-xl),0 0 20px #42c4f04d}.empty-state{text-align:center;padding:var(--spacing-3xl) var(--spacing-xl);color:var(--color-text-secondary)}.empty-state-icon{font-size:5rem;margin-bottom:var(--spacing-lg);opacity:.6;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.empty-state-image{width:200px;height:200px;margin:0 auto var(--spacing-xl);object-fit:contain;opacity:.8}.empty-state-text{font-size:var(--font-size-xl);margin-bottom:var(--spacing-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.empty-state-subtext{font-size:var(--font-size-base);color:var(--color-text-muted);margin-bottom:var(--spacing-xl)}@media (max-width: 768px){:root{--spacing-xl: 1.5rem;--spacing-2xl: 2rem}.container{padding:var(--spacing-md);padding-left:var(--spacing-safe-left);padding-right:var(--spacing-safe-right)}.header{position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--glass-border)}.header-content{padding:var(--spacing-md) var(--spacing-lg);padding-top:max(var(--spacing-md),var(--safe-area-inset-top));grid-template-columns:1fr}.header-illustration{display:none}.logo h1{font-size:var(--font-size-2xl)}.logo-subtitle{font-size:var(--font-size-xs)}.nav{position:fixed;bottom:0;left:0;right:0;background:var(--color-bg-elevated);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);padding:var(--spacing-sm) var(--spacing-sm);padding-bottom:max(var(--spacing-sm),var(--safe-area-inset-bottom));box-shadow:0 -4px 16px #00000080;border-top:1px solid var(--glass-border);flex-direction:row;justify-content:space-around;gap:0;z-index:1000}.nav-btn{flex:1;flex-direction:column;gap:4px;min-width:unset;width:auto;font-size:var(--font-size-xs);padding:var(--spacing-sm);min-height:var(--touch-target-min)}.nav-btn span{font-size:1.5rem}.nav-btn.active{background:var(--glass-bg)}.main-content{padding-bottom:calc(76px + var(--safe-area-inset-bottom))}.summary-grid{grid-template-columns:1fr;gap:var(--spacing-md)}.summary-card{padding:var(--spacing-lg);min-height:100px}.card-icon{font-size:3rem}.amount{font-size:var(--font-size-3xl)}.stats-section,.stats-grid{grid-template-columns:1fr}.view-header{flex-direction:column;align-items:stretch;gap:var(--spacing-md)}.view-header h2{font-size:var(--font-size-2xl)}.view-header .btn{width:100%}.filters-container{flex-direction:column}.filter-group{width:100%}.expense-item{flex-direction:column;align-items:flex-start;padding:var(--spacing-md)}.expense-amount-section{text-align:left;width:100%;display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-sm)}.expense-actions{width:100%;justify-content:flex-end;margin-top:var(--spacing-sm)}.btn-edit,.btn-delete{min-width:var(--touch-target-min);min-height:var(--touch-target-min);padding:var(--spacing-md)}.modal-content{width:100vw;height:100vh;max-width:100vw;max-height:100vh;border-radius:0;margin:0;animation:slideUpMobile .3s cubic-bezier(.4,0,.2,1)}@keyframes slideUpMobile{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{padding-top:max(var(--spacing-xl),var(--safe-area-inset-top))}.modal-close{min-width:48px;min-height:48px}#expense-form{padding-bottom:max(var(--spacing-2xl),var(--safe-area-inset-bottom))}.modal-actions{flex-direction:column-reverse;gap:var(--spacing-sm)}.modal-actions .btn{width:100%;min-height:var(--touch-target-min)}input[type=text],input[type=number],input[type=date],input[type=email],select,textarea{font-size:16px!important}.expenses-list,.categories-management,.modal-content,.category-breakdown{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.btn:active,.card:active,.nav-btn:active,.expense-item:active{transform:scale(.98);transition:transform .1s ease-out}.toast-container{left:var(--spacing-md);right:var(--spacing-md);top:max(var(--spacing-xl),var(--safe-area-inset-top))}.toast{min-width:unset;width:100%}.form-group-inline{flex-direction:column}.form-group-inline .input,.form-group-inline .btn{width:100%}}@media (max-width: 480px){html{font-size:14px}.card{padding:var(--spacing-lg)}.logo-icon{font-size:2.5rem}.logo h1{font-size:var(--font-size-xl)}.expense-icon{font-size:1.5rem}.card-icon{font-size:2.5rem}.amount{font-size:var(--font-size-2xl)}}@media (min-width: 769px){.nav{position:static;flex-direction:row;padding:var(--spacing-md) var(--spacing-xl);border-top:none;box-shadow:none}.nav-btn{flex-direction:row;gap:var(--spacing-sm);width:auto;font-size:var(--font-size-base)}.nav-btn span{font-size:1.2rem}.main-content{padding-bottom:var(--spacing-xl)}.summary-grid{grid-template-columns:repeat(2,1fr)}.modal-content{width:90%;height:auto;max-width:600px;max-height:90vh;border-radius:var(--radius-xl);margin:auto;animation:slideUpBounce .4s cubic-bezier(.68,-.55,.265,1.55)}.modal-actions{flex-direction:row;justify-content:flex-end}.modal-actions .btn{width:auto}}@media (min-width: 1024px){.header-content{grid-template-columns:1fr auto}.header-illustration{display:block}.summary-grid{grid-template-columns:repeat(4,1fr)}.stats-section,.stats-grid{grid-template-columns:repeat(2,1fr)}}.image-upload-section{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;align-items:center;margin-bottom:var(--spacing-md)}.btn-sm{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm)}.storage-info{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-left:auto}.image-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:var(--spacing-sm);margin-top:var(--spacing-md)}.image-thumbnail-container{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-tertiary);border:2px solid var(--glass-border);transition:all var(--transition-base);cursor:pointer}.image-thumbnail-container:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md),var(--shadow-glow-primary);transform:scale(1.05)}.image-thumbnail{width:100%;height:100%;object-fit:cover;display:block}.image-thumbnail-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(180deg,rgba(0,0,0,.7) 0%,transparent 40%,transparent 60%,rgba(0,0,0,.6) 100%);opacity:0;transition:opacity var(--transition-base);display:flex;align-items:center;justify-content:center}.image-thumbnail-container:hover .image-thumbnail-overlay{opacity:1}.btn-remove-image{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:50%;background:var(--color-danger);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;opacity:0;transform:scale(.8);transition:all var(--transition-base);z-index:2;padding:0;box-shadow:var(--shadow-md)}.image-thumbnail-container:hover .btn-remove-image{opacity:1;transform:scale(1)}.btn-remove-image:hover{background:#e83030;transform:scale(1.1)}.btn-remove-image:active{transform:scale(.95)}.expense-attachment-indicator{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-primary);background:#a663e91a;padding:2px 8px;border-radius:var(--radius-sm);margin-left:var(--spacing-sm)}.camera-modal-content{max-width:800px;width:90%}.camera-container{width:100%;background:var(--color-bg-primary);border-radius:var(--radius-md);overflow:hidden;position:relative;margin:var(--spacing-lg) 0}#camera-video{width:100%;height:auto;display:block;max-height:500px;object-fit:contain}#camera-canvas{display:none}.camera-error{padding:var(--spacing-xl);text-align:center;color:var(--color-danger);background:var(--color-bg-tertiary);border-radius:var(--radius-md);margin:var(--spacing-lg) 0}.image-viewer-modal{background:#000000f2}.image-viewer-content{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:var(--spacing-3xl)}.image-viewer-close{position:absolute;top:var(--spacing-xl);right:var(--spacing-xl);width:48px;height:48px;border-radius:50%;background:var(--color-bg-elevated);border:2px solid var(--glass-border);color:var(--color-text-primary);font-size:32px;line-height:1;cursor:pointer;transition:all var(--transition-base);z-index:1001;display:flex;align-items:center;justify-content:center}.image-viewer-close:hover{background:var(--color-danger);border-color:var(--color-danger);transform:rotate(90deg);box-shadow:var(--shadow-lg)}#image-viewer-img{max-width:90%;max-height:90vh;object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);animation:imageZoomIn .3s ease-out}@keyframes imageZoomIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.image-nav{position:absolute;top:50%;transform:translateY(-50%);width:56px;height:56px;border-radius:50%;background:var(--color-bg-elevated);border:2px solid var(--glass-border);color:var(--color-text-primary);font-size:36px;line-height:1;cursor:pointer;transition:all var(--transition-base);z-index:1001;display:flex;align-items:center;justify-content:center;opacity:.7}.image-nav:hover{opacity:1;background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-lg),var(--shadow-glow-primary);transform:translateY(-50%) scale(1.1)}.image-nav:active{transform:translateY(-50%) scale(.95)}.image-nav-prev{left:var(--spacing-xl)}.image-nav-next{right:var(--spacing-xl)}.image-nav:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.image-viewer-info{position:absolute;bottom:var(--spacing-xl);left:50%;transform:translate(-50%);background:var(--color-bg-elevated);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-full);border:1px solid var(--glass-border);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);box-shadow:var(--shadow-lg);z-index:1001}.image-loading{position:relative}.image-loading:after{content:"";position:absolute;top:50%;left:50%;width:24px;height:24px;border:3px solid var(--glass-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite;transform:translate(-50%,-50%)}@media (max-width: 768px){.image-viewer-content{padding:var(--spacing-xl)}.image-viewer-close{top:var(--spacing-md);right:var(--spacing-md);width:40px;height:40px;font-size:24px}.image-nav{width:48px;height:48px;font-size:28px}.image-nav-prev{left:var(--spacing-sm)}.image-nav-next{right:var(--spacing-sm)}#image-viewer-img{max-width:95%;max-height:85vh}.image-preview-grid{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.camera-container{margin:var(--spacing-md) 0}}.services-summary-card{margin-bottom:var(--spacing-xl)}.services-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.service-stats-item{display:flex;flex-direction:column;gap:var(--spacing-sm)}.service-stats-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.05em}.service-stats-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em}.service-stats-value.success{color:#21c45d}.service-stats-value.danger{color:#ef4343}.service-stats-value.primary{color:var(--color-primary-light)}.services-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.service-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-xl);border-radius:var(--radius-lg);transition:all var(--transition-base);gap:var(--spacing-lg);border:2px solid}.service-card-unpaid{border-color:#ef4343;background:linear-gradient(135deg,#ef43430d,#ef43431a)}.service-card-unpaid:hover{transform:translateY(-2px);box-shadow:0 8px 24px #ef434333}.service-card-paid{border-color:#21c45d;background:linear-gradient(135deg,#21c45d0d,#21c45d1a)}.service-card-paid:hover{transform:translateY(-2px);box-shadow:0 8px 24px #21c45d33}.service-card-paused{opacity:.6;border-color:var(--color-text-muted);background:var(--color-bg-tertiary)}.service-info{flex:1}.service-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.service-name{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.service-paused-badge{font-size:var(--font-size-xs);padding:4px 8px;background:var(--color-text-muted);color:#fff;border-radius:var(--radius-sm);font-weight:var(--font-weight-semibold)}.service-details{display:flex;flex-direction:column;gap:var(--spacing-xs)}.service-amount{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:#21c45d}.service-amount-pending{font-size:var(--font-size-lg);color:var(--color-text-secondary)}.service-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.service-last-month{font-size:var(--font-size-sm);color:var(--color-text-muted)}.service-actions{display:flex;align-items:center;gap:var(--spacing-md)}.service-toggle{position:relative;width:60px;height:32px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-base);display:inline-block}.service-toggle-input{display:none}.service-toggle-slider{position:absolute;top:4px;left:4px;width:24px;height:24px;background:#fff;border-radius:50%;transition:transform var(--transition-base);box-shadow:0 2px 4px #0003}.service-toggle.paid{background:#21c45d}.service-toggle.paid .service-toggle-slider{transform:translate(28px)}.services-management-list{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.service-management-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--radius-md);border:1px solid var(--glass-border)}.service-management-item.paused{opacity:.6}.service-management-actions{display:flex;gap:var(--spacing-sm)}.btn-icon{padding:var(--spacing-sm);background:transparent;border:none;cursor:pointer;font-size:var(--font-size-lg);transition:transform var(--transition-fast);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{transform:scale(1.1)}.btn-icon.btn-danger:hover{transform:scale(1.2)}.add-service-form{margin-top:var(--spacing-md)}.form-hint{display:block;margin-top:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-text-muted)}.empty-state{text-align:center;padding:var(--spacing-2xl);color:var(--color-text-muted)}.empty-state .text-muted{font-size:var(--font-size-sm);margin-top:var(--spacing-sm)}@media (max-width: 768px){.services-summary-grid{grid-template-columns:1fr}.service-card{flex-direction:column;align-items:flex-start}.service-actions{width:100%;justify-content:space-between}.service-name{font-size:var(--font-size-lg)}.service-management-item{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.service-management-actions{width:100%;justify-content:flex-end}}
