@charset "UTF-8";.toast-stack{position:fixed;bottom:var(--spacing-lg);left:var(--spacing-lg);z-index:2000;display:flex;flex-direction:column;gap:var(--spacing-sm);pointer-events:none}.toast{display:flex;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;animation:toast-slide-in .2s ease-out;max-width:400px}.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{flex:1;font-size:.8rem;font-weight:500;color:var(--color-text);line-height:1.4}.toast__close{flex-shrink:0;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:2px;border-radius:var(--radius-sm);display:flex;align-items:center}.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{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:10px 20px;border-radius:var(--radius-md);font-size:.9rem;font-weight:500;border:none;transition:background-color .15s,opacity .15s}.btn--primary{background:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-primary-hover)}.btn--secondary{background:transparent;color:var(--color-primary);border:1px solid var(--color-border)}.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{font-size:.85rem;padding:6px 14px}.btn--full-width{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.btn .spinner{width:16px;height:16px}.error-boundary{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.error-boundary__card{max-width:480px;text-align:center}.error-boundary__title{font-size:1.5rem;font-weight:700;margin-bottom:var(--spacing-sm)}.error-boundary__message{color:var(--color-text-secondary);font-size:.9rem;margin-bottom:var(--spacing-lg);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);font-size:.8rem;color:var(--color-error-text);margin-bottom:var(--spacing-lg);text-align:left;white-space:pre-wrap;word-break:break-word;font-family:var(--font-mono)}.error-boundary__actions{display:flex;justify-content:center;gap:var(--spacing-sm)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:2500;display:flex;align-items:center;justify-content:center;gap:8px;padding:8px 16px;font-size:.875rem;font-weight:500;text-align:center;color:var(--color-error-hover);background:var(--color-error-tint);border-bottom:1px solid var(--color-error-tint-border)}.offline-banner__icon{flex-shrink:0}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.sidebar{width:var(--sidebar-width);min-height:100vh;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;flex-shrink:0;position:fixed;top:0;left:0;z-index:100}.sidebar__logo{padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-xl);display:flex;align-items:center;justify-content:center;-webkit-user-select:none;user-select:none;text-decoration:none}.sidebar__logo:hover{text-decoration:none}.sidebar__wordmark{height:50px;width:auto;max-width:100%}.sidebar__nav{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:0 var(--spacing-sm)}.sidebar__link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;font-size:.875rem;font-weight:500;transition:background-color .15s,color .15s;-webkit-user-select:none;user-select:none}.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{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-backdrop);z-index:99}@media(max-width:767px){.sidebar{transform:translate(-100%);transition:transform .25s ease}.sidebar--open{transform:translate(0)}}@media(min-width:768px){.sidebar-backdrop{display:none}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-backdrop);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-lg)}.modal{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.modal--wide{max-width:800px}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg) var(--spacing-lg) var(--spacing-md)}.modal__header h2{font-size:1.25rem;font-weight:700}.modal__close{background:none;border:none;font-size:1.5rem;color:var(--color-text-secondary);padding:var(--spacing-xs);line-height:1}.modal__close:hover{color:var(--color-text)}.modal__body{padding:0 var(--spacing-lg) var(--spacing-lg);overflow-y:auto;flex:1}.modal__description{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.modal__fields{display:flex;flex-direction:column;gap:var(--spacing-xs)}.modal__footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.help-modal{max-width:900px;max-height:88vh}.help-modal__masthead{position:relative;padding:var(--spacing-lg) var(--spacing-xl);background:var(--color-primary-tint-faint);border-bottom:1px solid var(--color-border)}.help-modal__eyebrow{margin:0 0 var(--spacing-xs);font-size:.7rem;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--color-primary)}.help-modal h2{margin:0;font-size:1.5rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text)}.help-modal__intro{margin:var(--spacing-sm) 0 0;padding-right:var(--spacing-xl);max-width:56ch;font-size:1rem;line-height:1.6;color:var(--color-text-secondary)}.help-modal__close{position:absolute;top:var(--spacing-md);right:var(--spacing-md);background:none;border:none;font-size:1.5rem;line-height:1;padding:var(--spacing-xs);color:var(--color-text-secondary);cursor:pointer}.help-modal__close:hover{color:var(--color-text)}.help-modal__body{padding:var(--spacing-xs) var(--spacing-xl) var(--spacing-lg)}.help-modal__loading{display:flex;justify-content:center;padding:var(--spacing-2xl) 0}.help-modal__items{margin:0}.help-modal__row{display:grid;grid-template-columns:200px 1fr;gap:var(--spacing-xl);align-items:start;padding:var(--spacing-lg) 0}.help-modal__term{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-text);display:flex;align-items:center;gap:var(--spacing-sm);min-height:28px}.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);transition:border-color .15s,background-color .15s,color .15s;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:26px;height:26px;vertical-align:middle}.help-modal__desc{margin:0;font-size:.9375rem;line-height:1.7;color:var(--color-text-secondary);max-width:62ch}@media(max-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{grid-template-columns:1fr;gap:var(--spacing-sm);padding:var(--spacing-md) 0}}.trial-pill{display:flex;align-items:center;color:var(--color-primary);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.85rem;font-weight:500;line-height:normal;text-decoration:none;white-space:nowrap;transition:background-color .15s}.trial-pill:hover{text-decoration:none;background:var(--color-hover)}.trial-pill--urgent{color:var(--color-error-text)}.app-layout{display:flex;min-height:100vh}.app-layout__main{position:relative;flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;margin-left:var(--sidebar-width);background:var(--color-bg)}.app-layout__topbar{position:absolute;top:0;left:0;right:0;height:var(--topbar-height);display:flex;align-items:center;justify-content:flex-end;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}@media(max-width:900px){.app-layout__topbar{background:var(--color-bg)}}.app-layout__hamburger{display:none;background:none;border:none;color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);margin-right:auto}.app-layout__hamburger:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__help{display:flex;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);background:none;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.85rem;font-weight:500;transition:color .15s,background-color .15s}.app-layout__help:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__username{font-size:.85rem;font-weight:500;margin-right:var(--topbar-label-gap)}.app-layout__settings-dropdown{position:relative}.app-layout__settings{display:flex;align-items:center;gap:2px;color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-xs) var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);background:none;border:none;cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s,background-color .15s}.app-layout__settings:hover{color:var(--color-text);background:var(--color-hover)}.app-layout__settings-chevron{transition:transform .2s ease}.app-layout__settings-chevron--open{transform:rotate(180deg)}.app-layout__settings-menu{position:absolute;top:calc(100% + var(--spacing-xs));right:0;min-width:180px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;padding:var(--spacing-xs)}.app-layout__settings-item{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-xs) var(--spacing-sm);font-size:.8rem;font-weight:500;color:var(--color-text);text-decoration:none;border-radius:var(--radius-sm);transition:background-color .1s;cursor:pointer;-webkit-user-select:none;user-select:none}.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:none}.app-layout__content{position:relative;flex:1;overflow-y:auto;padding:0 var(--spacing-lg) var(--spacing-xl)}.app-layout__content>:first-child{margin-top:var(--topbar-height)}@media(max-width:767px){.app-layout__main{margin-left:0;border-top-left-radius:0}.app-layout__hamburger{display:flex}.app-layout__help-label{display:none}}.form-alert{position:relative;z-index:3;padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:.875rem;margin-bottom:var(--spacing-md)}.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:var(--color-text-secondary);transition:border-color .15s,background-color .15s,color .15s;background-color:var(--color-surface);color:inherit;padding:var(--spacing-2xl);text-align:center}.empty-state__title{font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-sm)}.empty-state__description{color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);font-size:.9rem}.page-header{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.page-header h1{font-size:1.5rem;font-weight:700}.page-header__count{font-weight:400;color:var(--color-text-secondary)}.page-header__actions{display:flex;gap:var(--spacing-sm)}.bank-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem;color:#fff;flex-shrink:0}.bank-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--spacing-lg)}.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);transition:border-color .15s,background-color .15s,color .15s;padding:var(--spacing-xl);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.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{font-size:.9rem;font-weight:500;color:var(--color-primary);margin-bottom:var(--spacing-xs)}.file-upload__hint{font-size:.8rem;color:var(--color-text-secondary)}.file-upload__name{font-size:.85rem;font-weight:500;margin-top:var(--spacing-sm);color:var(--color-text)}.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{font-weight:600;font-size:1rem;color:var(--color-success-text);margin-bottom:var(--spacing-xs)}.import-result__detail{font-size:.85rem;color:var(--color-text-secondary)}.import-result__receipts{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap;margin-top:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--color-success-tint-border);font-size:.85rem;color:var(--color-text-secondary)}.import-result__receipts--running{flex-direction:column;gap:var(--spacing-sm)}.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{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .6s linear infinite;display:inline-block}.spinner--sm{width:12px;height:12px;border-width:1.5px}.spinner--lg{width:40px;height:40px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.amount{font-weight:600;font-variant-numeric:tabular-nums}.amount--income{color:var(--color-income-text)}.amount--expense{color:var(--color-expense-text)}.bank-badge{display:inline-flex;align-items:center;vertical-align:middle;gap:var(--spacing-sm);max-width:100%;font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.bank-badge__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bank-badge__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-lg)}.dashboard-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-xs);text-decoration:none;color:inherit;transition:box-shadow .15s,border-color .15s}.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{font-size:.85rem;color:var(--color-text-secondary)}.dashboard-card__action{font-size:.8rem;font-weight:500;color:var(--color-primary);margin-top:var(--spacing-xs)}.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{font-size:1rem;font-weight:600;margin-bottom:var(--spacing-md)}.settings-section__description{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.settings-row+.settings-section__description{margin-top:var(--spacing-md);margin-bottom:0}.settings-row{display:flex;align-items:center;gap:var(--spacing-sm);min-height:44px;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border)}.settings-row:last-child{border-bottom:none}.settings-row__label{flex:0 0 200px;font-size:.85rem;color:var(--color-text-secondary);font-weight:500}.settings-row__value{flex:1;min-width:0;display:flex;align-items:center;gap:var(--spacing-sm);font-size:.85rem;font-weight:500;overflow-wrap:anywhere}.settings-row__action{flex-shrink:0;display:flex;align-items:center;gap:var(--spacing-sm);margin-left:auto}.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(max-width:560px){.settings-row{flex-wrap:wrap;row-gap:2px}.settings-row__label{flex-basis:100%}}.settings-form__fields{max-width:400px;display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-form__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.settings-link-button{background:none;border:none;padding:0;font:inherit;font-size:.85rem;font-weight:500;color:var(--color-primary);cursor:pointer}.settings-link-button:hover{text-decoration:underline}.settings-link-button:disabled{opacity:.6;cursor:default;text-decoration:none}.scroll-sentinel{display:flex;justify-content:center;padding:var(--spacing-lg) 0;min-height:1px}.page-loading{display:flex;justify-content:center;align-items:center;min-height:240px;padding:var(--spacing-2xl) 0}.match-badge{flex-shrink:0;padding:1px 6px;border-radius:999px;font-size:.65rem;font-weight:600;background:var(--color-primary-tint);color:var(--color-primary);white-space:nowrap}.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{display:inline-flex;align-items:center;gap:var(--spacing-xs);height:34px;padding:0 var(--spacing-md);border-radius:var(--radius-md);font-size:.8rem;font-weight:500;white-space:nowrap;font-variant-numeric:tabular-nums;background:var(--color-primary);border:1px solid var(--color-primary);color:#fff;cursor:pointer;transition:background-color .15s,color .15s}.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);border-radius:12px;margin-bottom:var(--spacing-xl)}.billing__price{display:flex;align-items:baseline;gap:var(--spacing-xs)}.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{list-style:none;padding:0;margin:0 0 var(--spacing-lg)}.billing__features li{display:flex;align-items:center;gap:var(--spacing-sm);padding:4px 0;font-size:.85rem}.billing__features li svg{color:var(--color-success-text);flex-shrink:0}.billing__terms{max-width:560px}.billing__terms h2{font-size:.95rem;font-weight:600;margin-bottom:var(--spacing-sm)}.billing__terms ul{list-style:disc;padding-left:1.2rem;color:var(--color-text-secondary);font-size:.82rem}.billing__terms ul li{margin-bottom:6px}.billing__interval{display:inline-flex;padding:3px;margin-bottom:var(--spacing-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;gap:2px}.billing__interval-option{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:6px 14px;border:none;border-radius:6px;background:none;font:inherit;font-size:.82rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer}.billing__interval-option--on{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 2px #00000014}.billing__interval-note{font-size:.7rem;font-weight:600;color:var(--color-success-text)}.dropdown{position:relative;display:inline-block}.dropdown__trigger{display:flex;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);font-size:.8rem;font-weight:500;color:var(--color-text);cursor:pointer;white-space:nowrap;transition:border-color .15s,background-color .15s;text-align:left;height:34px}.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{display:flex;align-items:center;flex-shrink:0;color:var(--color-text-secondary)}.dropdown__trigger-text{flex:1;overflow:hidden;text-overflow:ellipsis}.dropdown__trigger-text--placeholder{color:var(--color-text-secondary)}.dropdown__trigger-chevron{flex-shrink:0;color:var(--color-text-secondary);transition:transform .2s ease}.dropdown__trigger-chevron--open{transform:rotate(180deg)}.dropdown__panel{position:absolute;top:calc(100% + 4px);left:0;min-width:max(100%,200px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;overflow:hidden}.dropdown__panel--wide{min-width:300px}.dropdown__panel--above{top:auto;bottom:calc(100% + 4px)}.dropdown__panel-scroll{max-height:320px;overflow-y:auto;padding:var(--spacing-xs)}.dropdown__section-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-secondary);padding:var(--spacing-xs) var(--spacing-sm);margin-top:var(--spacing-xs)}.dropdown__divider{height:1px;background:var(--color-border);margin:var(--spacing-xs) 0}.dropdown__option{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;text-align:left;padding:6px var(--spacing-sm);background:none;border:none;border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;color:var(--color-text);cursor:pointer;transition:background-color .1s;white-space:nowrap}.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{display:flex;align-items:center;flex-shrink:0}.bank-logo{width:var(--bank-logo-size, 40px);height:var(--bank-logo-size, 40px);border-radius:var(--radius-md);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center}.bank-logo__img{display:block;object-fit:contain;border-radius:var(--radius-md)}.bank-logo--fallback{background-color:var(--bank-logo-color, #6b7280);color:#fff;font-weight:700;-webkit-user-select:none;user-select:none}.bank-logo__initials{font-size:var(--bank-logo-font-size, 14px)}.tag-chip{-webkit-user-select:none;user-select:none}.tag-chip--dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--tag-colour);flex-shrink:0}.tag-chip--chip{display:inline-flex;align-items:center;gap:5px;max-width:var(--tag-max-width, 100%);padding:2px 8px;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--tag-colour) 12%,transparent);font-size:12px;color:var(--color-text);line-height:18px}.tag-chip__dot{width:8px;height:8px;border-radius:50%;background:var(--tag-colour);flex-shrink:0}.tag-chip__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-chip__remove{display:inline-flex;align-items:center;justify-content:center;padding:1px;border:none;border-radius:50%;background:transparent;color:var(--color-text-secondary);cursor:pointer;flex-shrink:0}.tag-chip__remove:hover{background:color-mix(in srgb,var(--tag-colour) 25%,transparent);color:var(--color-text)}.filter-bar{position:sticky;top:calc((var(--topbar-height) - var(--filter-bar-height)) / 2);z-index:6;display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);flex-wrap:wrap;padding-right:140px;pointer-events:none}.filter-bar>*{pointer-events:auto}@media(max-width:900px){.filter-bar{position:static;padding-right:0}}.filter-bar__control--tag{max-width:170px}.filter-bar__chip{display:inline-flex;align-items:center;gap:5px;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);font-size:.8rem;font-weight:500;white-space:nowrap;cursor:pointer}.filter-bar__chip:hover{border-color:var(--color-warning-text)}.filter-bar__search{display:flex;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);height:34px;flex:1;min-width:180px;max-width:300px;transition:border-color .15s;color:var(--color-text-secondary)}.filter-bar__search:focus-within{border-color:var(--color-primary)}.filter-bar__search input{border:none;outline:none;background:none;font-size:.875rem;color:var(--color-text);width:100%}.filter-bar__search input::placeholder{color:var(--color-text-secondary)}.floating-tooltip{position:fixed;z-index:var(--z-tooltip, 3000);pointer-events:none}.transactions-chart{flex:1 1 50%;min-width:0;height:100%;display:flex;flex-direction:column;transition:opacity .15s ease}.transactions-chart--refreshing{opacity:.6}.transactions-chart__plot{position:relative;flex:1;min-height:0}.transactions-chart__empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--color-text-secondary);font-size:.8125rem}.transactions-chart__legend{display:flex;flex-wrap:wrap;gap:var(--spacing-sm) var(--spacing-md);justify-content:flex-end;padding:0 var(--spacing-sm) var(--spacing-xs);font-size:.75rem;color:var(--color-text-secondary)}.transactions-chart__legend-item{display:inline-flex;align-items:center;gap:6px}.transactions-chart__legend-value{font-weight:600;color:var(--color-text)}.transactions-chart__legend-value--profit{color:var(--color-income-text)}.transactions-chart__legend-value--loss{color:var(--color-expense-text)}.transactions-chart__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.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);font-size:.75rem;color:var(--color-text)}.transactions-chart__tooltip-title{font-weight:600;margin-bottom:var(--spacing-xs)}.transactions-chart__tooltip-row{display:flex;align-items:center;gap:6px;padding:2px 0}.transactions-chart__tooltip-row strong{margin-left:auto;padding-left:var(--spacing-md);font-variant-numeric:tabular-nums}.expense-breakdown{flex:1 1 50%;min-width:0;height:100%;display:flex;flex-direction:column;transition:opacity .15s ease}.expense-breakdown--refreshing{opacity:.6}.expense-breakdown__title{padding:0 var(--spacing-sm) var(--spacing-xs);font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.expense-breakdown__body{flex:1;min-height:0;display:flex;gap:var(--spacing-sm)}.expense-breakdown__plot{position:relative;flex:1 1 55%;min-width:0}.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:1 1 45%;min-width:0;margin:0;padding:0;list-style:none;overflow-y:auto;font-size:.75rem}.expense-breakdown__legend-item{display:flex;align-items:center;gap:6px;padding:2px 0;color:var(--color-text)}.expense-breakdown__legend-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.expense-breakdown__legend-value{margin-left:auto;padding-left:var(--spacing-sm);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.expense-breakdown__swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.expense-breakdown__empty{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--color-text-secondary);font-size:.8125rem;text-align:center}.expense-breakdown__tooltip{width:max-content;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);font-size:.75rem;color:var(--color-text)}.expense-breakdown__tooltip-row{display:flex;align-items:center;gap:6px}.expense-breakdown__tooltip-row strong{margin-left:auto;padding-left:var(--spacing-md);font-variant-numeric:tabular-nums}.expense-breakdown__tooltip-percent{margin-top:2px;padding-left:16px;color:var(--color-text-secondary)}.expense-breakdown__tooltip-breakdown{margin:var(--spacing-xs) 0 0;padding:var(--spacing-xs) 0 0;border-top:1px solid var(--color-border);list-style:none;display:flex;flex-direction:column;gap:3px}.expense-breakdown__tooltip-breakdown-row{display:flex;align-items:center;gap:6px}.expense-breakdown__tooltip-breakdown-label{white-space:nowrap}.expense-breakdown__tooltip-breakdown-value{margin-left:auto;padding-left:var(--spacing-md);font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.summary-charts{height:240px;margin-bottom:var(--spacing-lg);display:flex;align-items:stretch;gap:var(--spacing-lg)}@media(max-width:900px){.summary-charts{height:auto;flex-direction:column;gap:var(--spacing-md)}}.summary-charts__skeleton{flex:1 1 50%;min-width:0;height:240px;background:var(--color-surface-alt);border-radius:var(--radius-md);animation:summary-charts-pulse 1.4s ease-in-out infinite}@media(max-width:900px){.summary-charts__skeleton{height:200px}}@media(max-width:600px){.summary-charts__skeleton{height:160px}}@media(max-width:900px){.summary-charts .transactions-chart,.summary-charts .expense-breakdown{flex:none;height:200px}}@media(max-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{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.create-rule__field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--spacing-md)}.create-rule__grid .create-rule__field{margin-bottom:0}.create-rule__label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.create-rule__input{width:100%;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.85rem;background:var(--color-surface);height:34px}.create-rule__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.create-rule__pattern-row{display:flex;align-items:center;gap:var(--spacing-xl)}.create-rule__personal-label{display:flex;align-items:center;height:34px;font-size:.8rem;color:var(--color-text-secondary)}.create-rule__checkbox{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8rem;font-weight:500;color:var(--color-text);cursor:pointer;white-space:nowrap}.create-rule__checkbox input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}.create-rule__apply-past{display:flex;align-items:center;gap:var(--spacing-xs);font-size:.8rem;font-weight:500;color:var(--color-text);cursor:pointer;margin-right:auto}.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{display:flex;gap:var(--spacing-sm)}.create-rule__modal .type-toggle{align-self:flex-start}.tag-modal{width:420px;max-width:100%}.tag-modal__field{display:flex;flex-direction:column;gap:6px}.tag-modal__field+.tag-modal__field{margin-top:var(--spacing-md)}.tag-modal__label{font-size:13px;font-weight:600;color:var(--color-text)}.tag-modal__optional{font-weight:400;color:var(--color-text-secondary)}.tag-modal__input{padding:8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:14px}.tag-modal__input:focus{outline:none;border-color:var(--color-primary)}.tag-modal__error{font-size:12px;color:var(--color-error-text)}.tag-modal__swatches{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.tag-modal__swatch{width:24px;height:24px;border:none;border-radius:50%;background:var(--tag-colour);cursor:pointer}.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{outline:none;box-shadow:0 0 0 2px var(--color-surface),0 0 0 4px var(--color-primary)}.tag-modal__hint{margin:var(--spacing-md) 0 0;font-size:12px;color:var(--color-text-secondary)}.tag-modal__footer-buttons{display:flex;gap:var(--spacing-sm);margin-left:auto}.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{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.transaction-row__amount{white-space:nowrap}.transaction-row__original{display:block;font-size:.7rem;color:var(--color-text-secondary);font-weight:400}.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{font-size:.8rem;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.transaction-row__category-label--muted{color:var(--color-text-secondary);font-style:italic}.transaction-row__category-wrapper{display:flex;align-items:center;gap:4px}.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{display:inline-flex;align-items:center;color:var(--color-text-secondary);flex-shrink:0;margin-left:var(--spacing-sm)}.transaction-row__rule-info{color:var(--color-text-secondary);font-style:italic}.transaction-row__rule-prompt-row td{padding:0!important;border-bottom:1px solid var(--color-border);background:var(--color-primary-tint-faint)}.transaction-row__chevron{width:32px;text-align:center;cursor:pointer;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none}.transaction-row__chevron-icon{transition:transform .2s ease;vertical-align:middle}.transaction-row__chevron-icon--open{transform:rotate(90deg)}tr.transaction-row__detail td{--affordance-fill: var(--color-surface);padding:0!important;border-bottom:1px solid var(--color-border);background:var(--color-surface-active)}.transaction-row__detail-content{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-md);display:flex;gap:var(--spacing-lg);position:relative}.transaction-row__detail-files{flex:3;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:8px}.transaction-row__detail-files .file-picker{--file-picker-height: 48px}.transaction-row__detail-notes{flex:3;display:flex;flex-direction:column;gap:8px}.transaction-row__detail-tags{flex:3;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.transaction-row__detail-tags .tag-picker{flex:1;align-self:stretch;height:auto;min-height:48px;contain:size}.transaction-row__detail-right{flex:2;display:flex;flex-direction:column;gap:8px}.transaction-row__detail-action-btn{position:absolute;top:var(--spacing-sm);right:max(3% - 24px,var(--spacing-md));transform:translate(50%);background:none;border:none;color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;line-height:0;transition:color .15s,background-color .15s}.transaction-row__detail-action-btn:hover{color:var(--color-primary);background:var(--color-primary-tint-subtle)}.transaction-row__detail-label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.transaction-row__rule-match{font-size:.8rem;color:var(--color-text);margin-top:2px}.transaction-row__rule-none{font-size:.8rem;color:var(--color-text-secondary);margin-top:2px}.transaction-row__rule-action{background:none;border:none;font-size:.75rem;font-weight:500;color:var(--color-primary);cursor:pointer;padding:0;margin-top:var(--spacing-xs);text-align:left}.transaction-row__rule-action:hover{text-decoration:underline}.transaction-row__tags{text-align:center}.transaction-row__tag-dots{display:inline-flex;align-items:center;vertical-align:middle;gap:2px}.transaction-row__tag-dots .tag-chip--dot{width:12px;height:12px}.transaction-row__tag-overflow{font-size:11px;color:var(--color-text-secondary)}.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{display:inline-flex;align-items:center;vertical-align:middle;gap:2px;color:var(--color-text-secondary)}.transaction-row__file-count{font-size:.65rem;font-weight:600;color:var(--color-text-secondary);min-width:14px}.transaction-row__notes{width:100%;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.8rem;font-family:inherit;resize:vertical;min-height:48px;background:var(--color-surface)}.transaction-row__notes:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.transaction-row__notes::placeholder{color:var(--color-text-secondary)}.type-toggle{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.type-toggle__btn{display:flex;align-items:center;gap:4px;padding:0 var(--spacing-sm);height:28px;font-size:.75rem;font-weight:500;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s,color .15s}.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 (max-width: 885px){.data-table th.tcol-tags,.data-table td.transaction-row__tags{width:0;min-width:0;max-width:0;padding:0;border:none;visibility:hidden;overflow:hidden}}@container (max-width: 829px){.data-table th.tcol-file,.data-table td.transaction-row__file{width:0;min-width:0;max-width:0;padding:0;border:none;visibility:hidden;overflow:hidden}}@container (max-width: 789px){.data-table th.tcol-category,.data-table td.transaction-row__category{width:0;min-width:0;max-width:0;padding:0;border:none;visibility:hidden;overflow:hidden}}@container (max-width: 619px){.data-table th.tcol-account,.data-table td.transaction-row__account{width:0;min-width:0;max-width:0;padding:0;border:none;visibility:hidden;overflow:hidden}th.tcol-type{width:140px}}@container (max-width: 499px){.data-table th.tcol-type,.data-table td.transaction-row__type-toggle,.data-table td.transaction-row__type{width:0;min-width:0;max-width:0;padding:0;border:none;visibility:hidden;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{display:flex;align-items:center;gap:6px;min-width:0}.transaction-row__desc-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-group{margin-bottom:var(--spacing-md)}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:var(--spacing-xs);color:var(--color-text)}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;transition:border-color .15s;background:var(--color-surface)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-group input::placeholder,.form-group select::placeholder{color:var(--color-text-secondary)}.form-group select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%236b7280' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.form-group__hint{color:var(--color-text-secondary);font-size:.8rem;margin-top:var(--spacing-xs)}.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);font-size:.8rem;letter-spacing:1px}.form-error{color:var(--color-error-text);font-size:.8rem;margin-top:var(--spacing-xs)}.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{font-size:1.125rem;font-weight:700;margin-bottom:var(--spacing-sm)}.confirm-modal__message{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.5}.confirm-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.file-preview{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#000c;display:flex;flex-direction:column;padding:var(--spacing-lg);gap:var(--spacing-sm)}.file-preview__bar{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);color:#fff;flex-shrink:0}.file-preview__name{font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-preview__actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.file-preview__btn{background:none;border:none;color:#fff;cursor:pointer;padding:6px;border-radius:var(--radius-sm);display:inline-flex}.file-preview__btn:hover{background:#ffffff26}.file-preview__content{flex:1;min-height:0;display:flex;align-items:center;justify-content:center}.file-preview__img{max-width:100%;max-height:100%;object-fit:contain;border-radius:var(--radius-sm);background:#fff}.file-preview__pdf{align-self:stretch;width:100%;height:100%;overflow:auto;display:flex;flex-direction:column;align-items:center}.file-preview__pdf .react-pdf__Document{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);padding:8px 0;margin:auto 0}.file-preview__pdf .react-pdf__Page{border-radius:var(--radius-sm);overflow:hidden;box-shadow:0 2px 12px #0006;background:#fff}.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);display:flex;gap:var(--spacing-xs);height:var(--file-picker-height)}.file-picker__card{flex:1;min-width:0;height:100%;overflow:hidden;display:flex;align-items:center;gap:calc(var(--fp-pad) * 1.5);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;transition:background-color .15s}.file-picker__card:hover{background:var(--color-surface-alt)}.file-picker__card-thumb{width:var(--fp-thumb);height:var(--fp-thumb);border-radius:3px;object-fit:cover;flex-shrink:0}.file-picker__card-icon{width:var(--fp-thumb);height:var(--fp-thumb);display:flex;align-items:center;justify-content:center;border-radius:3px;background:var(--color-surface-alt);color:var(--color-text-secondary);flex-shrink:0}.file-picker__card-name{font-size:var(--fp-font);color:var(--color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.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{display:flex;gap:1px;flex-shrink:0;margin-left:auto}.file-picker__card-btn{background:none;border:none;padding:calc(var(--fp-pad) * .75);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);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);height:100%;overflow:hidden;display:flex;flex-direction:row;align-items:center;justify-content: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));color:var(--color-text-secondary);transition:border-color .15s,background-color .15s,color .15s;padding:var(--fp-pad);font-family:inherit;font-size:var(--fp-font);cursor:pointer}.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{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-picker{--tag-picker-height: 22px;position:relative;display:flex;flex-wrap:wrap;align-content:flex-start;align-items:center;gap:4px;width:100%;min-width:0;height:var(--tag-picker-height)}.tag-picker .tag-chip--chip{height:22px;flex:0 0 auto}.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-secondary);transition:border-color .15s,background-color .15s,color .15s;color:var(--color-text);display:inline-flex;align-items:center;flex-shrink:0;height:22px;gap:4px;padding:3px 8px;font-size:.7rem;white-space:nowrap;line-height:14px;cursor:pointer}.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{position:absolute;top:calc(100% + 4px);left:0;z-index:20;display:flex;flex-direction:column;width:300px;padding:var(--spacing-xs);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:0 4px 16px #0000001f}.tag-picker__panel--above{top:auto;bottom:calc(100% + 4px)}.tag-picker__search{padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:13px}.tag-picker__search:focus{outline:none;border-color:var(--color-primary)}.tag-picker__options{display:flex;flex-direction:column;max-height:280px;overflow-y:auto;margin-top:var(--spacing-xs)}.tag-picker__option{display:flex;align-items:center;gap:var(--spacing-sm);padding:6px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:13px;text-align:left;cursor:pointer}.tag-picker__option:hover{background:var(--color-hover, var(--color-surface-alt))}.tag-picker__option--create{color:var(--color-primary)}.tag-picker__option-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-picker__option-check{color:var(--color-primary);flex-shrink:0}.tag-picker__option-remove{display:none;color:var(--color-error-text);flex-shrink:0}.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{padding:6px 8px;font-size:13px;color:var(--color-text-secondary)}.tag-picker__footer{display:flex;align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);padding:6px 8px;border:none;border-top:1px solid var(--color-border);border-radius:0 0 var(--radius-sm) var(--radius-sm);background:transparent;color:var(--color-primary);font-size:13px;text-align:left;cursor:pointer}.tag-picker__footer:hover{background:var(--color-hover, var(--color-surface-alt))}.txn-fields__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.txn-fields__field{display:flex;flex-direction:column;gap:4px;margin-bottom:var(--spacing-md)}.txn-fields__grid .txn-fields__field{margin-bottom:0}.txn-fields__label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.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);font-size:.85rem;background:var(--color-surface);color:var(--color-text);height:34px}.txn-fields__input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.txn-fields__amount{position:relative}.txn-fields__amount .txn-fields__input{padding-left:26px}.txn-fields__amount-prefix{position:absolute;left:var(--spacing-sm);top:50%;transform:translateY(-50%);font-size:.85rem;color:var(--color-text-secondary);pointer-events:none}.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{display:flex;align-items:center;height:34px;font-size:.8rem;color:var(--color-text-secondary)}.new-txn__modal,.new-txn__modal .modal__body{overflow:visible}.new-txn__footer-buttons{display:flex;gap:var(--spacing-sm);margin-left:auto}.new-txn__modal .type-toggle{align-self:flex-start}.confirm-row{display:flex;align-items:center;justify-content:space-between;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)}.confirm-row--stated .confirm-row__label{font-weight:400;color:var(--color-text-secondary)}.confirm-row__text{display:flex;flex-direction:column;gap:2px;min-width:0}.confirm-row__label{font-size:.9rem;font-weight:500;color:var(--color-text)}.confirm-row__detail{font-size:.8rem;color:var(--color-text-secondary)}.confirm-row--clamp .confirm-row__label,.confirm-row--clamp .confirm-row__detail{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.switch{background:none;border:none;cursor:pointer;padding:2px;display:inline-flex;align-items:center}.switch:disabled{cursor:default;opacity:.5}.switch__track{display:block;width:32px;height:18px;border-radius:9px;background:var(--color-border);position:relative;transition:background-color .2s}.switch--on .switch__track{background:var(--color-primary)}.switch__thumb{display:block;width:14px;height:14px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:var(--shadow-sm)}.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{display:flex;gap:var(--spacing-sm)}.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{font-size:1.125rem;font-weight:700;margin-bottom:var(--spacing-xs)}.export-modal__context{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.5}.export-modal__options{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.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);transition:border-color .15s,background-color .15s,color .15s;display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);cursor:pointer}.export-modal__option:hover{border-color:var(--color-primary)}.export-modal__option input[type=radio]{accent-color:var(--color-primary);margin-top:3px;flex-shrink:0}.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{display:flex;flex-direction:column;gap:2px}.export-modal__option-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.9rem;font-weight:600;color:var(--color-text)}.export-modal__option--selected .export-modal__option-label{color:var(--color-primary)}.export-modal__badge{font-size:.7rem;font-weight:600;color:var(--color-primary);background:var(--color-primary-tint-faint);border:1px solid var(--color-primary);border-radius:var(--radius-sm);padding:1px 6px}.export-modal__option-description{font-size:.8rem;color:var(--color-text-secondary);line-height:1.4}.export-modal__receipts{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.export-modal__receipts-text{display:flex;flex-direction:column;gap:2px}.export-modal__receipts-label{font-size:.9rem;font-weight:600;color:var(--color-text)}.export-modal__receipts-description{font-size:.8rem;color:var(--color-text-secondary)}.export-modal__notice{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--spacing-md);font-size:.85rem;color:var(--color-text);line-height:1.5;margin-bottom:var(--spacing-lg)}.export-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.data-table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed}.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{font-size:.8125rem;font-weight:600;color:var(--color-text-secondary);-webkit-user-select:none;user-select:none;position:sticky;top:var(--topbar-height);z-index:2}.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(min-width:901px){.data-table__scroll:before{content:"";display:block;position:sticky;top:0;height:var(--topbar-height);margin-top:calc(-1 * var(--topbar-height));background:var(--color-bg);z-index:2}}@media(max-width:900px){.data-table__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table__scroll .data-table{min-width:720px}}.data-table__scroll--fluid{container-type:inline-size}@media(max-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{display:block;width:100%;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;white-space:nowrap}.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{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.account-card__title-block{flex:1;min-width:0}.account-card__title-row{display:flex;align-items:center;gap:var(--spacing-xs);height:1.5rem}.account-card__name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-card__subtitle{font-size:.8rem;color:var(--color-text-secondary)}.account-card__edit{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:2px;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;opacity:0;transition:opacity .15s,color .15s}.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;font-weight:700;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)}.account-card__name-input:focus{outline:none}.account-card__actions{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.account-card__empty{font-size:.85rem;color:var(--color-text-secondary)}.account-card__section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.account-card__last-import{margin-top:var(--spacing-sm)}.account-card__last-import .import-list{margin-top:0}.import-list{list-style:none;margin-top:var(--spacing-sm)}.import-list__item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-xs) 0;font-size:.8rem;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.import-list__item:last-child{border-bottom:none}.import-list__name{font-weight:500;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.import-list__meta{display:flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.import-list__badge{background:var(--color-success-tint);color:var(--color-success-text);padding:2px 8px;border-radius:var(--radius-sm);font-weight:500;font-size:.75rem}.import-list__badge--error{background:var(--color-error-tint);color:var(--color-error-text)}.account-detail{max-width:500px}.account-detail__identity{display:flex;align-items:center;gap:var(--spacing-md);min-width:0}.account-detail__identity h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-detail__subtitle{font-size:.8rem;color:var(--color-text-secondary)}.account-detail__section-title{font-size:.875rem;font-weight:600;margin-bottom:var(--spacing-xs)}.account-detail__empty{font-size:.85rem;color:var(--color-text-secondary)}.account-detail .import-list{margin-top:0;max-height:320px;overflow-y:auto;overflow-x:hidden}.account-detail .import-list__item{padding:var(--spacing-sm) 0}.account-detail .import-list__delete{background:none;border:none;color:var(--color-text-secondary);font-size:1rem;line-height:1;padding:2px 4px;border-radius:var(--radius-sm);opacity:0;transition:opacity .15s,color .15s;cursor:pointer}.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{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;margin-bottom:var(--spacing-md);background:var(--color-surface)}.bank-picker__search:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.bank-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-sm);padding:2px}.bank-picker__item{display:flex;flex-direction:column;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;transition:border-color .15s,background-color .15s;text-align:center;background:var(--color-surface);-webkit-user-select:none;user-select:none}.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{font-size:.65rem;color:var(--color-warning-text);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{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin-bottom:var(--spacing-sm);padding-left:2px}.column-mapper__hint{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-md)}.column-mapper__accent{color:var(--color-primary);font-weight:600}.column-mapper__fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.column-mapper__field{display:flex;flex-direction:column;gap:4px}.column-mapper__label{font-size:.75rem;font-weight:600;color:var(--color-text)}.column-mapper__select{width:100%;padding:8px 24px 8px 10px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.8rem;background:var(--color-surface);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;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-repeat:no-repeat;background-position:right 8px center}.column-mapper__select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.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{display:block;font-size:.75rem;font-weight:600;color:var(--color-text);margin-bottom:4px}.column-mapper__segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden}.column-mapper__segment{padding:6px 16px;font-size:.8rem;font-weight:500;border:none;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer;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{font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-xs)}.column-mapper__preview{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md)}.column-mapper__preview table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.7rem;white-space:nowrap}.column-mapper__preview th,.column-mapper__preview td{padding:4px 8px;border-bottom:1px solid var(--color-border);border-right:1px solid var(--color-border);text-align:left}.column-mapper__preview th:last-child,.column-mapper__preview td:last-child{border-right:none}.column-mapper__preview th{background:var(--color-bg);font-weight:600;color:var(--color-text-secondary);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;margin-right:3px;flex-shrink:0}.preview-cell--error{color:var(--color-error-text);font-weight:500;position:relative;cursor:default}.preview-cell--warning{color:var(--color-warning-text);font-weight:500;position:relative;cursor:default}.preview-cell--error[data-tooltip]:after,.preview-cell--warning[data-tooltip]:after{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 6px);left:0;background:var(--color-text);color:var(--color-surface);font-size:.7rem;font-weight:400;padding:4px 8px;border-radius:var(--radius-sm);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s;z-index:10}.preview-cell--error[data-tooltip]:hover:after,.preview-cell--warning[data-tooltip]:hover:after{opacity:1}.import-modal__upload{display:flex;flex-direction:column;gap:var(--spacing-lg)}.import-modal__bank-label{display:flex;align-items:center;gap:var(--spacing-md);font-weight:600;font-size:1rem}.import-modal__name-field{flex:1;margin-bottom:0}.import-modal__duplicate{display:flex;flex-direction:column;gap:var(--spacing-md)}.import-modal__duplicate-message{font-size:.9rem;color:var(--color-text-secondary)}.import-modal__duplicate-message strong{color:var(--color-text)}.import-modal__extracting{cursor:default;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.import-modal__progress-bar{width:200px;height:4px;border-radius:999px;background:var(--color-surface-alt);overflow:hidden}.import-modal__progress-bar-fill{height:100%;border-radius:999px;background:var(--color-primary);transition:width .3s ease}.import-modal__footer-review{margin-right:auto}.import-modal__sections{display:flex;flex-direction:column;gap:var(--spacing-sm)}.import-modal__sections-intro{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.import-modal__section{display:flex;align-items:center;justify-content:space-between;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}.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{outline:none;box-shadow:0 0 0 3px var(--color-focus-ring)}.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{font-size:.95rem;font-weight:600;color:var(--color-text)}.import-modal__section-rows{font-size:.85rem;color:var(--color-text-secondary);white-space:nowrap}.import-modal__notice{font-size:.9rem;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)}.rule-row{transition:opacity .15s;-webkit-user-select:none;user-select:none}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{width:32px;cursor:grab;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{background:none;border:none;padding:0;cursor:grab;color:inherit;display:inline-flex;align-items:center;vertical-align:middle;border-radius:var(--radius-sm)}.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{width:50px;font-variant-numeric:tabular-nums;color:var(--color-text-secondary);font-size:.8rem;text-align:center}.rule-row__priority--preview{color:var(--color-primary);font-weight:600}.rule-row__pattern{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;-webkit-user-select:text;user-select:text}.rule-row__exact-badge{display:inline-block;margin-left:var(--spacing-xs);padding:1px 5px;font-size:.65rem;font-weight:600;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}.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{display:flex;align-items:center;gap:var(--spacing-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rule-row__toggle{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center}.rule-row__toggle-track{display:block;width:32px;height:18px;border-radius:9px;background:var(--color-border);position:relative;transition:background-color .2s}.rule-row__toggle--active .rule-row__toggle-track{background:var(--color-primary)}.rule-row__toggle-thumb{display:block;width:14px;height:14px;border-radius:50%;background:#fff;position:absolute;top:2px;left:2px;transition:transform .2s;box-shadow:var(--shadow-sm)}.rule-row__toggle--active .rule-row__toggle-thumb{transform:translate(14px)}.rule-row__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-xs)}.rule-row__action-btn{background:none;border:none;color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;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{position:fixed;top:0;left:0;z-index:1000;pointer-events:none;opacity:0;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-md);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{font-weight:500;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-row__description{color:var(--color-text-secondary);max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.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{background:none;border:none;color:var(--color-text-secondary);padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;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{display:inline-flex;align-items:center;vertical-align:middle;gap:6px;font-size:.8rem;font-weight:500;white-space:nowrap}.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:receipt-status-spin 1.6s linear infinite}@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{background:none;border:none;padding:0;cursor:pointer;display:inline-flex;vertical-align:middle;border-radius:4px}.file-row__thumb-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.file-row__thumb-img{width:28px;height:28px;border-radius:4px;object-fit:cover;vertical-align:middle}.file-row__thumb-icon{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:4px;background:var(--color-surface-alt);color:var(--color-text-secondary)}.file-row__name{font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row__status{white-space:nowrap}.file-row__transaction{max-width:300px;overflow:hidden}.file-row__transaction-desc{display:block;font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row__transaction-meta{display:flex;align-items:baseline;gap:var(--spacing-xs)}.file-row__transaction-date{font-size:.75rem;color:var(--color-text-secondary);min-width:80px;flex-shrink:0}.file-row__transaction-amount{font-size:.75rem;font-variant-numeric:tabular-nums}.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;font-size:.85rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.file-row__actions{white-space:nowrap}.file-row__actions-group{display:flex;justify-content:flex-end;gap:2px}.file-row__action-btn{background:none;border:none;padding:5px;border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);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{display:flex;flex-direction:column;gap:var(--spacing-lg)}.receipt-review__preview{display:flex;gap:var(--spacing-md);align-items:flex-start}.receipt-review__thumb{flex-shrink:0;width:96px;height:96px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-alt);color:var(--color-text-secondary);cursor:pointer;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center;padding:0}.receipt-review__thumb img{width:100%;height:100%;object-fit:cover}.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{position:absolute;inset:auto 0 0 0;background:#0009;color:#fff;font-size:.65rem;padding:var(--spacing-xs) 0;text-align:center;opacity:0;transition:opacity .15s}.receipt-review__file{display:flex;flex-direction:column;gap:var(--spacing-xs);min-width:0;flex:1}.receipt-review__filename{font-size:.9rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-review__file-actions{display:flex;gap:var(--spacing-xs);margin-top:auto}.receipt-review__icon-btn{background:none;border:none;padding:var(--spacing-xs);border-radius:var(--radius-sm);cursor:pointer;color:var(--color-text-secondary);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{display:flex;flex-direction:column;gap:var(--spacing-sm)}.receipt-review__hint{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.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{font-size:.85rem;color:var(--color-text-secondary);padding:var(--spacing-xs) 0}.receipt-review__picker{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-md);min-height:54px}.receipt-review__picker-search{display:flex;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}.receipt-review__picker-search input{flex:1;border:none;background:none;color:var(--color-text);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{display:flex;flex-direction:column}.receipt-review__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.receipt-review__grid .receipt-review__field{margin-bottom:0}.receipt-review__field{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.receipt-review__label{font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.receipt-review__confirm-account{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.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{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px var(--color-focus-ring)}.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{font-size:1.125rem;font-weight:700;margin-bottom:var(--spacing-xs)}.files-export-modal__context{font-size:.85rem;color:var(--color-text-secondary);margin-bottom:var(--spacing-lg);line-height:1.5}.files-export-modal__description{font-size:.85rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--spacing-lg)}.files-export-modal__notice{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:var(--spacing-md);font-size:.85rem;color:var(--color-text);line-height:1.5;margin-bottom:var(--spacing-lg)}.files-export-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.edit-name-modal,.change-email-modal{max-width:440px}.segmented{display:inline-flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.segmented__option{display:inline-flex;align-items:center;gap:6px;padding:6px 16px;background:var(--color-surface);border:none;font:inherit;font-size:.85rem;color:var(--color-text-secondary);cursor:pointer;transition:background-color .15s,color .15s}.segmented__option:hover{background:var(--color-hover)}.segmented__option:focus-visible{outline:none;box-shadow:inset 0 0 0 2px currentColor}.segmented__option--active{background:var(--color-primary);color:#fff}.segmented__option+.segmented__option{border-left:1px solid var(--color-border)}.usage-bar{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.usage-bar__track{flex:1;max-width:240px;height:6px;border-radius:999px;background:var(--color-surface-alt);overflow:hidden}.usage-bar__fill{height:100%;border-radius:999px;transition:width .3s ease;background:var(--color-primary)}.usage-bar__label{font-size:.8rem;color:var(--color-text-secondary);white-space:nowrap}.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);font-weight:600;white-space:normal}.change-password-modal{max-width:440px}.totp-input{font-family:var(--font-mono);font-size:1.25rem;letter-spacing:.5em;text-align:center}.enable-2fa-modal__qr{display:flex;justify-content:center;margin-bottom:var(--spacing-md)}.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);display:flex;flex-direction:column;gap:var(--spacing-sm);align-items:flex-start}.recovery-codes__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-xs);width:100%;max-width:560px}.recovery-codes__code{padding:6px 10px;background:var(--color-surface-alt);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-family:monospace;font-size:.85rem;text-align:center;-webkit-user-select:all;user-select:all}.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{font-size:1.125rem;font-weight:700;margin-bottom:var(--spacing-xs)}.purge-files-modal__description{font-size:.85rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--spacing-lg)}.purge-files-modal__range{width:100%;margin-bottom:var(--spacing-md)}.purge-files-modal__download{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;background:none;border:none;padding:var(--spacing-xs);margin:calc(var(--spacing-xs) * -1);border-radius:var(--radius-sm);color:var(--color-primary);cursor:pointer;transition:color .15s,background-color .15s}.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{display:flex;align-items:flex-start;min-height:38px;margin-bottom:var(--spacing-lg);font-size:.78rem;color:var(--color-text-secondary);line-height:1.5}.purge-files-modal__footnote--error{color:var(--color-error-text)}.purge-files-modal__actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm)}.purge-files-modal__warning{font-size:.9rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:var(--spacing-lg)}.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{font-size:.9rem;font-weight:600;margin-bottom:var(--spacing-xs)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--spacing-lg)}.auth-card{width:100%;max-width:440px;background:var(--color-surface);border-radius:var(--radius-lg);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{font-size:1.75rem;font-weight:700;margin-bottom:var(--spacing-xs)}.auth-card__header p{color:var(--color-text-secondary);font-size:.9rem}.auth-card__footer{text-align:center;margin-top:var(--spacing-lg);font-size:.875rem;color:var(--color-text-secondary)}.auth-card__footer a{font-weight:500}.auth-card__status{text-align:center;font-size:.9rem;color:var(--color-text-secondary)}.auth-card .btn{width:100%}.account-type-selector{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.account-type-selector__option{flex:1;padding:var(--spacing-md);border:2px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;text-align:center;transition:border-color .15s,background-color .15s;-webkit-user-select:none;user-select:none}.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{font-size:.9rem;font-weight:600;margin-bottom:2px}.account-type-selector__option p{font-size:.75rem;color:var(--color-text-secondary)}.auth-card__link-button{display:block;margin:0 auto var(--spacing-sm);background:none;border:none;font:inherit;font-size:.85rem;color:var(--color-primary);cursor:pointer}.auth-card__link-button:hover{text-decoration:underline}.auth-card__checkbox{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);font-size:.8rem;color:var(--color-text-secondary);cursor:pointer}.auth-card__checkbox input{margin-top:2px;accent-color:var(--color-primary);cursor:pointer}.auth-card__note{margin:var(--spacing-md) 0 0;font-size:.78rem;color:var(--color-text-secondary);text-align:center}.auth-card__inline-link{background:none;border:none;padding:0;font:inherit;color:var(--color-primary);cursor:pointer}.auth-card__inline-link:hover{text-decoration:underline}:root{color-scheme:light;--color-primary: #1a73e8;--color-primary-hover: #1557b0;--color-bg: #fafafa;--color-surface: #ffffff;--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: rgba(26, 115, 232, .03);--color-primary-tint-subtle: rgba(26, 115, 232, .05);--color-primary-tint: rgba(26, 115, 232, .08);--color-primary-tint-strong: rgba(26, 115, 232, .12);--color-focus-ring: rgba(26, 115, 232, .35);--color-success-tint: rgba(34, 197, 94, .08);--color-success-tint-border: rgba(34, 197, 94, .2);--color-warning-tint: rgba(245, 158, 11, .14);--color-warning-tint-border: rgba(245, 158, 11, .25);--color-error-tint: rgba(239, 68, 68, .08);--color-error-tint-border: rgba(239, 68, 68, .2);--color-hover: rgba(0, 0, 0, .04);--color-backdrop: rgba(0, 0, 0, .5);--scrollbar-thumb: rgba(26, 26, 46, .35);--scrollbar-thumb-hover: rgba(26, 26, 46, .55);--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 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .07);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .15);--shadow-popover: 0 4px 12px rgba(0, 0, 0, .15);--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]{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: rgba(75, 144, 236, .07);--color-primary-tint-subtle: rgba(75, 144, 236, .11);--color-primary-tint: rgba(75, 144, 236, .17);--color-primary-tint-strong: rgba(75, 144, 236, .24);--color-focus-ring: rgba(75, 144, 236, .35);--color-success-tint: rgba(74, 222, 128, .12);--color-success-tint-border: rgba(74, 222, 128, .3);--color-warning-tint: rgba(251, 191, 36, .16);--color-warning-tint-border: rgba(251, 191, 36, .3);--color-error-tint: rgba(248, 113, 113, .12);--color-error-tint-border: rgba(248, 113, 113, .3);--color-hover: rgba(255, 255, 255, .06);--color-backdrop: rgba(0, 0, 0, .65);--scrollbar-thumb: rgba(240, 241, 245, .35);--scrollbar-thumb-hover: rgba(240, 241, 245, .55);--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 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px rgba(0, 0, 0, .45);--shadow-lg: 0 20px 60px rgba(0, 0, 0, .6);--shadow-popover: 0 4px 12px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:5px;border:2px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}*::-webkit-scrollbar-corner{background:transparent}*::-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{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}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;font-family:inherit;-webkit-user-select:none;user-select:none}input,select,textarea{font-family:inherit;font-size:inherit}.container{max-width:var(--max-width);margin:0 auto;padding:0 var(--spacing-lg)}.skip-link{position:fixed;top:var(--spacing-sm);left:-100vw;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}.skip-link:focus{left:var(--spacing-sm);text-decoration:none;outline:2px solid currentColor;outline-offset:2px}main:focus{outline:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){:root:not([data-motion=full]) *,:root:not([data-motion=full]) *:before,:root:not([data-motion=full]) *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:root[data-motion=reduce] *,:root[data-motion=reduce] *:before,:root[data-motion=reduce] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
