:root{--color-background: #F8F9FA;--color-surface: #FFFFFF;--color-surface-elevated: #FFFFFF;--color-primary: #FFFFFF;--color-accent: #FF6B35;--color-accent-light: rgba(255, 107, 53, .15);--color-accent-dark: #E55A2B;--color-text-primary: #1A1A1A;--color-text-secondary: #6B7280;--color-text-tertiary: #9CA3AF;--color-text-on-accent: #FFFFFF;--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .15);--color-success: #34C759;--color-success-bg: rgba(52, 199, 89, .12);--color-error: #FF3B30;--color-error-bg: rgba(255, 59, 48, .12);--color-warning: #FF9500;--color-income: #34C759;--color-expense: #FF3B30;--color-transfer: #007AFF;--glass-background: rgba(255, 255, 255, .72);--glass-blur: 20px;--glass-border: rgba(255, 255, 255, .5);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 12px rgba(0, 0, 0, .08);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .12);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .16);--shadow-glow: 0 0 20px rgba(255, 107, 53, .3);--radius-xs: 6px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 20px;--radius-2xl: 24px;--radius-full: 9999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, sans-serif;--font-size-xs: 11px;--font-size-sm: 13px;--font-size-base: 15px;--font-size-md: 17px;--font-size-lg: 20px;--font-size-xl: 24px;--font-size-2xl: 28px;--font-size-3xl: 34px;--font-size-4xl: 40px;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.7;--transition-fast: .15s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 100;--z-sticky: 200;--z-modal: 300;--z-toast: 400}[data-theme=dark]{--color-background: #0D0D0D;--color-surface: #1A1A1A;--color-surface-elevated: #252525;--color-primary: #1A1A1A;--color-text-primary: #FFFFFF;--color-text-secondary: #A0A0A0;--color-text-tertiary: #707070;--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .15);--glass-background: rgba(26, 26, 26, .72);--glass-border: rgba(255, 255, 255, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .4);--shadow-xl: 0 16px 48px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh;overflow-x:hidden}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-dark)}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}.container{width:100%;max-width:480px;margin:0 auto;padding:0 var(--space-4)}.page{min-height:100vh;padding-bottom:100px}.page-header{padding:var(--space-6) 0 var(--space-4)}.page-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.5px}.section{margin-bottom:var(--space-6)}.section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);margin-bottom:var(--space-3)}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mb-2{margin-bottom:var(--space-2)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.text-center{text-align:center}.text-right{text-align:right}.text-sm{font-size:var(--font-size-sm)}.text-xs{font-size:var(--font-size-xs)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.glass-card{background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-4);box-shadow:var(--shadow-md);transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.glass-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.card-elevated{background:var(--color-surface-elevated);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);border-radius:var(--radius-md);transition:all var(--transition-normal);min-height:48px}.btn:active{transform:scale(.95);transition:transform .1s ease-out}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-accent);color:var(--color-text-on-accent);box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){background:var(--color-accent-dark);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--color-surface-elevated);color:var(--color-text-primary);border:1px solid var(--color-border)}.btn-secondary:hover:not(:disabled){background:var(--color-border)}.btn-ghost{background:transparent;color:var(--color-accent)}.btn-ghost:hover:not(:disabled){background:var(--color-accent-light)}.btn-danger{background:var(--color-error);color:#fff}.btn-full{width:100%}.btn-icon{width:44px;height:44px;min-height:44px;padding:0;border-radius:var(--radius-full)}.btn-fab{position:fixed;bottom:90px;right:var(--space-4);width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;box-shadow:var(--shadow-lg);z-index:var(--z-sticky);transition:all var(--transition-normal)}.btn-fab:hover{transform:scale(1.08);box-shadow:var(--shadow-glow),0 0 30px var(--color-accent)}.btn-fab:active{transform:scale(.95);transition:transform .1s ease-out}.input-group{display:flex;flex-direction:column;gap:var(--space-2)}.input-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.input{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--font-size-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);transition:all var(--transition-fast);min-height:48px}.input:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-light)}.input::placeholder{color:var(--color-text-tertiary)}.input-error{border-color:var(--color-error)}.input-error:focus{box-shadow:0 0 0 3px var(--color-error-bg)}.input-amount{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);text-align:center;background:transparent;border:none;padding:var(--space-4) 0}.input-amount:focus{box-shadow:none}.error-message{font-size:var(--font-size-sm);color:var(--color-error)}.tabs{display:flex;background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-1);border:1px solid var(--color-border)}.tab{flex:1;padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:transparent;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.tab:hover{color:var(--color-text-primary)}.tab.active{background:var(--color-accent);color:#fff;box-shadow:var(--shadow-sm)}.nav-bar{position:fixed;bottom:0;left:0;right:0;height:80px;background:var(--glass-background);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border-top:1px solid var(--color-border);display:flex;justify-content:space-around;align-items:center;padding:0 var(--space-4);padding-bottom:env(safe-area-inset-bottom,0);z-index:var(--z-sticky)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);color:var(--color-text-tertiary);transition:color var(--transition-fast);min-width:60px;position:relative}.nav-item:hover,.nav-item.active{color:var(--color-accent)}.nav-item .nav-icon{width:24px;height:24px}.nav-item .nav-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.nav-item.active:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:var(--radius-full);background:var(--color-accent);animation:popIn .3s ease-out}@keyframes popIn{0%{transform:translate(-50%) scale(0)}70%{transform:translate(-50%) scale(1.3)}to{transform:translate(-50%) scale(1)}}.splash-screen{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--color-background);z-index:9999;animation:fadeOut .5s ease-out forwards;animation-delay:1.5s}.splash-screen.show{animation:none}.splash-logo{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);border-radius:var(--radius-2xl);animation:logoEntry .8s ease-out,logoGlow 2s ease-in-out infinite;box-shadow:0 0 60px var(--color-accent)}.splash-logo svg{color:#fff}.splash-text{margin-top:var(--space-4);font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);animation:fadeIn .5s ease-out .3s backwards}@keyframes logoEntry{0%{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes logoGlow{0%,to{box-shadow:0 0 40px var(--color-accent)}50%{box-shadow:0 0 80px var(--color-accent),0 0 120px var(--color-accent)}}@keyframes fadeOut{0%{opacity:1;pointer-events:all}to{opacity:0;pointer-events:none}}.balance-card{background:linear-gradient(135deg,var(--color-accent) 0%,var(--color-accent-dark) 100%);border-radius:var(--radius-xl);padding:var(--space-5);color:#fff;box-shadow:var(--shadow-lg),var(--shadow-glow)}.balance-label{font-size:var(--font-size-sm);opacity:.9;margin-bottom:var(--space-1)}.balance-amount{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);letter-spacing:-1px}.balance-subtitle{font-size:var(--font-size-sm);opacity:.8;margin-top:var(--space-2)}.stat-card{background:var(--color-surface);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--color-border)}.stat-icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-3)}.stat-icon.income{background:var(--color-success-bg);color:var(--color-success)}.stat-icon.expense{background:var(--color-error-bg);color:var(--color-error)}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-1)}.stat-value{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.stat-value.income{color:var(--color-success)}.stat-value.expense{color:var(--color-error)}.transaction-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);border:1px solid var(--color-border);cursor:pointer;transition:all var(--transition-fast)}.transaction-item:hover{background:var(--color-surface-elevated);transform:translate(4px)}.transaction-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.transaction-details{flex:1;min-width:0}.transaction-category{font-weight:var(--font-weight-medium);margin-bottom:2px}.transaction-wallet{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.transaction-amount-container{text-align:right}.transaction-amount{font-weight:var(--font-weight-semibold)}.transaction-amount.income{color:var(--color-success)}.transaction-amount.expense{color:var(--color-error)}.transaction-amount.transfer{color:var(--color-transfer)}.transaction-date{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.category-chip{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast);min-width:80px}.category-chip:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.category-chip.selected{border-color:var(--color-accent);background:var(--color-accent-light)}.category-chip-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center}.category-chip-name{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-align:center;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-add-scroll{display:flex;gap:var(--space-3);overflow-x:auto;padding:var(--space-2) 0;margin:0 calc(var(--space-4) * -1);padding-left:var(--space-4);padding-right:var(--space-4);scrollbar-width:none;-ms-overflow-style:none}.quick-add-scroll::-webkit-scrollbar{display:none}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-10);text-align:center}.empty-state-icon{width:64px;height:64px;color:var(--color-text-tertiary);margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.empty-state-text{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.modal-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-end;justify-content:center;z-index:var(--z-modal);animation:fadeIn var(--transition-normal)}.modal-content{width:100%;max-width:480px;max-height:90vh;background:var(--color-surface);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;padding:var(--space-6);overflow-y:auto;animation:slideUp var(--transition-slow)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.spinner{width:24px;height:24px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite}.skeleton{background:linear-gradient(90deg,var(--color-border) 25%,var(--color-surface) 50%,var(--color-border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.page-enter{opacity:0;transform:translateY(20px)}.page-enter-active{opacity:1;transform:translateY(0);transition:all var(--transition-slow)}@media(min-width:768px){.container{max-width:600px}.nav-bar{max-width:600px;left:50%;transform:translate(-50%);border-radius:var(--radius-xl) var(--radius-xl) 0 0}}@media(min-width:1024px){.container{max-width:800px}.grid-cols-2{grid-template-columns:repeat(3,1fr)}}@supports (padding-bottom: env(safe-area-inset-bottom)){.page{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}
