@font-face{font-family:DM Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/dm-sans-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-weight:300 800;font-display:swap;src:url(/fonts/dm-sans-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-vietnamese.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323-324,U+329-32A,U+32F-330,U+333-338,U+33A-33B,U+33D,U+1EA0-1EF9,U+20AB}:root,[data-theme=dark]{--primary:#814de5;--primary-light:#a47ef0;--primary-dark:#5a32b0;--primary-glow:#814de559;--bg-primary:#0d0d0f;--bg-secondary:#131316;--surface:#1a1a1e;--surface-elevated:#222228;--surface-hover:#2a2a2f;--border:#ffffff12;--border-strong:#ffffff1f;--text-primary:#e8e8ec;--text-secondary:#8888a0;--text-tertiary:#8888a080;--income:#4ade80;--income-bg:#4ade800d;--income-bg-hover:#4ade801a;--income-bg-strong:#4ade8026;--income-border:#4ade804d;--income-text:#052e16;--expense:#f87171;--expense-bg:#f871710d;--expense-bg-hover:#f871711a;--expense-bg-strong:#f8717126;--expense-border:#f871714d;--expense-text:white;--warning:#f59e0b;--warning-bg:#f59e0b1a;--restore:#60a5fa;--restore-dark:#3b82f6;--restore-bg:#60a5fa33;--restore-border:#60a5fa59;--restore-text:#1e3a5f;--backup:#22c55e;--backup-dark:#16a34a;--backup-bg:#22c55e33;--backup-border:#22c55e59;--backup-text:white;--gradient-primary:linear-gradient(135deg, var(--primary-light), var(--primary));--gradient-accent:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);--cat-food:#f59e0b;--cat-transport:#3b82f6;--cat-shopping:#ec4899;--cat-entertain:#a47ef0;--cat-bills:#f97316;--cat-health:#4ade80;--cat-travel:#2dd4bf;--cat-education:#818cf8;--cat-gifts:#f87171;--cat-other:#9ca3af;--shadow-sm:0 2px 8px #00000026;--shadow-md:0 4px 16px #0003;--shadow-lg:0 8px 32px #00000040;--shadow-xl:0 12px 48px #0000004d;--shadow-glow:0 4px 20px #814de533;--shadow-glow-lg:0 6px 25px #814de54d}[data-theme=light]{--primary:#6b3fd4;--primary-light:#814de5;--primary-dark:#5a32b0;--primary-glow:#6b3fd433;--bg-primary:#f5f5f7;--bg-secondary:#edeef0;--surface:#fff;--surface-elevated:#f0f0f2;--surface-hover:#e8e8ec;--border:#00000014;--border-strong:#00000024;--text-primary:#1a1a1e;--text-secondary:#63636e;--text-tertiary:#63636e80;--income:#16a34a;--income-bg:#16a34a0f;--income-bg-hover:#16a34a1a;--income-bg-strong:#16a34a24;--income-border:#16a34a40;--income-text:#052e16;--expense:#dc2626;--expense-bg:#dc26260f;--expense-bg-hover:#dc26261a;--expense-bg-strong:#dc262624;--expense-border:#dc262640;--expense-text:white;--restore:#3b82f6;--restore-dark:#2563eb;--restore-bg:#3b82f61f;--restore-border:#3b82f640;--restore-text:#1e3a5f;--backup:#22c55e;--backup-dark:#16a34a;--backup-bg:#22c55e1f;--backup-border:#22c55e40;--backup-text:white;--gradient-primary:linear-gradient(135deg, var(--primary-light), var(--primary));--gradient-accent:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);--cat-food:#d97706;--cat-transport:#2563eb;--cat-shopping:#db2777;--cat-entertain:#7c3aed;--cat-bills:#ea580c;--cat-health:#16a34a;--cat-travel:#0d9488;--cat-education:#4f46e5;--cat-gifts:#dc2626;--cat-other:#6b7280;--shadow-sm:0 1px 4px #0000000f;--shadow-md:0 2px 12px #00000014;--shadow-lg:0 4px 24px #0000001a;--shadow-xl:0 8px 40px #0000001f;--shadow-glow:0 4px 20px #6b3fd426;--shadow-glow-lg:0 6px 25px #6b3fd433}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility}body{--font-numeric:"JetBrains Mono", "SF Mono", ui-monospace, monospace;background:var(--bg-primary);color:var(--text-primary);min-height:100dvh;transition:background-color var(--duration-slow) var(--ease-smooth), color var(--duration-slow) var(--ease-smooth);font-family:DM Sans,-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;line-height:1.5}.app{background:var(--bg-primary);min-height:100dvh;color:var(--text-primary);flex-direction:column;display:flex}.footer{color:var(--text-secondary);letter-spacing:.03em;border-top:1px solid var(--border);background:var(--bg-secondary);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;margin-top:auto;padding:1.25rem 0;font-size:.75rem;display:flex}.footer span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:600}.error-boundary{text-align:center;background:var(--bg-primary);min-height:100dvh;color:var(--text-primary);flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;display:flex}.error-boundary-icon{background:var(--warning-bg);width:64px;height:64px;color:var(--warning);border-radius:50%;place-items:center;display:grid}.error-boundary h1{font-size:1.25rem;font-weight:700}.error-boundary p{max-width:32ch;color:var(--text-secondary);line-height:1.6}.error-boundary button{background:var(--primary);color:#fff;cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-expo), box-shadow var(--duration-fast) var(--ease-out-expo);border:none;border-radius:10px;margin-top:.5rem;padding:.7rem 1.6rem;font-size:.95rem;font-weight:600}.error-boundary button:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.error-boundary button:active{transform:translateY(0)scale(.98)}:root{--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--ease-out-back:cubic-bezier(.34, 1.56, .64, 1);--ease-spring:cubic-bezier(.22, 1, .36, 1);--ease-smooth:cubic-bezier(.4, 0, .2, 1);--ease-out-quart:cubic-bezier(.25, 1, .5, 1);--ease-in-out-quart:cubic-bezier(.76, 0, .24, 1);--duration-fast:.188s;--duration-normal:.312s;--duration-slow:.5s;--duration-page:.625s}button,input,select,textarea{transition:border-color var(--duration-normal) var(--ease-out-quart), box-shadow var(--duration-normal) var(--ease-out-quart), background-color var(--duration-normal) var(--ease-out-quart), color var(--duration-normal) var(--ease-out-quart), transform var(--duration-fast) var(--ease-out-back);font-family:inherit}button{position:relative;overflow:hidden}button:before{content:"";background:radial-gradient(circle at var(--ripple-x,50%) var(--ripple-y,50%), #ffffff26 0%, transparent 60%);opacity:0;transition:opacity var(--duration-fast) var(--ease-smooth);pointer-events:none;position:absolute;inset:0}button:active:before{opacity:1}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.lock-screen{background:var(--bg-secondary);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex}.lock-screen-container{background:var(--surface);box-shadow:var(--shadow-xl);text-align:center;-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:20px;width:100%;max-width:400px;padding:2.5rem 2rem;position:relative}.lock-screen-top-bar{justify-content:space-between;align-items:center;width:100%;margin-bottom:.5rem;display:flex}.lock-back-button{color:var(--text-secondary);cursor:pointer;transition:color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:.5rem;display:flex}.lock-back-button:hover{color:var(--text-primary);background:var(--surface-elevated);transform:scale(1.05)}.lock-back-button:active{transform:scale(.92)}.lock-screen-container h1{color:var(--text-primary);-webkit-user-select:none;user-select:none;background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;padding-top:20px;padding-bottom:.75rem;font-size:1.75rem;font-weight:700}.lock-screen-container h2{color:var(--text-secondary);margin-bottom:2rem;font-size:1rem;font-weight:400}.lock-screen-form{flex-direction:column;gap:1.25rem;display:flex}.password-input-container{text-align:left;flex-direction:column;gap:.5rem;display:flex}.password-input-container label{color:var(--text-secondary);font-size:.85rem;font-weight:500}#password{border:1px solid var(--border-strong);background:var(--surface-elevated);color:var(--text-primary);transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:12px;padding:.875rem 1rem;font-size:1rem}#password:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none;transform:scale(1.01)}#password::placeholder{color:var(--text-tertiary)}.unlock-button{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);box-shadow:var(--shadow-glow);border:none;border-radius:12px;min-height:48px;padding:1rem;font-size:1rem;font-weight:600;position:relative;overflow:hidden}.unlock-button:after{content:"";opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);background:linear-gradient(135deg,#ffffff26 0%,#0000 50%);position:absolute;inset:0}.unlock-button:hover:not(:disabled){box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)scale(1.01)}.unlock-button:hover:not(:disabled):after{opacity:1}.unlock-button:active:not(:disabled){filter:brightness(.95);transform:translateY(0)scale(.98)}.unlock-button:disabled{opacity:.5;cursor:not-allowed}.lockout-timer{color:var(--expense);background:var(--expense-bg);border:1px solid var(--expense-border);border-radius:10px;padding:.75rem;font-size:.9rem;font-weight:500}.app-info{color:var(--text-secondary);margin-top:2rem;font-size:.85rem;line-height:1.7}.lock-screen.unlocking{animation:vaultBgFlash .6s var(--ease-out-expo) forwards}.lock-screen.unlocking .lock-screen-container{animation:vaultDoorOpen .6s var(--ease-out-expo) forwards}.lock-screen.unlocking:before{content:"";background:radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);width:0;height:0;animation:vaultGlowExpand .6s var(--ease-out-expo) forwards;z-index:10;pointer-events:none;border-radius:50%;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes vaultDoorOpen{0%{opacity:1;filter:brightness();transform:perspective(800px)rotateX(0)scale(1)}20%{filter:brightness(1.3);transform:perspective(800px)rotateX(-4deg)scale(1.02)}to{opacity:0;filter:brightness(2);transform:perspective(800px)rotateX(50deg)scale(.82)}}@keyframes vaultBgFlash{0%{background:var(--bg-secondary)}40%{background:var(--bg-primary)}to{background:var(--bg-primary);opacity:0}}@keyframes vaultGlowExpand{0%{opacity:.8;width:0;height:0}to{opacity:0;width:200vmax;height:200vmax}}.reset-account-btn{border:1px solid var(--expense);color:var(--expense);cursor:pointer;transition:background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo);background:0 0;border-radius:12px;width:100%;min-height:44px;margin-top:1.25rem;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600}.reset-account-btn:hover{background:var(--expense-bg);box-shadow:0 0 0 2px var(--expense-border);transform:scale(1.01)}.reset-account-btn:active{transform:scale(.97)}.reset-account-section{width:100%}.reset-confirm-form{animation:slideDown var(--duration-normal) var(--ease-out-expo);flex-direction:column;gap:.75rem;margin-top:1.25rem;display:flex}.reset-confirm-text{color:var(--text-secondary);text-align:left;font-size:.85rem;line-height:1.5}.reset-confirm-input{border:1px solid var(--expense-border);background:var(--surface-elevated);color:var(--text-primary);box-sizing:border-box;border-radius:12px;width:100%;min-height:44px;padding:.75rem 1rem;font-size:.9rem}.reset-confirm-input:focus{border-color:var(--expense);outline:none;box-shadow:0 0 0 3px #f8717133}.reset-confirm-actions{gap:.625rem;display:flex}.reset-confirm-actions .reset-account-btn{flex:1;margin-top:0}.reset-cancel-btn{background:var(--surface);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;min-height:44px;transition:background var(--duration-normal) var(--ease-smooth);border-radius:12px;flex:1;padding:.75rem 1.5rem;font-size:.9rem;font-weight:600}.reset-cancel-btn:hover{background:var(--surface-elevated)}.account-selector{background:var(--bg-secondary);min-height:100dvh;animation:pageEnter var(--duration-page) var(--ease-spring) forwards;justify-content:center;align-items:center;padding:20px;display:flex}.account-selector-container{background:var(--surface);box-shadow:var(--shadow-xl);text-align:center;-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:20px;width:100%;max-width:460px;padding:2.5rem 2rem;position:relative}.account-selector-toggle{gap:.5rem;display:flex;position:absolute;top:1rem;right:1rem}.account-selector-container h1{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;padding-top:20px;padding-bottom:.5rem;font-size:1.75rem;font-weight:700}.account-selector-container h2{color:var(--text-secondary);margin-bottom:1.75rem;font-size:.95rem;font-weight:400}.accounts-empty{color:var(--text-secondary);padding:2rem 1rem;font-size:.9rem}.accounts-list{flex-direction:column;gap:.625rem;max-height:400px;margin-bottom:1.5rem;display:flex;overflow-y:auto}.account-item{background:var(--surface-elevated);border:1px solid var(--border);transition:background var(--duration-normal) var(--ease-smooth), border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);animation:staggerFadeIn var(--duration-page) var(--ease-spring) both;border-radius:14px;flex-direction:column;display:flex;position:relative;overflow:hidden}.account-item:hover{background:var(--surface-hover);border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow), var(--shadow-md);transform:translateY(-1px)}.account-item.selected{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow), var(--shadow-glow-lg);background:var(--surface-hover);transition:all .35s var(--ease-out-expo);transform:scale(1.03)}.account-item.not-selected{opacity:.3;pointer-events:none;transition:all .35s var(--ease-out-expo);transform:scale(.97)}.account-selector.exiting{animation:accountExit .4s var(--ease-out-expo) forwards}@keyframes accountExit{0%{opacity:1;filter:blur();transform:scale(1)}to{opacity:0;filter:blur(8px);transform:scale(.95)}}.account-item-row{flex-shrink:0;align-items:center;width:100%;display:flex}.account-item-clickable{cursor:pointer;flex:1;padding:.875rem 1.125rem}.account-item-info{text-align:left}.account-item-name{color:var(--text-primary);font-size:.95rem;font-weight:600}.account-item-date{color:var(--text-secondary);margin-top:.15rem;font-size:.78rem}.account-item-delete{color:var(--text-secondary);cursor:pointer;transition:color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;min-width:44px;min-height:44px;margin-right:.25rem;padding:.75rem;display:flex}.account-item-delete:hover{color:var(--expense);background:var(--expense-bg);transform:scale(1.1)}.account-item-delete:active{transform:scale(.85)}.delete-confirm{background:var(--expense-bg);border-top:1px solid var(--expense-border);width:100%;animation:slideDown var(--duration-normal) var(--ease-out-expo);box-sizing:border-box;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.delete-confirm p{color:var(--text-primary);text-align:left;font-size:.85rem}.delete-confirm input{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo);border-radius:12px;padding:.75rem 1rem;font-size:.9rem}.delete-confirm input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.delete-confirm-buttons{gap:.625rem;display:flex}.delete-confirm-btn{cursor:pointer;min-height:44px;transition:transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), background var(--duration-normal) var(--ease-smooth);border:none;border-radius:10px;flex:1;padding:.75rem;font-size:.85rem;font-weight:600}.delete-confirm-btn.confirm{background:var(--expense);color:var(--expense-text)}.delete-confirm-btn.confirm:hover{transform:scale(1.02);box-shadow:0 4px 12px #f871714d}.delete-confirm-btn.confirm:active{transform:scale(.95)}.delete-confirm-btn.cancel{background:var(--surface);color:var(--text-primary);border:1px solid var(--border)}.delete-confirm-btn.cancel:hover{background:var(--surface-elevated);transform:scale(1.02)}.create-account-form{background:var(--surface-elevated);animation:slideDown var(--duration-normal) var(--ease-out-expo);border-radius:14px;flex-direction:column;gap:.875rem;margin-bottom:1rem;padding:1.125rem;display:flex}.create-account-form label{text-align:left;color:var(--text-secondary);font-size:.85rem;font-weight:500}.create-account-form input{border:1px solid var(--border-strong);background:var(--surface);color:var(--text-primary);transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:12px;padding:.875rem 1rem;font-size:.95rem}.create-account-form input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none;transform:scale(1.01)}.create-account-form input::placeholder{color:var(--text-tertiary)}.create-account-actions{gap:.625rem;display:flex}.create-account-btn{background:var(--gradient-accent);color:#fff;cursor:pointer;width:100%;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);box-shadow:var(--shadow-glow);border:none;border-radius:12px;min-height:48px;padding:.875rem;font-size:.95rem;font-weight:600;position:relative;overflow:hidden}.create-account-btn:after{content:"";opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);background:linear-gradient(135deg,#ffffff26 0%,#0000 50%);position:absolute;inset:0}.create-account-btn:hover{box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)scale(1.01)}.create-account-btn:hover:after{opacity:1}.create-account-btn:active{filter:brightness(.95);transform:translateY(0)scale(.98)}.create-account-btn.cancel{background:var(--surface);color:var(--text-primary);border:1px solid var(--border);box-shadow:none;filter:none}.create-account-btn.cancel:hover{background:var(--surface-elevated);filter:none}.create-account-btn.cancel:after{display:none}.create-account-form .error-message{color:var(--expense);text-align:left;font-size:.8rem}.dashboard{animation:pageEnter var(--duration-page) var(--ease-spring) forwards;flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1.5rem 2rem 2rem}.dashboard-header{border-bottom:1px solid var(--border);animation:staggerFadeIn var(--duration-page) var(--ease-spring) 50ms both;justify-content:space-between;align-items:center;margin-bottom:1.75rem;padding-bottom:1rem;display:flex}.dashboard-header h1{background:var(--gradient-primary);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.dashboard-title-row{align-items:center;gap:.625rem;display:flex}.account-name-badge{background:var(--surface-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:8px;align-items:center;gap:.35rem;padding:.25rem .6rem;font-family:inherit;font-size:.8rem;display:inline-flex}.account-name-badge:hover{border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.03)}.account-name-badge svg{opacity:.4;transition:opacity var(--duration-normal) var(--ease-smooth)}.account-name-badge:hover svg{opacity:1}.account-edit-inline{align-items:center;display:flex}.account-edit-input{background:var(--surface-elevated);border:1px solid var(--primary);color:var(--text-primary);box-shadow:0 0 0 3px var(--primary-glow);border-radius:8px;outline:none;min-width:120px;max-width:200px;padding:.25rem .6rem;font-family:inherit;font-size:.8rem}.header-controls{align-items:center;gap:.5rem;display:flex}.switch-account-button{background:var(--surface-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:10px;min-height:36px;padding:.5rem .875rem;font-size:.8rem;font-weight:500}.switch-account-button:hover{border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.03)}.switch-account-button:active{transform:scale(.97)}.logout-button{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);box-shadow:var(--shadow-glow);border:none;border-radius:10px;min-height:36px;padding:.5rem 1rem;font-size:.8rem;font-weight:600}.logout-button:hover{box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)scale(1.03)}.logout-button:active{filter:brightness(.95);transform:translateY(0)scale(.97)}.balance-summary{animation:staggerFadeIn var(--duration-page) var(--ease-spring) .1s both;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.75rem;display:grid}.balance-item{background:var(--surface);text-align:center;border:1px solid var(--border);transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-back);border-radius:16px;flex-direction:column;align-items:center;padding:1.25rem 1rem;display:flex}.balance-item:hover{border-color:var(--border-strong);box-shadow:var(--shadow-md);transform:translateY(-2px)}.balance-item .label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:.375rem;font-size:.78rem;font-weight:500}.balance-item .value{font-family:var(--font-numeric);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.4rem;font-weight:700}.balance-item .value.income{color:var(--income)}.balance-item .value.expense{color:var(--expense)}.dashboard-content{animation:staggerFadeIn var(--duration-page) var(--ease-spring) .15s both;grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.left-column,.right-column{flex-direction:column;gap:1.5rem;display:flex}.transaction-form-container,.transaction-history,.forecast-container,.backup-restore,.password-manager{background:var(--surface);border:1px solid var(--border);transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-back);border-radius:16px}.transaction-form-container:hover,.transaction-history:hover,.forecast-container:hover,.backup-restore:hover,.password-manager:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.transaction-form-container,.transaction-history,.forecast-container,.backup-restore{padding:1.5rem}.transaction-form-container h2,.transaction-history h2,.forecast-container h2,.backup-restore h2{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:1.25rem;font-size:1.1rem;font-weight:600}.transaction-form{flex-direction:column;gap:1.125rem;display:flex}.form-row{gap:.875rem;display:flex}.form-group{flex-direction:column;flex:1;display:flex}.form-group label{color:var(--text-secondary);margin-bottom:.375rem;font-size:.8rem;font-weight:500}.input-hint{color:var(--text-tertiary);margin-top:.25rem;font-size:.72rem;font-style:italic;display:block}.form-group input,.form-group select{border:1px solid var(--border-strong);background:var(--surface-elevated);color:var(--text-primary);transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:12px;min-height:44px;padding:.75rem .875rem;font-size:.9rem}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none;transform:scale(1.01)}.form-group input::placeholder{color:var(--text-tertiary)}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238888a0' fill='none' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .875rem center;background-repeat:no-repeat;padding-right:2.25rem}.type-indicator{border:1px solid var(--border-strong);background:var(--surface-elevated);color:var(--text-secondary);min-height:44px;transition:color var(--duration-normal) var(--ease-out-expo), border-color var(--duration-normal) var(--ease-out-expo), background var(--duration-normal) var(--ease-out-expo);border-radius:12px;align-items:center;padding:.75rem .875rem;font-size:.9rem;font-weight:500;display:flex}.type-indicator.income{color:var(--income);border-color:var(--income-border);background:var(--income-bg);animation:typeFlash var(--duration-normal) var(--ease-out-expo)}.type-indicator.expense{color:var(--expense);border-color:var(--expense-border);background:var(--expense-bg);animation:typeFlash var(--duration-normal) var(--ease-out-expo)}.submit-button{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);box-shadow:var(--shadow-glow);border:none;border-radius:12px;min-height:48px;margin-top:.25rem;padding:.875rem;font-size:1rem;font-weight:600;position:relative;overflow:hidden}.submit-button:after{content:"";opacity:0;transition:opacity var(--duration-normal) var(--ease-smooth);background:linear-gradient(135deg,#ffffff26 0%,#0000 50%);position:absolute;inset:0}.submit-button:hover{box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)scale(1.01)}.submit-button:hover:after{opacity:1}.submit-button:active{filter:brightness(.95);transform:translateY(0)scale(.98)}.submit-button:disabled{opacity:.6;cursor:default;filter:none;transform:none}.cancel-edit-button{color:var(--text-secondary);border:1px solid var(--border-strong);cursor:pointer;min-height:48px;transition:background var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border-radius:12px;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:500}.cancel-edit-button:hover{background:var(--surface-elevated);color:var(--text-primary)}.cancel-edit-button:active{transform:scale(.98)}.transaction-history{flex:1}.transactions-list{flex-direction:column;gap:.5rem;max-height:420px;display:flex;overflow-y:auto}.transaction-item{background:var(--surface-elevated);transition:background var(--duration-normal) var(--ease-smooth), border-color var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo);border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.875rem 1rem;display:flex}.transaction-item:hover{background:var(--surface-hover);border-color:var(--border);transform:translate(2px)}.transaction-item.deleting{background:var(--expense-bg);border-color:var(--expense-border)}.transaction-left{flex:1;align-items:center;gap:.875rem;min-width:0;display:flex}.transaction-date{color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:85px;font-size:.78rem}.transaction-info{flex-direction:column;gap:.1rem;min-width:0;display:flex}.transaction-category{color:var(--text-primary);font-size:.85rem;font-weight:500}.transaction-note{color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-style:italic;overflow:hidden}.transaction-right{flex-shrink:0;align-items:center;gap:.5rem;display:flex}.transaction-amount{font-family:var(--font-numeric);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.transaction-amount.expense{color:var(--expense)}.transaction-amount.income{color:var(--income)}.transaction-direction{vertical-align:middle;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;margin-right:.25rem;font-size:.75rem;font-weight:700;display:inline-flex}.transaction-amount.income .transaction-direction{background:var(--income-bg);color:var(--income)}.transaction-amount.expense .transaction-direction{background:var(--expense-bg);color:var(--expense)}.transaction-delete-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:.5rem;display:flex}.history-header-row{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.history-header-row h2{margin-bottom:0}.history-edit-toggle{background:var(--surface-elevated);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:8px;padding:.35rem .875rem;font-family:inherit;font-size:.8rem;font-weight:500}.history-edit-toggle:hover{border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.03)}.history-edit-toggle:focus-visible{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.history-edit-toggle.active{background:var(--primary-glow);border-color:var(--primary);color:var(--primary)}.history-edit-hint{color:var(--text-secondary);margin:-.75rem 0 .75rem;font-size:.75rem}.transactions-list.edit-mode .editable{cursor:pointer;border-radius:6px}.transactions-list.edit-mode .editable-target{transition:border-color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth);border:1px dashed #0000;border-radius:6px;margin:-.15rem -.4rem;padding:.15rem .4rem;display:inline-block}.transactions-list.edit-mode .editable-target:hover{border-color:var(--border);background:var(--surface-hover)}.transactions-list.edit-mode .editable-target:focus-visible{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);outline:none}.inline-editor-wrap{align-items:center;gap:.4rem;min-width:0;max-width:100%;display:inline-flex}.inline-edit-input{background:var(--surface-elevated);border:1px solid var(--primary);color:var(--text-primary);font-size:inherit;box-shadow:0 0 0 3px var(--primary-glow);border-radius:8px;outline:none;width:100%;min-width:0;max-width:220px;padding:.25rem .5rem;font-family:inherit}.inline-edit-input.amount{text-align:right;font-family:var(--font-numeric);font-weight:600}.inline-edit-error{color:var(--expense);white-space:nowrap;font-size:.7rem}.transaction-delete-btn:hover{color:var(--expense);background:var(--expense-bg);transform:scale(1.15)}.transaction-delete-btn:active{transform:scale(.85)}.delete-confirm-inline{gap:.25rem;display:flex}.delete-confirm-btn-inline{cursor:pointer;transition:color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;min-width:32px;min-height:32px;padding:.35rem;display:flex}.delete-confirm-btn-inline.confirm{color:var(--income)}.delete-confirm-btn-inline.confirm:hover{background:var(--income-bg-strong);transform:scale(1.15)}.delete-confirm-btn-inline.confirm:active{transform:scale(.85)}.delete-confirm-btn-inline.cancel{color:var(--expense)}.delete-confirm-btn-inline.cancel:hover{background:var(--expense-bg-strong);transform:scale(1.15)}.delete-confirm-btn-inline.cancel:active{transform:scale(.85)}.no-transactions{text-align:center;color:var(--text-secondary);padding:2.5rem 1rem;font-size:.9rem}.loading,.error{text-align:center;color:var(--text-secondary);padding:2rem;font-size:.9rem}.error{color:var(--expense)}.forecast-content{gap:.75rem;display:grid}.forecast-item{background:var(--surface-elevated);transition:border-color var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo);border:1px solid #0000;border-radius:12px;justify-content:space-between;align-items:center;padding:.875rem 1rem;display:flex}.forecast-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm);transform:translate(2px)}.forecast-item .label{color:var(--text-secondary);font-size:.85rem;font-weight:500}.forecast-item .value{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:600}.forecast-status.overspending{background:var(--expense-bg);border-color:var(--expense-border)}.forecast-status.overspending .value{color:var(--expense)}.forecast-status.on-track .value{color:var(--income)}.forecast-na{color:var(--text-secondary);font-style:italic;font-weight:400}.forecast-note{color:var(--text-tertiary);margin-top:.25rem;font-size:.72rem;font-style:italic;display:block}.forecast-editable{cursor:pointer;transition:color var(--duration-fast) var(--ease-smooth);align-items:center;gap:.375rem;display:inline-flex}.forecast-editable:hover{color:var(--primary)}.forecast-edit-icon{opacity:0;transition:opacity var(--duration-fast) var(--ease-smooth);flex-shrink:0}.forecast-editable:hover .forecast-edit-icon{opacity:.6}.forecast-edit-value{display:inline-flex}.forecast-edit-input{border:1px solid var(--primary);background:var(--surface-elevated);width:120px;color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:right;box-shadow:0 0 0 2px var(--primary-glow);border-radius:8px;outline:none;padding:.25rem .5rem;font-family:inherit;font-size:.95rem;font-weight:600}.password-manager-toggle{width:100%;color:var(--text-primary);cursor:pointer;transition:background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:16px;justify-content:space-between;align-items:center;padding:1.125rem 1.25rem;display:flex}.password-manager-toggle:hover{background:var(--surface-elevated);transform:scale(1.005)}.toggle-content{align-items:center;gap:.625rem;font-size:.95rem;font-weight:600;display:flex}.toggle-content svg{color:var(--primary-light)}.chevron{transition:transform var(--duration-slow) var(--ease-out-back);color:var(--text-secondary)}.chevron.expanded{transform:rotate(180deg)}.password-form{animation:slideDown var(--duration-normal) var(--ease-out-expo);flex-direction:column;gap:1rem;padding:0 1.25rem 1.25rem;display:flex}.password-field{flex-direction:column;gap:.35rem;display:flex}.password-field label{color:var(--text-secondary);padding-left:.125rem;font-size:.8rem;font-weight:500}.input-wrapper{background:var(--surface-elevated);border:1px solid var(--border-strong);transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:12px;align-items:center;gap:.625rem;padding:0 .875rem;display:flex}.input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);transform:scale(1.01)}.input-wrapper svg{color:var(--text-secondary);flex-shrink:0}.input-wrapper input{color:var(--text-primary);background:0 0;border:none;outline:none;flex:1;padding:.75rem 0;font-size:.9rem}.input-wrapper input::placeholder{color:var(--text-tertiary)}.password-submit-btn{background:var(--gradient-accent);color:#fff;cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);box-shadow:var(--shadow-glow);border:none;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;min-height:44px;margin-top:.25rem;padding:.875rem;font-size:.9rem;font-weight:600;display:flex}.password-submit-btn:hover:not(:disabled){box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)scale(1.01)}.password-submit-btn:active:not(:disabled){filter:brightness(.95);transform:translateY(0)scale(.98)}.password-submit-btn:disabled{opacity:.5;cursor:not-allowed}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.password-alert{animation:slideDown var(--duration-normal) var(--ease-out-expo);border-radius:10px;align-items:center;gap:.5rem;padding:.75rem .875rem;font-size:.85rem;display:flex}.password-alert.error{color:var(--expense);background:var(--expense-bg);border:1px solid var(--expense-border)}.password-alert.success{color:var(--income);background:var(--income-bg);border:1px solid var(--income-border)}.backup-restore-buttons{flex-wrap:wrap;gap:.875rem;display:flex}.backup-restore-buttons .backup-button,.backup-restore-buttons .restore-button{flex:1;min-width:120px}.backup-button,.restore-button{cursor:pointer;transition:transform var(--duration-normal) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);border:none;border-radius:12px;flex:1;min-height:44px;padding:.75rem;font-size:.85rem;font-weight:600}.backup-button{background:var(--backup);color:var(--backup-text);box-shadow:0 4px 12px #22c55e40}.backup-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)scale(1.01);box-shadow:0 6px 16px #22c55e59}.backup-button:active:not(:disabled){filter:brightness(.95);transform:translateY(0)scale(.98)}.restore-button{background:var(--restore);color:#fff;box-shadow:0 4px 12px #60a5fa33}.restore-button:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-2px)scale(1.01);box-shadow:0 6px 16px #60a5fa4d}.restore-button:active:not(:disabled){filter:brightness(.95);transform:translateY(0)scale(.98)}.backup-button:disabled,.restore-button:disabled{opacity:.5;cursor:not-allowed}.export-button{justify-content:center;align-items:center;gap:.4rem;display:inline-flex}.export-spinner{display:inline-flex}.export-privacy-note{color:var(--text-secondary);opacity:.85;margin-top:.75rem;font-size:.78rem;line-height:1.4}.status-message{color:var(--text-secondary);background:var(--surface-elevated);border:1px solid var(--border);border-radius:10px;margin-top:.875rem;padding:.75rem .875rem;font-size:.85rem}.backup-button.secure{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);box-shadow:0 4px 12px #6366f140}.backup-button.secure:hover:not(:disabled){box-shadow:0 6px 16px #6366f159}.backup-password-form{animation:slideDown var(--duration-normal) var(--ease-out-expo);flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.backup-password-field{flex-direction:column;gap:.35rem;display:flex}.backup-password-field label{color:var(--text-secondary);padding-left:.125rem;font-size:.8rem;font-weight:500}.backup-password-field input{border:1px solid var(--border-strong);background:var(--surface-elevated);color:var(--text-primary);min-height:44px;transition:border-color var(--duration-normal) var(--ease-out-expo), box-shadow var(--duration-normal) var(--ease-out-expo);border-radius:12px;padding:.75rem 1rem;font-size:.9rem}.backup-password-field input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow);outline:none}.backup-password-field input::placeholder{color:var(--text-tertiary)}.backup-form-actions{gap:.75rem;display:flex}.backup-form-actions .backup-button{flex:1}.backup-cancel-btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-primary);min-height:44px;transition:background var(--duration-normal) var(--ease-smooth);border-radius:12px;flex:1;padding:.75rem;font-size:.85rem;font-weight:600}.backup-cancel-btn:hover:not(:disabled){background:var(--surface-elevated)}.backup-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.backup-meta{align-items:center;gap:.5rem;padding:.5rem 0;font-size:.85rem;display:flex}.backup-meta-label{color:var(--text-secondary);font-weight:500}.backup-meta-value{color:var(--text-primary);font-weight:600}.error-message{color:var(--expense);background:var(--expense-bg);border:1px solid var(--expense-border);animation:slideDown var(--duration-normal) var(--ease-out-expo), messageShake .4s var(--ease-out-expo);border-radius:10px;padding:.75rem .875rem;font-size:.85rem}.success-message{color:var(--income);background:var(--income-bg);border:1px solid var(--income-border);animation:slideDown var(--duration-normal) var(--ease-out-expo);border-radius:10px;padding:.75rem .875rem;font-size:.85rem}.currency-toggle{background:var(--surface-elevated);border:1px solid var(--border);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:10px;align-items:center;gap:.35rem;min-height:36px;padding:.375rem .625rem;display:flex}.currency-toggle:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.05)}.currency-toggle:active{transform:scale(.92)}.flag-option{opacity:.35;transition:opacity var(--duration-normal) var(--ease-out-expo), transform var(--duration-normal) var(--ease-out-back);align-items:center;gap:.25rem;display:flex}.flag-option.active{opacity:1;transform:scale(1.05)}.flag-icon{border-radius:2px;width:20px;height:14px;box-shadow:0 1px 2px #00000026}.currency-label{color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase;font-size:.72rem;font-weight:700}.toggle-divider{color:var(--text-secondary);opacity:.5;margin:0 .05rem;font-size:.72rem}.theme-toggle{background:var(--surface-elevated);border:1px solid var(--border);cursor:pointer;color:var(--text-secondary);transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo);border-radius:10px;align-items:center;gap:.35rem;min-height:36px;padding:.375rem .625rem;display:flex}.theme-toggle:hover{border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-glow)}.theme-toggle-animating{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards themePop}@keyframes themePop{0%{transform:scale(1)}40%{transform:scale(.85)}to{transform:scale(1)}}.theme-toggle-label{text-transform:capitalize;letter-spacing:.02em;font-size:.72rem;font-weight:600}@keyframes pageEnter{0%{opacity:0;filter:blur(6px);transform:translateY(24px)scale(.96)}60%{opacity:1;filter:blur()}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes staggerFadeIn{0%{opacity:0;filter:blur(2px);transform:translateY(18px)scale(.97)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes slideDown{0%{opacity:0;transform-origin:top;transform:translateY(-12px)scaleY(.95)}to{opacity:1;transform:translateY(0)scaleY(1)}}@keyframes dropdownEnter{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes typeFlash{0%{transform:scale(1)}50%{transform:scale(1.02)}to{transform:scale(1)}}@keyframes messageShake{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes ripplePress{0%{opacity:.4;transform:scale(0)}to{opacity:0;transform:scale(2.5)}}@keyframes cardGlowPulse{0%,to{box-shadow:0 0 0 0 var(--primary-glow)}50%{box-shadow:0 0 0 4px var(--primary-glow)}}@keyframes slideInRight{0%{opacity:.5;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalEnter{0%{opacity:0;filter:blur(4px);transform:scale(.92)translateY(12px)}to{opacity:1;filter:blur();transform:scale(1)translateY(0)}}.hero-balance{text-align:center;background:var(--surface);border:1px solid var(--border);animation:staggerFadeIn var(--duration-page) var(--ease-spring) .1s both;border-radius:20px;margin-bottom:1.75rem;padding:2.5rem 2rem;position:relative;overflow:hidden}.hero-balance:before{content:"";background:radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);pointer-events:none;z-index:0;width:300px;height:300px;position:absolute;top:-60%;left:50%;transform:translate(-50%)}.hero-balance-label{z-index:1;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.5rem;font-size:.8rem;font-weight:500;position:relative}.hero-balance-value{z-index:1;font-family:var(--font-numeric);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--text-primary);font-size:2.5rem;font-weight:700;line-height:1.2;position:relative}.hero-balance-cents{color:var(--text-secondary);font-size:1.25rem;font-weight:500}.hero-balance-sub{z-index:1;border-top:1px solid var(--border);justify-content:center;gap:2rem;margin-top:1.5rem;padding-top:1.25rem;display:flex;position:relative}.hero-balance-stat{align-items:center;gap:.5rem;display:flex}.hero-balance-stat .stat-arrow{border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.hero-balance-stat .stat-arrow.income{background:var(--income-bg-strong);color:var(--income)}.hero-balance-stat .stat-arrow.expense{background:var(--expense-bg-strong);color:var(--expense)}.hero-balance-stat .stat-label{color:var(--text-secondary);margin-bottom:.1rem;font-size:.75rem}.hero-balance-stat .stat-value{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-size:1rem;font-weight:600}.hero-balance-stat .stat-value.income{color:var(--income)}.hero-balance-stat .stat-value.expense{color:var(--expense)}.settings-overlay{-webkit-backdrop-filter:blur(6px);z-index:100;animation:fadeIn var(--duration-normal) var(--ease-out-quart);overscroll-behavior:contain;background:#0006;justify-content:flex-end;display:flex;position:fixed;inset:0;overflow:hidden}.settings-panel{background:var(--bg-secondary);border-left:1px solid var(--border);overscroll-behavior:contain;width:400px;max-width:100%;max-height:100dvh;animation:slideInRight var(--duration-slow) var(--ease-out-expo);flex-direction:column;display:flex;overflow-y:auto}.settings-panel-header{border-bottom:1px solid var(--border);background:var(--bg-secondary);z-index:1;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex;position:sticky;top:0}.settings-panel-header h2{color:var(--text-primary);letter-spacing:-.01em;margin:0;font-size:1.1rem;font-weight:600}.settings-close-btn{color:var(--text-secondary);cursor:pointer;transition:color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;min-width:40px;min-height:40px;padding:.5rem;display:flex}.settings-close-btn:hover{color:var(--text-primary);background:var(--surface-elevated);transform:scale(1.05)}.settings-close-btn:active{transform:scale(.92)}.settings-section{border-bottom:1px solid var(--border);padding:1.25rem 1.5rem}.settings-section-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.875rem;font-size:.72rem;font-weight:600}.settings-toggle-row{justify-content:space-between;align-items:center;padding:.5rem 0;display:flex}.settings-toggle-label{color:var(--text-primary);font-size:.9rem;font-weight:500}.settings-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:.75rem;overflow:hidden}.settings-item:last-child{margin-bottom:0}.confirm-overlay{z-index:200;animation:fadeIn var(--duration-fast) var(--ease-smooth);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.confirm-dialog{background:var(--surface-elevated);border:1px solid var(--border);width:100%;max-width:400px;animation:modalEnter var(--duration-normal) var(--ease-out-expo);text-align:center;border-radius:20px;padding:2rem;box-shadow:0 24px 64px -8px #000c,inset 0 1px 2px #ffffff14}.confirm-dialog-icon{background:var(--primary-glow);width:48px;height:48px;color:var(--primary-light);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex}.confirm-dialog h3{color:var(--text-primary);margin-bottom:.5rem;font-size:1.1rem;font-weight:600}.confirm-dialog p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:.9rem;line-height:1.5}.confirm-dialog-actions{gap:.75rem;display:flex}.confirm-dialog-actions button{cursor:pointer;min-height:48px;transition:transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo), filter var(--duration-normal) var(--ease-smooth);border-radius:12px;flex:1;padding:.75rem;font-size:.9rem;font-weight:600}.confirm-dialog-actions .confirm-cancel{background:var(--surface);border:1px solid var(--border);color:var(--text-primary)}.confirm-dialog-actions .confirm-cancel:hover{background:var(--surface-elevated)}.confirm-dialog-actions .confirm-ok{background:var(--gradient-accent);color:#fff;box-shadow:var(--shadow-glow);border:none}.confirm-dialog-actions .confirm-ok:hover{box-shadow:var(--shadow-glow-lg);filter:brightness(1.1);transform:translateY(-2px)}.confirm-dialog-actions .confirm-ok:active{transform:translateY(0)scale(.98)}.onboarding-overlay{z-index:150;animation:fadeIn var(--duration-normal) var(--ease-smooth);background:#000000b3;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.onboarding-card{background:var(--surface);border:1px solid var(--border);text-align:center;width:100%;max-width:440px;animation:modalEnter var(--duration-normal) var(--ease-out-expo);border-radius:24px;padding:2.5rem 2rem 2rem;position:relative;box-shadow:0 24px 64px -8px #000c,inset 0 1px 2px #ffffff14}.onboarding-card:before{content:"";background:radial-gradient(circle, var(--primary-glow) 0%, transparent 70%);pointer-events:none;width:200px;height:200px;position:absolute;top:-80px;left:50%;transform:translate(-50%)}.onboarding-icon{z-index:1;border-radius:16px;justify-content:center;align-items:center;width:64px;height:64px;margin:0 auto 1.25rem;display:flex;position:relative}.onboarding-icon.step1{background:var(--income-bg-strong);color:var(--income)}.onboarding-icon.step2{background:var(--primary-glow);color:var(--primary-light)}.onboarding-icon.step3{background:var(--restore-bg);color:var(--restore)}.onboarding-card h3{color:var(--text-primary);z-index:1;margin-bottom:.5rem;font-size:1.25rem;font-weight:700;position:relative}.onboarding-card p{color:var(--text-secondary);z-index:1;margin-bottom:2rem;font-size:.9rem;line-height:1.6;position:relative}.onboarding-dots{justify-content:center;gap:.5rem;margin-bottom:1.5rem;display:flex}.onboarding-dot{background:var(--border-strong);width:8px;height:8px;transition:background var(--duration-normal) var(--ease-smooth), transform var(--duration-normal) var(--ease-out-back);border-radius:50%}.onboarding-dot.active{background:var(--primary);transform:scale(1.3)}.onboarding-actions{z-index:1;gap:.75rem;display:flex;position:relative}.onboarding-actions button{cursor:pointer;min-height:48px;transition:transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo);border-radius:12px;flex:1;padding:.75rem;font-size:.9rem;font-weight:600}.onboarding-actions .onboarding-skip{border:1px solid var(--border);color:var(--text-secondary);background:0 0}.onboarding-actions .onboarding-skip:hover{border-color:var(--border-strong);color:var(--text-primary)}.onboarding-actions .onboarding-next{background:var(--gradient-accent);color:#fff;box-shadow:var(--shadow-glow);border:none}.onboarding-actions .onboarding-next:hover{box-shadow:var(--shadow-glow-lg);transform:translateY(-2px)}.onboarding-options{z-index:1;flex-direction:column;gap:.625rem;width:100%;margin-bottom:1.25rem;display:flex;position:relative}.onboarding-option{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-primary);cursor:pointer;text-align:left;min-height:48px;transition:border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;border-radius:12px;align-items:center;gap:.625rem;padding:.875rem 1rem;font-size:.9rem;display:flex}.onboarding-option:hover{border-color:var(--border-strong)}.onboarding-option.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.onboarding-option:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.onboarding-option-flag{font-size:1.1rem;line-height:1}.onboarding-option-label{flex:1;font-weight:600}.onboarding-option-desc{color:var(--text-secondary);flex:1;font-size:.8rem;font-weight:400}.onboarding-option-check{color:var(--primary-light);font-weight:700}.onboarding-example{background:var(--primary-glow);border:1px solid var(--primary-glow);z-index:1;border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;width:100%;margin-bottom:1.25rem;padding:.75rem 1rem;display:flex;position:relative}.onboarding-example-label{color:var(--text-secondary);font-size:.8rem}.onboarding-example-value{color:var(--primary-light);white-space:nowrap;font-size:.95rem;font-weight:700}.currency-section{flex-direction:column;gap:.75rem;display:flex}.currency-section-help{color:var(--text-secondary);font-size:.8rem;line-height:1.5}.currency-options,.currency-format-options{grid-template-columns:1fr 1fr;gap:.625rem;display:grid}.currency-format-row{flex-direction:column;gap:.5rem;display:flex}.currency-format-label{color:var(--text-secondary);font-size:.8rem;font-weight:600}.currency-option{border:1px solid var(--border);background:var(--surface-elevated);color:var(--text-primary);cursor:pointer;text-align:left;min-height:48px;transition:border-color var(--duration-fast) var(--ease-smooth), box-shadow var(--duration-fast) var(--ease-smooth);border-radius:12px;flex-direction:column;align-items:flex-start;gap:.25rem;padding:.75rem .875rem;display:flex}.currency-option:hover{border-color:var(--border-strong)}.currency-option.selected{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}.currency-option:focus-visible{outline:2px solid var(--primary-light);outline-offset:2px}.currency-option-title{font-size:.9rem;font-weight:600}.currency-option-desc{color:var(--text-secondary);font-size:.78rem;line-height:1.45}.currency-live-example{background:var(--primary-glow);border:1px solid var(--primary-glow);border-radius:12px;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.currency-example-label{color:var(--text-secondary);font-size:.8rem}.currency-example-value{color:var(--primary-light);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.95rem;font-weight:700}@media (width<=480px){.currency-options,.currency-format-options{grid-template-columns:1fr}}.empty-state{text-align:center;flex-direction:column;align-items:center;padding:2.5rem 1.5rem;display:flex}.empty-state-icon{background:var(--surface-elevated);width:56px;height:56px;color:var(--text-tertiary);border-radius:14px;justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.empty-state h4{color:var(--text-primary);margin-bottom:.375rem;font-size:1rem;font-weight:600}.empty-state p{color:var(--text-secondary);max-width:260px;font-size:.85rem;line-height:1.5}.first-use-hint{background:var(--primary-glow);border:1px solid var(--primary-glow);color:var(--primary-light);animation:slideDown var(--duration-normal) var(--ease-out-expo);border-radius:10px;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.625rem 1rem;font-size:.82rem;display:flex}.first-use-hint svg{flex-shrink:0}.pace-bar-track{background:var(--surface-elevated);border-radius:3px;width:100%;height:6px;margin-top:.5rem;overflow:hidden}.pace-bar-fill{height:100%;transition:width var(--duration-slow) var(--ease-out-expo);border-radius:3px}.pace-bar-fill.on-track{background:var(--income)}.pace-bar-fill.overspending{background:var(--expense)}.category-icon-badge{width:36px;height:36px;color:var(--text-secondary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.category-icon-badge.food{color:#fb923c;background:#fb923c1f}.category-icon-badge.transport{color:#60a5fa;background:#60a5fa1f}.category-icon-badge.shopping{color:#f472b6;background:#f472b61f}.category-icon-badge.entertainment{color:#a855f7;background:#a855f71f}.category-icon-badge.bills{color:#fbbf24;background:#fbbf241f}.category-icon-badge.health{color:#34d399;background:#34d3991f}.category-icon-badge.travel{color:#2dd4bf;background:#2dd4bf1f}.category-icon-badge.education{color:#818cf8;background:#818cf81f}.category-icon-badge.gifts{color:#fb7185;background:#fb71851f}.category-icon-badge.salary{color:#10b981;background:#10b9811f}.category-icon-badge.investment{color:#3b82f6;background:#3b82f61f}.category-icon-badge.other{color:#94a3b8;background:#94a3b81f}.last-used-badge{text-transform:uppercase;letter-spacing:.05em;background:var(--primary-glow);color:var(--primary-light);vertical-align:middle;border-radius:6px;margin-left:.5rem;padding:.125rem .5rem;font-size:.65rem;font-weight:600;display:inline-block}.settings-gear-btn{background:var(--surface-elevated);border:1px solid var(--border);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:10px;justify-content:center;align-items:center;display:flex}.settings-gear-btn:hover{border-color:var(--primary);color:var(--text-primary);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.05)}.settings-gear-btn:active{transform:scale(.92)}.fixed-bills-section{border-top:1px solid var(--border);margin-top:.75rem;padding-top:.75rem}.fixed-bills-title{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.75rem;font-weight:600}.fixed-bill-item{background:var(--surface-elevated);border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:.375rem;padding:.5rem .75rem;font-size:.82rem;display:flex}.fixed-bill-item .bill-name{color:var(--text-secondary)}.fixed-bill-item .bill-amount{font-family:var(--font-numeric);color:var(--warning);font-variant-numeric:tabular-nums;font-weight:600}.month-picker{z-index:100;animation:staggerFadeIn var(--duration-page) var(--ease-spring) 80ms both;justify-content:center;align-items:center;gap:.25rem;margin-bottom:1.25rem;display:flex;position:relative}.month-picker-arrow{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back), box-shadow var(--duration-normal) var(--ease-out-expo);border-radius:10px;justify-content:center;align-items:center;display:flex}.month-picker-arrow:hover:not(.disabled){border-color:var(--primary);color:var(--text-primary);background:var(--surface-elevated);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.08)}.month-picker-arrow:active:not(.disabled){transform:scale(.92)}.month-picker-arrow.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.month-picker-label{border:1px solid var(--border);background:var(--surface);color:var(--text-primary);cursor:pointer;text-align:center;letter-spacing:-.01em;min-width:160px;transition:border-color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), box-shadow var(--duration-normal) var(--ease-out-expo), transform var(--duration-fast) var(--ease-out-back);border-radius:10px;padding:.5rem 1rem;font-family:inherit;font-size:.9rem;font-weight:600}.month-picker-label:hover{border-color:var(--primary);background:var(--surface-elevated);box-shadow:0 0 0 2px var(--primary-glow);transform:scale(1.02)}.month-picker-label:active{transform:scale(.97)}.month-picker-dropdown{background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);z-index:50;width:280px;animation:dropdownEnter var(--duration-normal) var(--ease-out-expo);border-radius:16px;margin:0 auto;padding:1rem;position:absolute;top:calc(100% + 8px);left:0;right:0}.month-picker-year-nav{justify-content:space-between;align-items:center;margin-bottom:.875rem;padding:0 .25rem;display:flex}.year-nav-btn{border:1px solid var(--border);background:var(--surface-elevated);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:border-color var(--duration-normal) var(--ease-smooth), color var(--duration-normal) var(--ease-smooth), background var(--duration-normal) var(--ease-smooth), transform var(--duration-fast) var(--ease-out-back);border-radius:8px;justify-content:center;align-items:center;display:flex}.year-nav-btn:hover:not(.disabled){border-color:var(--primary);color:var(--text-primary);background:var(--surface-hover);transform:scale(1.1)}.year-nav-btn:active:not(.disabled){transform:scale(.9)}.year-nav-btn.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.year-display{color:var(--text-primary);letter-spacing:-.01em;font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.month-picker-grid{grid-template-columns:repeat(4,1fr);gap:.375rem;display:grid}.month-grid-btn{color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-smooth);background:0 0;border:1px solid #0000;border-radius:8px;min-height:36px;padding:.5rem .25rem;font-family:inherit;font-size:.78rem;font-weight:500}.month-grid-btn:hover:not(.disabled):not(.selected){background:var(--surface-elevated);color:var(--text-primary);border-color:var(--border)}.month-grid-btn.selected{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--shadow-glow);font-weight:600}.month-grid-btn.disabled{opacity:.25;cursor:not-allowed;pointer-events:none}.month-grid-btn:active:not(.disabled){transform:scale(.92)}.month-grid-btn.has-data{color:var(--text-primary);font-weight:600}.month-grid-btn.has-data:after{content:"";background:var(--primary);border-radius:50%;width:4px;height:4px;margin:2px auto 0;display:block}.month-grid-btn.no-data{color:var(--text-tertiary);opacity:.5}.month-toast{background:var(--surface-elevated);border:1px solid var(--border-strong);color:var(--text-primary);box-shadow:var(--shadow-lg);z-index:200;pointer-events:none;animation:toastIn .3s var(--ease-out-expo) forwards, toastOut .3s var(--ease-out-expo) forwards;border-radius:12px;padding:.75rem 1.25rem;font-size:.85rem;font-weight:500;animation-delay:0s,2.5s;position:fixed;top:1.5rem;left:50%;transform:translate(-50%)}.month-toast.future{border-color:var(--primary);color:var(--primary)}.month-toast.empty{border-color:var(--warning);color:var(--warning)}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(-12px)scale(.95)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)translateY(0)scale(1)}to{opacity:0;transform:translate(-50%)translateY(-8px)scale(.97)}}@media (prefers-reduced-motion:reduce){.month-toast{opacity:1;animation:none}}.skeleton{background:linear-gradient(90deg, var(--surface-elevated) 0%, var(--surface-hover) 40%, var(--surface-elevated) 80%);background-size:200% 100%;border-radius:8px;animation:1.5s ease-in-out infinite shimmer}.skeleton-text{width:100%;height:14px}.skeleton-text.short{width:60%}.skeleton-text.medium{width:80%}.skeleton-amount{border-radius:6px;width:90px;height:18px}.skeleton-icon{border-radius:10px;flex-shrink:0;width:36px;height:36px}.skeleton-row{background:var(--surface-elevated);animation:staggerFadeIn var(--duration-page) var(--ease-spring) both;border-radius:12px;align-items:center;gap:.875rem;padding:.875rem 1rem;display:flex}.skeleton-row:first-child{animation-delay:50ms}.skeleton-row:nth-child(2){animation-delay:.1s}.skeleton-row:nth-child(3){animation-delay:.15s}.skeleton-row:nth-child(4){animation-delay:.2s}.skeleton-row:nth-child(5){animation-delay:.25s}.skeleton-row-content{flex-direction:column;flex:1;gap:.5rem;display:flex}.skeleton-forecast-item{background:var(--surface-elevated);animation:staggerFadeIn var(--duration-page) var(--ease-spring) both;border-radius:12px;justify-content:space-between;align-items:center;padding:.875rem 1rem;display:flex}.skeleton-forecast-item:first-child{animation-delay:50ms}.skeleton-forecast-item:nth-child(2){animation-delay:.1s}.skeleton-forecast-item:nth-child(3){animation-delay:.15s}.skeleton-forecast-item:nth-child(4){animation-delay:.2s}@media (prefers-reduced-motion:reduce){.skeleton{background:var(--surface-elevated);animation:none}.skeleton-row,.skeleton-forecast-item{opacity:1;animation:none}}@media (width<=768px){.dashboard{width:100%;padding:1rem;overflow-x:hidden}.dashboard-content{grid-template-columns:1fr}.form-row{flex-direction:column}.dashboard-header{flex-direction:column;align-items:flex-start;gap:.875rem}.header-controls{flex-wrap:wrap;justify-content:flex-start;gap:.375rem;width:100%}.balance-summary{grid-template-columns:1fr;gap:.625rem}.balance-item{flex-direction:row;justify-content:space-between;padding:1rem 1.125rem}.balance-item .label{margin-bottom:0}.balance-item .value{font-size:1.2rem}.transaction-item{flex-wrap:wrap;gap:.625rem}.transaction-date{min-width:auto;font-size:.72rem}.transaction-amount{font-size:.85rem}.transaction-delete-btn{opacity:1;min-width:44px;min-height:44px}.transactions-list.edit-mode .editable-target{margin:-.4rem -.6rem;padding:.4rem .6rem}.delete-confirm-btn-inline{min-width:40px;min-height:40px}.transaction-left{flex:60%}.backup-restore-buttons{flex-direction:column}.lock-screen-container{border-radius:16px;padding:1.5rem}.lock-screen-container h1{font-size:1.5rem}.account-selector-container{border-radius:16px;max-width:100%;padding:1.5rem}.account-selector-container h1{padding-top:0;font-size:1.5rem}.account-selector-toggle{justify-content:center;margin-bottom:.75rem;position:relative;top:auto;right:auto}.account-edit-input{min-width:100px;max-width:160px}.account-item-clickable{padding:.625rem .75rem}.account-item-delete{min-width:40px;min-height:40px;padding:.5rem}.delete-confirm{padding:.75rem}.delete-confirm input{padding:.875rem;font-size:1rem}.delete-confirm-btn{padding:.8rem;font-size:.9rem}.delete-confirm-buttons{gap:.5rem}.footer{padding:1rem 0;font-size:.7rem}.hero-balance{padding:1.75rem 1.25rem}.hero-balance-value{font-size:2rem}.hero-balance-sub{flex-wrap:wrap;gap:1rem}.month-picker{margin-bottom:1rem}.month-picker-label{min-width:140px;padding:.4rem .75rem;font-size:.85rem}.month-picker-dropdown{width:260px}.month-picker-grid{gap:.25rem}.month-grid-btn{min-height:32px;padding:.4rem .2rem;font-size:.72rem}.settings-panel{width:100%;max-height:100dvh}.onboarding-card{padding:2rem 1.5rem 1.5rem}.confirm-dialog{padding:1.5rem}::-webkit-scrollbar{width:0;height:0}*{scrollbar-width:none}.transactions-list::-webkit-scrollbar{width:5px}.transactions-list{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}}@media (width<=380px){.dashboard-header h1{font-size:1.25rem}.balance-item .value{font-size:1.1rem}.lock-screen-container,.account-selector-container{padding:1.25rem}}.charts-section{flex-direction:column;gap:1rem;margin-top:1rem;display:flex}.chart-card{background:var(--surface,#1a1a1e);border:1px solid var(--border,#ffffff12);border-radius:12px;padding:1rem;transition:border-color .2s,box-shadow .2s;overflow:hidden}.chart-card:hover{border-color:var(--border-strong,#ffffff24)}.chart-card-full{grid-column:1/-1}.chart-card-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.chart-card-title{color:var(--text-secondary,#8888a0);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .75rem;font-size:.8125rem;font-weight:600}.chart-container{width:100%}.chart-doughnut,.chart-bar{height:260px}.chart-line{height:220px}.chart-empty-card,.chart-error-card{flex-direction:column;justify-content:center;align-items:center;display:flex}.chart-error-card{padding:2rem}.chart-empty-icon{opacity:.4;color:var(--text-secondary,#8888a0);margin-bottom:.5rem}.chart-error-text{color:var(--text-danger,#ef4444);margin:.5rem 0 0;font-size:.875rem}.chart-empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:160px;padding:2rem 1rem;display:flex}.chart-empty-text{color:var(--text-secondary,#8888a0);margin:.5rem 0 0;font-size:.8125rem}.chart-skeleton-card{pointer-events:none;padding:1rem}.chart-skeleton{background:linear-gradient(90deg, var(--surface,#1a1a1e) 0%, var(--border,#ffffff12) 50%, var(--surface,#1a1a1e) 100%);background-size:200% 100%;border-radius:8px;width:100%;height:220px;animation:1.5s infinite chart-skeleton-shimmer}.chart-skeleton-doughnut,.chart-skeleton-bar{height:260px}@keyframes chart-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (width<=768px){.chart-card-row{grid-template-columns:1fr}.chart-doughnut{height:230px}.chart-bar{height:220px}.chart-line{height:180px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
