*,*:before,*:after{box-sizing:border-box}html{font-size:16px}body{margin:0;font-family:system-ui,-apple-system,sans-serif;background:#020617;color:#f1f5f9;-webkit-text-size-adjust:100%;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}input,select,button,textarea{font-family:inherit;font-size:inherit}input[type=date]{max-width:100%;min-width:0;box-sizing:border-box}.card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:1.25rem;margin-bottom:1.25rem}.btn-primary{background:#6366f1;color:#fff;border:none;border-radius:8px;padding:.65rem 1.5rem;font-weight:700;font-size:.9rem;cursor:pointer;transition:background .15s;width:100%}.btn-primary:hover:not(:disabled){background:#4f46e5}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#1e293b;color:#cbd5e1;border:1px solid #334155;border-radius:8px;padding:.55rem 1.25rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.btn-secondary:hover{background:#334155;color:#f1f5f9}.btn-danger{background:#ef44441f;color:#f87171;border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:.55rem 1.25rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s,color .15s}.btn-danger:hover{background:#ef444438;color:#fca5a5}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid #6366f1;outline-offset:2px}.auth-page{min-height:100vh;background:#020617;display:flex;align-items:center;justify-content:center;padding:1rem}.auth-page-root{height:100dvh;max-height:100dvh;overflow:hidden;background:#020617;display:flex;flex-direction:column}.auth-page-with-header{flex:1;min-height:0;background:#020617;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box;overflow-y:auto}.auth-card{background:#0f172a;border:1px solid #1e293b;border-radius:16px;padding:2.5rem 3rem;width:100%;min-width:480px;max-width:540px;display:flex;flex-direction:column;gap:1rem}.auth-logo{font-size:3rem;text-align:center}.auth-title{margin:0;color:#f1f5f9;text-align:center;font-size:1.75rem;font-weight:800;letter-spacing:-.02em}.auth-sub{margin:0;color:#64748b;text-align:center;font-size:.9rem}.auth-google-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;background:#fff;border:1.5px solid #d1d5db;border-radius:10px;padding:.75rem 1rem;font-size:.95rem;font-weight:500;color:#374151;cursor:pointer;transition:background .15s,border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box;touch-action:manipulation}.auth-google-btn:hover{background:#f8fafc;border-color:#9ca3af;box-shadow:0 1px 4px #00000014}.auth-divider{display:flex;align-items:center;gap:.75rem;color:#475569;font-size:.8rem;margin:-.15rem 0}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#1e293b}.auth-field{display:flex;flex-direction:column;gap:.35rem}.auth-field-header{display:flex;align-items:center;justify-content:space-between}.auth-field-label{font-size:.7rem;font-weight:700;letter-spacing:.07em;color:#64748b;text-transform:uppercase}.auth-forgot-link{font-size:.8rem;font-weight:500;white-space:nowrap}.auth-input{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:.75rem 1rem;color:#f1f5f9;font-size:1rem;width:100%;box-sizing:border-box;touch-action:manipulation;-moz-appearance:none;appearance:none;-webkit-appearance:none;transition:border-color .15s}.auth-input:focus{outline:none;border-color:#6366f1;background:#1e293b}.auth-input:-webkit-autofill,.auth-input:-webkit-autofill:hover,.auth-input:-webkit-autofill:focus,.auth-input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px #1e293b inset!important;box-shadow:0 0 0 1000px #1e293b inset!important;-webkit-text-fill-color:#f1f5f9!important;caret-color:#f1f5f9;border-color:#334155!important;transition:background-color 9999s ease-in-out 0s}.auth-pass-wrap{position:relative;display:flex;align-items:center}.auth-pass-input{padding-right:2.8rem!important}.auth-eye{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.1rem;line-height:1;padding:0;color:#64748b;transition:color .15s}.auth-eye:hover{color:#94a3b8}.auth-btn{background:#6366f1;color:#fff;border:none;border-radius:10px;padding:.8rem;font-weight:700;cursor:pointer;font-size:1rem;transition:background .15s,box-shadow .15s;touch-action:manipulation;width:100%;box-sizing:border-box;margin-top:.25rem}.auth-btn:hover:not(:disabled){background:#4f46e5;box-shadow:0 2px 8px #6366f159}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-error{color:#f87171;font-size:.85rem;margin:0;text-align:center}.auth-switch{color:#64748b;text-align:center;font-size:.85rem;margin:0}.auth-link{color:#6366f1;cursor:pointer;font-weight:600}.auth-link:hover{text-decoration:underline}.auth-remember{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:#94a3b8;cursor:pointer}.auth-remember input[type=checkbox]{accent-color:#6366f1;width:1rem;height:1rem;cursor:pointer}.auth-password-hints{list-style:none;margin:-2px 0 4px;padding:0;display:flex;flex-direction:column;gap:2px;width:100%}.auth-hint-error{font-size:.78rem;color:#f87171;margin:0}.auth-hint-ok{font-size:.78rem;color:#4ade80;margin:-2px 0 4px}.auth-input-error{border-color:#f87171!important}@media(max-width:600px){.auth-page-with-header{align-items:center;padding:.75rem}.auth-card{min-width:unset;padding:1.5rem 1.25rem;gap:.75rem;border-radius:12px}.auth-logo{font-size:2rem}.auth-title{font-size:1.4rem}.auth-input{padding:.65rem .9rem;font-size:.95rem}.auth-btn{padding:.7rem}}.lang-switcher{position:relative}.lang-btn{display:flex;align-items:center;gap:.3rem;background:#1e293b;border:1px solid #334155;border-radius:8px;color:#94a3b8;font-size:.82rem;padding:.35rem .6rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.lang-btn:hover{background:#334155;color:#f1f5f9;border-color:#475569}.lang-flag{font-size:1.1rem;line-height:1}.lang-code{font-weight:600;letter-spacing:.04em}.lang-arrow{font-size:.6rem;opacity:.7}.lang-dropdown{position:absolute;top:calc(100% + 6px);right:0;background:#1e293b;border:1px solid #334155;border-radius:10px;list-style:none;margin:0;padding:.3rem;min-width:130px;z-index:2000;box-shadow:0 8px 24px #00000080;animation:lang-fade-in .12s ease}@keyframes lang-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.lang-option{display:flex;align-items:center;gap:.5rem;padding:.45rem .65rem;border-radius:7px;cursor:pointer;color:#94a3b8;font-size:.85rem;transition:background .12s,color .12s}.lang-option:hover{background:#334155;color:#f1f5f9}.lang-option.active{color:#f1f5f9;background:#334155;font-weight:600}.public-header{position:sticky;top:0;z-index:100;display:flex;align-items:flex-start;justify-content:space-between;padding:2rem 1.5rem .75rem;background:#0f172a;border-bottom:1px solid #1e293b;box-sizing:border-box;flex-shrink:0}.public-header-brand{display:flex;align-items:center;gap:.5rem;max-width:60%}.public-header-logo{font-size:1.4rem;line-height:1;flex-shrink:0}.public-header-text{display:flex;flex-direction:column;gap:0}.public-header-title{font-size:1rem;font-weight:700;color:#f1f5f9;letter-spacing:.01em;line-height:1.2;word-break:break-word}.public-header-sub{font-size:.75rem;color:#64748b;line-height:1.2}@media(max-width:600px){.public-header{padding:.75rem 1rem}}.dashboard{min-height:100vh;background:#020617;color:#f1f5f9}.dashboard-sticky{position:sticky;top:0;z-index:10;background:#020617}.header{background:#0f172a;border-bottom:1px solid #1e293b;padding:.85rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.header-brand{display:flex;align-items:center;gap:.75rem}.header-logo{font-size:1.75rem;line-height:1}.header-title{margin:0;font-size:1.1rem;font-weight:700;color:#f1f5f9}.header-sub{margin:0;font-size:.75rem;color:#64748b}.header-actions{display:flex;align-items:center;gap:.75rem;flex-shrink:0}.header-user{font-size:.85rem;color:#94a3b8;white-space:nowrap}.btn-logout{background:transparent;border:1px solid #334155;border-radius:6px;color:#94a3b8;padding:.35rem .7rem;cursor:pointer;font-size:.8rem;white-space:nowrap;transition:border-color .15s,color .15s}.btn-logout:hover{border-color:#f87171;color:#f87171}.main{max-width:1200px;margin:0 auto;padding:1.5rem 1rem}.sticky-nav{background:#020617;border-bottom:1px solid #1e293b}.sticky-nav-inner{max-width:1200px;margin:0 auto;padding:0 1rem}.sticky-nav-inner .tabs{padding-top:.6rem}.sticky-nav-inner .card{margin-bottom:0;border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:none;background:transparent}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.month-nav-center{text-align:center}.month-nav-title{display:inline-flex;align-items:flex-start;gap:.3rem;font-size:1.2rem;font-weight:700;color:#f1f5f9}.month-nav-title-text{position:relative;display:inline-block;padding-bottom:18px}.month-nav-badge{font-size:.72rem;color:#6366f1;position:absolute;bottom:0;left:50%;transform:translate(-50%);white-space:nowrap;font-weight:400}.month-nav-badge--btn{background:none;border:none;cursor:pointer;text-decoration:none;padding:0}.month-nav-badge--btn:hover{color:#818cf8}.btn-nav{background:#1e293b;border:1px solid #334155;border-radius:8px;color:#94a3b8;padding:.45rem .9rem;cursor:pointer;font-size:.9rem;transition:background .15s,color .15s;white-space:nowrap}.btn-nav:hover:not(:disabled){background:#334155;color:#f1f5f9}.btn-nav:disabled{opacity:.3;cursor:default}.budget-row{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem}.budget-label{font-size:.9rem;color:#94a3b8;flex:1;min-width:160px}.budget-amount{color:#6366f1;font-weight:700}.budget-undefined{color:#475569}.budget-form{display:flex;gap:.5rem;flex-wrap:wrap}.budget-input{background:#1e293b;border:1px solid #334155;border-radius:6px;padding:.4rem .75rem;color:#f1f5f9;width:120px;min-width:80px}.budget-input:focus{outline:none;border-color:#6366f1}.btn-save{background:#6366f1;color:#fff;border:none;border-radius:6px;padding:.4rem .8rem;cursor:pointer;font-weight:600;font-size:.85rem;white-space:nowrap}.btn-save:hover{background:#4f46e5}.btn-cancel{background:#1e293b;border:1px solid #475569;border-radius:6px;color:#94a3b8;padding:.4rem .8rem;cursor:pointer;font-size:.85rem;transition:background .15s,border-color .15s}.btn-cancel:hover{background:#263347;border-color:#64748b}.btn-edit{background:#1e293b;border:1px solid #334155;border-radius:6px;color:#94a3b8;padding:.4rem .8rem;cursor:pointer;font-size:.82rem;white-space:nowrap;transition:background .15s}.btn-edit:hover{background:#334155;color:#f1f5f9}.month-content{position:relative}.month-loading-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;background:#0a0f1c8c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);border-radius:12px;display:flex;align-items:center;justify-content:center;pointer-events:none}.month-spinner{width:48px;height:48px;animation:month-spin .9s linear infinite}.month-spinner circle{stroke:#6366f1;stroke-linecap:round;stroke-dasharray:80,200;stroke-dashoffset:0;animation:month-dash 1.5s ease-in-out infinite}@keyframes month-spin{to{transform:rotate(360deg)}}@keyframes month-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}.tabs{display:flex;gap:.5rem;margin-bottom:0;border-bottom:none;padding-bottom:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab-btn{background:none;border:none;border-bottom:2px solid transparent;color:#64748b;font-size:.9rem;font-weight:600;padding:.6rem 1rem;cursor:pointer;margin-bottom:-1px;transition:color .15s,border-color .15s;white-space:nowrap;flex-shrink:0}.tab-btn:hover{color:#cbd5e1}.tab-btn.active{color:#6366f1;border-bottom-color:#6366f1}.header-user-btn{display:flex;align-items:center;gap:.5rem;background:none;border:none;cursor:pointer;color:#94a3b8;font-size:.875rem;padding:.25rem .5rem;border-radius:6px;transition:background .15s,color .15s}.header-user-btn:hover{background:#1e293b;color:#f1f5f9}.header-avatar{width:2rem;height:2rem;border-radius:50%;object-fit:cover;border:2px solid #334155}.header-avatar-placeholder{font-size:1.25rem;line-height:1}.profile-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:1000;display:flex;justify-content:flex-end;align-items:stretch}.profile-panel{background:#0f172a;border-left:1px solid #1e293b;width:100%;max-width:420px;overflow-y:auto;padding:1.5rem 1.5rem 2.5rem;display:flex;flex-direction:column;gap:0;animation:slideInRight .25s ease}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.profile-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.profile-title{font-size:1.2rem;font-weight:700;color:#f1f5f9;margin:0;display:flex;align-items:center;gap:.6rem}.profile-title-avatar{width:2rem;height:2rem;border-radius:50%;object-fit:cover;border:2px solid #334155;flex-shrink:0}.profile-title-avatar-placeholder{font-size:1.5rem;line-height:1;flex-shrink:0}.profile-close{background:none;border:none;color:#64748b;font-size:1.25rem;cursor:pointer;padding:.25rem .5rem;border-radius:6px;transition:color .15s}.profile-close:hover{color:#f1f5f9}.profile-section{display:flex;flex-direction:column;gap:.6rem;padding:1rem 0}.profile-email-section{padding-bottom:.75rem}.profile-accordion{display:flex;flex-direction:column}.profile-accordion-header{display:flex;align-items:center;gap:.6rem;width:100%;background:none;border:none;color:#94a3b8;padding:.85rem 0;cursor:pointer;text-align:left;transition:color .15s;font-size:.875rem;font-weight:600;letter-spacing:.02em}.profile-accordion-header:hover,.profile-accordion-header.open{color:#f1f5f9}.profile-accordion-icon{font-size:1rem;line-height:1;flex-shrink:0}.profile-accordion-title{flex:1}.profile-accordion-chevron{font-size:1.1rem;line-height:1;transition:transform .2s ease;color:#475569;display:inline-block}.profile-accordion-chevron.open{transform:rotate(90deg);color:#94a3b8}.profile-accordion-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .25s ease;overflow:hidden}.profile-accordion-body.open{grid-template-rows:1fr}.profile-accordion-inner{min-height:0}.profile-label{font-size:.8rem;color:#64748b;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.profile-divider{border:none;border-top:1px solid #1e293b;margin:0}.profile-avatar-row{display:flex;align-items:center;gap:1rem}.profile-avatar-preview{width:4rem;height:4rem;border-radius:50%;background:#1e293b;border:2px solid #334155;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.profile-avatar-img{width:100%;height:100%;object-fit:cover}.profile-avatar-placeholder{font-size:2rem;line-height:1}.profile-avatar-actions{display:flex;gap:.5rem;flex-wrap:wrap}.avatar-presets{display:grid;grid-template-columns:repeat(8,1fr);gap:.35rem;margin-top:.75rem}.avatar-preset-btn{background:#1e293b;border:2px solid transparent;border-radius:8px;font-size:1.4rem;line-height:1;padding:.25rem;cursor:pointer;transition:border-color .15s,background .15s;aspect-ratio:1;display:flex;align-items:center;justify-content:center}.avatar-preset-btn:hover{background:#334155;border-color:#475569}.avatar-preset-btn.selected{border-color:#6366f1;background:#1e1b4b}.avatar-presets-hint{font-size:.75rem;color:#64748b;margin:.4rem 0 0}.profile-msg-ok{font-size:.82rem;color:#4ade80;margin:0}@media(max-width:600px){.header-user{display:flex}.header-user-name{display:none}.header-title{font-size:1rem}.main{padding:1rem .75rem}.sticky-nav-inner{padding:0 .75rem}.tabs{gap:0;margin-left:-.75rem;margin-right:-.75rem;padding-left:.75rem;padding-right:.75rem;overflow:visible}.tab-btn{font-size:.8rem;padding:.55rem .6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:5rem;flex-shrink:1;min-width:0}.tab-btn.active{max-width:none;flex-shrink:0}.month-nav-title{font-size:1rem}.btn-nav{padding:.4rem .65rem;font-size:.82rem}.profile-panel{max-width:100%}.avatar-presets{grid-template-columns:repeat(6,1fr)}input[type=date]{max-width:100%;box-sizing:border-box;min-width:0}}.profile-delete-section{padding-top:.25rem;padding-bottom:.5rem}.btn-delete-account{width:100%;padding:.65rem 1rem;background:transparent;border:1px solid #ef4444;color:#ef4444;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;justify-content:center;gap:.5rem}.btn-delete-account:hover{background:#ef4444;color:#fff}.btn-delete-account:focus-visible{outline:2px solid #ef4444;outline-offset:2px}.options-dropdown{position:relative;display:inline-flex;align-items:center}.options-dropdown-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;padding:0;background:transparent;border:1px solid transparent;border-radius:6px;color:#64748b;cursor:pointer;transition:background .15s,color .15s,border-color .15s;flex-shrink:0}.options-dropdown-toggle:hover,.options-dropdown-toggle--open{background:#1e293b;border-color:#334155;color:#a5b4fc}.options-dropdown-chevron{width:1rem;height:1rem;transition:transform .2s ease;pointer-events:none}.options-dropdown-toggle--open .options-dropdown-chevron{transform:rotate(180deg)}.options-dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;min-width:180px;background:#1e293b;border:1px solid #334155;border-radius:10px;padding:.35rem;margin:0;list-style:none;box-shadow:0 8px 24px #00000073;animation:dropdown-in .12s ease}@keyframes dropdown-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.options-dropdown-item{display:flex;align-items:center;gap:.55rem;width:100%;padding:.5rem .75rem;background:transparent;border:none;border-radius:7px;color:#cbd5e1;font-size:.85rem;cursor:pointer;text-align:left;transition:background .12s,color .12s;white-space:nowrap}.options-dropdown-item:hover{background:#334155;color:#f1f5f9}.options-dropdown-item-icon{font-size:.95rem;flex-shrink:0}.annual-view{padding:0}.annual-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.annual-title{display:inline-flex;align-items:center;gap:.3rem;margin:0;font-size:1.15rem;font-weight:700;color:#f1f5f9;text-align:center}.annual-legend{display:flex;align-items:center;gap:1.25rem;font-size:.8rem;color:#94a3b8;margin-bottom:1.5rem;flex-wrap:wrap}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.3rem;vertical-align:middle}.annual-empty{text-align:center;color:#64748b;padding:3rem 0}.annual-chart-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1.5rem;position:relative}.annual-tooltip{position:fixed;pointer-events:none;background:#0f172a;border:1px solid;border-radius:7px;padding:.3rem .7rem;font-size:.8rem;font-weight:600;white-space:nowrap;transform:translate(-50%,calc(-100% - 10px));box-shadow:0 4px 12px #0006;z-index:9999}.annual-chart{display:flex;align-items:stretch;gap:.5rem;height:220px;min-width:600px}.annual-col{flex:1;display:flex;flex-direction:column;align-items:center;height:100%}.annual-bars{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;min-height:0}.annual-bar-group{display:flex;align-items:flex-end;gap:2px;width:100%;justify-content:center;height:100%}.annual-bar{flex:1;max-width:14px;border-radius:3px 3px 0 0;min-height:2px;transition:height .3s ease,filter .15s;cursor:pointer}.annual-bar:hover{filter:brightness(1.25)}.annual-bar-income{background:#4ade80}.annual-bar-expense{background:#f87171}.annual-bar-saving{background:#a78bfa}.annual-month-label{flex-shrink:0;margin-top:6px;font-size:.7rem;color:#64748b;text-align:center;white-space:nowrap}.annual-month-btn{background:none;border:none;color:#94a3b8;font-size:.72rem;font-weight:600;cursor:pointer;padding:2px 4px;border-radius:4px;transition:color .15s,background .15s}.annual-month-btn:hover{color:#6366f1;background:#1e293b}.annual-totals{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.75rem;margin-bottom:1.5rem}.annual-total-card{background:#1e293b;border-radius:10px;border-left:3px solid;padding:.85rem 1rem;display:flex;flex-direction:column;gap:.3rem}.annual-total-label{font-size:.75rem;color:#94a3b8}.annual-total-value{font-size:1.15rem;font-weight:700}.annual-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.annual-table{width:100%;border-collapse:collapse;font-size:.85rem}.annual-table th{padding:.55rem .75rem;text-align:right;color:#64748b;font-size:.72rem;text-transform:uppercase;border-bottom:1px solid #334155}.annual-table th:first-child{text-align:left}.annual-table td{padding:.55rem .75rem;text-align:right;border-bottom:1px solid #1e293b}.annual-td-month{text-align:left!important;color:#cbd5e1;font-weight:600}.annual-table tr:hover td{background:#1e293b}@media(max-width:600px){.annual-chart{min-width:480px}.annual-title{font-size:1rem}.annual-totals{grid-template-columns:repeat(2,1fr)}}.cat-manager{display:flex;flex-direction:column;gap:1.5rem}.cat-create-card{background:#1e293b;border:1px solid #334155;border-radius:14px;padding:1.25rem 1.5rem}.cat-section-title{margin:0 0 1rem;font-size:.95rem;font-weight:700;color:#f1f5f9;letter-spacing:.02em}.cat-form{display:flex;flex-direction:column;gap:.75rem}.cat-emoji-row{display:flex;align-items:center;gap:.65rem}.cat-emoji-btn{font-size:1.75rem;background:#0f172a;border:2px solid #334155;border-radius:10px;cursor:pointer;padding:.3rem .5rem;transition:border-color .15s;line-height:1;flex-shrink:0}.cat-emoji-btn:hover{border-color:#6366f1}.cat-input{flex:1;background:#0f172a;border:1px solid #334155;border-radius:8px;padding:.6rem .8rem;color:#f1f5f9;font-size:.88rem;min-width:0}.cat-input:focus{outline:none;border-color:#6366f1}.cat-save-btn{white-space:nowrap;padding:.6rem 1.25rem;background:#6366f1;color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s}.cat-save-btn:hover:not(:disabled){background:#4f46e5}.cat-save-btn:disabled{opacity:.55;cursor:not-allowed}.cat-color-row{display:flex;gap:.5rem;flex-wrap:wrap;padding:.25rem 0}.cat-color-dot{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform .15s,border-color .15s;flex-shrink:0}.cat-color-dot:hover{transform:scale(1.15)}.cat-color-dot.selected{border-color:#fff;transform:scale(1.2);box-shadow:0 0 0 1px #ffffff4d}.cat-emoji-panel{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:.75rem;margin-top:.25rem}.cat-emoji-search{background:#1e293b;border:1px solid #334155;border-radius:6px;padding:.45rem .75rem;color:#f1f5f9;width:100%;margin-bottom:.75rem;font-size:.85rem;box-sizing:border-box}.cat-emoji-search:focus{outline:none;border-color:#6366f1}.cat-emoji-scroll{max-height:220px;overflow-y:auto}.cat-emoji-group-label{font-size:.7rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin:.5rem 0 .35rem}.cat-emoji-grid{display:flex;flex-wrap:wrap;gap:2px;margin-bottom:.5rem}.cat-emoji-item{background:none;border:2px solid transparent;border-radius:6px;font-size:1.3rem;cursor:pointer;padding:.2rem;line-height:1;transition:background .1s}.cat-emoji-item:hover{background:#1e293b}.cat-emoji-item.selected{border-color:#6366f1;background:#1e293b}.cat-error{color:#f87171;font-size:.83rem;margin:0}.cat-list-section{display:flex;flex-direction:column;gap:.75rem}.cat-empty{color:#64748b;font-size:.85rem;text-align:center;padding:1rem}.cat-list{display:flex;flex-direction:column;gap:.5rem}.cat-item{display:flex;align-items:center;gap:.75rem;padding:.65rem .85rem;background:#1e293b;border-radius:10px;border:1px solid #334155;transition:border-color .15s}.cat-item:hover{border-color:#475569}.cat-item-icon{font-size:1.2rem;width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;border:1px solid;flex-shrink:0}.cat-item-name{flex:1;color:#f1f5f9;font-size:.9rem;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-del-btn{margin-left:auto;flex-shrink:0;background:none;border:1px solid #475569;border-radius:7px;color:#94a3b8;font-size:.8rem;padding:.3rem .55rem;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.cat-del-btn:hover:not(:disabled){color:#f87171;border-color:#f87171;background:#f8717114}.cat-del-btn:disabled{opacity:.5;cursor:not-allowed}.cat-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.cat-modal{background:#0f172a;border:1px solid #1e293b;border-radius:16px;width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 25px 60px #0009;animation:slideUp .18s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.cat-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.1rem 1.5rem;border-bottom:1px solid #1e293b;flex-shrink:0}.cat-modal-title{font-size:1rem;font-weight:700;color:#f1f5f9;letter-spacing:.01em}.cat-modal-close{background:none;border:none;color:#64748b;font-size:1rem;cursor:pointer;padding:.3rem .5rem;border-radius:6px;line-height:1;transition:color .15s,background .15s}.cat-modal-close:hover{color:#f1f5f9;background:#1e293b}.cat-modal-body{flex:1;overflow-y:auto;padding:1.25rem 1.5rem}.cat-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #1e293b;flex-shrink:0}.confirm-delete-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1100;padding:1rem}.confirm-delete-modal{background:#1e293b;border:1px solid #334155;border-radius:14px;padding:2rem 1.75rem 1.5rem;width:100%;max-width:400px;box-shadow:0 24px 48px #0000008c;text-align:center;animation:confirmDeleteIn .18s ease}@keyframes confirmDeleteIn{0%{opacity:0;transform:translateY(-10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.confirm-delete-icon{font-size:2.5rem;margin-bottom:.75rem}.confirm-delete-title{font-size:1.05rem;font-weight:700;color:#f1f5f9;margin:0 0 .6rem}.confirm-delete-message{font-size:.875rem;color:#94a3b8;margin:0 0 1.5rem;line-height:1.5}.confirm-delete-actions{display:flex;gap:.75rem;justify-content:center}.btn-danger{background:#dc2626;color:#fff;border:none;border-radius:8px;padding:.55rem 1.25rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-danger:hover{background:#b91c1c}.btn-danger:focus-visible{outline:2px solid #f87171;outline-offset:2px}.tx-form{margin-bottom:1.25rem}.tx-form h3{margin:0 0 1rem;color:#f1f5f9;font-size:1rem}.tx-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.65rem;margin-bottom:.65rem}.tx-input{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:.6rem .8rem;color:#f1f5f9;font-size:.88rem;width:100%}.tx-input:focus{outline:none;border-color:#6366f1}.tx-notes-input{resize:vertical;min-height:2.5rem}.tx-date-display{display:flex;align-items:center;gap:.5rem;cursor:pointer;position:relative;user-select:none;-webkit-user-select:none}.tx-date-display:focus{outline:none;border-color:#6366f1}.tx-date-icon{font-size:1rem;flex-shrink:0}.tx-date-hidden-input{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px}.tx-done-label{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#94a3b8;margin:.4rem 0 .6rem;cursor:pointer}.tx-form-actions{display:flex;flex-direction:row;gap:.75rem;margin-top:.25rem}.tx-form-actions>button{flex:1;min-width:0}@media(max-width:600px){.tx-form-grid{grid-template-columns:1fr}}.edit-tx-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.edit-tx-modal{background:#1e293b;border:1px solid #334155;border-radius:14px;padding:1.5rem;width:100%;max-width:520px;box-shadow:0 24px 48px #00000080;animation:editModalIn .18s ease}@keyframes editModalIn{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.edit-tx-modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem}.edit-tx-modal-title{font-size:1rem;font-weight:600;color:#f1f5f9;margin:0}.edit-tx-modal-close{background:none;border:none;cursor:pointer;color:#64748b;font-size:1.2rem;line-height:1;padding:.25rem;transition:color .15s}.edit-tx-modal-close:hover{color:#f1f5f9}.edit-tx-modal-actions{display:flex;gap:.75rem;margin-top:1rem}.edit-tx-modal-actions>button{flex:1;min-width:0}@media(max-width:600px){.edit-tx-modal{padding:1.1rem;border-radius:10px}}.tx-tabs{display:flex;gap:0;border-bottom:none;margin-bottom:0;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 .25rem}.tx-tabs::-webkit-scrollbar{display:none}.tx-tabs .tab-btn{border-radius:8px 8px 0 0;border-bottom:2px solid transparent;font-size:.85rem;padding:.5rem 1rem}.tx-tabs .tab-btn.active{color:#6366f1;border-bottom-color:#6366f1;background:#1e293b22}.tx-week-list{display:flex;flex-direction:column;gap:1.25rem}.tx-week-block{border:1px solid #1e293b;border-radius:10px;overflow:hidden}.tx-week-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding:.65rem 1rem;background:#0f172a;border-bottom:1px solid #1e293b}.tx-week-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.tx-week-header--clickable:hover{background:#1a2535}.tx-week-chevron{width:1.1rem;height:1.1rem;color:#6366f1;flex-shrink:0;transition:transform .2s ease;transform:rotate(0)}.tx-week-chevron--collapsed{transform:rotate(-90deg)}.tx-week-label{display:flex;align-items:center;gap:.35rem;font-size:.82rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.tx-week-totals{display:flex;gap:.5rem;flex-wrap:wrap}.tx-week-total{font-size:.78rem;font-weight:600;padding:.15rem .55rem;border-radius:999px;white-space:nowrap}.tx-week-total--income{background:#14532d;color:#86efac}.tx-week-total--expense{background:#4c0519;color:#fca5a5}.tx-week-total--saving{background:#1e3a5f;color:#93c5fd}.tx-week-total--pos{background:#14532d;color:#86efac}.tx-week-total--neg{background:#4c0519;color:#fca5a5}.tx-week-total--balance{font-weight:700}.tx-week-day{padding:.5rem 1rem .25rem;border-bottom:1px solid #1e293b}.tx-week-day:last-child{border-bottom:none}.tx-week-item{display:flex;align-items:center;gap:.75rem;padding:.55rem .5rem;border-radius:8px;margin-bottom:.3rem;background:#0f172a;border:1px solid #1e293b;transition:background .12s}.tx-week-item:last-child{margin-bottom:.5rem}.tx-week-item:hover{background:#1e293b}.tx-week-item-accent{width:3px;align-self:stretch;border-radius:99px;flex-shrink:0}.tx-week-item--income .tx-week-item-accent{background:#4ade80}.tx-week-item--expense .tx-week-item-accent{background:#f87171}.tx-week-item--saving .tx-week-item-accent{background:#a78bfa}.tx-week-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.tx-week-item-desc{font-size:.88rem;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-week-item-cat{font-size:.72rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-week-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;flex-shrink:0}.tx-week-item-amount{font-size:.9rem;font-weight:700;white-space:nowrap}.tx-calendar{-webkit-user-select:none;user-select:none}.tx-calendar-title{text-align:center;font-size:.85rem;font-weight:700;color:#94a3b8;text-transform:capitalize;margin-bottom:.75rem;letter-spacing:.04em}.tx-calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}.tx-calendar-weekday{text-align:center;font-size:.68rem;font-weight:700;color:#475569;text-transform:uppercase;padding:.3rem 0}.tx-calendar-cell{min-height:54px;border-radius:7px;padding:.3rem .35rem;display:flex;flex-direction:column;align-items:center;gap:.15rem;background:#0f172a;border:1px solid transparent;transition:border-color .15s,background .15s}.tx-calendar-cell--empty{background:transparent;border-color:transparent}.tx-calendar-cell--has-tx{cursor:pointer;border-color:#1e293b}.tx-calendar-cell--has-tx:hover{background:#1e293b;border-color:#334155}.tx-calendar-cell--selected{background:#1e293b;border-color:#6366f1!important}.tx-calendar-day-num{font-size:.78rem;font-weight:600;color:#94a3b8;line-height:1}.tx-calendar-bal{font-size:.62rem;font-weight:700;line-height:1;white-space:nowrap}.tx-calendar-detail{margin-top:1rem;border:1px solid #334155;border-radius:10px;overflow:hidden;animation:tx-cal-slide-in .15s ease}@keyframes tx-cal-slide-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.tx-calendar-detail-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem 1rem;background:#0f172a;border-bottom:1px solid #1e293b;font-size:.82rem;font-weight:700;color:#cbd5e1;text-transform:capitalize}.tx-calendar-detail-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:.85rem;line-height:1;padding:.1rem .3rem;border-radius:4px}.tx-calendar-detail-close:hover{background:#1e293b;color:#f1f5f9}.tx-calendar-detail-row{display:flex;justify-content:space-between;align-items:center;padding:.55rem 1rem;border-bottom:1px solid #1e293b;font-size:.85rem}.tx-calendar-detail-row:last-child{border-bottom:none}.tx-calendar-detail-desc{color:#f1f5f9;font-weight:500;flex:1;margin-right:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-calendar-detail-amount{font-weight:700;white-space:nowrap}.tx-calendar-empty{padding:1rem;text-align:center;color:#64748b;font-size:.85rem}@media(max-width:480px){.tx-calendar-cell{min-height:44px;padding:.2rem}.tx-calendar-bal{font-size:.55rem}.tx-week-header{flex-direction:column;align-items:flex-start}}.cal-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:cal-overlay-in .15s ease}@keyframes cal-overlay-in{0%{opacity:0}to{opacity:1}}.cal-modal{background:#1e293b;border:1px solid #334155;border-radius:14px;width:100%;max-width:420px;max-height:85vh;overflow-y:auto;display:flex;flex-direction:column;animation:cal-modal-in .18s ease;box-shadow:0 20px 60px #00000080}@keyframes cal-modal-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.cal-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem .75rem;border-bottom:1px solid #334155}.cal-modal-title{font-size:.95rem;font-weight:700;color:#f1f5f9;text-transform:capitalize}.cal-modal-close{background:none;border:none;color:#64748b;cursor:pointer;font-size:1rem;padding:.2rem .4rem;border-radius:6px;line-height:1;transition:background .12s,color .12s}.cal-modal-close:hover{background:#334155;color:#f1f5f9}.cal-modal-summary{display:flex;flex-direction:column;gap:0;padding:.75rem 1.25rem;background:#0f172a;border-bottom:1px solid #334155}.cal-modal-summary-row{display:flex;justify-content:space-between;align-items:center;padding:.3rem 0;font-size:.85rem}.cal-modal-summary-row--balance{border-top:1px solid #1e293b;margin-top:.3rem;padding-top:.5rem}.cal-modal-summary-label{color:#94a3b8;font-weight:500}.cal-modal-summary-amount{font-weight:600}.cal-modal-summary-amount--balance{font-size:.95rem;font-weight:700}.cal-modal-list{display:flex;flex-direction:column;padding:.75rem 1rem;gap:.4rem}.cal-modal-item{display:flex;align-items:center;gap:.65rem;padding:.55rem .6rem;background:#0f172a;border:1px solid #1e293b;border-radius:8px;transition:background .12s}.cal-modal-item:hover{background:#1e293b}.cal-modal-item-accent{width:3px;align-self:stretch;border-radius:99px;flex-shrink:0}.cal-modal-item--income .cal-modal-item-accent{background:#4ade80}.cal-modal-item--expense .cal-modal-item-accent{background:#f87171}.cal-modal-item--saving .cal-modal-item-accent{background:#a78bfa}.cal-modal-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}.cal-modal-item-desc{font-size:.88rem;font-weight:600;color:#f1f5f9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-modal-item-cat{font-size:.72rem;color:#64748b}.cal-modal-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem;flex-shrink:0}.cal-modal-item-amount{font-size:.9rem;font-weight:700;white-space:nowrap}.tx-calendar-bal--income{color:#4ade80}.tx-calendar-bal--expense{color:#f87171}.tx-calendar-bal--saving{color:#a78bfa}@media(max-width:480px){.cal-modal{max-width:100%;border-radius:14px;max-height:80vh}.cal-modal-overlay{align-items:center;padding:1rem}}.collapsible-panel{padding:0}.collapsible-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;background:transparent;border:none;cursor:pointer;text-align:left;gap:.5rem;color:#f1f5f9}.collapsible-header:hover{background:#ffffff08}.collapsible-title{font-size:1rem;font-weight:600;color:#f1f5f9;line-height:1.4}.collapsible-chevron{font-size:1.25rem;color:#64748b;line-height:1;transition:transform .25s ease;flex-shrink:0;transform:rotate(90deg)}.collapsible-header--open .collapsible-chevron{transform:rotate(270deg)}.collapsible-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .3s ease}.collapsible-body--open{grid-template-rows:1fr}.collapsible-body-inner{overflow:hidden;padding:0 1.25rem;transition:padding .3s ease}.collapsible-body--open .collapsible-body-inner{padding:.75rem 1.25rem 1.25rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.85rem;margin-bottom:1.25rem}.summary-card{background:#1e293b;border-radius:12px;padding:1.1rem;border-left:4px solid var(--accent)}.summary-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.summary-card-title{font-size:.8rem;color:#94a3b8}.summary-card-icon{font-size:1.3rem;line-height:1}.summary-card-value{font-size:1.4rem;font-weight:700;color:var(--accent);margin-bottom:.25rem;word-break:break-all}.summary-card-sub{font-size:.72rem;color:#64748b}.summary-card-carryover{border-left-width:4px;border-left-style:solid;border-left-color:var(--accent)}.carryover-edit-btn{background:none;border:none;cursor:pointer;font-size:.9rem;padding:.1rem .3rem;border-radius:5px;opacity:.6;transition:opacity .15s,background .15s;line-height:1}.carryover-edit-btn:hover{opacity:1;background:#334155}@media(max-width:600px){.summary-grid{grid-template-columns:repeat(2,1fr);gap:.65rem}.summary-card-value{font-size:1.1rem}}@media(max-width:380px){.summary-grid{grid-template-columns:1fr 1fr}}.tx-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.tx-table{width:100%;border-collapse:collapse}.tx-table th{padding:.65rem .85rem;text-align:left;color:#94a3b8;font-weight:600;font-size:.75rem;text-transform:uppercase;border-bottom:1px solid #334155;white-space:nowrap}.tx-table td{padding:.65rem .85rem;border-bottom:1px solid #1e293b;font-size:.88rem;vertical-align:middle}.tx-table tr:hover td{background:#1e293b}.tx-card-list{display:none}.tx-card{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.9rem 0;border-bottom:1px solid #1e293b}.tx-card:last-child{border-bottom:none}.tx-card-left{flex:1;min-width:0}.tx-card-desc{font-weight:500;color:#f1f5f9;font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-card-meta{font-size:.75rem;color:#64748b;margin-top:.2rem}.tx-card-right{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;flex-shrink:0}.tx-card-amount{font-weight:700;font-size:.95rem}.tx-day-separator td{padding:.55rem .85rem .3rem;border-bottom:none;background:transparent}.tx-day-separator:not(:first-child) td{padding-top:1rem;border-top:1px solid #1e293b}.tx-day-separator--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.tx-day-separator--clickable:hover td{background:#0f172a}.tx-day-label{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569}.tx-day-chevron{display:inline-block;font-size:.75rem;color:#475569;transition:transform .2s ease;transform:rotate(0);line-height:1}.tx-day-chevron--collapsed{transform:rotate(-90deg)}.tx-day-count{font-size:.65rem;font-weight:500;color:#334155;letter-spacing:0;text-transform:none}.tx-day-header{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#475569;padding:.9rem 0 .35rem;border-top:1px solid #1e293b}.tx-day-header--clickable{cursor:pointer;-webkit-user-select:none;user-select:none}.tx-day-header--clickable:hover{color:#64748b}.tx-card-list>div:first-child .tx-day-header{border-top:none;padding-top:0}.tx-week-day .tx-day-header{border-top:none;padding-top:.35rem}.tx-badge{border-radius:999px;padding:.2rem .6rem;font-size:.72rem;font-weight:600;white-space:nowrap}.tx-badge-income{background:#14532d;color:#4ade80}.tx-badge-expense{background:#4c0519;color:#f87171}.tx-badge-saving{background:#3b0764;color:#c4b5fd}.tx-cat-badge{background:#334155;border-radius:999px;padding:.2rem .6rem;font-size:.75rem;color:#cbd5e1}.btn-delete{background:none;border:none;cursor:pointer;color:#64748b;font-size:1rem;padding:.25rem;line-height:1;transition:color .15s}.btn-delete:hover{color:#f87171}.btn-edit{background:none;border:none;cursor:pointer;color:#64748b;font-size:1rem;padding:.25rem;line-height:1;transition:color .15s}.btn-edit:hover{color:#818cf8}.tx-done-checkbox{width:1rem;height:1rem;accent-color:#6366f1;cursor:pointer;flex-shrink:0}.tx-row-done td{opacity:.5}.tx-row-done td:first-child{opacity:1}.tx-card-done{opacity:.55}.tx-card-done .tx-card-check{opacity:1}.tx-card-check{display:flex;align-items:flex-start;padding-top:.15rem;flex-shrink:0}.tx-notes-cell{max-width:180px;min-width:80px}.tx-notes-text{font-size:.8rem;color:#94a3b8;cursor:pointer;display:block;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-notes-text:hover{color:#c7d2fe}.tx-notes-placeholder{color:#475569;font-style:italic;font-size:.78rem}.tx-notes-edit-input{background:#1e293b;border:1px solid #6366f1;border-radius:6px;padding:.25rem .5rem;color:#f1f5f9;font-size:.8rem;width:100%;min-width:100px}.tx-notes-edit-input:focus{outline:none}@media(max-width:600px){.tx-table-wrap{display:none}.tx-card-list{display:block}}.chart-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2rem;margin-top:1.25rem}.chart-title{color:#94a3b8;font-size:.82rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.85rem}.bar-row{margin-bottom:.55rem}.bar-label{display:flex;justify-content:space-between;font-size:.8rem;margin-bottom:.25rem}.bar-label-name{color:#cbd5e1}.bar-label-value{color:#94a3b8}.bar-track{background:#1e293b;border-radius:999px;height:7px;overflow:hidden}.bar-fill{height:100%;border-radius:999px;transition:width .4s ease}@media(max-width:600px){.chart-grid{grid-template-columns:1fr;gap:1.5rem}}.budget-alerts{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1.25rem}.alert-card{border-radius:10px;padding:.85rem 1rem;border:1px solid transparent}.alert-card--warning{background:#422006;border-color:#92400e}.alert-card--danger{background:#4c0519;border-color:#be123c}.alert-card-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem}.alert-card-icon{font-size:1rem;flex-shrink:0}.alert-card-message{font-size:.88rem;color:#f1f5f9;line-height:1.4;flex:1}.alert-card-dismiss{background:transparent;border:none;color:#94a3b8;font-size:.85rem;cursor:pointer;padding:.1rem .3rem;border-radius:4px;line-height:1;flex-shrink:0;transition:color .15s,background .15s}.alert-card-dismiss:hover{color:#f1f5f9;background:#ffffff1a}.alert-progress-bar{height:6px;background:#ffffff1a;border-radius:99px;overflow:hidden;margin-bottom:.5rem}.alert-progress-fill{height:100%;border-radius:99px;transition:width .4s ease}.alert-progress-fill--warning{background:#f59e0b}.alert-progress-fill--danger{background:#ef4444}.alert-card-amounts{display:flex;justify-content:space-between;font-size:.78rem;color:#94a3b8}.alert-card-amounts strong{color:#e2e8f0}.ai-advisor{margin-bottom:1.25rem;padding:0;overflow:hidden}.ai-advisor-header{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.25rem;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.ai-advisor-header:hover{background:#ffffff08}.ai-advisor-header:focus-visible{outline:2px solid #6366f1;outline-offset:-2px;border-radius:12px}.ai-advisor-title{font-size:1rem;font-weight:600;color:#f1f5f9;flex:1;min-width:0}.ai-advisor-actions{display:flex;gap:.5rem;align-items:center;flex-shrink:0}.ai-advisor-chevron{font-size:1.25rem;color:#64748b;line-height:1;transition:transform .25s ease;flex-shrink:0;transform:rotate(90deg)}.ai-advisor-header--open .ai-advisor-chevron{transform:rotate(270deg)}.ai-advisor-body{overflow:hidden;transition:max-height .3s ease;max-height:0px}.ai-advisor-body-inner{padding:0 1.25rem 1.25rem}.ai-cooldown{font-size:.78rem;color:#64748b;margin:0;padding:0 1.25rem .6rem;font-style:italic}.ai-btn{padding:.4rem .9rem;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;border:none;display:flex;align-items:center;gap:.35rem;transition:opacity .15s;white-space:nowrap}.ai-btn--primary{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff}.ai-btn--primary:hover:not(:disabled){opacity:.88}.ai-btn--primary:disabled{background:#1e3a2f;color:#4ade80;opacity:1;cursor:default}.ai-btn--primary.ai-btn--loading:disabled{background:linear-gradient(135deg,#6366f1,#8b5cf6);opacity:.6;cursor:not-allowed}.ai-btn--ghost{background:transparent;color:#94a3b8;border:1px solid #334155}.ai-btn--ghost:hover{color:#e2e8f0;border-color:#475569}.ai-spinner{display:inline-block;width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:ai-spin .7s linear infinite}@keyframes ai-spin{to{transform:rotate(360deg)}}.ai-error{font-size:.85rem;color:#fca5a5;background:#4c0519;border:1px solid #be123c;border-radius:8px;padding:.6rem .85rem;margin-bottom:.5rem}.ai-placeholder{font-size:.87rem;color:#64748b;margin:0;font-style:italic}.ai-content{display:flex;flex-direction:column;gap:.85rem}.ai-summary{font-size:.9rem;color:#cbd5e1;line-height:1.55;margin:0;padding:.6rem .9rem;background:#ffffff0a;border-radius:8px;border-left:3px solid #6366f1}.ai-section{display:flex;flex-direction:column;gap:.4rem}.ai-section-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin:0}.ai-section-title--green{color:#4ade80}.ai-section-title--red{color:#f87171}.ai-section-title--blue{color:#60a5fa}.ai-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.ai-list-item{font-size:.86rem;line-height:1.5;padding:.4rem .75rem;border-radius:7px;color:#e2e8f0}.ai-list-item--green{background:#4ade8014;border-left:2px solid #4ade80}.ai-list-item--red{background:#f8717114;border-left:2px solid #f87171}.ai-list-item--blue{background:#60a5fa14;border-left:2px solid #60a5fa}@media(max-width:540px){.ai-advisor-header{flex-wrap:wrap;padding:.85rem 1rem;gap:.5rem}.ai-advisor-title{flex:1}.ai-advisor-chevron{order:2}.ai-advisor-actions{order:3;width:100%;justify-content:flex-end}.ai-advisor-body-inner{padding:0 1rem 1rem}.ai-cooldown{padding:0 1rem .5rem}.ai-btn{font-size:.8rem;padding:.4rem .75rem}.ai-summary{font-size:.85rem}.ai-list-item{font-size:.82rem}}.delete-rule-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.delete-rule-modal{background:var(--color-surface, #1e1e2e);border:1px solid var(--color-border, #333);border-radius:12px;padding:1.5rem;width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem}.delete-rule-title{font-size:1rem;font-weight:700;color:var(--color-text, #f0f0f0);margin:0}.delete-rule-subtitle{font-size:.85rem;color:var(--color-text-muted, #999);margin:0}.delete-rule-options{display:flex;flex-direction:column;gap:.5rem}.delete-rule-option{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:8px;border:1.5px solid var(--color-border, #333);cursor:pointer;transition:border-color .15s,background .15s}.delete-rule-option:hover{border-color:var(--color-primary, #7c6af5);background:#7c6af512}.delete-rule-option--selected{border-color:var(--color-primary, #7c6af5);background:#7c6af51f}.delete-rule-option input[type=radio]{accent-color:var(--color-primary, #7c6af5);width:16px;height:16px;flex-shrink:0}.delete-rule-option-icon{font-size:1.1rem;flex-shrink:0}.delete-rule-option-text{font-size:.875rem;color:var(--color-text, #f0f0f0);line-height:1.3}.delete-rule-actions{display:flex;gap:.75rem;justify-content:flex-end}.btn-danger{background:#c0392b;color:#fff;border:none;border-radius:8px;padding:.5rem 1.25rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:background .15s}.btn-danger:hover:not(:disabled){background:#a93226}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media(max-width:480px){.delete-rule-actions{flex-direction:column-reverse}.delete-rule-actions button{width:100%;text-align:center}}.recurring-tab{display:flex;flex-direction:column;gap:1rem}.recurring-header-card{padding:1.25rem 1.5rem}.recurring-tab-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.recurring-tab-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:700;color:#f1f5f9}.recurring-tab-subtitle{margin:0;font-size:.82rem;color:#64748b}.recurring-form-panel{padding:.25rem 0}.recurring-form-title{margin:0 0 1.25rem;font-size:1rem;font-weight:600;color:#f1f5f9}.recurring-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;margin-bottom:.85rem}.recurring-form-field{display:flex;flex-direction:column;gap:.35rem}.recurring-form-field--wide{grid-column:1 / -1}.recurring-label{font-size:.78rem;color:#94a3b8;font-weight:500;letter-spacing:.02em}.recurring-date-display{width:200px;max-width:100%}.recurring-end-radios{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap;margin-bottom:.4rem}.recurring-radio-label{display:flex;align-items:center;gap:.45rem;font-size:.875rem;color:#f1f5f9;cursor:pointer;-webkit-user-select:none;user-select:none}.recurring-radio-label input[type=radio]{accent-color:var(--color-primary, #7c6af5);width:16px;height:16px;flex-shrink:0;cursor:pointer}.recurring-form-actions{margin-top:.75rem}.recurring-error{color:#f87171;font-size:.85rem;margin:.4rem 0}.recurring-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.recurring-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .15s}.recurring-card:hover{border-color:#334155}.recurring-card--inactive{opacity:.6}.recurring-card-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.recurring-type-badge{font-size:.78rem;font-weight:600;padding:.2rem .55rem;border-radius:6px}.recurring-type--income{background:#22c55e26;color:#4ade80}.recurring-type--expense{background:#f8717126;color:#f87171}.recurring-type--saving{background:#6366f126;color:#818cf8}.recurring-status-badge{font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:20px}.recurring-status--active{background:#22c55e1f;color:#4ade80}.recurring-status--inactive{background:#94a3b81f;color:#64748b}.recurring-card-body{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.recurring-card-description{margin:0;font-size:.95rem;font-weight:600;color:#f1f5f9;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recurring-card-amount{margin:0;font-size:1.05rem;font-weight:700;color:#f1f5f9;flex-shrink:0}.recurring-card-meta{display:flex;flex-direction:column;gap:.3rem}.recurring-meta-item{font-size:.78rem;color:#64748b}.recurring-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.25rem;border-top:1px solid #1e293b}.recurring-btn-sm{font-size:.78rem!important;padding:.3rem .6rem!important}.recurring-empty{padding:2.5rem 1.5rem;text-align:center}.recurring-empty-title{margin:0 0 .5rem;font-size:1rem;color:#94a3b8;font-weight:500}.recurring-empty-hint{margin:0;font-size:.85rem;color:#475569}.recurring-loading{color:#64748b;font-size:.9rem;padding:1rem 0}@media(max-width:600px){.recurring-header-card{padding:1rem}.recurring-tab-header{flex-direction:column;align-items:stretch;gap:.75rem}.recurring-tab-header .btn-primary{width:100%;text-align:center;justify-content:center}.recurring-cards-grid,.recurring-form-grid{grid-template-columns:1fr}.recurring-date-display{width:100%}.recurring-form-field--wide{grid-column:1}.recurring-date-row{flex-direction:row;gap:.4rem}.recurring-year-input{max-width:none;flex:1}.recurring-card-actions{flex-direction:row;flex-wrap:wrap;gap:.4rem}.recurring-btn-sm{flex:1;min-width:calc(50% - .2rem);text-align:center;justify-content:center}.recurring-card-body{flex-direction:column;align-items:flex-start;gap:.2rem}.recurring-card-amount{font-size:1.1rem}.recurring-card-description{white-space:normal}}.ca-tab{display:flex;flex-direction:column;gap:1rem;padding-bottom:2rem}.ca-form-content{display:flex;flex-direction:column;gap:.85rem}.ca-form-title{font-size:.95rem;font-weight:700;color:var(--text-primary, #f1f5f9);margin:0}.ca-form-grid{display:grid;grid-template-columns:1fr 5rem;gap:.65rem .75rem}.ca-field-name{grid-column:1 / 2}.ca-field-color{grid-column:2 / 3}.ca-field-check,.ca-field-cat,.ca-field-metric,.ca-field-op{grid-column:1 / -1}.ca-field-metric-op{grid-column:1 / -1;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.ca-field-thr{grid-column:1 / -1}@media(max-width:520px){.ca-form-grid{grid-template-columns:1fr 4.5rem;gap:.6rem}.ca-field-metric-op{grid-template-columns:1fr}}.ca-form-field,.ca-field-color{display:flex;flex-direction:column;gap:.3rem}.ca-color-input{width:100%;height:2.35rem;border:1px solid var(--border-color, #334155);border-radius:8px;padding:3px;background:var(--input-bg, #0f172a);cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.ca-color-input::-webkit-color-swatch-wrapper{padding:0}.ca-color-input::-webkit-color-swatch{border:none;border-radius:5px}.ca-checkbox-row{display:flex;align-items:center;gap:.55rem;cursor:pointer;padding:.5rem .6rem;border-radius:8px;background:#ffffff08;border:1px solid rgba(255,255,255,.06);transition:background .15s}.ca-checkbox-row:hover{background:#ffffff0f}.ca-checkbox-input{width:1rem;height:1rem;cursor:pointer;accent-color:var(--accent, #6366f1);flex-shrink:0}.ca-checkbox-label{font-size:.83rem;font-weight:600;color:var(--text-secondary, #cbd5e1)}.ca-category-select{width:100%}.ca-label{font-size:.75rem;font-weight:600;color:var(--text-muted, #94a3b8);text-transform:uppercase;letter-spacing:.04em}.ca-form-error{font-size:.82rem;color:#f87171;margin:0;padding:.45rem .7rem;background:#f8717115;border-radius:8px;border:1px solid #f8717133}.ca-form-actions{display:flex;justify-content:flex-end;gap:.65rem;padding-top:.1rem}@media(max-width:360px){.ca-form-actions{flex-direction:column-reverse}.ca-form-actions .btn{width:100%}}.ca-header-card{padding:1.25rem 1.5rem}.ca-tab-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ca-tab-title{margin:0 0 .25rem;font-size:1.1rem;font-weight:700;color:#f1f5f9}.ca-tab-subtitle{margin:0;font-size:.82rem;color:#64748b}.ca-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.ca-card{background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;transition:border-color .15s}.ca-card:hover{border-color:#334155}.ca-card--inactive{opacity:.6}.ca-card-header{display:flex;align-items:center;gap:.6rem}.ca-card-color-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ca-card-name{font-size:.95rem;font-weight:600;color:#f1f5f9;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ca-card-status{font-size:.72rem;font-weight:600;padding:.18rem .5rem;border-radius:20px;flex-shrink:0}.ca-card-status--active{background:#22c55e1f;color:#4ade80}.ca-card-status--inactive{background:#94a3b81f;color:#64748b}.ca-card-body{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem}.ca-card-desc{font-size:.82rem;color:#64748b;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.ca-card-threshold{font-size:.9rem;font-weight:700;color:#f1f5f9;flex-shrink:0;margin:0}.ca-card-triggered-bar{border-radius:8px;padding:.35rem .65rem}.ca-triggered-label{font-size:.78rem;font-weight:600}.ca-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.25rem;border-top:1px solid #1e293b}.ca-btn-sm{font-size:.78rem!important;padding:.3rem .6rem!important}.ca-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2.5rem 1.5rem;text-align:center}.ca-empty-icon{font-size:2.5rem}.ca-empty-text{font-size:1rem;font-weight:500;color:#94a3b8;margin:0}.ca-empty-hint{font-size:.85rem;color:#475569;margin:0}.ca-loading{color:#64748b;font-size:.9rem;padding:1rem 0}.ca-error{font-size:.85rem;padding:.75rem 1rem;border-radius:10px;text-align:center;color:#f87171;background:#f8717112;border:1px solid #f8717133}@media(max-width:600px){.ca-header-card{padding:1rem}.ca-tab-header{flex-direction:column;align-items:stretch;gap:.75rem}.ca-tab-header .btn-primary{width:100%;text-align:center;justify-content:center}.ca-cards-grid{grid-template-columns:1fr}.ca-card-body{flex-direction:column;align-items:flex-start;gap:.2rem}.ca-card-actions{flex-wrap:wrap;gap:.4rem}.ca-btn-sm{flex:1;min-width:calc(50% - .2rem);text-align:center;justify-content:center}}.privacy-page{min-height:100vh;background:#0f172a;color:#e2e8f0;padding:2rem 1rem 4rem}.privacy-container{max-width:760px;margin:0 auto}.privacy-header{display:flex;align-items:center;gap:1rem;margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid #1e293b}.privacy-back-btn{background:none;border:1px solid #334155;color:#94a3b8;border-radius:8px;padding:.4rem .9rem;cursor:pointer;font-size:.85rem;transition:border-color .15s,color .15s;white-space:nowrap}.privacy-back-btn:hover{border-color:#6366f1;color:#e2e8f0}.privacy-header-text{flex:1}.privacy-title{font-size:1.6rem;font-weight:700;color:#f1f5f9;margin:0 0 .25rem}.privacy-subtitle{font-size:.85rem;color:#64748b;margin:0}.privacy-section{margin-bottom:2.25rem}.privacy-section-title{font-size:1.05rem;font-weight:600;color:#a5b4fc;margin:0 0 .75rem;padding-left:.75rem;border-left:3px solid #6366f1}.privacy-section p{font-size:.92rem;line-height:1.7;color:#cbd5e1;margin:0 0 .6rem}.privacy-section ul{margin:.4rem 0 .6rem 1.25rem;padding:0}.privacy-section li{font-size:.92rem;line-height:1.65;color:#cbd5e1;margin-bottom:.3rem}.privacy-contact{background:#1e293b;border:1px solid #334155;border-radius:10px;padding:1.25rem 1.5rem;margin-top:.5rem}.privacy-contact p{margin:.2rem 0}.privacy-contact a{color:#818cf8;text-decoration:none}.privacy-contact a:hover{text-decoration:underline;color:#a5b4fc}.privacy-footer{margin-top:3rem;padding-top:1.5rem;border-top:1px solid #1e293b;text-align:center;font-size:.8rem;color:#475569}@media(max-width:600px){.privacy-title{font-size:1.3rem}.privacy-header{flex-direction:column;align-items:flex-start}}.update-prompt{position:fixed;bottom:1.25rem;left:50%;transform:translate(-50%);z-index:9999;display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:center;background:#1e293b;border:1px solid #6366f1;border-radius:12px;padding:.85rem 1.25rem;box-shadow:0 8px 32px #00000080;color:#f1f5f9;font-size:.9rem;width:calc(100% - 2rem);max-width:420px}.update-prompt__text{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.update-prompt__actions{display:flex;gap:.5rem;flex-shrink:0}.update-prompt__btn{border:none;border-radius:8px;padding:.45rem .9rem;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}.update-prompt__btn:hover{opacity:.85}.update-prompt__btn--update{background:#6366f1;color:#fff}.update-prompt__btn--dismiss{background:#334155;color:#94a3b8}
