:root{--bg-canvas: #f5f2ee;--bg-card: #ffffff;--bg-card-alt: #faf8f5;--bg-header: linear-gradient(135deg, #1a1816 0%, #2d2520 50%, #3a2f28 100%);--bg-header-solid: #22201d;--text-primary: #22201d;--text-secondary: #777573;--text-inverse: #ffffff;--accent: #ff692d;--accent-hover: #e85a20;--accent-glow: rgba(255, 105, 45, .25);--income: #0b7443;--income-bg: #e8f5e9;--income-gradient: linear-gradient(135deg, #0b7443, #15a362);--expense: #e8453c;--expense-bg: #fdecea;--expense-gradient: linear-gradient(135deg, #e8453c, #f06b5a);--children: #6366f1;--children-bg: #eef2ff;--savings: #0891b2;--savings-bg: #e0f7fa;--warning: #f59e0b;--warning-bg: #fef3c7;--border: #e8e5e0;--shadow: rgba(0, 0, 0, .06);--shadow-lg: rgba(0, 0, 0, .12);--shadow-accent: rgba(255, 105, 45, .15);--nav-bg: rgba(255, 255, 255, .85);--modal-backdrop: rgba(34, 32, 29, .55);--radius: 14px;--radius-sm: 10px;--radius-pill: 9999px;--card-glass: rgba(255, 255, 255, .7)}[data-theme=dark]{--bg-canvas: #121010;--bg-card: #1e1b19;--bg-card-alt: #2a2623;--bg-header: linear-gradient(135deg, #0a0908 0%, #1a1614 50%, #251f1b 100%);--bg-header-solid: #0f0e0d;--text-primary: #f0ece6;--text-secondary: #9a9793;--accent: #ff8c5a;--accent-hover: #ff692d;--accent-glow: rgba(255, 140, 90, .3);--income: #4ade80;--income-bg: rgba(74, 222, 128, .12);--income-gradient: linear-gradient(135deg, #22c55e, #4ade80);--expense: #f87171;--expense-bg: rgba(248, 113, 113, .12);--expense-gradient: linear-gradient(135deg, #ef4444, #f87171);--children: #a5b4fc;--children-bg: rgba(165, 180, 252, .12);--savings: #22d3ee;--savings-bg: rgba(34, 211, 238, .12);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .12);--border: #302c28;--shadow: rgba(0, 0, 0, .35);--shadow-lg: rgba(0, 0, 0, .5);--shadow-accent: rgba(255, 140, 90, .2);--nav-bg: rgba(30, 27, 25, .9);--modal-backdrop: rgba(0, 0, 0, .75);--card-glass: rgba(30, 27, 25, .75)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-canvas);color:var(--text-primary);line-height:1.5;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}#app{max-width:480px;margin:0 auto;min-height:100dvh;position:relative;display:flex;flex-direction:column}#app-header{position:sticky;top:0;z-index:100;background:var(--bg-header);color:var(--text-inverse);padding:16px 20px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 20px #00000026}.header-title{font-family:Merriweather,serif;font-size:1.15rem;font-weight:700;letter-spacing:-.02em;background:linear-gradient(135deg,#fff,#ffd6c2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.icon-btn{background:none;border:none;color:var(--text-inverse);font-size:1.25rem;cursor:pointer;padding:4px;border-radius:var(--radius-sm);transition:opacity .2s}.icon-btn:active{opacity:.6}#main-content{flex:1;padding:16px 16px 100px;animation:fadeIn .3s cubic-bezier(.22,1,.36,1)}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes progressGrow{0%{width:0}}#bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;background:var(--nav-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);display:flex;padding:6px 0 env(safe-area-inset-bottom,8px);z-index:100;box-shadow:0 -4px 24px var(--shadow-lg)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;background:none;border:none;color:var(--text-secondary);cursor:pointer;transition:color .2s;font-family:inherit}.nav-item.active{color:var(--accent)}.nav-item.active .nav-icon{animation:pulse .4s ease}.nav-icon{font-size:1.35rem;transition:transform .2s}.nav-label{font-size:.68rem;font-weight:600}.fab{position:fixed;bottom:calc(68px + env(safe-area-inset-bottom,8px));right:calc(50% - 224px);width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#ff692d,#ff9a5c);color:#fff;border:none;font-size:1.6rem;cursor:pointer;box-shadow:0 6px 24px var(--accent-glow),0 2px 8px #00000026;z-index:99;display:flex;align-items:center;justify-content:center;transition:transform .25s cubic-bezier(.34,1.56,.64,1),box-shadow .25s}@media(max-width:480px){.fab{right:16px}}.fab:active{transform:scale(.88);box-shadow:0 2px 8px var(--accent-glow)}.fab-icon{line-height:1}.card{background:var(--bg-card);border-radius:var(--radius);padding:18px;box-shadow:0 2px 8px var(--shadow),0 0 0 1px #00000008;margin-bottom:14px;transition:box-shadow .3s,transform .3s;animation:slideUp .35s cubic-bezier(.22,1,.36,1) backwards}.card:nth-child(2){animation-delay:.05s}.card:nth-child(3){animation-delay:.1s}.card:nth-child(4){animation-delay:.15s}.card-title{font-size:.8rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.summary-card{background:var(--bg-card);border-radius:var(--radius);padding:16px;box-shadow:0 2px 8px var(--shadow);text-align:center;transition:transform .2s;animation:slideUp .4s cubic-bezier(.22,1,.36,1) backwards}.summary-card:nth-child(1){animation-delay:.05s}.summary-card:nth-child(2){animation-delay:.1s}.summary-card:nth-child(3){animation-delay:.15s}.summary-card:nth-child(4){animation-delay:.2s}.summary-card.full-width{grid-column:1 / -1}.summary-icon{font-size:1.5rem;margin-bottom:6px}.summary-label{font-size:.72rem;font-weight:500;color:var(--text-secondary);margin-bottom:4px}.summary-value{font-size:1.25rem;font-weight:700;letter-spacing:-.02em}.summary-value.income{color:var(--income)}.summary-value.expense{color:var(--expense)}.summary-value.children{color:var(--children)}.summary-value.savings{color:var(--savings)}.summary-value.positive{color:var(--income)}.summary-value.negative{color:var(--expense)}.month-selector{display:flex;align-items:center;justify-content:center;gap:16px;margin-bottom:16px;padding:8px 0}.month-selector button{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-pill);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;color:var(--text-primary);transition:background .2s}.month-selector button:active{background:var(--bg-card-alt)}.month-selector .month-label{font-family:Merriweather,serif;font-size:1.05rem;font-weight:700;min-width:160px;text-align:center}.tx-group-header{font-size:.78rem;font-weight:600;color:var(--text-secondary);padding:10px 4px 6px}.tx-item{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.tx-item:last-child{border-bottom:none}.tx-item:active{background:var(--bg-card-alt);border-radius:var(--radius-sm)}.tx-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}.tx-icon.income-icon{background:var(--income-bg)}.tx-icon.expense-icon{background:var(--expense-bg)}.tx-icon.children-icon{background:var(--children-bg)}.tx-icon.savings-icon{background:var(--savings-bg)}.tx-info{flex:1;min-width:0}.tx-category{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-note{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-amount{font-size:.95rem;font-weight:700;white-space:nowrap}.tx-amount.income{color:var(--income)}.tx-amount.expense{color:var(--expense)}.empty-state{text-align:center;padding:48px 20px;color:var(--text-secondary)}.empty-state .empty-icon{font-size:3rem;margin-bottom:12px}.empty-state .empty-text{font-size:.9rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-backdrop);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:200;display:flex;align-items:flex-end;justify-content:center;opacity:1;transition:opacity .25s}.modal-overlay.hidden{opacity:0;pointer-events:none}.modal-content{background:var(--bg-card);border-radius:20px 20px 0 0;width:100%;max-width:480px;max-height:90dvh;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 20px calc(24px + env(safe-area-inset-bottom,16px));transform:translateY(0);transition:transform .3s cubic-bezier(.32,.72,0,1)}.modal-overlay.hidden .modal-content{transform:translateY(100%)}.modal-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 16px}.modal-title{font-family:Merriweather,serif;font-size:1.15rem;font-weight:700;margin-bottom:18px;text-align:center}.form-group{margin-bottom:14px}.form-label{display:block;font-size:.78rem;font-weight:600;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:.03em}.form-input{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.95rem;font-family:inherit;background:var(--bg-card);color:var(--text-primary);transition:border-color .2s;outline:none}.form-input:focus{border-color:var(--accent)}.form-input-amount{font-size:1.6rem;font-weight:700;text-align:center;padding:16px;letter-spacing:-.02em}.toggle-group{display:flex;background:var(--bg-card-alt);border-radius:var(--radius-pill);padding:3px;margin-bottom:14px}.toggle-btn{flex:1;padding:10px;border:none;border-radius:var(--radius-pill);font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;background:transparent;color:var(--text-secondary)}.toggle-btn.active-income{background:var(--income);color:#fff}.toggle-btn.active-expense{background:var(--expense);color:#fff}.toggle-btn.active-deposit{background:var(--income);color:#fff}.toggle-btn.active-withdraw{background:var(--expense);color:#fff}.category-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.category-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 4px;border:1.5px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);cursor:pointer;transition:all .15s;font-family:inherit}.category-chip:active{transform:scale(.95)}.category-chip.selected{border-color:var(--accent);background:#ff692d14}.category-chip .cat-icon{font-size:1.3rem}.category-chip .cat-name{font-size:.62rem;font-weight:500;color:var(--text-secondary);text-align:center;line-height:1.2}.category-chip.selected .cat-name{color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 24px;border:none;border-radius:var(--radius-pill);font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;width:100%}.btn-primary{background:var(--accent);color:#fff}.btn-primary:active{background:var(--accent-hover);transform:scale(.98)}.btn-secondary{background:var(--bg-card-alt);color:var(--text-primary);border:1px solid var(--border)}.btn-danger{background:var(--expense);color:#fff}.btn-sm{padding:8px 16px;font-size:.82rem;width:auto}.progress-bar-container{margin-bottom:16px}.progress-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.progress-name{font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:6px}.progress-values{font-size:.78rem;color:var(--text-secondary)}.progress-track{height:8px;background:var(--bg-card-alt);border-radius:4px;overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .8s cubic-bezier(.22,1,.36,1);background:var(--income-gradient, var(--income));animation:progressGrow .8s cubic-bezier(.22,1,.36,1);position:relative}.progress-fill:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 2.5s ease-in-out infinite}.progress-fill.warning{background:linear-gradient(90deg,var(--warning),#fcd34d)}.progress-fill.danger{background:var(--expense-gradient, var(--expense))}.goal-card{background:var(--bg-card);border-radius:var(--radius);padding:18px;box-shadow:0 1px 3px var(--shadow);margin-bottom:12px;position:relative;overflow:hidden}.goal-header{display:flex;align-items:center;gap:12px;margin-bottom:12px}.goal-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--savings-bg)}.goal-name{font-size:.95rem;font-weight:700}.goal-target{font-size:.75rem;color:var(--text-secondary)}.goal-progress{margin-bottom:8px}.goal-stats{display:flex;justify-content:space-between;font-size:.78rem;color:var(--text-secondary)}.goal-amount{font-weight:700;color:var(--savings)}.goal-actions{display:flex;gap:8px;margin-top:12px}select.form-input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23777' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.section-title{font-family:Merriweather,serif;font-size:1.1rem;font-weight:700;margin-bottom:14px;letter-spacing:-.02em}.greeting{margin-bottom:20px}.greeting-text{font-size:.85rem;color:var(--text-secondary)}.greeting-name{font-family:Merriweather,serif;font-size:1.3rem;font-weight:700;margin-top:2px}.quick-stats{display:flex;gap:8px;margin-bottom:16px;overflow-x:auto;padding-bottom:4px}.quick-stat{flex:1;min-width:0;background:var(--bg-card);border-radius:var(--radius);padding:14px 12px;box-shadow:0 2px 8px var(--shadow);text-align:center;border:1px solid var(--border);transition:transform .2s,box-shadow .2s;animation:slideUp .4s cubic-bezier(.22,1,.36,1) backwards}.quick-stat:nth-child(1){animation-delay:.05s}.quick-stat:nth-child(2){animation-delay:.1s}.quick-stat:nth-child(3){animation-delay:.15s}.quick-stat .qs-icon{font-size:1.1rem;margin-bottom:4px}.quick-stat .qs-label{font-size:.65rem;color:var(--text-secondary);font-weight:500}.quick-stat .qs-value{font-size:.92rem;font-weight:700;margin-top:2px}.tabs{display:flex;background:var(--bg-card-alt);border-radius:var(--radius-pill);padding:3px;margin-bottom:16px}.tab-btn{flex:1;padding:8px 12px;border:none;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all .2s;background:transparent;color:var(--text-secondary)}.tab-btn.active{background:var(--bg-card);color:var(--text-primary);box-shadow:0 1px 3px var(--shadow)}.confirm-dialog{text-align:center;padding:10px 0}.confirm-dialog .confirm-icon{font-size:2.5rem;margin-bottom:12px}.confirm-dialog .confirm-text{font-size:.95rem;margin-bottom:20px;color:var(--text-secondary)}.confirm-dialog .confirm-actions{display:flex;gap:10px}.hidden{display:none!important}.text-center{text-align:center}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mb-8{margin-bottom:8px}.mb-16{margin-bottom:16px}@media(min-width:481px){#app{border-left:1px solid var(--border);border-right:1px solid var(--border)}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
