.toast-stack{bottom:var(--spacing-lg);left:var(--spacing-lg);z-index:2000;gap:var(--spacing-sm);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-popover);pointer-events:auto;max-width:400px;animation:.2s ease-out toast-slide-in;display:flex}.toast--error{border:1px solid var(--color-error-tint-border);border-left:4px solid var(--color-error)}.toast--error .toast__icon{color:var(--color-error-text)}.toast--success{border:1px solid var(--color-success-tint-border);border-left:4px solid var(--color-success)}.toast--success .toast__icon{color:var(--color-success-text)}.toast--warning{border:1px solid var(--color-warning-tint-border);border-left:4px solid var(--color-warning)}.toast--warning .toast__icon{color:var(--color-warning-text)}.toast__message{color:var(--color-text);flex:1;font-size:.8rem;font-weight:500;line-height:1.4}.toast__close{color:var(--color-text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;flex-shrink:0;align-items:center;padding:2px;display:flex}.toast__close:hover{color:var(--color-text);background:var(--color-hover)}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);border:none;padding:10px 20px;font-size:.9rem;font-weight:500;transition:background-color .15s,opacity .15s;display:inline-flex}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{color:var(--color-primary);border:1px solid var(--color-border);background:0 0}.btn--secondary:hover:not(:disabled){background:var(--color-primary-tint-subtle)}.btn--destructive.btn--primary{background:var(--color-error)}.btn--destructive.btn--primary:hover:not(:disabled){background:var(--color-error-hover)}.btn--destructive.btn--secondary{color:var(--color-error-text);border-color:var(--color-error)}.btn--destructive.btn--secondary:hover:not(:disabled){background:var(--color-error-tint)}.btn--small{padding:6px 14px;font-size:.85rem}.btn--full-width{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.btn .spinner{width:16px;height:16px}.error-boundary{min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.error-boundary__card{text-align:center;max-width:480px}.error-boundary__title{margin-bottom:var(--spacing-sm);font-size:1.5rem;font-weight:700}.error-boundary__message{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem;line-height:1.5}.error-boundary__detail{background:var(--color-error-tint);border:1px solid var(--color-error-tint-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-error-text);margin-bottom:var(--spacing-lg);text-align:left;white-space:pre-wrap;word-break:break-word;font-size:.8rem;font-family:var(--font-mono)}.error-boundary__actions{justify-content:center;gap:var(--spacing-sm);display:flex}.offline-banner{z-index:2500;text-align:center;color:var(--color-error-hover);background:var(--color-error-tint);border-bottom:1px solid var(--color-error-tint-border);justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;display:flex;position:fixed;top:0;left:0;right:0}.offline-banner__icon{flex-shrink:0}.auth-loading{justify-content:center;align-items:center;min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--color-surface);border-right:1px solid var(--color-border);z-index:100;flex-direction:column;flex-shrink:0;min-height:100vh;display:flex;position:fixed;top:0;left:0}.sidebar__logo{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-xl);-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;text-decoration:none;display:flex}.sidebar__logo:hover{text-decoration:none}.sidebar__wordmark{width:auto;max-width:100%;height:50px}.sidebar__nav{gap:var(--spacing-xs);padding:0 var(--spacing-sm);flex-direction:column;display:flex}.sidebar__link{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;font-size:.875rem;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar__link:hover{background:var(--color-hover);color:var(--color-text);text-decoration:none}.sidebar__link--active{background:var(--color-primary-tint);color:var(--color-primary)}.sidebar__link--active:hover{background:var(--color-primary-tint-strong);color:var(--color-primary)}.sidebar-backdrop{background:var(--color-backdrop);z-index:99;position:fixed;inset:0}@media (width<=767px){.sidebar{transition:transform .25s;transform:translate(-100%)}.sidebar--open{transform:translate(0)}}@media (width>=768px){.sidebar-backdrop{display:none}}.modal-overlay{background:var(--color-backdrop);z-index:1000;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);flex-direction:column;width:100%;max-width:560px;max-height:80vh;display:flex;overflow:hidden}.modal--wide{max-width:800px}.modal__header{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.modal__header h2{font-size:1.25rem;font-weight:700}.modal__close{color:var(--color-text-secondary);padding:var(--spacing-xs);background:0 0;border:none;font-size:1.5rem;line-height:1}.modal__close:hover{color:var(--color-text)}.modal__body{padding:0 var(--spacing-lg) var(--spacing-lg);flex:1;overflow-y:auto}.modal__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.85rem}.modal__fields{gap:var(--spacing-xs);flex-direction:column;display:flex}.modal__footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);justify-content:flex-end;gap:var(--spacing-sm);display:flex}.help-modal{max-width:900px;max-height:88vh}.help-modal__masthead{padding:var(--spacing-lg) var(--spacing-xl);background:var(--color-primary-tint-faint);border-bottom:1px solid var(--color-border);position:relative}.help-modal__eyebrow{margin:0 0 var(--spacing-xs);letter-spacing:.09em;text-transform:uppercase;color:var(--color-primary);font-size:.7rem;font-weight:600}.help-modal h2{letter-spacing:-.01em;color:var(--color-text);margin:0;font-size:1.5rem;font-weight:700}.help-modal__intro{margin:var(--spacing-sm) 0 0;padding-right:var(--spacing-xl);max-width:56ch;color:var(--color-text-secondary);font-size:1rem;line-height:1.6}.help-modal__close{top:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-xs);color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;font-size:1.5rem;line-height:1;position:absolute}.help-modal__close:hover{color:var(--color-text)}.help-modal__body{padding:var(--spacing-xs) var(--spacing-xl) var(--spacing-lg)}.help-modal__loading{padding:var(--spacing-2xl) 0;justify-content:center;display:flex}.help-modal__items{margin:0}.help-modal__row{gap:var(--spacing-xl);padding:var(--spacing-lg) 0;grid-template-columns:200px 1fr;align-items:start;display:grid}.help-modal__term{color:var(--color-text);align-items:center;gap:var(--spacing-sm);min-height:28px;margin:0;font-size:.9375rem;font-weight:600;display:flex}.help-modal__icon{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--affordance-fill,var(--color-surface-alt));color:var(--color-text-secondary);vertical-align:middle;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.help-modal__desc{color:var(--color-text-secondary);max-width:62ch;margin:0;font-size:.9375rem;line-height:1.7}@media (width<=720px){.help-modal__masthead{padding:var(--spacing-lg)}.help-modal__body{padding:var(--spacing-sm) var(--spacing-lg) var(--spacing-xl)}.help-modal__row{gap:var(--spacing-sm);padding:var(--spacing-md) 0;grid-template-columns:1fr}}.trial-pill{color:var(--color-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;align-items:center;font-size:.85rem;font-weight:500;line-height:normal;text-decoration:none;transition:background-color .15s;display:flex}.trial-pill:hover{background:var(--color-hover);text-decoration:none}.trial-pill--urgent{color:var(--color-error-text)}.app-layout{min-height:100vh;display:flex}.app-layout__main{height:100vh;margin-left:var(--sidebar-width);background:var(--color-bg);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.app-layout__topbar{height:var(--topbar-height);justify-content:flex-end;align-items:center;gap:var(--spacing-xs);--topbar-label-gap:6px;padding:0 calc(var(--spacing-lg) + var(--scrollbar-width,0px)) 0 var(--spacing-lg);z-index:5;display:flex;position:absolute;top:0;left:0;right:0}@media (width<=900px){.app-layout__topbar{background:var(--color-bg)}}.app-layout__hamburger{color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);background:0 0;border:none;margin-right:auto;display:none}.app-layout__hamburger:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__help{align-items:center;gap:var(--topbar-label-gap);color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;font-size:.85rem;font-weight:500;transition:color .15s,background-color .15s;display:flex}.app-layout__help:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__username{margin-right:var(--topbar-label-gap);font-size:.85rem;font-weight:500}.app-layout__settings-dropdown{position:relative}.app-layout__settings{color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-xs) var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none;align-items:center;gap:2px;transition:color .15s,background-color .15s;display:flex}.app-layout__settings:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__settings-chevron{transition:transform .2s}.app-layout__settings-chevron--open{transform:rotate(180deg)}.app-layout__settings-menu{top:calc(100% + var(--spacing-xs));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:180px;box-shadow:var(--shadow-md);z-index:100;padding:var(--spacing-xs);position:absolute;right:0}.app-layout__settings-item{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-xs) var(--spacing-sm);color:var(--color-text);border-radius:var(--radius-sm);cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.8rem;font-weight:500;text-decoration:none;transition:background-color .1s;display:flex}.app-layout__settings-item:hover{background:var(--color-hover);text-decoration:none}.app-layout__settings-item--disabled{color:var(--color-text-secondary);cursor:default;opacity:.5}.app-layout__settings-item--disabled:hover{background:0 0}.app-layout__content{padding:0 var(--spacing-lg) var(--spacing-xl);flex:1;position:relative;overflow-y:auto}.app-layout__content>:first-child{margin-top:var(--topbar-height)}@media (width<=767px){.app-layout__main{border-top-left-radius:0;margin-left:0}.app-layout__hamburger{display:flex}.app-layout__help-label{display:none}}.form-alert{z-index:3;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:.875rem;position:relative}.form-alert--error{background:var(--color-error-tint);color:var(--color-error-text);border:1px solid var(--color-error-tint-border)}.form-alert--success{background:var(--color-success-tint);color:var(--color-success-text);border:1px solid var(--color-success-tint-border)}.empty-state{border:1px solid var(--color-border);border-radius:var(--radius-lg);background-color:var(--affordance-fill,var(--color-surface-alt));color:inherit;background-color:var(--color-surface);padding:var(--spacing-2xl);text-align:center;transition:border-color .15s,background-color .15s,color .15s}.empty-state__title{margin-bottom:var(--spacing-sm);font-size:1.125rem;font-weight:600}.empty-state__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem}.page-header{z-index:3;margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex;position:relative}.page-header h1{font-size:1.5rem;font-weight:700}.page-header__count{color:var(--color-text-secondary);font-weight:400}.page-header__actions{gap:var(--spacing-sm);display:flex}.bank-icon{border-radius:var(--radius-md);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:.8rem;font-weight:700;display:flex}.bank-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(340px,1fr));display:grid}.file-upload{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--affordance-fill,var(--color-surface-alt));color:var(--color-text-secondary);padding:var(--spacing-xl);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color .15s,background-color .15s,color .15s}.file-upload:hover,.file-upload--drag{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-tint-faint)}.file-upload__label{color:var(--color-primary);margin-bottom:var(--spacing-xs);font-size:.9rem;font-weight:500}.file-upload__hint{color:var(--color-text-secondary);font-size:.8rem}.file-upload__name{margin-top:var(--spacing-sm);color:var(--color-text);font-size:.85rem;font-weight:500}.file-upload input[type=file]{display:none}.file-upload--disabled{cursor:not-allowed;opacity:.55}.file-upload--disabled:hover{border-color:var(--color-border);color:var(--color-text-secondary);background-color:var(--affordance-fill,var(--color-surface-alt))}.file-upload--disabled .file-upload__label{color:var(--color-text-secondary)}.import-result{background:var(--color-success-tint);border:1px solid var(--color-success-tint-border);border-radius:var(--radius-md);padding:var(--spacing-md);text-align:center}.import-result__title{color:var(--color-success-text);margin-bottom:var(--spacing-xs);font-size:1rem;font-weight:600}.import-result__detail{color:var(--color-text-secondary);font-size:.85rem}.import-result__receipts{justify-content:center;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-success-tint-border);color:var(--color-text-secondary);flex-wrap:wrap;font-size:.85rem;display:flex}.import-result__receipts--running{gap:var(--spacing-sm);flex-direction:column}.import-result__receipts--running .import-result__receipts-status{font-weight:500}.import-result--error{background:var(--color-error-tint);border-color:var(--color-error-tint-border)}.import-result--error .import-result__title{color:var(--color-error-text)}.spinner{border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin;display:inline-block}.spinner--sm{border-width:1.5px;width:12px;height:12px}.spinner--lg{border-width:3px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}.amount{font-variant-numeric:tabular-nums;font-weight:600}.amount--income{color:var(--color-income-text)}.amount--expense{color:var(--color-expense-text)}.bank-badge{vertical-align:middle;align-items:center;gap:var(--spacing-sm);max-width:100%;color:var(--color-text-secondary);font-size:.75rem;font-weight:500;display:inline-flex}.bank-badge__name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bank-badge__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dashboard-cards{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);gap:var(--spacing-xs);color:inherit;flex-direction:column;text-decoration:none;transition:box-shadow .15s,border-color .15s;display:flex}.dashboard-card:hover{box-shadow:var(--shadow-md)}.dashboard-card--highlight{border-color:var(--color-primary);background:var(--color-primary-tint-faint)}.dashboard-card--highlight:hover{border-color:var(--color-primary-hover)}.dashboard-card__value{font-size:2rem;font-weight:700;line-height:1}.dashboard-card__label{color:var(--color-text-secondary);font-size:.85rem}.dashboard-card__action{color:var(--color-primary);margin-top:var(--spacing-xs);font-size:.8rem;font-weight:500}.settings-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.settings-section__title{margin-bottom:var(--spacing-md);font-size:1rem;font-weight:600}.settings-section__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.85rem}.settings-row+.settings-section__description{margin-top:var(--spacing-md);margin-bottom:0}.settings-row{align-items:center;gap:var(--spacing-sm);min-height:44px;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border);display:flex}.settings-row:last-child{border-bottom:none}.settings-row__label{color:var(--color-text-secondary);flex:0 0 200px;font-size:.85rem;font-weight:500}.settings-row__value{align-items:center;gap:var(--spacing-sm);overflow-wrap:anywhere;flex:1;min-width:0;font-size:.85rem;font-weight:500;display:flex}.settings-row__action{align-items:center;gap:var(--spacing-sm);flex-shrink:0;margin-left:auto;display:flex}.settings-row__status{font-size:.8rem;font-weight:600}.settings-row__status--enabled{color:var(--color-success-text)}.settings-row__status--muted{color:var(--color-text-secondary)}@media (width<=560px){.settings-row{flex-wrap:wrap;row-gap:2px}.settings-row__label{flex-basis:100%}}.settings-form__fields{gap:var(--spacing-xs);flex-direction:column;max-width:400px;display:flex}.settings-form__actions{gap:var(--spacing-sm);margin-top:var(--spacing-sm);display:flex}.settings-link-button{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:.85rem;font-weight:500}.settings-link-button:hover{text-decoration:underline}.settings-link-button:disabled{opacity:.6;cursor:default;text-decoration:none}.scroll-sentinel{padding:var(--spacing-lg) 0;justify-content:center;min-height:1px;display:flex}.page-loading{min-height:240px;padding:var(--spacing-2xl) 0;justify-content:center;align-items:center;display:flex}.match-badge{background:var(--color-primary-tint);color:var(--color-primary);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:1px 6px;font-size:.65rem;font-weight:600}.match-badge--likely{background:var(--color-success-tint);color:var(--color-success-text)}.match-badge--warn{background:var(--color-warning-tint);color:var(--color-warning-text)}.files-review-btn{align-items:center;gap:var(--spacing-xs);height:34px;padding:0 var(--spacing-md);border-radius:var(--radius-md);white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;cursor:pointer;font-size:.8rem;font-weight:500;transition:background-color .15s,color .15s;display:inline-flex}.files-review-btn:hover{background:var(--color-primary-hover)}.files-review-btn--active{background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:inset 0 0 0 2px #ffffff59}.files-review-btn--empty{background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text-secondary);cursor:default}.billing__status{max-width:560px;margin-bottom:var(--spacing-lg);color:var(--color-text-secondary);font-size:.9rem}.billing__card{max-width:420px;padding:var(--spacing-lg);background:var(--color-surface);border:1px solid var(--color-border);margin-bottom:var(--spacing-xl);border-radius:12px}.billing__price{align-items:baseline;gap:var(--spacing-xs);display:flex}.billing__amount{font-size:2rem;font-weight:700}.billing__period{color:var(--color-text-secondary);font-size:.85rem}.billing__pitch{margin:var(--spacing-xs) 0 var(--spacing-md);color:var(--color-text-secondary);font-size:.85rem}.billing__features{margin:0 0 var(--spacing-lg);padding:0;list-style:none}.billing__features li{align-items:center;gap:var(--spacing-sm);padding:4px 0;font-size:.85rem;display:flex}.billing__features li svg{color:var(--color-success-text);flex-shrink:0}.billing__terms{max-width:560px}.billing__terms h2{margin-bottom:var(--spacing-sm);font-size:.95rem;font-weight:600}.billing__terms ul{color:var(--color-text-secondary);padding-left:1.2rem;font-size:.82rem;list-style:outside}.billing__terms ul li{margin-bottom:6px}.billing__interval{margin-bottom:var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;gap:2px;padding:3px;display:inline-flex}.billing__interval-option{align-items:center;gap:var(--spacing-xs);font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 14px;font-size:.82rem;font-weight:600;display:inline-flex}.billing__interval-option--on{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #00000014}.billing__interval-note{color:var(--color-success-text);font-size:.7rem;font-weight:600}.dropdown{display:inline-block;position:relative}.dropdown__trigger{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-xs) var(--spacing-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);cursor:pointer;white-space:nowrap;text-align:left;height:34px;font-size:.8rem;font-weight:500;transition:border-color .15s,background-color .15s;display:flex}.dropdown__trigger:hover:not(:disabled){border-color:var(--color-text-secondary)}.dropdown__trigger--open{border-color:var(--color-primary);background:var(--color-primary-tint-subtle)}.dropdown__trigger:disabled{opacity:.6;cursor:default}.dropdown__trigger-icon{color:var(--color-text-secondary);flex-shrink:0;align-items:center;display:flex}.dropdown__trigger-text{text-overflow:ellipsis;flex:1;overflow:hidden}.dropdown__trigger-text--placeholder{color:var(--color-text-secondary)}.dropdown__trigger-chevron{color:var(--color-text-secondary);flex-shrink:0;transition:transform .2s}.dropdown__trigger-chevron--open{transform:rotate(180deg)}.dropdown__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:max(100%,200px);box-shadow:var(--shadow-md);z-index:100;position:absolute;top:calc(100% + 4px);left:0;overflow:hidden}.dropdown__panel--wide{min-width:300px}.dropdown__panel--above{top:auto;bottom:calc(100% + 4px)}.dropdown__panel-scroll{max-height:320px;padding:var(--spacing-xs);overflow-y:auto}.dropdown__section-label{text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);margin-top:var(--spacing-xs);font-size:.7rem;font-weight:600}.dropdown__divider{background:var(--color-border);height:1px;margin:var(--spacing-xs) 0}.dropdown__option{align-items:center;gap:var(--spacing-sm);text-align:left;width:100%;padding:6px var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text);cursor:pointer;white-space:nowrap;background:0 0;border:none;font-size:.8rem;font-weight:500;transition:background-color .1s;display:flex}.dropdown__option:hover,.dropdown__option--highlighted{background:var(--color-hover)}.dropdown__option--active{background:var(--color-primary-tint);color:var(--color-primary)}.dropdown__option--active:hover{background:var(--color-primary-tint-strong)}.dropdown__option-icon{flex-shrink:0;align-items:center;display:flex}.bank-logo{width:var(--bank-logo-size,40px);height:var(--bank-logo-size,40px);border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;display:flex;overflow:hidden}.bank-logo__img{object-fit:contain;border-radius:var(--radius-md);display:block}.bank-logo--fallback{background-color:var(--bank-logo-color,#6b7280);color:#fff;-webkit-user-select:none;user-select:none;font-weight:700}.bank-logo__initials{font-size:var(--bank-logo-font-size,14px)}.tag-chip{-webkit-user-select:none;user-select:none}.tag-chip--dot{background:var(--tag-colour);border-radius:50%;flex-shrink:0;width:10px;height:10px;display:inline-block}.tag-chip--chip{max-width:var(--tag-max-width,100%);border-radius:var(--radius-sm);background:color-mix(in srgb, var(--tag-colour) 12%, transparent);color:var(--color-text);align-items:center;gap:5px;padding:2px 8px;font-size:12px;line-height:18px;display:inline-flex}.tag-chip__dot{background:var(--tag-colour);border-radius:50%;flex-shrink:0;width:8px;height:8px}.tag-chip__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-chip__remove{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:1px;display:inline-flex}.tag-chip__remove:hover{background:color-mix(in srgb, var(--tag-colour) 25%, transparent);color:var(--color-text)}.filter-bar{top:calc((var(--topbar-height) - var(--filter-bar-height)) / 2);z-index:6;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);pointer-events:none;flex-wrap:wrap;padding-right:140px;display:flex;position:sticky}.filter-bar>*{pointer-events:auto}@media (width<=900px){.filter-bar{padding-right:0;position:static}}.filter-bar__control--tag{max-width:170px}.filter-bar__chip{height:34px;padding:0 var(--spacing-sm);border:1px solid var(--color-warning-tint-border);border-radius:var(--radius-md);background:var(--color-warning-tint);color:var(--color-warning-text);white-space:nowrap;cursor:pointer;align-items:center;gap:5px;font-size:.8rem;font-weight:500;display:inline-flex}.filter-bar__chip:hover{border-color:var(--color-warning-text)}.filter-bar__search{align-items:center;gap:var(--spacing-xs);padding:0 var(--spacing-sm);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-width:180px;max-width:300px;height:34px;color:var(--color-text-secondary);flex:1;transition:border-color .15s;display:flex}.filter-bar__search:focus-within{border-color:var(--color-primary)}.filter-bar__search input{color:var(--color-text);background:0 0;border:none;outline:none;width:100%;font-size:.875rem}.filter-bar__search input::placeholder{color:var(--color-text-secondary)}.floating-tooltip{z-index:var(--z-tooltip,3000);pointer-events:none;position:fixed}.transactions-chart{flex-direction:column;flex:50%;min-width:0;height:100%;transition:opacity .15s;display:flex}.transactions-chart--refreshing{opacity:.6}.transactions-chart__plot{flex:1;min-height:0;position:relative}.transactions-chart__empty{height:100%;color:var(--color-text-secondary);justify-content:center;align-items:center;font-size:.8125rem;display:flex}.transactions-chart__legend{gap:var(--spacing-sm) var(--spacing-md);padding:0 var(--spacing-sm) var(--spacing-xs);color:var(--color-text-secondary);flex-wrap:wrap;justify-content:flex-end;font-size:.75rem;display:flex}.transactions-chart__legend-item{align-items:center;gap:6px;display:inline-flex}.transactions-chart__legend-value{color:var(--color-text);font-weight:600}.transactions-chart__legend-value--profit{color:var(--color-income-text)}.transactions-chart__legend-value--loss{color:var(--color-expense-text)}.transactions-chart__dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.transactions-chart__dot--income{background:var(--color-income)}.transactions-chart__dot--expense{background:var(--color-expense)}.transactions-chart__dot--net{background:var(--color-text)}.transactions-chart__tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);font-size:.75rem}.transactions-chart__tooltip-title{margin-bottom:var(--spacing-xs);font-weight:600}.transactions-chart__tooltip-row{align-items:center;gap:6px;padding:2px 0;display:flex}.transactions-chart__tooltip-row strong{padding-left:var(--spacing-md);font-variant-numeric:tabular-nums;margin-left:auto}.expense-breakdown{flex-direction:column;flex:50%;min-width:0;height:100%;transition:opacity .15s;display:flex}.expense-breakdown--refreshing{opacity:.6}.expense-breakdown__title{padding:0 var(--spacing-sm) var(--spacing-xs);color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.expense-breakdown__body{gap:var(--spacing-sm);flex:1;min-height:0;display:flex}.expense-breakdown__plot{flex:55%;min-width:0;position:relative}.expense-breakdown__centre-value{fill:var(--color-text);font-size:.9375rem;font-weight:600}.expense-breakdown__centre-label{fill:var(--color-text-secondary);font-size:.6875rem}.expense-breakdown__legend{flex:45%;min-width:0;margin:0;padding:0;font-size:.75rem;list-style:none;overflow-y:auto}.expense-breakdown__legend-item{color:var(--color-text);align-items:center;gap:6px;padding:2px 0;display:flex}.expense-breakdown__legend-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.expense-breakdown__legend-value{padding-left:var(--spacing-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);margin-left:auto}.expense-breakdown__swatch{border-radius:3px;flex-shrink:0;width:10px;height:10px}.expense-breakdown__empty{width:100%;height:100%;color:var(--color-text-secondary);text-align:center;justify-content:center;align-items:center;font-size:.8125rem;display:flex}.expense-breakdown__tooltip{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);width:max-content;box-shadow:var(--shadow-md);padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text);font-size:.75rem}.expense-breakdown__tooltip-row{align-items:center;gap:6px;display:flex}.expense-breakdown__tooltip-row strong{padding-left:var(--spacing-md);font-variant-numeric:tabular-nums;margin-left:auto}.expense-breakdown__tooltip-percent{color:var(--color-text-secondary);margin-top:2px;padding-left:16px}.expense-breakdown__tooltip-breakdown{margin:var(--spacing-xs) 0 0;padding:var(--spacing-xs) 0 0;border-top:1px solid var(--color-border);flex-direction:column;gap:3px;list-style:none;display:flex}.expense-breakdown__tooltip-breakdown-row{align-items:center;gap:6px;display:flex}.expense-breakdown__tooltip-breakdown-label{white-space:nowrap}.expense-breakdown__tooltip-breakdown-value{padding-left:var(--spacing-md);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);margin-left:auto}.summary-charts{height:240px;margin-bottom:var(--spacing-lg);align-items:stretch;gap:var(--spacing-lg);display:flex}@media (width<=900px){.summary-charts{gap:var(--spacing-md);flex-direction:column;height:auto}}.summary-charts__skeleton{background:var(--color-surface-alt);border-radius:var(--radius-md);flex:50%;min-width:0;height:240px;animation:1.4s ease-in-out infinite summary-charts-pulse}@media (width<=900px){.summary-charts__skeleton{height:200px}}@media (width<=600px){.summary-charts__skeleton{height:160px}}@media (width<=900px){.summary-charts .transactions-chart,.summary-charts .expense-breakdown{flex:none;height:200px}}@media (width<=600px){.summary-charts .transactions-chart,.summary-charts .expense-breakdown{height:160px}}@keyframes summary-charts-pulse{0%,to{opacity:.55}50%{opacity:.9}}.create-rule__modal,.create-rule__modal .modal__body{overflow:visible}.create-rule__grid{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.create-rule__field{margin-bottom:var(--spacing-md);flex-direction:column;gap:4px;display:flex}.create-rule__grid .create-rule__field{margin-bottom:0}.create-rule__label{color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.create-rule__input{width:100%;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);height:34px;font-size:.85rem}.create-rule__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.create-rule__pattern-row{align-items:center;gap:var(--spacing-xl);display:flex}.create-rule__personal-label{height:34px;color:var(--color-text-secondary);align-items:center;font-size:.8rem;display:flex}.create-rule__checkbox{align-items:center;gap:var(--spacing-xs);color:var(--color-text);cursor:pointer;white-space:nowrap;font-size:.8rem;font-weight:500;display:flex}.create-rule__checkbox input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}.create-rule__apply-past{align-items:center;gap:var(--spacing-xs);color:var(--color-text);cursor:pointer;margin-right:auto;font-size:.8rem;font-weight:500;display:flex}.create-rule__apply-past input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}.create-rule__dot{color:var(--color-text);margin:0 var(--spacing-xs)}.create-rule__match-count{color:var(--color-primary);font-weight:600}.create-rule__footer-buttons{gap:var(--spacing-sm);display:flex}.create-rule__modal .type-toggle{align-self:flex-start}.tag-modal{width:420px;max-width:100%}.tag-modal__field{flex-direction:column;gap:6px;display:flex}.tag-modal__field+.tag-modal__field{margin-top:var(--spacing-md)}.tag-modal__label{color:var(--color-text);font-size:13px;font-weight:600}.tag-modal__optional{color:var(--color-text-secondary);font-weight:400}.tag-modal__input{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);padding:8px 10px;font-size:14px}.tag-modal__input:focus{border-color:var(--color-primary);outline:none}.tag-modal__error{color:var(--color-error-text);font-size:12px}.tag-modal__swatches{gap:var(--spacing-sm);flex-wrap:wrap;display:flex}.tag-modal__swatch{background:var(--tag-colour);cursor:pointer;border:none;border-radius:50%;width:24px;height:24px}.tag-modal__swatch--selected{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--tag-colour)}.tag-modal__swatch:focus-visible{box-shadow:0 0 0 2px var(--color-surface), 0 0 0 4px var(--color-primary);outline:none}.tag-modal__hint{margin:var(--spacing-md) 0 0;color:var(--color-text-secondary);font-size:12px}.tag-modal__footer-buttons{gap:var(--spacing-sm);margin-left:auto;display:flex}.transaction-row{cursor:default}tr.transaction-row:hover:not(.transaction-row--expanded) td{background:var(--color-surface-active)}.transaction-row:last-child td{border-bottom:none}.transaction-row--interactive{cursor:pointer}tr.transaction-row--expanded td{background:var(--color-surface-active)}.transaction-row__date{white-space:nowrap}.transaction-row__description{text-overflow:ellipsis;white-space:nowrap;max-width:280px;overflow:hidden}.transaction-row__amount{white-space:nowrap}.transaction-row__original{color:var(--color-text-secondary);font-size:.7rem;font-weight:400;display:block}.transaction-row__type{white-space:nowrap}.transaction-row__type-toggle{white-space:nowrap;min-width:150px}.transaction-row__category{white-space:nowrap;min-width:240px}.transaction-row__category-label{color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;font-size:.8rem}.transaction-row__category-label--muted{color:var(--color-text-secondary);font-style:italic}.transaction-row__category-wrapper{align-items:center;gap:4px;display:flex}.transaction-row__category-dropdown-guard{display:contents}.transaction-row__category .dropdown{width:100%;max-width:220px}.transaction-row__category .dropdown .dropdown__trigger{height:28px;padding:2px var(--spacing-sm);font-size:.75rem}.transaction-row__rule-icon{color:var(--color-text-secondary);margin-left:var(--spacing-sm);flex-shrink:0;align-items:center;display:inline-flex}.transaction-row__rule-info{color:var(--color-text-secondary);font-style:italic}.transaction-row__rule-prompt-row td{border-bottom:1px solid var(--color-border);background:var(--color-primary-tint-faint);padding:0!important}.transaction-row__chevron{text-align:center;cursor:pointer;width:32px;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.transaction-row__chevron-icon{vertical-align:middle;transition:transform .2s}.transaction-row__chevron-icon--open{transform:rotate(90deg)}tr.transaction-row__detail td{--affordance-fill:var(--color-surface);border-bottom:1px solid var(--color-border);background:var(--color-surface-active);padding:0!important}.transaction-row__detail-content{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);gap:var(--spacing-lg);display:flex;position:relative}.transaction-row__detail-files{flex-direction:column;flex:3;gap:8px;min-width:0;display:flex;overflow:hidden}.transaction-row__detail-files .file-picker{--file-picker-height:48px}.transaction-row__detail-notes{flex-direction:column;flex:3;gap:8px;display:flex}.transaction-row__detail-tags{flex-direction:column;flex:3;align-items:flex-start;gap:8px;min-width:0;display:flex}.transaction-row__detail-tags .tag-picker{contain:size;flex:1;align-self:stretch;height:auto;min-height:48px}.transaction-row__detail-right{flex-direction:column;flex:2;gap:8px;display:flex}.transaction-row__detail-action-btn{top:var(--spacing-sm);right:max(3% - 24px, var(--spacing-md));color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;line-height:0;transition:color .15s,background-color .15s;position:absolute;transform:translate(50%)}.transaction-row__detail-action-btn:hover{color:var(--color-primary);background:var(--color-primary-tint-subtle)}.transaction-row__detail-label{color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.transaction-row__rule-match{color:var(--color-text);margin-top:2px;font-size:.8rem}.transaction-row__rule-none{color:var(--color-text-secondary);margin-top:2px;font-size:.8rem}.transaction-row__rule-action{color:var(--color-primary);cursor:pointer;margin-top:var(--spacing-xs);text-align:left;background:0 0;border:none;padding:0;font-size:.75rem;font-weight:500}.transaction-row__rule-action:hover{text-decoration:underline}.transaction-row__tags{text-align:center}.transaction-row__tag-dots{vertical-align:middle;align-items:center;gap:2px;display:inline-flex}.transaction-row__tag-dots .tag-chip--dot{width:12px;height:12px}.transaction-row__tag-overflow{color:var(--color-text-secondary);font-size:11px}.transaction-row__file{text-align:center}.transaction-row__file--drag-over{background:var(--color-primary-tint);outline:1px solid var(--color-primary);outline-offset:-1px}.transaction-row__file-indicator{vertical-align:middle;color:var(--color-text-secondary);align-items:center;gap:2px;display:inline-flex}.transaction-row__file-count{color:var(--color-text-secondary);min-width:14px;font-size:.65rem;font-weight:600}.transaction-row__notes{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);resize:vertical;background:var(--color-surface);min-height:48px;font-family:inherit;font-size:.8rem}.transaction-row__notes:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.transaction-row__notes::placeholder{color:var(--color-text-secondary)}.type-toggle{border:1px solid var(--color-border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.type-toggle__btn{padding:0 var(--spacing-sm);background:var(--color-surface);height:28px;color:var(--color-text-secondary);cursor:pointer;border:none;align-items:center;gap:4px;font-size:.75rem;font-weight:500;transition:background-color .15s,color .15s;display:flex}.type-toggle__btn:not(:last-child){border-right:1px solid var(--color-border)}.type-toggle__btn:hover:not(.type-toggle__btn--active){background:var(--color-bg)}.type-toggle__btn--personal.type-toggle__btn--active{background:var(--color-neutral-solid);color:#fff}.type-toggle__btn--business.type-toggle__btn--active{background:var(--color-primary);color:#fff}.type-toggle__btn:disabled{opacity:.6;cursor:default}th.tcol-date{width:9%}th.tcol-desc{width:24%}th.tcol-account{width:9%}th.tcol-amount{width:10%}th.tcol-type{width:13%}th.tcol-category{width:21%}th.tcol-tags{width:7%}th.tcol-file{width:4%}th.tcol-chevron{width:3%}@container (width<=885px){.data-table th.tcol-tags,.data-table td.transaction-row__tags{visibility:hidden;border:none;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}}@container (width<=829px){.data-table th.tcol-file,.data-table td.transaction-row__file{visibility:hidden;border:none;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}}@container (width<=789px){.data-table th.tcol-category,.data-table td.transaction-row__category{visibility:hidden;border:none;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}}@container (width<=619px){.data-table th.tcol-account,.data-table td.transaction-row__account{visibility:hidden;border:none;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}th.tcol-type{width:140px}}@container (width<=499px){.data-table th.tcol-type,.data-table td.transaction-row__type-toggle,.data-table td.transaction-row__type{visibility:hidden;border:none;width:0;min-width:0;max-width:0;padding:0;overflow:hidden}}.transaction-row--selectable{cursor:pointer}.transaction-row--selectable:hover td{background:var(--color-primary-tint-subtle)}.transaction-row--selectable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.transaction-row__desc-flex{align-items:center;gap:6px;min-width:0;display:flex}.transaction-row__desc-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.form-group{margin-bottom:var(--spacing-md)}.form-group label{margin-bottom:var(--spacing-xs);color:var(--color-text);font-size:.875rem;font-weight:500;display:block}.form-group input,.form-group select{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);width:100%;padding:10px 12px;font-size:.9rem;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.form-group input::placeholder,.form-group select::placeholder{color:var(--color-text-secondary)}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.form-group__hint{color:var(--color-text-secondary);margin-top:var(--spacing-xs);font-size:.8rem}.form-group--error label{color:var(--color-error-text)}.form-group--error input{border-color:var(--color-error)}.form-group--error input:focus{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-tint)}.form-group--mono input{font-family:var(--font-mono);letter-spacing:1px;font-size:.8rem}.form-error{color:var(--color-error-text);margin-top:var(--spacing-xs);font-size:.8rem}.confirm-modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;padding:var(--spacing-xl)}.confirm-modal__title{margin-bottom:var(--spacing-sm);font-size:1.125rem;font-weight:700}.confirm-modal__message{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem;line-height:1.5}.confirm-modal__actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.file-preview{z-index:1100;padding:var(--spacing-lg);gap:var(--spacing-sm);background:#000c;flex-direction:column;display:flex;position:fixed;inset:0}.file-preview__bar{justify-content:space-between;align-items:center;gap:var(--spacing-md);color:#fff;flex-shrink:0;display:flex}.file-preview__name{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.file-preview__actions{align-items:center;gap:var(--spacing-xs);flex-shrink:0;display:flex}.file-preview__btn{color:#fff;cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;display:inline-flex}.file-preview__btn:hover{background:#ffffff26}.file-preview__content{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.file-preview__img{object-fit:contain;border-radius:var(--radius-sm);background:#fff;max-width:100%;max-height:100%}.file-preview__pdf{flex-direction:column;align-self:stretch;align-items:center;width:100%;height:100%;display:flex;overflow:auto}.file-preview__pdf .react-pdf__Document{align-items:center;gap:var(--spacing-md);flex-direction:column;margin:auto 0;padding:8px 0;display:flex}.file-preview__pdf .react-pdf__Page{border-radius:var(--radius-sm);background:#fff;overflow:hidden;box-shadow:0 2px 12px #0006}.file-preview__error{color:#fff;font-size:.9rem}.file-picker{--file-picker-height:40px;--fp-font:min(calc(var(--file-picker-height) * .28), .7rem);--fp-thumb:calc(var(--file-picker-height) * .6);--fp-icon:calc(var(--file-picker-height) * .3);--fp-file-icon:calc(var(--file-picker-height) * .4);--fp-pad:calc(var(--file-picker-height) * .1);gap:var(--spacing-xs);height:var(--file-picker-height);display:flex}.file-picker__card{align-items:center;gap:calc(var(--fp-pad) * 1.5);min-width:0;height:100%;padding:var(--fp-pad) calc(var(--fp-pad) * 1.5);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;flex:1;transition:background-color .15s;display:flex;overflow:hidden}.file-picker__card:hover{background:var(--color-surface-alt)}.file-picker__card-thumb{width:var(--fp-thumb);height:var(--fp-thumb);object-fit:cover;border-radius:3px;flex-shrink:0}.file-picker__card-icon{width:var(--fp-thumb);height:var(--fp-thumb);background:var(--color-surface-alt);color:var(--color-text-secondary);border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-picker__card-name{font-size:var(--fp-font);color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.file-picker__card-btn svg,.file-picker__dropzone svg{width:var(--fp-icon);height:var(--fp-icon)}.file-picker__card-icon svg{width:var(--fp-file-icon);height:var(--fp-file-icon)}.file-picker__card-actions{flex-shrink:0;gap:1px;margin-left:auto;display:flex}.file-picker__card-btn{padding:calc(var(--fp-pad) * .75);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;transition:color .15s,background-color .15s}.file-picker__card-btn:hover{color:var(--color-primary);background:var(--color-primary-tint-subtle)}.file-picker__card-btn--delete:hover{color:var(--color-error-text);background:var(--color-error-tint)}.file-picker__dropzone{flex:0 0 var(--file-picker-height);justify-content:center;align-items:center;gap:calc(var(--fp-pad) * 1.5);border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--affordance-fill,var(--color-surface-alt));height:100%;color:var(--color-text-secondary);padding:var(--fp-pad);font-family:inherit;font-size:var(--fp-font);cursor:pointer;flex-direction:row;transition:border-color .15s,background-color .15s,color .15s;display:flex;overflow:hidden}.file-picker__dropzone--empty{flex:1}.file-picker__dropzone:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-tint-faint)}.file-picker__dropzone--active{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-tint-faint);background-color:var(--color-primary-tint)}.file-picker__dropzone-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tag-picker{--tag-picker-height:22px;width:100%;min-width:0;height:var(--tag-picker-height);flex-wrap:wrap;align-content:flex-start;align-items:center;gap:4px;display:flex;position:relative}.tag-picker .tag-chip--chip{flex:none;height:22px}.tag-picker__option-group{display:contents}.tag-picker__divider{height:1px;margin:var(--spacing-xs) 0;background:var(--color-border);flex-shrink:0}.tag-picker__trigger{border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--affordance-fill,var(--color-surface-alt));color:var(--color-text);white-space:nowrap;cursor:pointer;flex-shrink:0;align-items:center;gap:4px;height:22px;padding:3px 8px;font-size:.7rem;line-height:14px;transition:border-color .15s,background-color .15s,color .15s;display:inline-flex}.tag-picker__trigger:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-tint-faint)}.tag-picker__trigger:disabled{opacity:.5;cursor:default}.tag-picker__panel{z-index:20;width:300px;padding:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 16px #0000001f}.tag-picker__panel--above{top:auto;bottom:calc(100% + 4px)}.tag-picker__search{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);padding:6px 8px;font-size:13px}.tag-picker__search:focus{border-color:var(--color-primary);outline:none}.tag-picker__options{max-height:280px;margin-top:var(--spacing-xs);flex-direction:column;display:flex;overflow-y:auto}.tag-picker__option{align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-sm);color:var(--color-text);text-align:left;cursor:pointer;background:0 0;border:none;padding:6px 8px;font-size:13px;display:flex}.tag-picker__option:hover{background:var(--color-hover,var(--color-surface-alt))}.tag-picker__option--create{color:var(--color-primary)}.tag-picker__option-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tag-picker__option-check{color:var(--color-primary);flex-shrink:0}.tag-picker__option-remove{color:var(--color-error-text);flex-shrink:0;display:none}.tag-picker__option--selected:hover .tag-picker__option-check{display:none}.tag-picker__option--selected:hover .tag-picker__option-remove{display:block}.tag-picker__empty{color:var(--color-text-secondary);padding:6px 8px;font-size:13px}.tag-picker__footer{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);border:none;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm);color:var(--color-primary);text-align:left;cursor:pointer;background:0 0;padding:6px 8px;font-size:13px;display:flex}.tag-picker__footer:hover{background:var(--color-hover,var(--color-surface-alt))}.txn-fields__grid{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.txn-fields__field{margin-bottom:var(--spacing-md);flex-direction:column;gap:4px;display:flex}.txn-fields__grid .txn-fields__field{margin-bottom:0}.txn-fields__label{color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.txn-fields__optional{font-weight:400}.txn-fields__input{width:100%;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);height:34px;font-size:.85rem}.txn-fields__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.txn-fields__amount{position:relative}.txn-fields__amount .txn-fields__input{padding-left:26px}.txn-fields__amount-prefix{left:var(--spacing-sm);color:var(--color-text-secondary);pointer-events:none;font-size:.85rem;position:absolute;top:50%;transform:translateY(-50%)}.txn-fields__direction-btn--income.type-toggle__btn--active{background:var(--color-income);color:#fff}.txn-fields__direction-btn--expense.type-toggle__btn--active{background:var(--color-expense);color:#fff}.txn-fields__hint-label{height:34px;color:var(--color-text-secondary);align-items:center;font-size:.8rem;display:flex}.new-txn__modal,.new-txn__modal .modal__body{overflow:visible}.new-txn__footer-buttons{gap:var(--spacing-sm);margin-left:auto;display:flex}.new-txn__modal .type-toggle{align-self:flex-start}.confirm-row{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-top:0;margin-bottom:var(--spacing-lg);min-height:56px;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-surface-alt);border-radius:var(--radius-md);display:flex}.confirm-row--stated .confirm-row__label{color:var(--color-text-secondary);font-weight:400}.confirm-row__text{flex-direction:column;gap:2px;min-width:0;display:flex}.confirm-row__label{color:var(--color-text);font-size:.9rem;font-weight:500}.confirm-row__detail{color:var(--color-text-secondary);font-size:.8rem}.confirm-row--clamp .confirm-row__label,.confirm-row--clamp .confirm-row__detail{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.switch{cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:inline-flex}.switch:disabled{cursor:default;opacity:.5}.switch__track{background:var(--color-border);border-radius:9px;width:32px;height:18px;transition:background-color .2s;display:block;position:relative}.switch--on .switch__track{background:var(--color-primary)}.switch__thumb{width:14px;height:14px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;display:block;position:absolute;top:2px;left:2px}.switch--on .switch__thumb{transform:translate(14px)}.edit-txn__modal,.edit-txn__modal .modal__body{overflow:visible}.edit-txn__modal .modal__footer{justify-content:space-between}.edit-txn__footer-buttons{gap:var(--spacing-sm);display:flex}.edit-txn__modal .type-toggle{align-self:flex-start}.export-modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:440px;padding:var(--spacing-xl)}.export-modal__title{margin-bottom:var(--spacing-xs);font-size:1.125rem;font-weight:700}.export-modal__context{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.85rem;line-height:1.5}.export-modal__options{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-direction:column;display:flex}.export-modal__option{border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--affordance-fill,var(--color-surface-alt));color:var(--color-text-secondary);align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);cursor:pointer;transition:border-color .15s,background-color .15s,color .15s;display:flex}.export-modal__option:hover{border-color:var(--color-primary)}.export-modal__option input[type=radio]{accent-color:var(--color-primary);flex-shrink:0;margin-top:3px}.export-modal__option--selected{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-tint-faint)}.export-modal__option--selected .export-modal__option-description{color:var(--color-text-secondary)}.export-modal__option-body{flex-direction:column;gap:2px;display:flex}.export-modal__option-label{align-items:center;gap:var(--spacing-sm);color:var(--color-text);font-size:.9rem;font-weight:600;display:flex}.export-modal__option--selected .export-modal__option-label{color:var(--color-primary)}.export-modal__badge{color:var(--color-primary);background:var(--color-primary-tint-faint);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:1px 6px;font-size:.7rem;font-weight:600}.export-modal__option-description{color:var(--color-text-secondary);font-size:.8rem;line-height:1.4}.export-modal__receipts{justify-content:space-between;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);display:flex}.export-modal__receipts-text{flex-direction:column;gap:2px;display:flex}.export-modal__receipts-label{color:var(--color-text);font-size:.9rem;font-weight:600}.export-modal__receipts-description{color:var(--color-text-secondary);font-size:.8rem}.export-modal__notice{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--spacing-md);color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:.85rem;line-height:1.5}.export-modal__actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.data-table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:100%}.data-table th,.data-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border);background:var(--color-surface)}.data-table th:first-child,.data-table td:first-child{border-left:1px solid var(--color-border)}.data-table th:last-child,.data-table td:last-child{border-right:1px solid var(--color-border)}.data-table thead th{border-top:1px solid var(--color-border)}.data-table thead th:first-child{border-top-left-radius:var(--radius-lg);box-shadow:-12px 0 0 0 var(--color-bg)}.data-table thead th:last-child{border-top-right-radius:var(--radius-lg);box-shadow:12px 0 0 0 var(--color-bg)}.data-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-lg)}.data-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-lg)}.data-table th{color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;top:var(--topbar-height);z-index:2;font-size:.8125rem;font-weight:600;position:sticky}.data-table td{font-size:.875rem}.data-table tbody tr:last-child td{border-bottom:1px solid var(--color-border)}.data-table--compact{font-size:.8rem}.data-table--compact th{position:static}.data-table--compact thead th:first-child,.data-table--compact thead th:last-child{box-shadow:none}.data-table--compact th,.data-table--compact td{padding:var(--spacing-xs) var(--spacing-sm)}@media (width>=901px){.data-table__scroll:before{content:"";height:var(--topbar-height);margin-top:calc(-1 * var(--topbar-height));background:var(--color-bg);z-index:2;display:block;position:sticky;top:0}}@media (width<=900px){.data-table__scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.data-table__scroll .data-table{min-width:720px}}.data-table__scroll--fluid{container-type:inline-size}@media (width<=900px){.data-table__scroll--fluid{overflow-x:visible}.data-table__scroll--fluid .data-table{min-width:0}}.data-table .dropdown__panel,.data-table .tag-picker__panel{z-index:1}.data-table th.data-table__th--sortable{cursor:pointer;padding:0}.data-table th.data-table__th--sortable:hover{color:var(--color-text)}.data-table__th-button{width:100%;padding:var(--spacing-sm) var(--spacing-md);font:inherit;color:inherit;text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;display:block}.data-table__th-button:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.data-table__th--active{color:var(--color-text)}.account-card{background:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:var(--spacing-lg);transition:box-shadow .15s}.account-card:hover{box-shadow:var(--shadow-md)}.account-card__header{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.account-card__title-block{flex:1;min-width:0}.account-card__title-row{align-items:center;gap:var(--spacing-xs);height:1.5rem;display:flex}.account-card__name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-card__subtitle{color:var(--color-text-secondary);font-size:.8rem}.account-card__edit{border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;opacity:0;background:0 0;border:none;justify-content:center;align-items:center;padding:2px;transition:opacity .15s,color .15s;display:inline-flex}.account-card__edit:hover{color:var(--color-text)}.account-card__edit:focus-visible{opacity:1;outline:2px solid var(--color-primary);outline-offset:1px}.account-card:hover .account-card__edit{opacity:1}.account-card__name-input{width:100%;height:100%;font:inherit;color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:0 var(--spacing-xs);margin-left:calc(-1 * var(--spacing-xs) - 1px);font-weight:700}.account-card__name-input:focus{outline:none}.account-card__actions{gap:var(--spacing-sm);margin-top:var(--spacing-md);display:flex}.account-card__empty{color:var(--color-text-secondary);font-size:.85rem}.account-card__section-title{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);font-size:.7rem;font-weight:600}.account-card__last-import{margin-top:var(--spacing-sm)}.account-card__last-import .import-list{margin-top:0}.import-list{margin-top:var(--spacing-sm);list-style:none}.import-list__item{padding:var(--spacing-xs) 0;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;font-size:.8rem;display:flex}.import-list__item:last-child{border-bottom:none}.import-list__name{color:var(--color-text);white-space:nowrap;text-overflow:ellipsis;max-width:200px;font-weight:500;overflow:hidden}.import-list__meta{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.import-list__badge{background:var(--color-success-tint);color:var(--color-success-text);border-radius:var(--radius-sm);padding:2px 8px;font-size:.75rem;font-weight:500}.import-list__badge--error{background:var(--color-error-tint);color:var(--color-error-text)}.account-detail{max-width:500px}.account-detail__identity{align-items:center;gap:var(--spacing-md);min-width:0;display:flex}.account-detail__identity h2{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.account-detail__subtitle{color:var(--color-text-secondary);font-size:.8rem}.account-detail__section-title{margin-bottom:var(--spacing-xs);font-size:.875rem;font-weight:600}.account-detail__empty{color:var(--color-text-secondary);font-size:.85rem}.account-detail .import-list{max-height:320px;margin-top:0;overflow:hidden auto}.account-detail .import-list__item{padding:var(--spacing-sm) 0}.account-detail .import-list__delete{color:var(--color-text-secondary);border-radius:var(--radius-sm);opacity:0;cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:1rem;line-height:1;transition:opacity .15s,color .15s}.account-detail .import-list__delete:hover{color:var(--color-error-text)}.account-detail .import-list__item:hover .import-list__delete,.account-detail .import-list__delete:focus-visible{opacity:1}.account-detail__footer{justify-content:space-between}.bank-picker__search{border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;margin-bottom:var(--spacing-md);background:var(--color-surface);padding:10px 12px;font-size:.9rem}.bank-picker__search:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.bank-picker__grid{gap:var(--spacing-sm);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));padding:2px;display:grid}.bank-picker__item{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-sm);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;background:var(--color-surface);-webkit-user-select:none;user-select:none;flex-direction:column;transition:border-color .15s,background-color .15s;display:flex}.bank-picker__item:hover{border-color:var(--color-primary);background:var(--color-primary-tint-subtle)}.bank-picker__item--selected{border-color:var(--color-primary);background:var(--color-primary-tint)}.bank-picker__name{font-size:.8rem;font-weight:500;line-height:1.2}.bank-picker__no-csv{color:var(--color-warning-text);font-size:.65rem;font-weight:500}.bank-picker__empty{text-align:center;color:var(--color-text-secondary);padding:var(--spacing-xl);font-size:.9rem}.bank-picker__group{margin-bottom:var(--spacing-lg)}.bank-picker__group:last-child{margin-bottom:0}.bank-picker__group-title{text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);padding-left:2px;font-size:.7rem;font-weight:600}.column-mapper__hint{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:.85rem}.column-mapper__accent{color:var(--color-primary);font-weight:600}.column-mapper__fields{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.column-mapper__field{flex-direction:column;gap:4px;display:flex}.column-mapper__label{color:var(--color-text);font-size:.75rem;font-weight:600}.column-mapper__select{border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;width:100%;padding:8px 24px 8px 10px;font-size:.8rem}.column-mapper__select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.column-mapper__select option:disabled{color:var(--color-text-secondary);font-style:italic}.column-mapper__mode{margin-bottom:var(--spacing-md)}.column-mapper__mode-label{color:var(--color-text);margin-bottom:4px;font-size:.75rem;font-weight:600;display:block}.column-mapper__segmented{border:1px solid var(--color-border);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.column-mapper__segment{background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;border:none;padding:6px 16px;font-size:.8rem;font-weight:500;transition:background-color .15s,color .15s}.column-mapper__segment:not(:last-child){border-right:1px solid var(--color-border)}.column-mapper__segment:hover:not(.column-mapper__segment--active){background:var(--color-bg)}.column-mapper__segment--active{background:var(--color-primary);color:#fff}.column-mapper__section-label{color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs);font-size:.75rem;font-weight:600}.column-mapper__preview{border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);overflow-x:auto}.column-mapper__preview table{border-collapse:collapse;white-space:nowrap;width:max-content;min-width:100%;font-size:.7rem}.column-mapper__preview th,.column-mapper__preview td{border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:left;padding:4px 8px}.column-mapper__preview th:last-child,.column-mapper__preview td:last-child{border-right:none}.column-mapper__preview th{background:var(--color-bg);color:var(--color-text-secondary);font-weight:600;position:sticky;top:0}.column-mapper__preview tbody tr:last-child td{border-bottom:none}.column-mapper__transaction-preview .data-table thead th:first-child{border-top-left-radius:var(--radius-sm)}.column-mapper__transaction-preview .data-table thead th:last-child{border-top-right-radius:var(--radius-sm)}.column-mapper__transaction-preview .data-table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-sm)}.column-mapper__transaction-preview .data-table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-sm)}.column-mapper__transaction-preview .data-table--compact{font-size:.8rem}.column-mapper__transaction-preview .data-table--compact th,.column-mapper__transaction-preview .data-table--compact td{padding:var(--spacing-xs) var(--spacing-sm)}.preview-cell--empty{color:var(--color-text-secondary);font-style:italic}.preview-cell__glyph{vertical-align:middle;flex-shrink:0;margin-right:3px}.preview-cell--error{color:var(--color-error-text);cursor:default;font-weight:500;position:relative}.preview-cell--warning{color:var(--color-warning-text);cursor:default;font-weight:500;position:relative}.preview-cell--error[data-tooltip]:after,.preview-cell--warning[data-tooltip]:after{content:attr(data-tooltip);background:var(--color-text);color:var(--color-surface);border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;padding:4px 8px;font-size:.7rem;font-weight:400;transition:opacity .15s;position:absolute;bottom:calc(100% + 6px);left:0}.preview-cell--error[data-tooltip]:hover:after,.preview-cell--warning[data-tooltip]:hover:after{opacity:1}.import-modal__upload{gap:var(--spacing-lg);flex-direction:column;display:flex}.import-modal__bank-label{align-items:center;gap:var(--spacing-md);font-size:1rem;font-weight:600;display:flex}.import-modal__name-field{flex:1;margin-bottom:0}.import-modal__duplicate{gap:var(--spacing-md);flex-direction:column;display:flex}.import-modal__duplicate-message{color:var(--color-text-secondary);font-size:.9rem}.import-modal__duplicate-message strong{color:var(--color-text)}.import-modal__extracting{cursor:default;align-items:center;gap:var(--spacing-sm);flex-direction:column;display:flex}.import-modal__progress-bar{background:var(--color-surface-alt);border-radius:999px;width:200px;height:4px;overflow:hidden}.import-modal__progress-bar-fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .3s}.import-modal__footer-review{margin-right:auto}.import-modal__sections{gap:var(--spacing-sm);flex-direction:column;display:flex}.import-modal__sections-intro{color:var(--color-text-secondary);margin-bottom:var(--spacing-xs);font-size:.9rem}.import-modal__section{justify-content:space-between;align-items:center;gap:var(--spacing-md);width:100%;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;text-align:left;transition:border-color .15s,background-color .15s;display:flex}.import-modal__section:hover,.import-modal__section:focus-visible{border-color:var(--color-primary);background:var(--color-primary-tint-subtle)}.import-modal__section:focus-visible{box-shadow:0 0 0 3px var(--color-focus-ring);outline:none}.import-modal__section:disabled{cursor:default;opacity:.55}.import-modal__section:disabled:hover{border-color:var(--color-border);background:var(--color-surface)}.import-modal__section-label{color:var(--color-text);font-size:.95rem;font-weight:600}.import-modal__section-rows{color:var(--color-text-secondary);white-space:nowrap;font-size:.85rem}.import-modal__notice{color:var(--color-warning-text);background:var(--color-warning-tint);border:1px solid var(--color-warning-tint-border);border-radius:var(--radius-md);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);font-size:.9rem}.rule-row{-webkit-user-select:none;user-select:none;transition:opacity .15s}tr.rule-row:hover:not(.rule-row--dragging) td{background:var(--color-surface-active)}.rule-row td{height:var(--table-row-height)}.rule-row:last-child td{border-bottom:none}.rule-row--inactive{opacity:.45}.rule-row--dragging{opacity:.3}.rule-row--drop-target{box-shadow:inset 0 2px 0 0 var(--color-primary)}.rule-row__drag{cursor:grab;width:32px;color:var(--color-text-secondary);text-align:center;vertical-align:middle;padding-left:var(--spacing-sm)!important;padding-right:0!important}.rule-row__drag:active{cursor:grabbing}.rule-row__drag-btn{cursor:grab;color:inherit;vertical-align:middle;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;padding:0;display:inline-flex}.rule-row__drag-btn:active{cursor:grabbing}.rule-row__drag-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.rule-row__drag-icon{opacity:.4;vertical-align:middle}.rule-row:hover .rule-row__drag-icon{opacity:1}.rule-row__priority{font-variant-numeric:tabular-nums;width:50px;color:var(--color-text-secondary);text-align:center;font-size:.8rem}.rule-row__priority--preview{color:var(--color-primary);font-weight:600}.rule-row__pattern{text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:text;user-select:text;max-width:240px;font-weight:500;overflow:hidden}.rule-row__exact-badge{margin-left:var(--spacing-xs);text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary);background:var(--color-hover);border-radius:var(--radius-sm);vertical-align:middle;-webkit-user-select:none;user-select:none;padding:1px 5px;font-size:.65rem;font-weight:600;display:inline-block}.rule-row__type,.rule-row__account,.rule-row__applied{white-space:nowrap}.rule-row__applied{font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.rule-row__category-label{align-items:center;gap:var(--spacing-sm);white-space:nowrap;text-overflow:ellipsis;display:flex;overflow:hidden}.rule-row__toggle{cursor:pointer;background:0 0;border:none;align-items:center;padding:2px;display:flex}.rule-row__toggle-track{background:var(--color-border);border-radius:9px;width:32px;height:18px;transition:background-color .2s;display:block;position:relative}.rule-row__toggle--active .rule-row__toggle-track{background:var(--color-primary)}.rule-row__toggle-thumb{width:14px;height:14px;box-shadow:var(--shadow-sm);background:#fff;border-radius:50%;transition:transform .2s;display:block;position:absolute;top:2px;left:2px}.rule-row__toggle--active .rule-row__toggle-thumb{transform:translate(14px)}.rule-row__actions{justify-content:flex-end;align-items:center;gap:var(--spacing-xs);display:flex}.rule-row__action-btn{color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;transition:color .15s,background-color .15s}.rule-row__action-btn:hover{color:var(--color-primary);background:var(--color-primary-tint-subtle)}.rule-row__action-btn--delete:hover{color:var(--color-error-text);background:var(--color-error-tint)}.rule-row__account--none{color:var(--color-text-secondary);font-style:italic}.drag-row-ghost{z-index:1000;pointer-events:none;opacity:0;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);position:fixed;top:0;left:0;overflow:hidden}.drag-row-ghost--visible{opacity:1}.drag-row-ghost .data-table{table-layout:fixed}.drag-row-ghost .data-table tbody tr:last-child td{border:0;border-radius:0}.tag-row{cursor:pointer}tr.tag-row:hover td{background:var(--color-surface-active)}.tag-row td{height:var(--table-row-height)}.tag-row:last-child td{border-bottom:none}.tag-row__swatch{text-align:center;vertical-align:middle}.tag-row__name{text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-weight:500;overflow:hidden}.tag-row__description{color:var(--color-text-secondary);text-overflow:ellipsis;white-space:nowrap;max-width:320px;overflow:hidden}.tag-row__amount{text-align:right;white-space:nowrap}.tag-row__amount-none{color:var(--color-text-secondary)}.tag-row__used{color:var(--color-text-secondary);text-align:right}.tag-row__actions{text-align:right;white-space:nowrap}.tag-row__action-btn{color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;transition:color .15s,background-color .15s}.tag-row__action-btn:hover{color:var(--color-primary);background:var(--color-primary-tint-subtle)}.tag-row__action-btn--delete:hover{color:var(--color-error-text);background:var(--color-error-tint)}.receipt-status{vertical-align:middle;white-space:nowrap;align-items:center;gap:6px;font-size:.8rem;font-weight:500;display:inline-flex}.receipt-status svg{flex-shrink:0}.receipt-status--unscanned{color:var(--color-text-secondary)}.receipt-status--processing{color:var(--color-primary)}.receipt-status--matched{color:var(--color-success-text)}.receipt-status--review,.receipt-status--input{color:var(--color-warning-text)}.receipt-status--failed{color:var(--color-error-text)}.receipt-status__spin{animation:1.6s linear infinite receipt-status-spin}@keyframes receipt-status-spin{to{transform:rotate(360deg)}}.file-row td{height:58px}.file-row:last-child td{border-bottom:none}.file-row--clickable{cursor:pointer}.file-row--clickable:hover td{background:var(--color-surface-active)}.file-row--clickable:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.file-row__date{white-space:nowrap;font-size:.85rem}.file-row__thumb{text-align:center;width:48px}.file-row__thumb-btn{cursor:pointer;vertical-align:middle;background:0 0;border:none;border-radius:4px;padding:0;display:inline-flex}.file-row__thumb-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.file-row__thumb-img{object-fit:cover;vertical-align:middle;border-radius:4px;width:28px;height:28px}.file-row__thumb-icon{background:var(--color-surface-alt);width:28px;height:28px;color:var(--color-text-secondary);border-radius:4px;justify-content:center;align-items:center;display:inline-flex}.file-row__name{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.file-row__status{white-space:nowrap}.file-row__transaction{max-width:300px;overflow:hidden}.file-row__transaction-desc{text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;display:block;overflow:hidden}.file-row__transaction-meta{align-items:baseline;gap:var(--spacing-xs);display:flex}.file-row__transaction-date{color:var(--color-text-secondary);flex-shrink:0;min-width:80px;font-size:.75rem}.file-row__transaction-amount{font-variant-numeric:tabular-nums;font-size:.75rem}.file-row__transaction--muted .file-row__transaction-desc,.file-row__transaction--muted .file-row__transaction-amount{color:var(--color-text-secondary)}.file-row__size{white-space:nowrap;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-size:.85rem}.file-row__actions{white-space:nowrap}.file-row__actions-group{justify-content:flex-end;gap:2px;display:flex}.file-row__action-btn{border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;padding:5px;transition:color .15s,background-color .15s}.file-row__action-btn:hover{color:var(--color-primary);background:var(--color-primary-tint)}.file-row__action-btn--delete:hover{color:var(--color-error-text);background:var(--color-error-tint)}.receipt-review__modal{max-width:640px}.receipt-review__body{gap:var(--spacing-lg);flex-direction:column;display:flex}.receipt-review__preview{gap:var(--spacing-md);align-items:flex-start;display:flex}.receipt-review__thumb{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);width:96px;height:96px;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:hidden}.receipt-review__thumb img{object-fit:cover;width:100%;height:100%}.receipt-review__thumb:hover .receipt-review__thumb-hint{opacity:1}.receipt-review__thumb:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.receipt-review__thumb-hint{color:#fff;padding:var(--spacing-xs) 0;text-align:center;opacity:0;background:#0009;font-size:.65rem;transition:opacity .15s;position:absolute;inset:auto 0 0}.receipt-review__file{gap:var(--spacing-xs);flex-direction:column;flex:1;min-width:0;display:flex}.receipt-review__filename{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;font-weight:600;overflow:hidden}.receipt-review__file-actions{gap:var(--spacing-xs);margin-top:auto;display:flex}.receipt-review__icon-btn{padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;transition:color .15s,background-color .15s}.receipt-review__icon-btn:hover{color:var(--color-primary);background:var(--color-primary-tint)}.receipt-review__icon-btn--delete:hover{color:var(--color-error-text);background:var(--color-error-tint)}.receipt-review__actions{gap:var(--spacing-sm);flex-direction:column;display:flex}.receipt-review__hint{color:var(--color-text-secondary);margin:0;font-size:.85rem}.data-table.receipt-review__table td.transaction-row__account,.data-table.receipt-review__table td.transaction-row__amount{text-align:right}.data-table.receipt-review__table tbody tr:first-child td{border-top:1px solid var(--color-border)}.data-table.receipt-review__table tbody tr:first-child td:first-child{border-top-left-radius:var(--radius-md)}.data-table.receipt-review__table tbody tr:first-child td:last-child{border-top-right-radius:var(--radius-md)}.data-table.receipt-review__table tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius-md)}.data-table.receipt-review__table tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius-md)}.receipt-review__picker-empty{color:var(--color-text-secondary);padding:var(--spacing-xs) 0;font-size:.85rem}.receipt-review__picker{gap:var(--spacing-md);margin-top:var(--spacing-md);flex-direction:column;min-height:54px;display:flex}.receipt-review__picker-search{align-items:center;gap:var(--spacing-xs);height:34px;padding:0 var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);transition:border-color .15s;display:flex}.receipt-review__picker-search input{color:var(--color-text);background:0 0;border:none;flex:1;font-size:.875rem}.receipt-review__picker-search input::placeholder{color:var(--color-text-secondary)}.receipt-review__picker-search input:focus{outline:none}.receipt-review__picker-search:focus-within{border-color:var(--color-primary)}.receipt-review__footer{flex-wrap:wrap}.receipt-review__fields{flex-direction:column;display:flex}.receipt-review__grid{gap:var(--spacing-md);margin-bottom:var(--spacing-md);grid-template-columns:1fr 1fr;display:grid}.receipt-review__grid .receipt-review__field{margin-bottom:0}.receipt-review__field{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.receipt-review__label{color:var(--color-text-secondary);font-size:.75rem;font-weight:600}.receipt-review__confirm-account{gap:var(--spacing-xs);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.receipt-review__confirm-account .dropdown__trigger{width:100%}.receipt-review__section-label{margin-top:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.receipt-review__input{width:100%;height:34px;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.875rem}.receipt-review__input:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring);outline:none}.files-export-modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:440px;padding:var(--spacing-xl)}.files-export-modal__title{margin-bottom:var(--spacing-xs);font-size:1.125rem;font-weight:700}.files-export-modal__context,.files-export-modal__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.85rem;line-height:1.5}.files-export-modal__notice{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--spacing-md);color:var(--color-text);margin-bottom:var(--spacing-lg);font-size:.85rem;line-height:1.5}.files-export-modal__actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.edit-name-modal,.change-email-modal{max-width:440px}.segmented{border:1px solid var(--color-border);border-radius:var(--radius-md);display:inline-flex;overflow:hidden}.segmented__option{background:var(--color-surface);font:inherit;color:var(--color-text-secondary);cursor:pointer;border:none;align-items:center;gap:6px;padding:6px 16px;font-size:.85rem;transition:background-color .15s,color .15s;display:inline-flex}.segmented__option:hover{background:var(--color-hover)}.segmented__option:focus-visible{outline:none;box-shadow:inset 0 0 0 2px}.segmented__option--active{background:var(--color-primary);color:#fff}.segmented__option+.segmented__option{border-left:1px solid var(--color-border)}.usage-bar{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.usage-bar__track{background:var(--color-surface-alt);border-radius:999px;flex:1;max-width:240px;height:6px;overflow:hidden}.usage-bar__fill{background:var(--color-primary);border-radius:999px;height:100%;transition:width .3s}.usage-bar__label{color:var(--color-text-secondary);white-space:nowrap;font-size:.8rem}.usage-bar--warning .usage-bar__fill{background:var(--color-warning)}.usage-bar--warning .usage-bar__label{color:var(--color-warning-text);font-weight:600}.usage-bar--exhausted .usage-bar__fill{background:var(--color-error)}.usage-bar--exhausted .usage-bar__label{color:var(--color-error-text);white-space:normal;font-weight:600}.change-password-modal{max-width:440px}.totp-input{font-family:var(--font-mono);letter-spacing:.5em;text-align:center;font-size:1.25rem}.enable-2fa-modal__qr{margin-bottom:var(--spacing-md);justify-content:center;display:flex}.enable-2fa-modal__qr img{image-rendering:pixelated;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-sm);background:#fff}.recovery-codes{margin-top:var(--spacing-md);gap:var(--spacing-sm);flex-direction:column;align-items:flex-start;display:flex}.recovery-codes__grid{gap:var(--spacing-xs);grid-template-columns:repeat(auto-fill,minmax(120px,1fr));width:100%;max-width:560px;display:grid}.recovery-codes__code{background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:center;-webkit-user-select:all;user-select:all;padding:6px 10px;font-family:monospace;font-size:.85rem}.purge-files-modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:420px;padding:var(--spacing-xl);overflow:visible}.purge-files-modal__title{margin-bottom:var(--spacing-xs);font-size:1.125rem;font-weight:700}.purge-files-modal__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.85rem;line-height:1.5}.purge-files-modal__range{width:100%;margin-bottom:var(--spacing-md)}.purge-files-modal__download{padding:var(--spacing-xs);margin:calc(var(--spacing-xs) * -1);border-radius:var(--radius-sm);color:var(--color-primary);cursor:pointer;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,background-color .15s;display:inline-flex}.purge-files-modal__download:hover:not(:disabled){color:var(--color-primary-hover);background:var(--color-primary-tint)}.purge-files-modal__download:disabled{cursor:default}.purge-files-modal__footnote{min-height:38px;margin-bottom:var(--spacing-lg);color:var(--color-text-secondary);align-items:flex-start;font-size:.78rem;line-height:1.5;display:flex}.purge-files-modal__footnote--error{color:var(--color-error-text)}.purge-files-modal__actions{justify-content:flex-end;gap:var(--spacing-sm);display:flex}.purge-files-modal__warning{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem;line-height:1.5}.settings-section--danger{border-color:var(--color-error)}.settings-section--danger .settings-section__title{color:var(--color-error-text)}.danger-zone__action+.danger-zone__action{border-top:1px solid var(--color-border);margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.danger-zone__action-title{margin-bottom:var(--spacing-xs);font-size:.9rem;font-weight:600}.auth-page{min-height:100vh;padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-surface);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-md);padding:var(--spacing-2xl)}.auth-card__icon{width:56px;height:56px;margin-bottom:var(--spacing-md)}.auth-card__header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-card__header h1{margin-bottom:var(--spacing-xs);font-size:1.75rem;font-weight:700}.auth-card__header p{color:var(--color-text-secondary);font-size:.9rem}.auth-card__footer{text-align:center;margin-top:var(--spacing-lg);color:var(--color-text-secondary);font-size:.875rem}.auth-card__footer a{font-weight:500}.auth-card__status{text-align:center;color:var(--color-text-secondary);font-size:.9rem}.auth-card .btn{width:100%}.account-type-selector{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.account-type-selector__option{padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;-webkit-user-select:none;user-select:none;flex:1;transition:border-color .15s,background-color .15s}.account-type-selector__option:hover{border-color:var(--color-primary)}.account-type-selector__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.account-type-selector__option--active{border-color:var(--color-primary);background:var(--color-primary-tint-subtle)}.account-type-selector__option h3{margin-bottom:2px;font-size:.9rem;font-weight:600}.account-type-selector__option p{color:var(--color-text-secondary);font-size:.75rem}.auth-card__link-button{margin:0 auto var(--spacing-sm);font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:.85rem;display:block}.auth-card__link-button:hover{text-decoration:underline}.auth-card__checkbox{align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);color:var(--color-text-secondary);cursor:pointer;font-size:.8rem;display:flex}.auth-card__checkbox input{accent-color:var(--color-primary);cursor:pointer;margin-top:2px}.auth-card__note{margin:var(--spacing-md) 0 0;color:var(--color-text-secondary);text-align:center;font-size:.78rem}.auth-card__inline-link{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0}.auth-card__inline-link:hover{text-decoration:underline}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#1a73e8;--color-primary-hover:#1557b0;--color-bg:#fafafa;--color-surface:#fff;--color-surface-alt:#f3f4f6;--color-surface-active:var(--color-surface-alt);--color-text:#1a1a2e;--color-text-secondary:#4b5563;--color-border:#e5e7eb;--color-success:#22c55e;--color-warning:#f59e0b;--color-error:#ef4444;--color-error-hover:#dc2626;--color-income:#22c55e;--color-expense:#ef4444;--color-uncategorised:#9ca3af;--color-neutral-solid:#6b7280;--color-other:#64748b;--cat-1:#2a78d6;--cat-2:#1baf7a;--cat-3:#eda100;--cat-4:#008300;--cat-5:#6a4ca7;--cat-6:#e34948;--cat-7:#e87ba4;--cat-8:#eb6834;--cat-9:#0e8fb0;--cat-10:#6f9e1a;--cat-11:#5b6fb5;--cat-12:#a86322;--cat-13:#c2506b;--cat-14:#7d3fb0;--cat-15:#b08a00;--cat-16:#2f7d4f;--cat-17:#b5461f;--cat-18:#5257c4;--cat-19:#d16a8f;--color-success-text:#15803d;--color-income-text:#15803d;--color-error-text:#b91c1c;--color-expense-text:#b91c1c;--color-warning-text:#b45309;--color-primary-tint-faint:#1a73e808;--color-primary-tint-subtle:#1a73e80d;--color-primary-tint:#1a73e814;--color-primary-tint-strong:#1a73e81f;--color-focus-ring:#1a73e859;--color-success-tint:#22c55e14;--color-success-tint-border:#22c55e33;--color-warning-tint:#f59e0b24;--color-warning-tint-border:#f59e0b40;--color-error-tint:#ef444414;--color-error-tint-border:#ef444433;--color-hover:#0000000a;--color-backdrop:#00000080;--scrollbar-thumb:#1a1a2e59;--scrollbar-thumb-hover:#1a1a2e8c;--resizer-grip:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M8.5 2.5 2.5 8.5M8.5 6 6 8.5' fill='none' stroke='rgba(26,26,46,0.4)' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 20px 60px #00000026;--shadow-popover:0 4px 12px #00000026;--z-tooltip:3000;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--table-row-height:44px;--spacing-lg:24px;--spacing-xl:32px;--spacing-2xl:48px;--max-width:1200px;--sidebar-width:200px;--topbar-height:60px;--filter-bar-height:34px}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#4b90ec;--color-primary-hover:#6da8f2;--color-bg:#12121f;--color-surface:#1a1a2e;--color-surface-alt:#232338;--color-text:#f0f1f5;--color-text-secondary:#9aa0b4;--color-border:#2c2c44;--color-neutral-solid:#444a5c;--color-other:#7c899e;--color-success:#4ade80;--color-warning:#fbbf24;--color-error:#f87171;--color-error-hover:#ef4444;--color-income:#4ade80;--color-expense:#f87171;--cat-1:#4a90ec;--cat-2:#23a577;--cat-3:#b88422;--cat-4:#34a853;--cat-5:#9085e9;--cat-6:#dd5b5a;--cat-7:#d06d92;--cat-8:#db6a3a;--cat-9:#1f9dc2;--cat-10:#789a29;--cat-11:#6b78c8;--cat-12:#b0733a;--cat-13:#c15f7b;--cat-14:#a878d6;--cat-15:#b08e2a;--cat-16:#4ea575;--cat-17:#d97045;--cat-18:#7f84e0;--cat-19:#cc708f;--color-success-text:#4ade80;--color-income-text:#4ade80;--color-error-text:#f87171;--color-expense-text:#f87171;--color-warning-text:#fbbf24;--color-primary-tint-faint:#4b90ec12;--color-primary-tint-subtle:#4b90ec1c;--color-primary-tint:#4b90ec2b;--color-primary-tint-strong:#4b90ec3d;--color-focus-ring:#4b90ec59;--color-success-tint:#4ade801f;--color-success-tint-border:#4ade804d;--color-warning-tint:#fbbf2429;--color-warning-tint-border:#fbbf244d;--color-error-tint:#f871711f;--color-error-tint-border:#f871714d;--color-hover:#ffffff0f;--color-backdrop:#000000a6;--scrollbar-thumb:#f0f1f559;--scrollbar-thumb-hover:#f0f1f58c;--resizer-grip:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M8.5 2.5 2.5 8.5M8.5 6 6 8.5' fill='none' stroke='rgba(240,241,245,0.4)' stroke-width='1.2' stroke-linecap='round'/%3E%3C/svg%3E");--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 6px #00000073;--shadow-lg:0 20px 60px #0009;--shadow-popover:0 4px 12px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);background-clip:content-box;border:2px solid #0000;border-radius:5px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}::-webkit-scrollbar-corner{background:0 0}::-webkit-resizer{background:var(--resizer-grip) no-repeat right 2px bottom 2px/10px 10px}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) transparent}}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);color:var(--color-text);background-color:var(--color-bg);line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer;-webkit-user-select:none;user-select:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:var(--max-width);padding:0 var(--spacing-lg);margin:0 auto}.skip-link{top:var(--spacing-sm);z-index:calc(var(--z-tooltip) + 1);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-md);font-size:.875rem;font-weight:500;position:fixed;left:-100vw}.skip-link:focus{left:var(--spacing-sm);outline-offset:2px;outline:2px solid;text-decoration:none}main:focus{outline:none}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){:root:not([data-motion=full]) *,:root:not([data-motion=full]) :before,:root:not([data-motion=full]) :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root[data-motion=reduce] *,:root[data-motion=reduce] :before,:root[data-motion=reduce] :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
