:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:960px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.sidebar{width:200px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid var(--header-border, rgba(255, 255, 255, .08));background:var(--sidebar-bg, rgba(15, 23, 42, .95));transition:width .2s ease}.sidebar--collapsed{width:56px}.sidebar__toggle{flex-shrink:0;width:100%;height:40px;padding:0;border:none;border-bottom:1px solid var(--header-border, rgba(255, 255, 255, .08));background:transparent;color:var(--text-soft, #94a3b8);font-size:1rem;cursor:pointer;transition:color .2s}.sidebar__toggle:hover{color:#c7d2fe}.sidebar__nav{padding:.5rem 0;display:flex;flex-direction:column;gap:2px}.sidebar__link{display:flex;align-items:center;gap:.75rem;padding:.6rem 1rem;color:var(--text-soft, #94a3b8);text-decoration:none;font-weight:500;transition:background .15s,color .15s}.sidebar__link:hover{background:#ffffff0f;color:#e2e8f0}.sidebar__link--active{background:#6366f126;color:#818cf8}.sidebar__short{flex-shrink:0;width:1.25rem;text-align:center;font-weight:600}.sidebar__label{white-space:nowrap;overflow:hidden}.sidebar--collapsed .sidebar__label{width:0;overflow:hidden;opacity:0}.sidebar--collapsed .sidebar__link{justify-content:center;padding-left:0;padding-right:0}@media(prefers-color-scheme:light){.sidebar{--sidebar-bg: #fff;--header-border: #e2e8f0}.sidebar__link--active{background:#6366f11a;color:#4f46e5}}.app-layout{min-height:100vh;display:flex;flex-direction:column;background:var(--page-bg, #0f172a)}.app-layout__header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--header-border, rgba(255, 255, 255, .08));background:var(--header-bg, rgba(15, 23, 42, .9))}.app-layout__logo{font-size:1.25rem;font-weight:700;color:inherit;text-decoration:none;letter-spacing:-.02em}.app-layout__logo:hover{color:#818cf8}.app-layout__account{padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:var(--text-soft, #94a3b8);text-decoration:none;border-radius:8px;border:1px solid var(--btn-border, #334155);background:transparent;transition:border-color .2s,color .2s}.app-layout__account:hover{color:#c7d2fe;border-color:#6366f1}.app-layout__body{flex:1;display:flex;min-height:0}.app-layout__main{flex:1;padding:2rem 3rem;box-sizing:border-box;max-width:1200px;overflow:auto}@media(prefers-color-scheme:light){.app-layout{--page-bg: #f1f5f9}.app-layout__header{--header-bg: #fff;--header-border: #e2e8f0}.app-layout__account{--btn-border: #cbd5e1;color:#475569}.app-layout__account:hover{color:#4f46e5;border-color:#6366f1}}.landing{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 3rem;text-align:center;box-sizing:border-box}.landing__card{width:480px;padding:2.5rem 3rem;background:var(--card-bg, rgba(255, 255, 255, .05));border-radius:16px;border:1px solid var(--card-border, rgba(255, 255, 255, .08));box-shadow:0 8px 32px #0003}.landing__title{font-size:3rem;font-weight:700;margin:0 0 .5rem;letter-spacing:-.03em;background:linear-gradient(135deg,#fff,#b8c0e0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing__tagline{font-size:1.2rem;color:var(--text-soft, #94a3b8);margin:0 0 .75rem}.landing__sub{font-size:.95rem;color:var(--text-muted, #64748b);line-height:1.5;margin:0 0 1.75rem}.landing__btn{display:inline-block;padding:.75rem 1.5rem;font-size:1rem;font-weight:600;border-radius:10px;text-decoration:none;transition:transform .15s,box-shadow .15s}.landing__btn--primary{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;border:none}.landing__btn--primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f166}.landing__footer{margin-top:auto;padding-top:2rem;font-size:.85rem;color:var(--text-muted, #64748b)}.landing__status-ok{color:#22c55e}.landing__status-off{color:#ef4444}@media(prefers-color-scheme:light){.landing__card{--card-bg: #fff;--card-border: #e2e8f0}.landing__title{background:linear-gradient(135deg,#1e293b,#475569);-webkit-background-clip:text;background-clip:text}}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem 3rem;box-sizing:border-box}.login__card{width:400px;padding:2rem 2.5rem;background:var(--card-bg, rgba(255, 255, 255, .05));border-radius:16px;border:1px solid var(--card-border, rgba(255, 255, 255, .08));box-shadow:0 8px 32px #0003}.login__title{font-size:1.75rem;font-weight:700;margin:0 0 .25rem}.login__sub{font-size:.95rem;color:var(--text-muted, #94a3b8);margin:0 0 1.5rem}.login__form{display:flex;flex-direction:column;gap:.75rem}.login__label{font-size:.875rem;font-weight:500;color:var(--text-soft, #94a3b8)}.login__input{padding:.75rem 1rem;font-size:1rem;border-radius:10px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #1e293b);color:inherit;outline:none;transition:border-color .2s}.login__input:focus{border-color:#6366f1}.login__input::placeholder{color:var(--text-muted, #64748b)}.login__email-hint{font-size:.875rem;color:var(--text-muted, #64748b);margin:0 0 .25rem}.login__error{font-size:.875rem;color:#ef4444;margin:0}.login__btn{padding:.75rem 1.25rem;font-size:1rem;font-weight:600;border-radius:10px;border:none;background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff;cursor:pointer;margin-top:.25rem;transition:opacity .2s}.login__btn:hover:not(:disabled){opacity:.95}.login__btn:disabled{opacity:.7;cursor:not-allowed}.login__back{background:transparent;border:none;color:var(--text-muted, #94a3b8);font-size:.875rem;cursor:pointer;padding:.5rem 0;margin-top:.25rem}.login__back:hover{color:#6366f1}.login__footer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--card-border, rgba(255, 255, 255, .08))}.login__footer a{color:var(--text-muted, #94a3b8);text-decoration:none;font-size:.9rem}.login__footer a:hover{color:#6366f1}@media(prefers-color-scheme:light){.login__card{--card-bg: #fff;--card-border: #e2e8f0}.login__input{--input-border: #cbd5e1;--input-bg: #f8fafc}}.overview{max-width:960px;padding:0 .5rem}.overview__title{font-size:1.75rem;font-weight:700;margin:0 0 1.25rem}.overview__filters{display:flex;align-items:flex-end;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}.overview__filter-group{display:flex;flex-direction:column;gap:.3rem}.overview__filter-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-soft, #64748b)}.overview__month-input,.overview__select{padding:.4rem .75rem;border-radius:6px;border:1px solid #334155;background:#1e293b;color:#e2e8f0;font-size:.9rem;cursor:pointer}.overview__month-input:focus,.overview__select:focus{outline:none;border-color:#6366f1}.overview__filter-sep{font-size:1rem;color:#475569;padding-bottom:.35rem}.overview__filter-months{font-size:.8rem;color:#64748b;padding-bottom:.45rem;margin-left:.25rem}.overview__stats{display:flex;gap:.75rem;margin-bottom:1.75rem;flex-wrap:wrap}.overview__stat-card{display:flex;flex-direction:column;gap:.2rem;padding:1rem 1.25rem;border-radius:10px;border:1px solid #1e293b;background:#0f172a;min-width:140px;flex:1}.overview__stat-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#64748b}.overview__stat-value{font-size:1.4rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.overview__stat-value--pos{color:#4ade80}.overview__stat-value--neg{color:#f87171}.overview__stat-value--zero{color:#64748b}.overview__stat-sub{font-size:.74rem;color:#64748b;margin-top:.1rem}.overview__chart-section{margin-bottom:1.75rem}.overview__chart-title{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:#64748b;margin:0 0 .75rem;display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.overview__chart-subtitle{font-size:.75rem;font-weight:400;text-transform:none;letter-spacing:0;color:#475569}.overview__chart-wrap{background:#0f172a;border:1px solid #1e293b;border-radius:10px;padding:1rem .5rem .5rem}.overview__tooltip{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:.6rem .9rem;font-size:.85rem}.overview__tooltip-label{font-weight:600;color:#e2e8f0;margin:0 0 .4rem}.overview__tooltip-row{display:flex;justify-content:space-between;gap:1.5rem;margin:.15rem 0;font-variant-numeric:tabular-nums}.overview__tooltip-row span:first-child{color:#94a3b8}.overview__muted{color:#64748b;margin:0}@media(prefers-color-scheme:light){.overview__month-input,.overview__select{border-color:#e2e8f0;background:#fff;color:#1e293b}.overview__stat-card,.overview__chart-wrap{background:#f8fafc;border-color:#e2e8f0}.overview__tooltip{background:#fff;border-color:#e2e8f0}.overview__tooltip-label{color:#1e293b}}.transactions-page{max-width:960px;padding:0 .5rem}.transactions-page__title{font-size:1.75rem;font-weight:700;margin:0 0 1rem}.transactions-page__overview{display:flex;gap:.75rem;margin-bottom:1.25rem;flex-wrap:wrap}.transactions-page__stat-card{display:flex;flex-direction:column;gap:.2rem;padding:.85rem 1.1rem;border-radius:10px;border:1px solid var(--card-border, #1e293b);background:var(--card-bg, #0f172a);min-width:130px;flex:1}.transactions-page__stat-card--net{border-color:#334155}.transactions-page__stat-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-soft, #64748b)}.transactions-page__stat-value{font-size:1.3rem;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.2}.transactions-page__stat-value--zero{color:var(--text-soft, #64748b)}.transactions-page__stat-sub{font-size:.75rem;color:var(--text-soft, #64748b);white-space:nowrap}.transactions-page__stat-card--clickable{cursor:pointer;transition:border-color .15s,background .15s;position:relative}.transactions-page__stat-card--clickable:hover{border-color:#6366f1;background:var(--card-hover, #131f35)}.transactions-page__stat-card--active{border-color:#6366f1!important;background:var(--card-active, #1a1f3a)}.transactions-page__stat-dismiss{position:absolute;top:5px;right:6px;background:none;border:none;color:var(--text-soft, #64748b);font-size:.65rem;cursor:pointer;padding:0;line-height:1}.transactions-page__stat-dismiss:hover{color:#e2e8f0}.transactions-page__filters{display:flex;gap:.75rem;margin-bottom:1rem}.transactions-page__select,.transactions-page__search,.transactions-page__date-input{padding:.4rem .75rem;border-radius:6px;border:1px solid #334155;background:#1e293b;color:#e2e8f0;font-size:.9rem}.transactions-page__search{min-width:200px}.transactions-page__muted{color:#64748b;margin:0}.transactions-page__table-wrap{border-radius:8px;border:1px solid #334155;overflow:hidden;background:#1e293b}.transactions-page__table{width:100%;border-collapse:collapse;font-size:.9rem}.transactions-page__table th{padding:.5rem .75rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;background:#0f172a;border-bottom:1px solid #334155}.transactions-page__table td{padding:.45rem .75rem;border-bottom:1px solid #1e293b}.transactions-page__table tbody tr:last-child td{border-bottom:none}.transactions-page__table tbody tr:hover td{background:#ffffff0a}.transactions-page__amount{text-align:right;font-variant-numeric:tabular-nums}.transactions-page__date{white-space:nowrap}.transactions-page__account{color:#94a3b8;font-size:.875em}.transactions-page__account-link{color:inherit;text-decoration:none}.transactions-page__account-link:hover{color:#6366f1;text-decoration:underline}.transactions-page__pos{color:#4ade80}.transactions-page__neg{color:#f87171}.transactions-page__cat-toggle{display:flex;border:1px solid #334155;border-radius:6px;overflow:hidden}.transactions-page__cat-btn{padding:.4rem .85rem;background:#1e293b;border:none;border-right:1px solid #334155;color:#94a3b8;font-size:.875rem;cursor:pointer;transition:background .12s,color .12s;white-space:nowrap}.transactions-page__cat-btn:last-child{border-right:none}.transactions-page__cat-btn:hover{background:#0f172a;color:#e2e8f0}.transactions-page__cat-btn--active{background:#6366f1;color:#fff;font-weight:600}.transactions-page__cat-btn--active:hover{background:#4f46e5}.transactions-page__badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}.transactions-page__badge--income{background:#4ade801f;color:#4ade80}.transactions-page__badge--transfer{background:#60a5fa1f;color:#60a5fa}.transactions-page__badge--personal{background:#a78bfa1f;color:#a78bfa}.transactions-page__badge--business{background:#fbbf241f;color:#fbbf24}@media(prefers-color-scheme:light){.transactions-page__stat-card{--card-bg: #f8fafc;--card-border: #e2e8f0;--card-hover: #f1f5f9;--card-active: #eef2ff}.transactions-page__stat-card--net{border-color:#cbd5e1}.transactions-page__select,.transactions-page__search,.transactions-page__date-input{border-color:#e2e8f0;background:#fff;color:#1e293b}.transactions-page__cat-toggle{border-color:#e2e8f0}.transactions-page__cat-btn{background:#f8fafc;border-color:#e2e8f0;color:#64748b}.transactions-page__cat-btn:hover{background:#f1f5f9;color:#1e293b}.transactions-page__account{color:#64748b}.transactions-page__table-wrap{border-color:#e2e8f0;background:#fff}.transactions-page__table th{background:#f1f5f9;color:#64748b;border-bottom-color:#e2e8f0}.transactions-page__table td{border-bottom-color:#f1f5f9}.transactions-page__table tbody tr:hover td{background:#f8fafc}}.accounts-list{max-width:720px}.accounts-list__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.accounts-list__title{font-size:1.75rem;font-weight:700;margin:0}.accounts-list__add{padding:.5rem 1rem;font-size:.9rem;font-weight:500;color:#fff;background:#6366f1;border-radius:8px;text-decoration:none;transition:opacity .2s}.accounts-list__add:hover{opacity:.9}.accounts-list__msg,.accounts-list__empty,.accounts-list__error{margin:0;color:var(--text-muted, #64748b)}.accounts-list__error{color:#ef4444}.accounts-list__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.accounts-list__item{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--card-bg, rgba(255, 255, 255, .05));border:1px solid var(--card-border, rgba(255, 255, 255, .08));border-radius:8px}.accounts-list__link{flex:1;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.25rem}.accounts-list__link:hover{color:#818cf8}.accounts-list__name{font-weight:600}.accounts-list__meta{font-size:.875rem;color:var(--text-muted, #64748b)}.accounts-list__edit{font-size:.875rem;color:#6366f1;text-decoration:none}.accounts-list__edit:hover{text-decoration:underline}@media(prefers-color-scheme:light){.accounts-list__item{--card-bg: #fff;--card-border: #e2e8f0}}.account-form{max-width:480px}.account-form__title{font-size:1.75rem;font-weight:700;margin:0 0 1.5rem}.account-form__form{display:flex;flex-direction:column;gap:.75rem}.account-form__label{font-size:.875rem;font-weight:500;color:var(--text-soft, #94a3b8)}.account-form__label--row{display:flex;align-items:center;gap:.5rem;cursor:pointer}.account-form__input{padding:.6rem .75rem;font-size:1rem;border-radius:8px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #1e293b);color:inherit}.account-form__input:focus{outline:none;border-color:#6366f1}.account-form__error{margin:0;font-size:.875rem;color:#ef4444}.account-form__actions{display:flex;gap:.75rem;margin-top:.5rem}.account-form__submit{padding:.6rem 1.25rem;font-size:.95rem;font-weight:600;border:none;border-radius:8px;background:#6366f1;color:#fff;cursor:pointer}.account-form__submit:hover:not(:disabled){opacity:.9}.account-form__submit:disabled{opacity:.7;cursor:not-allowed}.account-form__cancel{padding:.6rem 1rem;font-size:.95rem;border-radius:8px;border:1px solid var(--btn-border, #334155);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer}.account-form__cancel:hover{border-color:#6366f1;color:#818cf8}.account-form__rules-header{display:flex;align-items:center;justify-content:space-between}.account-form__rules-edit{font-size:.8rem;padding:.25rem .65rem;border-radius:6px;border:1px solid #6366f1;background:transparent;color:#818cf8;cursor:pointer}.account-form__rules-edit:hover{background:#6366f11a}.account-form__rules-empty{margin:0;font-size:.85rem;color:var(--text-soft, #64748b)}.account-form__rules-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.3rem}.account-form__rules-item{font-size:.82rem;padding:.35rem .6rem;background:var(--rule-bg, #1e293b);border-radius:6px;color:var(--text-soft, #94a3b8);border:1px solid var(--input-border, #334155);font-family:monospace}.rules-modal__overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:200}.rules-modal{background:var(--modal-bg, #0f172a);border:1px solid var(--input-border, #334155);border-radius:12px;padding:1.5rem;width:720px;max-width:calc(100vw - 2rem);max-height:calc(100vh - 4rem);overflow-y:auto;display:flex;flex-direction:column;gap:.75rem}.rules-modal__header{display:flex;align-items:center;justify-content:space-between}.rules-modal__title{font-size:1.15rem;font-weight:700;margin:0}.rules-modal__close{background:none;border:none;font-size:1rem;color:var(--text-soft, #94a3b8);cursor:pointer;padding:.25rem}.rules-modal__close:hover{color:#f1f5f9}.rules-modal__hint{margin:0;font-size:.82rem;color:var(--text-soft, #64748b)}.rules-modal__empty{margin:0;font-size:.85rem;color:var(--text-soft, #64748b);text-align:center;padding:.75rem 0}.rules-modal__row{display:flex;align-items:center;gap:.5rem}.rules-modal__row-num{font-size:.75rem;color:var(--text-soft, #64748b);min-width:1.2rem;text-align:right}.rules-modal__sel{padding:.4rem .5rem;font-size:.875rem;border-radius:6px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #1e293b);color:inherit;flex-shrink:0}.rules-modal__sel--type{text-transform:capitalize}.rules-modal__input{flex:1;padding:.4rem .5rem;font-size:.875rem;border-radius:6px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #1e293b);color:inherit;min-width:0}.rules-modal__input:focus,.rules-modal__sel:focus{outline:none;border-color:#6366f1}.rules-modal__arrow{color:var(--text-soft, #64748b);font-size:.9rem;flex-shrink:0}.rules-modal__del{background:none;border:none;color:#ef4444;cursor:pointer;font-size:.8rem;padding:.25rem .4rem;border-radius:4px;flex-shrink:0}.rules-modal__del:hover{background:#ef44441a}.rules-modal__add{align-self:flex-start;font-size:.85rem;padding:.35rem .75rem;border-radius:6px;border:1px dashed var(--input-border, #334155);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer}.rules-modal__add:hover{border-color:#6366f1;color:#818cf8}.rules-modal__footer{display:flex;gap:.75rem;padding-top:.25rem;border-top:1px solid var(--input-border, #334155)}.rules-modal__save{padding:.5rem 1.25rem;font-size:.95rem;font-weight:600;border:none;border-radius:8px;background:#6366f1;color:#fff;cursor:pointer}.rules-modal__save:hover{opacity:.9}.rules-modal__cancel{padding:.5rem 1rem;font-size:.95rem;border-radius:8px;border:1px solid var(--btn-border, #334155);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer}.rules-modal__cancel:hover{border-color:#6366f1;color:#818cf8}@media(prefers-color-scheme:light){.account-form__input{--input-border: #cbd5e1;--input-bg: #f8fafc}.account-form__cancel{--btn-border: #cbd5e1;color:#475569}.account-form__rules-item{--rule-bg: #f1f5f9}.rules-modal{--modal-bg: #ffffff;--input-border: #cbd5e1;--input-bg: #f8fafc}.rules-modal__cancel{--btn-border: #cbd5e1;color:#475569}}.account-detail{max-width:720px}.account-detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:2rem}.account-detail__title{font-size:1.75rem;font-weight:700;margin:0 0 .25rem}.account-detail__meta{margin:0;font-size:.95rem;color:var(--text-muted, #64748b)}.account-detail__edit{font-size:.9rem;font-weight:500;color:#6366f1;text-decoration:none}.account-detail__edit:hover{text-decoration:underline}.account-detail__section{margin-bottom:2rem}.account-detail__section-title{font-size:1.1rem;font-weight:600;margin:0 0 1rem}.account-detail__upload{margin-bottom:1.5rem}.account-detail__upload-input-hidden{position:absolute;width:.1px;height:.1px;opacity:0;overflow:hidden;z-index:-1}.account-detail__upload-btn{padding:.5rem 1rem;font-size:.9rem;font-weight:600;border:none;border-radius:8px;background:#6366f1;color:#fff;cursor:pointer}.account-detail__upload-btn:hover:not(:disabled){opacity:.9}.account-detail__upload-btn:disabled{opacity:.6;cursor:not-allowed}.account-detail__upload-error{margin:.5rem 0 0;font-size:.875rem;color:#ef4444}.account-detail__modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.account-detail__modal{background:var(--card-bg, #1e293b);border:1px solid var(--card-border, #334155);border-radius:12px;max-width:480px;width:100%;max-height:85vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0006}.account-detail__modal-head{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--card-border, #334155)}.account-detail__modal-title{margin:0;font-size:1.1rem;font-weight:600}.account-detail__modal-close{width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-soft, #94a3b8);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.account-detail__modal-close:hover{background:#ffffff14;color:inherit}.account-detail__modal-list{list-style:none;margin:0;padding:.75rem 1.25rem;overflow-y:auto}.account-detail__modal-row{display:grid;grid-template-columns:1fr minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--card-border, rgba(255, 255, 255, .06))}.account-detail__modal-row:last-child{border-bottom:none}.account-detail__modal-row-file{font-size:.875rem;color:var(--text-soft, #94a3b8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-detail__modal-input{padding:.45rem .6rem;font-size:.9rem;border-radius:6px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #0f172a);color:inherit}.account-detail__modal-input:focus{outline:none;border-color:#6366f1}.account-detail__modal-input:disabled{opacity:.7;cursor:not-allowed}.account-detail__modal-status{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0}.account-detail__modal-spinner{width:18px;height:18px;border:2px solid rgba(99,102,241,.3);border-top-color:#6366f1;border-radius:50%;animation:account-detail-spin .7s linear infinite}@keyframes account-detail-spin{to{transform:rotate(360deg)}}.account-detail__modal-check{color:#4ade80;font-size:1.1rem;font-weight:700}.account-detail__modal-error{color:#f87171;font-size:1rem;cursor:help}.account-detail__modal-row--error .account-detail__modal-input{border-color:#f8717180}.account-detail__modal-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.25rem;border-top:1px solid var(--card-border, #334155)}.account-detail__modal-cancel{padding:.5rem 1rem;font-size:.9rem;border-radius:8px;border:1px solid var(--card-border, #475569);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer;transition:background .15s,color .15s}.account-detail__modal-cancel:hover{background:#ffffff14;color:inherit}.account-detail__modal-upload{padding:.5rem 1rem;font-size:.9rem;font-weight:600;border-radius:8px;border:none;background:#6366f1;color:#fff;cursor:pointer;transition:opacity .15s}.account-detail__modal-upload:hover:not(:disabled){opacity:.9}.account-detail__modal-upload:disabled{opacity:.5;cursor:not-allowed}.account-detail__empty{margin:0;color:var(--text-muted, #64748b);font-size:.95rem}.account-detail__table-wrap{overflow-x:auto;border:1px solid var(--card-border, rgba(255, 255, 255, .08));border-radius:8px;background:var(--card-bg, rgba(255, 255, 255, .03))}.account-detail__table{width:100%;border-collapse:collapse;font-size:.9rem}.account-detail__table th,.account-detail__table td{padding:.6rem .75rem;text-align:left;border-bottom:1px solid var(--card-border, rgba(255, 255, 255, .08))}.account-detail__table th{font-weight:600;color:var(--text-soft, #94a3b8);background:#0003}.account-detail__table tbody tr:last-child td{border-bottom:none}.account-detail__table tbody tr:hover{background:#ffffff0a}.account-detail__cell-filename{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-detail__back{margin:0;margin-top:1.5rem}.account-detail__back a{color:#6366f1;text-decoration:none;font-size:.9rem}.account-detail__back a:hover{text-decoration:underline}.account-detail__error{color:#ef4444;margin:0 0 .5rem}.account-detail__import-btn{padding:.25rem .75rem;font-size:.8rem;border-radius:6px;border:1px solid #6366f1;background:transparent;color:#6366f1;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s}.account-detail__import-btn:hover{background:#6366f1;color:#fff}.account-detail__actions-col{width:1%;white-space:nowrap}.account-detail__actions-cell{vertical-align:middle}.account-detail__row-actions{display:flex;align-items:center;gap:.5rem;position:relative}.account-detail__menu-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer;transition:background .15s,color .15s}.account-detail__menu-btn:hover:not(:disabled){background:#ffffff14;color:inherit}.account-detail__menu-btn:disabled{opacity:.6;cursor:not-allowed}.account-detail__menu-dots{font-size:1.25rem;line-height:1;letter-spacing:.02em}.account-detail__menu{position:absolute;top:100%;right:0;margin-top:.25rem;min-width:220px;padding:.25rem 0;border-radius:8px;border:1px solid var(--card-border, rgba(255, 255, 255, .12));background:var(--card-bg, #1e293b);box-shadow:0 4px 12px #0000004d;z-index:10}.account-detail__menu-item{display:block;width:100%;padding:.5rem 1rem;text-align:left;font-size:.9rem;border:none;background:none;color:inherit;cursor:pointer;transition:background .15s}.account-detail__menu-item:hover{background:#ffffff14}.account-detail__menu-item--danger{color:#f87171}.account-detail__menu-item--danger:hover{background:#f8717126}@media(prefers-color-scheme:light){.account-detail__table-wrap{--card-bg: #fff;--card-border: #e2e8f0}.account-detail__table th{background:#f1f5f9}.account-detail__table tbody tr:hover{background:#f8fafc}.account-detail__menu-btn:hover:not(:disabled){background:#0000000f}.account-detail__menu{--card-bg: #fff;--card-border: #e2e8f0;box-shadow:0 4px 12px #0000001f}.account-detail__menu-item:hover{background:#f1f5f9}.account-detail__menu-item--danger:hover{background:#fef2f2}.account-detail__modal{--card-bg: #fff;--card-border: #e2e8f0;box-shadow:0 20px 40px #00000026}.account-detail__modal-input{--input-border: #cbd5e1;--input-bg: #f8fafc}.account-detail__modal-cancel:hover{background:#f1f5f9;color:#1e293b}}.stmt-import{padding:2rem 2.5rem;max-width:1000px}.stmt-import__head{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.75rem;flex-wrap:wrap}.stmt-import__back{color:#94a3b8;text-decoration:none;font-size:.9rem}.stmt-import__back:hover{color:#e2e8f0}.stmt-import__title{font-size:1.6rem;font-weight:600;margin:0;flex:1}.stmt-import__menu-wrap{position:relative;margin-left:auto}.stmt-import__menu-trigger{padding:.3rem .65rem;border-radius:8px;border:1px solid var(--card-border, #1e293b);background:transparent;color:var(--text-soft, #94a3b8);font-size:1.1rem;letter-spacing:.05em;cursor:pointer;line-height:1;transition:border-color .15s,color .15s}.stmt-import__menu-trigger:hover{border-color:#6366f1;color:#e2e8f0}.stmt-import__menu{position:absolute;top:calc(100% + 6px);right:0;background:var(--menu-bg, #1e293b);border:1px solid var(--card-border, #334155);border-radius:8px;box-shadow:0 8px 24px #0006;min-width:160px;z-index:50;overflow:hidden}.stmt-import__menu-item{display:block;width:100%;text-align:left;padding:.6rem 1rem;font-size:.9rem;background:none;border:none;color:inherit;cursor:pointer;transition:background .12s}.stmt-import__menu-item:hover:not(:disabled){background:#ffffff0f}.stmt-import__menu-item:disabled{opacity:.4;cursor:not-allowed}.stmt-import__menu-item--danger{color:#f87171}.stmt-import__menu-item--danger:hover:not(:disabled){background:#f871711a}.stmt-import__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:200px;padding:3rem 0;color:#94a3b8}.stmt-import__spinner{flex-shrink:0;width:40px;height:40px;border:3px solid rgba(99,102,241,.25);border-top-color:#6366f1;border-radius:50%;animation:stmt-import-spin .8s linear infinite}@keyframes stmt-import-spin{to{transform:rotate(360deg)}}.stmt-import__error{background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:10px;padding:1rem 1.25rem;color:#fca5a5;font-size:.95rem}.stmt-import__empty{color:#64748b;font-size:.95rem}.stmt-import__count{color:#94a3b8;font-size:.9rem;margin:0}.stmt-import__table-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.stmt-import__table-actions{display:flex;gap:.5rem}.stmt-import__edit-btn,.stmt-import__cancel-btn{padding:.4rem .9rem;font-size:.875rem;border-radius:8px;border:1px solid var(--card-border, #475569);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer;transition:background .15s,color .15s}.stmt-import__edit-btn:hover,.stmt-import__cancel-btn:hover:not(:disabled){background:#ffffff14;color:inherit}.stmt-import__save-btn{padding:.4rem .9rem;font-size:.875rem;font-weight:600;border-radius:8px;border:none;background:#6366f1;color:#fff;cursor:pointer;transition:opacity .15s}.stmt-import__save-btn:hover:not(:disabled){opacity:.9}.stmt-import__save-btn:disabled,.stmt-import__cancel-btn:disabled{opacity:.6;cursor:not-allowed}.stmt-import__table-wrap{border-radius:10px;border:1px solid var(--card-border, #334155);overflow:hidden;background:var(--card-bg, #1e293b)}.stmt-import__table{width:100%;border-collapse:collapse;font-size:.9rem}.stmt-import__table th{padding:.6rem 1rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;background:var(--th-bg, #162032);border-bottom:1px solid var(--card-border, #334155)}.stmt-import__table td{padding:.55rem 1rem;border-bottom:1px solid var(--card-border, #1e293b);color:#e2e8f0}.stmt-import__table tbody tr:last-child td{border-bottom:none}.stmt-import__table tbody tr:hover td{background:#ffffff08}.stmt-import__amount-col{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.stmt-import__date-col{white-space:nowrap}.stmt-import__neg{color:#f87171}.stmt-import__pos{color:#4ade80}.stmt-import__del-col{width:2.5rem;padding:.35rem .5rem!important;vertical-align:middle;text-align:center}.stmt-import__row-action{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer;font-size:1rem;transition:background .15s,color .15s}.stmt-import__row-action:hover{background:#ffffff1a;color:#f87171}.stmt-import__row-action:hover .stmt-import__undo-icon{color:#4ade80}.stmt-import__del-icon,.stmt-import__undo-icon{line-height:1}.stmt-import__row--edited td{background:#6366f11f}.stmt-import__row--edited td .stmt-import__input{background:#6366f114}.stmt-import__row--deleted td{opacity:.5;background:#00000026}.stmt-import__row--deleted td .stmt-import__input{background:#0003}.stmt-import__input{width:100%;min-width:0;padding:.35rem .5rem;font-size:.875rem;border:1px solid var(--input-border, #475569);border-radius:6px;background:var(--input-bg, #0f172a);color:inherit}.stmt-import__input:focus{outline:none;border-color:#6366f1}.stmt-import__input:disabled{cursor:not-allowed;opacity:.8}.stmt-import__input--full{min-width:160px}.stmt-import__amount-input{text-align:right;font-variant-numeric:tabular-nums;max-width:7rem}.stmt-import__type-col{white-space:nowrap;width:8rem}.stmt-import__type-select{min-width:6.5rem;cursor:pointer}.stmt-import__type-badge-cell{vertical-align:middle}.stmt-import__type-badge{display:inline-block;padding:.2rem .55rem;font-size:.75rem;font-weight:600;border-radius:999px;text-transform:capitalize;letter-spacing:.02em}.stmt-import__type-badge--income{background:#4ade8026;color:#4ade80}.stmt-import__type-badge--transfer{background:#94a3b826;color:#94a3b8}@media(prefers-color-scheme:light){.stmt-import__menu-trigger{--card-border: #e2e8f0;color:#475569}.stmt-import__menu-trigger:hover{color:#1e293b}.stmt-import__menu{--menu-bg: #ffffff;--card-border: #e2e8f0;box-shadow:0 8px 24px #0000001f}.stmt-import__menu-item{color:#1e293b}.stmt-import__menu-item:hover:not(:disabled){background:#0000000a}.stmt-import__back{color:#64748b}.stmt-import__back:hover{color:#1e293b}.stmt-import__table-wrap{--card-bg: #fff;--card-border: #e2e8f0;--th-bg: #f1f5f9}.stmt-import__table th{color:#64748b;border-bottom-color:#e2e8f0}.stmt-import__table td{color:#1e293b;border-bottom-color:#f1f5f9}.stmt-import__table tbody tr:hover td{background:#f8fafc}.stmt-import__loading{color:#64748b}.stmt-import__edit-btn,.stmt-import__cancel-btn{border-color:#cbd5e1;color:#64748b}.stmt-import__edit-btn:hover,.stmt-import__cancel-btn:hover:not(:disabled){background:#f1f5f9;color:#1e293b}.stmt-import__row--edited td{background:#6366f114}.stmt-import__row--edited td .stmt-import__input{background:#6366f10d}.stmt-import__row--deleted td{background:#f1f5f9}.stmt-import__row--deleted td .stmt-import__input{background:#e2e8f0}.stmt-import__input{--input-border: #cbd5e1;--input-bg: #f8fafc}.stmt-import__type-badge--income{background:#15803d1a;color:#15803d}.stmt-import__type-badge--transfer{background:#64748b1f;color:#475569}}.account{max-width:520px;margin:0;padding:2rem 0}.account__card{padding:1.5rem;background:var(--card-bg, rgba(255, 255, 255, .05));border-radius:12px;border:1px solid var(--card-border, rgba(255, 255, 255, .08))}.account__title{font-size:1.5rem;font-weight:700;margin:0 0 1.25rem}.account__dl{margin:0 0 1.5rem}.account__dt{font-size:.8rem;font-weight:500;color:var(--text-muted, #64748b);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.account__dd{font-size:1.1rem;margin:0;color:var(--text-soft, #94a3b8)}.account__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;padding-top:1rem;border-top:1px solid var(--card-border, rgba(255, 255, 255, .08))}.account__link{font-size:.9rem;color:#6366f1;text-decoration:none}.account__link:hover{text-decoration:underline}.account__logout{padding:.5rem 1rem;font-size:.9rem;border-radius:8px;border:1px solid var(--btn-border, #475569);background:transparent;color:var(--text-soft, #94a3b8);cursor:pointer}.account__logout:hover{border-color:#ef4444;color:#f87171}.account__loading{color:var(--text-muted, #64748b);margin:0}.account__section{margin:1.5rem 0;padding-top:1.5rem;border-top:1px solid var(--card-border, rgba(255, 255, 255, .08))}.account__section-title{font-size:1.1rem;font-weight:600;margin:0 0 .35rem}.account__section-hint{font-size:.85rem;color:var(--text-muted, #64748b);margin:0 0 1rem}.account__tag-form{display:flex;gap:.5rem;margin-bottom:1rem}.account__input{flex:1;padding:.5rem .75rem;font-size:1rem;border-radius:8px;border:1px solid var(--input-border, #334155);background:var(--input-bg, #1e293b);color:inherit}.account__input:focus{outline:none;border-color:#6366f1}.account__btn{padding:.5rem .9rem;font-size:.9rem;border-radius:8px;cursor:pointer;font-weight:500}.account__btn--primary{border:none;background:#6366f1;color:#fff}.account__btn--primary:hover:not(:disabled){opacity:.9}.account__btn--secondary{border:1px solid var(--btn-border, #475569);background:transparent;color:var(--text-soft, #94a3b8)}.account__btn--secondary:hover:not(:disabled){border-color:#6366f1;color:#818cf8}.account__btn--danger{border:1px solid rgba(239,68,68,.5);background:transparent;color:#f87171}.account__btn--danger:hover:not(:disabled){background:#ef44441a}.account__btn--small{padding:.25rem .5rem;font-size:.8rem}.account__btn:disabled{opacity:.6;cursor:not-allowed}.account__empty{font-size:.9rem;color:var(--text-muted, #64748b);margin:0}.account__tag-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.5rem}.account__tag-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;background:var(--tag-bg, rgba(30, 41, 59, .5));border-radius:8px;border:1px solid var(--input-border, #334155)}.account__tag-name{flex:1;font-size:.95rem}.account__tag-edit-input{flex:1;min-width:0}@media(prefers-color-scheme:light){.account__input{--input-border: #cbd5e1;--input-bg: #f8fafc}.account__tag-item{--tag-bg: #f1f5f9}.account__btn--secondary{--btn-border: #cbd5e1;color:#475569}.account__card{--card-bg: #fff;--card-border: #e2e8f0}.account__dd{color:#334155}.account__logout{--btn-border: #cbd5e1;color:#475569}.account__logout:hover{color:#dc2626}}.taxes-page{max-width:900px;padding:0 .5rem}.taxes-page__header{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.taxes-page__title{font-size:1.75rem;font-weight:700;margin:0;flex:1}.taxes-page__recalc-btn{padding:.4rem 1rem;border-radius:6px;border:1px solid #334155;background:#1e293b;color:#e2e8f0;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:border-color .15s,background .15s}.taxes-page__recalc-btn:hover:not(:disabled){border-color:#6366f1;background:#131f35}.taxes-page__recalc-btn:disabled{opacity:.5;cursor:not-allowed}.taxes-page__recalc-msg{font-size:.875rem;color:#94a3b8;margin:0 0 .75rem}.taxes-page__muted{color:#64748b;margin:0}.taxes-page__error{color:#f87171;margin:0}.taxes-page__year-selector{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.taxes-page__year-btn{padding:.3rem .9rem;border-radius:6px;border:1px solid #334155;background:#1e293b;color:#94a3b8;font-size:.875rem;cursor:pointer;transition:border-color .15s,color .15s}.taxes-page__year-btn:hover{border-color:#6366f1;color:#e2e8f0}.taxes-page__year-btn--active{border-color:#6366f1;background:#1a1f3a;color:#e2e8f0;font-weight:600}.taxes-page__table-wrap{border-radius:8px;border:1px solid #334155;overflow-x:auto;background:#1e293b}.taxes-page__table{width:100%;border-collapse:collapse;font-size:.9rem}.taxes-page__table th{padding:.5rem .75rem;text-align:left;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:#94a3b8;background:#0f172a;border-bottom:1px solid #334155}.taxes-page__table th.taxes-page__num,.taxes-page__table td.taxes-page__num{text-align:right;font-variant-numeric:tabular-nums}.taxes-page__table td{padding:.45rem .75rem;border-bottom:1px solid #1e293b}.taxes-page__table tbody tr:last-child td{border-bottom:none}.taxes-page__table tbody tr:hover td{background:#ffffff0a}.taxes-page__table tfoot td{padding:.55rem .75rem;border-top:2px solid #334155;font-weight:600}.taxes-page__ytd-row td{background:#0f172a}.taxes-page__pos{color:#4ade80}.taxes-page__neg{color:#f87171}.taxes-page__taxable{color:#a78bfa}.taxes-page__owed{color:#fb923c}.taxes-page__estimate-col{border-left:1px solid #1e3a52}.taxes-page__budget-col{border-left:2px solid #334155}.taxes-page__table th.taxes-page__estimate-col{border-left:1px solid #1e3a52;background:#060f1a}@media(prefers-color-scheme:light){.taxes-page__recalc-btn{border-color:#e2e8f0;background:#f8fafc;color:#1e293b}.taxes-page__recalc-btn:hover:not(:disabled){background:#f1f5f9}.taxes-page__year-btn{border-color:#e2e8f0;background:#f8fafc;color:#64748b}.taxes-page__year-btn--active{background:#eef2ff;color:#1e293b}.taxes-page__table-wrap{border-color:#e2e8f0;background:#fff}.taxes-page__table th{background:#f1f5f9;color:#64748b;border-bottom-color:#e2e8f0}.taxes-page__table td{border-bottom-color:#f1f5f9}.taxes-page__table tbody tr:hover td{background:#f8fafc}.taxes-page__table tfoot td{border-top-color:#e2e8f0}.taxes-page__ytd-row td{background:#f1f5f9}}#root{min-height:100vh;min-width:960px;margin:0;padding:0}
