:root{--color-primary:#15803d;--color-primary-hover:#166534;--color-primary-light:#15803d1a;--color-primary-glow:#15803d3d;--color-primary-surface:#16a34a;--color-primary-gradient-end:#15803d;--color-primary-contrast:#fff;--color-accent:var(--color-primary);--color-brand-from:#15803d;--color-brand-mid:#22c55e;--color-brand-to:#166534;--color-income:#166534;--color-income-bg:#1665341a;--color-expense:#ef4444;--color-expense-bg:#ef44441a;--color-borrow-in:#3b82f6;--color-borrow-in-bg:#3b82f61a;--color-lend-out:#f59e0b;--color-lend-out-bg:#f59e0b1a;--color-prepaid:#a855f7;--color-prepaid-bg:#a855f71a;--color-profit:#166534;--color-loss:#ef4444;--color-warning:#b45309;--bg-body:#f8f9fc;--bg-card:#fff;--bg-card-hover:#f1f3f9;--bg-sidebar:#fff;--bg-input:#f1f3f9;--bg-input-focus:#fff;--bg-modal-overlay:#0006;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#94a3b8;--text-inversed:#fff;--border-color:#e2e8f0;--border-color-hover:#cbd5e1;--border-radius-sm:8px;--border-radius-md:12px;--border-radius-lg:16px;--border-radius-xl:20px;--border-radius-full:9999px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 4px 12px #0000000f;--shadow-lg:0 8px 30px #00000014;--shadow-xl:0 20px 60px #0000001a;--shadow-glow:0 0 20px var(--color-primary-glow);--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--mobile-top-bar-h:52px;--font-family:var(--font-inter), -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-2xl:1.5rem;--font-size-3xl:2rem;--font-size-4xl:2.5rem;--font-size-hero:3.5rem;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-base:.25s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1);--transition-spring:.5s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:100;--z-modal:200;--z-toast:300}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-primary:#16a34a;--color-primary-hover:#22c55e;--color-primary-light:#16a34a24;--color-primary-glow:#15803d52;--color-primary-surface:#15803d;--color-primary-gradient-end:#166534;--color-primary-contrast:#fff;--color-accent:#4ade80;--color-brand-from:#15803d;--color-brand-mid:#4ade80;--color-brand-to:#166534;--color-income:#4ade80;--color-income-bg:#4ade801f;--color-profit:#4ade80;--color-warning:#fbbf24;--bg-body:#0b0f1a;--bg-card:#12161e;--bg-card-hover:#191e28;--bg-sidebar:#0a0d14;--bg-input:#171c25;--bg-input-focus:#1e242f;--bg-secondary:#1a1f2a;--bg-modal-overlay:#000000b3;--text-primary:#f5f7fa;--text-secondary:#aab4c0;--text-tertiary:#6f7a89;--border-color:#232a36;--border-color-hover:#333d4d;--shadow-sm:0 1px 2px #0003;--shadow-md:0 4px 12px #0000004d;--shadow-lg:0 8px 30px #0006;--shadow-xl:0 20px 60px #00000080}
.card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}.card:hover{box-shadow:var(--shadow-md)}.card-header{margin-bottom:var(--space-md);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.stat-grid{gap:var(--space-md);margin-bottom:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg) var(--space-md);transition:all var(--transition-base);position:relative;overflow:hidden;container-type:inline-size}.stat-card:before{content:"";background:linear-gradient(90deg, var(--stat-color,var(--color-primary)), transparent);opacity:0;height:3px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-card:hover:before{opacity:1}.stat-label{font-size:var(--font-size-sm);color:var(--text-secondary);margin-bottom:var(--space-sm);align-items:center;gap:var(--space-sm);font-weight:500;display:flex}.stat-value{font-size:clamp(18px, 10cqw, var(--font-size-3xl));letter-spacing:0;white-space:nowrap;text-overflow:clip;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.2;overflow:visible}.stat-value.positive{color:var(--color-income)}.stat-value.negative{color:var(--color-expense)}.stat-change{font-size:var(--font-size-xs);margin-top:var(--space-xs);align-items:center;gap:4px;font-weight:500;display:flex}.stat-change.up{color:var(--color-income)}.stat-change.down{color:var(--color-expense)}.btn{justify-content:center;align-items:center;gap:var(--space-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);transition:all var(--transition-fast);white-space:nowrap;padding:10px 20px;font-weight:600;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--color-primary-surface), var(--color-primary-gradient-end));color:var(--color-primary-contrast);box-shadow:0 2px 8px var(--color-primary-glow)}.btn-primary:hover{box-shadow:0 4px 16px rgb(from var(--color-primary) r g b / .4);transform:translateY(-1px)}.btn-secondary{background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover)}.btn-ghost{color:var(--text-secondary);padding:var(--space-sm)}.btn-ghost:hover{background:var(--bg-input);color:var(--text-primary)}.btn-income{background:var(--color-income-bg);color:var(--color-income);border:1px solid #22c55e33}.btn-income:hover,.btn-income.active{background:var(--color-income);color:#fff}.btn-expense{background:var(--color-expense-bg);color:var(--color-expense);border:1px solid #ef444433}.btn-expense:hover,.btn-expense.active{background:var(--color-expense);color:#fff}.btn-borrow-in{background:var(--color-borrow-in-bg);color:var(--color-borrow-in);border:1px solid #3b82f633}.btn-borrow-in:hover,.btn-borrow-in.active{background:var(--color-borrow-in);color:#fff}.btn-lend-out{background:var(--color-lend-out-bg);color:var(--color-lend-out);border:1px solid #f59e0b33}.btn-lend-out:hover,.btn-lend-out.active{background:var(--color-lend-out);color:#fff}.btn-sm{font-size:var(--font-size-xs);padding:6px 12px}.btn-lg{font-size:var(--font-size-base);padding:14px 28px}.btn-icon{border-radius:var(--border-radius-full);width:40px;height:40px;padding:0;font-size:20px}.form-group{margin-bottom:var(--space-md)}.form-compact .form-group,.form-compact .type-selector{margin-bottom:var(--space-sm)}.form-compact .form-label{margin-bottom:8px}.form-compact .form-group{margin-bottom:14px}.form-label{font-size:var(--font-size-base);color:var(--text-primary);margin-bottom:var(--space-xs);letter-spacing:.01em;align-items:center;gap:8px;font-weight:600;display:inline-flex}.form-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);width:100%;color:var(--text-primary);font-size:var(--font-size-sm);transition:all var(--transition-fast);outline:none;padding:10px 14px}.form-input:focus{background:var(--bg-input-focus);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.form-input::placeholder{color:var(--text-tertiary)}.form-error{margin-top:var(--space-xs);color:var(--color-expense);font-size:var(--font-size-xs);line-height:1.4}.form-input-lg{font-size:var(--font-size-2xl);text-align:center;padding:14px 18px;font-weight:700}.type-selector{gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.tx-form{flex-direction:column;min-height:0;display:flex}.tx-form-body{min-height:0}.tx-form-grid{gap:var(--space-sm);margin-top:var(--space-sm);grid-template-columns:1fr;display:grid}@media (min-width:560px){.tx-form-grid{gap:var(--space-lg);grid-template-columns:1fr 1fr}}.tx-form-col{flex-direction:column;min-width:0;display:flex}.tx-form-col fieldset,.form-compact fieldset{min-inline-size:0;min-width:0}.type-pill{border-radius:var(--border-radius-sm);background:var(--bg-input);border:2px solid var(--border-color);text-align:center;font-size:var(--font-size-sm);color:var(--text-secondary);transition:all var(--transition-fast);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px;font-weight:600;display:inline-flex}.type-pill:hover{border-color:var(--border-color-hover)}.type-pill.income.active{background:var(--color-income-bg);border-color:var(--color-income);color:var(--color-income)}.type-pill.expense.active{background:var(--color-expense-bg);border-color:var(--color-expense);color:var(--color-expense)}.type-pill.borrow-in.active{background:var(--color-borrow-in-bg);border-color:var(--color-borrow-in);color:var(--color-borrow-in)}.type-pill.lend-out.active{background:var(--color-lend-out-bg);border-color:var(--color-lend-out);color:var(--color-lend-out)}.type-pill.transfer.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary)}.modal-overlay{background:var(--bg-modal-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:var(--z-modal);animation:fadeIn var(--transition-fast) ease-out;overscroll-behavior:contain;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-xl);padding:var(--space-xl);overscroll-behavior:contain;width:90%;max-width:480px;max-height:90vh;animation:slideUp var(--transition-spring) ease-out;overflow-y:auto}.modal-title{font-size:var(--font-size-xl);margin-bottom:var(--space-lg);font-weight:700}.modal-actions{gap:var(--space-sm);margin-top:var(--space-lg);justify-content:flex-end;display:flex}.tx-modal-actions{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color)}.modal-error-banner{margin-top:var(--space-sm);border-radius:var(--border-radius-sm);background:var(--color-expense-bg);color:var(--color-expense);font-size:var(--font-size-sm);border:1px solid #ef44443d;padding:10px 12px;font-weight:600;line-height:1.45}.tabs{background:var(--bg-input);border-radius:var(--border-radius-sm);margin-bottom:var(--space-lg);gap:2px;padding:3px;display:flex}.tab{font-size:var(--font-size-sm);color:var(--text-tertiary);text-align:center;transition:all var(--transition-fast);cursor:pointer;border-radius:6px;flex:1;padding:8px 16px;font-weight:600}.tab:hover{color:var(--text-secondary)}.tab.active{background:var(--bg-card);color:var(--text-primary);box-shadow:var(--shadow-sm)}.progress-bar{background:var(--bg-input);border-radius:var(--border-radius-full);height:8px;position:relative;overflow:hidden}.progress-fill{border-radius:var(--border-radius-full);height:100%;transition:width var(--transition-slow)}.empty-state{padding:var(--space-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-icon{margin-bottom:var(--space-lg);opacity:.5;font-size:64px}.empty-title{font-size:var(--font-size-lg);margin-bottom:var(--space-sm);font-weight:600}.empty-text{font-size:var(--font-size-sm);color:var(--text-tertiary);max-width:320px;margin-bottom:var(--space-lg)}.page-header{margin-bottom:var(--space-xl);justify-content:space-between;align-items:center;display:flex}.page-title{font-size:var(--font-size-2xl);letter-spacing:0;font-weight:800}.page-subtitle{font-size:var(--font-size-sm);color:var(--text-tertiary);margin-top:var(--space-xs)}.badge{border-radius:var(--border-radius-full);font-size:var(--font-size-xs);align-items:center;padding:2px 8px;font-weight:600;display:inline-flex}.badge-income{background:var(--color-income-bg);color:var(--color-income)}.badge-expense{background:var(--color-expense-bg);color:var(--color-expense)}.category-tag{border-radius:var(--border-radius-full);font-size:var(--font-size-sm);background:var(--bg-input);color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-color);align-items:center;gap:4px;padding:6px 14px;font-weight:600;display:inline-flex}.category-tag:hover{background:var(--bg-card-hover);border-color:var(--border-color-hover);transform:translateY(-1px)}.category-tag.selected{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary);box-shadow:0 2px 8px rgb(from var(--color-primary) r g b / .2)}.category-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.category-grid--3col{grid-template-columns:repeat(3,1fr)}.seg-switch{background:var(--bg-input);border-radius:var(--border-radius-full);gap:3px;height:46px;padding:3px;display:flex}.seg-switch-option{border-radius:var(--border-radius-full);color:var(--text-secondary);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:6px;min-width:0;padding:0 8px;font-size:13px;font-weight:600;display:inline-flex}.seg-switch-option.is-active{background:var(--bg-card);color:var(--color-primary);box-shadow:0 1px 2px #0f172a14}.seg-switch-option:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.settings-page{flex-direction:column;gap:20px;display:flex}.settings-two{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.settings-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg);flex-direction:column;gap:14px;display:flex}.settings-card-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.settings-card-title{align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;display:flex}.settings-actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.settings-row{border-top:1px solid var(--border-color);grid-template-columns:120px 1fr auto;align-items:center;gap:12px;min-height:46px;padding:0 4px;display:grid}.settings-row:first-child{border-top:0}.settings-row-key{color:var(--text-secondary);font-weight:500}.settings-row-value{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.seg-switch--sm{justify-self:start;width:auto;min-width:200px;height:34px}.seg-switch--sm .seg-switch-option{font-size:12px}.settings-grid{gap:8px;display:grid}.settings-grid--2{grid-template-columns:repeat(2,1fr)}.settings-grid--3{grid-template-columns:repeat(3,1fr)}.user-view-root .settings-row-value{white-space:normal;overflow-wrap:anywhere;line-height:1.3}.settings-grid--4{grid-template-columns:repeat(4,1fr)}.settings-grid--5{grid-template-columns:repeat(5,1fr)}.settings-cell{background:var(--bg-input);border-radius:var(--border-radius-sm);text-align:left;min-width:0;height:46px;color:var(--text-primary);cursor:pointer;font:inherit;border:1px solid #0000;flex-direction:column;justify-content:center;gap:1px;padding:4px 28px 4px 10px;display:flex;position:relative}.settings-cell--pill{flex-direction:row;align-items:center;gap:6px;font-weight:600}.settings-cell.is-active{border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.settings-cell--add{border:1px dashed var(--border-color);color:var(--text-tertiary);background:0 0;flex-direction:row;justify-content:center;align-items:center;padding:4px 10px;font-weight:500}.settings-cell-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;min-width:0;font-size:13px;font-weight:600;display:flex;overflow:hidden}.settings-cell-name svg{color:var(--color-primary);flex-shrink:0}.settings-cell-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.settings-cell-sub{color:var(--text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.settings-cell-sub.is-neg{color:var(--color-expense)}.settings-cell-sub.is-dense{letter-spacing:-.02em;font-size:11px}.settings-cell.is-static{cursor:default}.settings-cell-edit{color:var(--text-tertiary);opacity:.5;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.settings-cell:hover .settings-cell-edit{opacity:1}.settings-cell-reorder{flex-direction:column;gap:2px;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.settings-hint{color:var(--text-tertiary);margin:0;font-size:12px}.settings-warn{color:var(--color-expense);background:var(--color-expense-bg);border-radius:var(--border-radius-sm);align-items:flex-start;gap:6px;padding:8px 10px;font-size:12px;display:flex}.settings-warn svg{flex-shrink:0;margin-top:1px}.settings-member{background:var(--bg-input);border-radius:var(--border-radius-sm);grid-template-columns:1fr auto auto;align-items:center;gap:10px;min-height:46px;padding:0 12px;display:grid}.settings-linkbox{grid-template-columns:1fr 92px;align-items:center;gap:10px;display:grid}.settings-danger{border:1px solid var(--border-color);border-radius:var(--border-radius-lg);background:var(--bg-card);justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;display:flex}.form-row-2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.form-row-2>.form-group{flex-direction:column;justify-content:flex-end;display:flex}.category-grid .category-tag{text-align:center;justify-content:center;align-items:center;min-width:0;height:46px;padding:4px 6px;font-size:13px;line-height:1.3;display:flex}.category-grid .category-tag-name{-webkit-line-clamp:2;white-space:normal;word-break:break-all;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.category-grid .category-tag svg{vertical-align:-2px;flex-shrink:0}.tx-summary-row{border-radius:var(--border-radius-sm);background:var(--bg-input);border:1px solid var(--border-color);width:100%;min-height:44px;color:inherit;font-size:var(--font-size-sm);cursor:pointer;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.tx-summary-label{min-width:0;color:var(--text-secondary);align-items:center;gap:6px;display:inline-flex}.tx-summary-value{min-width:0;color:var(--text-primary);align-items:center;gap:6px;margin-left:auto;font-weight:500;display:flex;overflow:hidden}.tx-summary-value-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.tx-date-trigger{text-align:left;padding-right:40px}.react-datepicker-wrapper.w-full,.react-datepicker__input-container>button.tx-date-trigger{width:100%}.tx-inline-toggle{border-radius:var(--border-radius-full);border:1px solid var(--border-color);color:var(--text-tertiary);font-size:var(--font-size-xs);cursor:pointer;background:0 0;align-items:center;gap:4px;padding:2px 8px;font-weight:500;line-height:1.4;display:inline-flex}.tx-inline-toggle.is-set{color:var(--color-primary);border-color:var(--color-primary)}.tx-amount-amortize{pointer-events:auto;margin-left:8px}.tx-amount--dim{opacity:.55}.tx-asset-prompt{background:var(--bg-input);border-radius:var(--border-radius-md);text-align:left;padding:14px}.tx-asset-prompt-title{color:var(--text-primary);align-items:center;gap:8px;font-size:14px;font-weight:700;display:flex}.tx-asset-prompt-body{color:var(--text-secondary);margin-top:8px;font-size:12px;line-height:1.6}.tx-note-row{align-items:flex-end;gap:8px;display:flex}.tx-form .tx-note-row .form-group,.tx-note-row .form-group{margin-bottom:0}.tx-note-row .form-input{min-height:44px}.tx-voucher-toggle{justify-content:center;align-items:center;width:44px;min-width:44px;height:44px;padding:0;display:inline-flex;position:relative}.tx-voucher-badge{border-radius:var(--border-radius-full);background:var(--color-primary);min-width:16px;height:16px;color:var(--color-primary-contrast);text-align:center;padding:0 4px;font-size:10px;font-weight:600;line-height:16px;position:absolute;top:-4px;right:-4px}.tx-account-row{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.tx-account-row .account-chip{flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;width:100%;height:46px;padding:4px 10px;font-size:13px}.tx-account-row .account-chip-more{flex-direction:row;justify-content:center;align-items:center}.tx-account-row .account-chip-balance{opacity:.7;font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:0;font-size:12px;font-weight:500}.tx-account-row .account-chip-balance--dense{letter-spacing:-.02em;font-size:11px}.account-chip-main{align-items:center;gap:4px;min-width:0;max-width:100%;display:inline-flex}.account-chip-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-chip-more{border-style:dashed}.account-chip{align-items:center;gap:var(--space-xs);border-radius:var(--border-radius-full);min-width:0;font-size:var(--font-size-sm);background:var(--bg-input);color:var(--text-primary);border:1px solid var(--border-color);cursor:pointer;transition:all var(--transition-fast);padding:8px 16px;font-weight:600;display:inline-flex}.account-chip:hover{border-color:var(--color-primary);transform:translateY(-1px)}.account-chip.active{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 2px 8px rgb(from var(--color-primary) r g b / .2)}.account-chip .account-chip-title{align-items:center;gap:var(--space-xs);min-width:0;max-width:100%;display:inline-flex}.account-chip .account-chip-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.account-chip .account-chip-balance{margin-left:4px}.filter-bar{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap;align-items:center;display:flex}.filter-chip{border-radius:var(--border-radius-full);font-size:var(--font-size-xs);background:var(--bg-input);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;padding:6px 14px;font-weight:600}.filter-chip:hover{border-color:var(--border-color-hover)}.filter-chip.active{background:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.tooltip-container{display:inline-flex;position:relative}.tooltip-text{visibility:hidden;opacity:0;background:var(--text-primary);color:var(--bg-body);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);white-space:nowrap;transition:all var(--transition-fast);pointer-events:none;z-index:var(--z-dropdown);padding:6px 12px;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-container:hover .tooltip-text{visibility:visible;opacity:1}.section{margin-bottom:var(--space-xl)}.section-title{font-size:var(--font-size-lg);margin-bottom:var(--space-md);font-weight:700}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-out}.animate-slide-up{animation:slideUp var(--transition-spring) ease-out}.animate-slide-in-right{animation:slideInRight var(--transition-base) ease-out}.stagger>*{animation:slideUp var(--transition-spring) ease-out both}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:50ms}.stagger>:nth-child(3){animation-delay:.1s}.stagger>:nth-child(4){animation-delay:.15s}.stagger>:nth-child(5){animation-delay:.2s}.stagger>:nth-child(6){animation-delay:.25s}.skeleton{background:linear-gradient(90deg, var(--bg-input) 0%, var(--bg-card-hover) 42%, var(--border-color) 52%, var(--bg-card-hover) 62%, var(--bg-input) 100%);border:1px solid var(--border-color);background-size:240% 100%;flex-shrink:0;animation:1.35s ease-in-out infinite ef-skeleton-shimmer;display:block}.skeleton-circle{aspect-ratio:1}.skeleton-text{gap:var(--space-sm);display:grid}.view-skeleton{width:100%}.view-skeleton-header{gap:var(--space-md)}.view-skeleton-title-stack{gap:var(--space-sm);flex:1;min-width:0;display:grid}.view-skeleton-stack{gap:var(--space-xl);flex-direction:column;display:flex}.view-skeleton-stat-grid{width:100%}.view-skeleton-stat-card{gap:var(--space-md);display:grid}.view-skeleton-section-heading{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.view-skeleton-grid{margin-top:var(--space-md)}.view-skeleton-chart-card{min-height:calc(var(--space-2xl) * 6.4)}.view-skeleton-chart-body{justify-items:center;gap:var(--space-lg);padding:var(--space-md) 0;display:grid}.view-skeleton-chart-lines{width:min(100%, calc(var(--space-2xl) * 5))}.view-skeleton-table-card{overflow:hidden}.view-skeleton-table{display:grid}.view-skeleton-table-row{grid-template-columns:auto minmax(0, 1fr) minmax(calc(var(--space-2xl) * 2), 18%);align-items:center;gap:var(--space-md);padding:var(--space-md) 0;border-bottom:1px solid var(--border-color);display:grid}.view-skeleton-table-row:last-child{border-bottom:0}.view-skeleton-row-main{gap:var(--space-sm);min-width:0;display:grid}.view-skeleton-chip-panel{gap:var(--space-md);margin-bottom:var(--space-md);display:grid}.view-skeleton-chip-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.view-skeleton-chip-row-loose{margin-top:var(--space-md)}.view-skeleton-tabs,.view-skeleton-filter-row{gap:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap;display:flex}.view-skeleton-form-card{gap:var(--space-xl);margin-bottom:var(--space-xl);display:grid}.view-skeleton-form-content{gap:var(--space-2xl);align-items:flex-start;display:flex}.view-skeleton-form-fields{gap:var(--space-md);flex:1;min-width:0;display:grid}.view-skeleton-form-row{gap:var(--space-sm);display:grid}.view-skeleton-banner{gap:var(--space-md);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.view-skeleton-insight-card{align-content:start;display:grid}.view-skeleton-bars-card{margin-top:var(--space-md)}.view-skeleton-bars{min-height:calc(var(--space-2xl) * 4.4);align-items:flex-end;gap:var(--space-sm);padding-top:var(--space-lg);display:flex;overflow:hidden}.view-skeleton-feedback-list{min-width:0}.view-skeleton-narrow{max-width:calc(var(--space-2xl) * 16.7);padding-bottom:calc(var(--space-2xl) * 2.5);margin:0 auto}.view-skeleton-admin-hero{align-items:center}.view-skeleton-admin-tabs,.view-skeleton-admin-metrics{margin-bottom:var(--space-lg)}@keyframes ef-skeleton-shimmer{0%{background-position:120% 0}to{background-position:-120% 0}}@keyframes pulse-ring{0%{opacity:.8;transform:scale(.8)}to{opacity:0;transform:scale(1.5)}}@keyframes bounce-mild{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--space-xs) * -1))}}@keyframes pulse-opacity{0%,to{opacity:.5}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}@media (max-width:768px){.view-skeleton-header{align-items:flex-start}.view-skeleton-table-row,.view-skeleton-banner{grid-template-columns:auto minmax(0,1fr)}.view-skeleton-table-row>.skeleton:last-child,.view-skeleton-banner>.skeleton:last-child{grid-column:2;width:45%!important}.view-skeleton-form-content{gap:var(--space-lg);flex-direction:column}}
.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-xs{gap:var(--space-xs)}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.w-full{width:100%}.text-center{text-align:center}.text-right{text-align:right}.grid-2{gap:var(--space-md);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-md);grid-template-columns:repeat(3,1fr);display:grid}@media (max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--border-color-hover)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mock-scope{container-type:inline-size}.mock-root{font-size:13px}@supports (font-size:1cqw){.mock-root{font-size:1.58cqw}}
.mobile-tab-bar,.action-sheet-overlay,.action-sheet-content,.mobile-top-bar{display:none!important}@media (max-width:768px){.global-action-footer,.hide-on-mobile{display:none!important}.mobile-tab-bar{width:100%;height:calc(56px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:rgba(var(--bg-body-rgb,15, 23, 42), .85);background:var(--bg-body);-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--border-color);z-index:100;justify-content:space-around;align-items:center;position:fixed;bottom:0;left:0;display:flex!important}.mobile-tab-item{height:100%;color:var(--text-tertiary);transition:color var(--transition-fast);background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;font-size:10px;font-weight:500;display:flex;position:relative}.mobile-tab-item.active{color:var(--color-primary)}.mobile-tab-item.active:before{content:"";background:var(--color-primary);border-radius:0 0 2px 2px;width:20px;height:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.mobile-fab-container{flex:0 0 64px;justify-content:center;align-items:flex-start;height:100%;display:flex;position:relative}.mobile-fab-btn{background:linear-gradient(135deg, var(--color-primary-surface), var(--color-primary-gradient-end));width:52px;height:52px;box-shadow:0 4px 16px rgb(from var(--color-primary) r g b / .4);color:var(--color-primary-contrast);transition:transform var(--transition-fast), box-shadow var(--transition-fast);z-index:110;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;transform:translateY(-16px)}.mobile-fab-btn:active{box-shadow:0 2px 8px var(--color-primary-glow);transform:translateY(-14px)scale(.95)}.mobile-top-bar{height:calc(var(--mobile-top-bar-h) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:var(--space-sm);padding-right:var(--space-md);box-sizing:border-box;justify-content:space-between;align-items:center;gap:var(--space-sm);background:rgba(var(--bg-body-rgb,15, 23, 42), .85);background:var(--bg-body);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-color);z-index:45;position:fixed;top:0;left:0;right:0;display:flex!important}.mobile-top-bar-left{align-items:center;gap:var(--space-sm);min-width:0;display:flex}.mobile-top-bar-brand{font-size:var(--font-size-xs);letter-spacing:.5px;color:var(--text-primary);white-space:nowrap;font-weight:700}.mobile-top-bar-ledger-chip{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--border-radius-full);max-width:48vw;min-height:36px;color:var(--text-primary);font-size:var(--font-size-xs);align-items:center;gap:6px;padding:4px 10px;display:flex}.mobile-top-bar-ledger-name{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-weight:600;overflow:hidden}.action-sheet-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:500;opacity:0;background:#0009;animation:.2s cubic-bezier(.16,1,.3,1) forwards fadeInOverlay;position:fixed;inset:0;display:block!important}.action-sheet-content{background:var(--bg-card);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0;z-index:501;padding-bottom:env(safe-area-inset-bottom);animation:.3s cubic-bezier(.16,1,.3,1) forwards slideUpSheet;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -8px 24px #0003;display:block!important}.action-sheet-drag-handle{background:var(--border-color);border-radius:2px;width:36px;height:4px;margin:12px auto}.action-sheet-menu{padding:0 var(--space-lg) var(--space-lg);flex-direction:column;display:flex}.action-sheet-btn{align-items:center;gap:var(--space-md);padding:var(--space-md);border:none;border-bottom:1px solid var(--border-color);font-size:var(--font-size-base);color:var(--text-primary);text-align:left;width:100%;transition:background var(--transition-fast);background:0 0;font-weight:500;display:flex}.action-sheet-btn:last-child{border-bottom:none}.action-sheet-btn:active{background:var(--bg-input)}.action-sheet-btn .icon-wrapper{border-radius:var(--border-radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.as-income .icon-wrapper{color:var(--color-income);background:#22c55e1a}.as-expense .icon-wrapper{color:var(--color-expense);background:#ef44441a}.as-asset .icon-wrapper{color:#8b5cf6;background:#8b5cf61a}.as-transfer .icon-wrapper{color:#3b82f6;background:#3b82f61a}.as-scan .icon-wrapper{color:var(--color-primary);background:#14b8a61a}.action-sheet-cancel{margin-top:var(--space-sm);padding:var(--space-md);text-align:center;width:100%;color:var(--text-secondary);font-size:var(--font-size-base);border:none;border-top:8px solid var(--bg-body);background:0 0;font-weight:500}.more-sheet-caption{font-size:var(--font-size-xs);color:var(--text-tertiary);letter-spacing:.06em;margin:0 0 var(--space-xs);padding:0 var(--space-xs);font-weight:600}.more-sheet-spacer{background:var(--bg-body);height:8px;margin:var(--space-sm) calc(-1 * var(--space-lg))}.more-sheet-btn-text{text-align:left;flex-direction:column;flex:1;align-items:flex-start;gap:2px;min-width:0;display:flex}.more-sheet-btn-title{font-weight:500}.more-sheet-btn-sub{font-size:var(--font-size-xs);color:var(--text-tertiary);font-weight:400}.more-sheet-check{color:var(--color-primary);flex-shrink:0;margin-left:auto;font-weight:600}@keyframes fadeInOverlay{0%{opacity:0}to{opacity:1}}@keyframes slideUpSheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}.global-time-range-picker{box-sizing:border-box;width:100%;min-width:0;max-width:100%;margin-left:auto;margin-right:auto;padding-left:0;padding-right:4px}.time-picker-presets-row{flex-direction:row!important;align-items:center!important;gap:0!important;max-width:100%!important}.time-picker-label{opacity:0;pointer-events:none;overflow:hidden;border-right:none!important;width:1px!important;height:1px!important;padding:0!important}.preset-scroll-container{box-sizing:border-box;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;touch-action:pan-x;scrollbar-width:none;align-items:center;gap:8px;width:100%;max-width:100%;margin:0;padding:2px 2px 4px;overflow:auto hidden;flex-wrap:nowrap!important;display:flex!important}.preset-scroll-container::-webkit-scrollbar{display:none}.preset-scroll-container>button{-webkit-tap-highlight-color:transparent;flex-shrink:0;border-radius:var(--border-radius-full)!important;min-height:40px!important;padding:0 14px!important}.react-datepicker__portal .react-datepicker{max-width:calc(100vw - 16px)}.react-datepicker__portal .react-datepicker__time-container{width:80px}.time-picker-container{width:100%!important;max-width:100%!important;box-shadow:none!important;background:0 0!important;border:none!important;border-radius:0!important;flex-direction:column!important;align-items:stretch!important;padding:0!important;display:flex!important}.time-picker-custom-block{min-width:0}.time-picker-custom-inputs{padding-top:var(--space-xs);margin-top:var(--space-xs);border-top:1px solid var(--border-color);align-items:center;justify-content:initial;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);border-left:none!important;padding-left:0!important;display:grid!important}.time-picker-custom-inputs>*{min-width:0}.time-picker-custom-inputs .react-datepicker-wrapper,.time-picker-custom-inputs .form-input{width:100%!important}.time-picker-custom-inputs button{grid-column:1/-1;width:100%;min-height:40px!important;margin-left:0!important}.time-picker-error{margin-top:var(--space-xs);color:var(--color-expense);font-size:var(--font-size-xs);line-height:1.35}.modal{max-height:90dvh;position:fixed;bottom:0;left:0;right:0;overflow-y:auto;transform:translateY(100%);border-radius:var(--border-radius-xl) var(--border-radius-xl) 0 0!important;width:100%!important;max-width:100%!important;padding:var(--space-md) var(--space-md)!important;padding-bottom:calc(var(--space-xl) + env(safe-area-inset-bottom))!important;margin:0!important;animation:.3s cubic-bezier(.16,1,.3,1) forwards slideUpSheet!important}.modal>.flex:first-child{margin-bottom:var(--space-xs)!important}.modal>.flex:first-child h2{line-height:1.25;font-size:var(--font-size-base)!important}.modal>.flex:first-child button[aria-label=关闭]{justify-content:center;width:40px;height:40px}.modal-actions{background:var(--bg-card);padding:var(--space-sm) 0;padding-bottom:calc(var(--space-sm) + env(safe-area-inset-bottom));margin-bottom:calc(-1 * (var(--space-xl) + env(safe-area-inset-bottom)));border-top:1px solid var(--border-color);z-index:10;position:sticky;bottom:0}.modal:has(>form.tx-form){flex-direction:column;display:flex;overflow:hidden;padding-bottom:0!important}.modal:has(>form.tx-form)>.flex:first-child{flex:none}.tx-form{flex:auto;min-height:0}.tx-form-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;min-height:0;margin:-4px calc(-1 * var(--space-md)) 0;padding:4px var(--space-md) var(--space-sm);flex:auto;overflow-y:auto}.tx-form .modal-actions{padding:var(--space-sm) 0 calc(var(--space-sm) + env(safe-area-inset-bottom));border-top:1px solid var(--border-color);background:var(--bg-card);flex:none;margin:0;position:static}.big-amount-input{text-align:right;height:52px!important;padding-top:12px!important;padding-bottom:12px!important;padding-right:14px!important;font-size:26px!important;font-weight:700!important}.form-compact .form-group{margin-bottom:6px}.form-compact .form-label,legend.form-label{font-size:var(--font-size-sm);margin-bottom:4px}.form-compact .form-label svg{width:12px;height:12px}.modal .account-chip-balance{display:none}.tx-account-row .account-chip{width:100%;min-width:0}.tx-account-row .account-chip-name{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.asset-modal-top-grid{gap:var(--space-sm)!important;flex-direction:column!important}.modal .category-tag{max-width:100%}.modal .account-chip{min-width:0;max-width:100%;overflow:hidden}.modal .account-chip>div:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;overflow:hidden}.modal .flex.flex-wrap.gap-sm{gap:var(--space-xs)!important}.modal-error-banner{font-size:var(--font-size-xs)}.stat-card.full-width-mobile{grid-column:1/-1}.page-header{align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-lg);flex-direction:column}.settings-two,.settings-grid--2,.settings-grid--3{grid-template-columns:1fr}.settings-row.settings-row--stack{grid-template-columns:1fr auto;row-gap:0;padding-bottom:8px}.settings-row.settings-row--stack .settings-row-key{grid-column:1/-1;min-height:0;padding-top:8px}.settings-grid--4{grid-template-columns:repeat(2,1fr)}.settings-grid--5{grid-template-columns:repeat(4,1fr)}.settings-row{grid-template-columns:96px 1fr auto}.settings-card-head{flex-wrap:wrap}.seg-switch--sm{width:100%;min-width:0}.settings-linkbox{grid-template-columns:1fr}.settings-linkbox-qr{justify-self:center}.settings-danger{flex-direction:column;align-items:stretch}.tabs{box-sizing:border-box;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-wrap:nowrap;width:100%;max-width:100%;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs .tab{min-height:40px;font-size:var(--font-size-xs);white-space:nowrap;flex:none;padding:8px 14px}.filter-bar{box-sizing:border-box;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;max-width:100%;margin-left:calc(-1 * var(--space-md));margin-right:calc(-1 * var(--space-md));padding-left:var(--space-md);padding-right:var(--space-md);padding-bottom:var(--space-xs);gap:var(--space-xs);flex-wrap:nowrap;overflow-x:auto}.filter-bar::-webkit-scrollbar{display:none}.filter-chip{flex-shrink:0;justify-content:center;align-items:center;min-height:40px;display:inline-flex}.type-selector{margin-bottom:var(--space-sm);flex-wrap:nowrap;gap:6px}.type-pill{min-width:0;min-height:52px;font-size:var(--font-size-xs);white-space:nowrap;flex-direction:column;gap:4px;padding:6px 2px;flex:1 1 0!important}.type-pill svg{width:18px;height:18px}.cashflow-filter-summary{box-sizing:border-box;overflow-wrap:normal;word-break:keep-all;width:100%;max-width:100%;overflow:hidden}.cashflow-filter-values{margin-left:0!important}.cashflow-filter-value{white-space:nowrap}.cashflow-export-wrap{width:100%;max-width:100%;justify-content:stretch!important}.cashflow-export-btn{box-sizing:border-box;text-align:center;white-space:normal;width:100%;min-width:0;max-width:100%}.tx-item{align-items:start;column-gap:var(--space-sm);padding:var(--space-sm);grid-template-rows:auto auto auto;grid-template-columns:40px minmax(0,1fr) minmax(92px,max-content);row-gap:2px;display:grid}.tx-item .tx-icon{grid-area:1/1/4;align-self:start;margin-top:0}.tx-item .tx-info{grid-area:1/2/4;grid-template-rows:auto;row-gap:3px;min-width:0;display:grid}.tx-item .tx-category{white-space:nowrap;text-overflow:ellipsis;line-height:1.25;overflow:hidden}.tx-item .tx-note{text-overflow:ellipsis;white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;max-width:100%;line-height:1.35;display:flex;overflow:hidden}.tx-item .tx-note-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.tx-item .tx-note-badge{flex:none}.tx-item .tx-meta{color:var(--text-tertiary);gap:6px;margin-top:0;line-height:1.3}.tx-item .tx-meta-operator{flex:auto;min-width:0}.tx-item .tx-amount{text-align:right;white-space:nowrap;grid-area:1/3;align-self:start;margin-left:0;padding-top:2px;line-height:1.2}.tx-item .tx-balance{text-align:right;grid-column:3;place-self:start end;min-width:0;max-width:122px;overflow:hidden}.tx-item .tx-balance-simple{grid-row:2;gap:0}.tx-item .tx-balance-simple .tx-balance-label{display:none}.tx-item .tx-balance-transfer-wrap{grid-row:2/4}.tx-item .tx-balance-transfer{gap:2px}.tx-item .tx-balance-line{gap:4px}.tx-item .tx-balance-line .tx-balance-label{letter-spacing:0;opacity:.65;flex-shrink:0;max-width:none;font-size:10px}.tx-item .tx-balance-value{font-size:var(--font-size-xs);line-height:1.25}.dashboard-reimburse-card{gap:var(--space-md);text-align:left;flex-direction:column!important;align-items:stretch!important}.dashboard-reimburse-card .dashboard-reimburse-amount{text-align:left;font-size:var(--font-size-xl)!important}.mismatch-banner{font-size:var(--font-size-xs);gap:var(--space-sm);flex-wrap:wrap}.mismatch-action{width:100%;margin-top:var(--space-xs)}.settings-view-root{padding:var(--space-md)!important;max-width:100%!important}.settings-view-root .card,.settings-view-root .form-input{box-sizing:border-box;max-width:100%}.settings-view-root select.form-input{margin-top:var(--space-xs);width:100%!important;min-width:0!important}.settings-view-root .btn{min-height:40px}.user-view-root{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))!important}.user-view-root .card{padding:var(--space-lg)!important}.reimburse-tx-row{gap:var(--space-sm);flex-direction:column!important;align-items:stretch!important}.reimburse-tx-row>div:last-child{width:100%;justify-content:space-between!important}.reimburse-tx-row .btn{min-height:40px;padding:8px 14px!important}.reimburse-section-head{gap:var(--space-sm);flex-direction:column!important;align-items:flex-start!important}.reimburse-section-head .btn{justify-content:center;width:100%}.table-responsive{-webkit-overflow-scrolling:touch;max-width:100%;margin:0 calc(-1 * var(--space-sm));padding:0 var(--space-sm);overflow-x:auto}.assets-view-root .asset-table-wrap{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;max-width:100%;margin:0 calc(-1 * var(--space-sm));padding:0 var(--space-sm) var(--space-xs);overflow:auto hidden}.assets-view-root .asset-mobile-table{table-layout:fixed;min-width:700px;max-width:none;width:700px!important}.assets-view-root .asset-fixed-table{min-width:866px;width:866px!important}.assets-view-root .asset-disposed-table{min-width:560px;width:560px!important}.assets-view-root .asset-balance-table{min-width:700px;width:700px!important}.assets-view-root .asset-mobile-table th,.assets-view-root .asset-mobile-table td{box-sizing:border-box;vertical-align:middle}.assets-view-root .asset-fixed-table th:first-child,.assets-view-root .asset-fixed-table td:first-child{width:240px!important}.assets-view-root .asset-fixed-table th:nth-child(2),.assets-view-root .asset-fixed-table td:nth-child(2){width:132px!important}.assets-view-root .asset-fixed-table th:nth-child(3),.assets-view-root .asset-fixed-table td:nth-child(3){width:150px!important}.assets-view-root .asset-fixed-table th:nth-child(4),.assets-view-root .asset-fixed-table td:nth-child(4),.assets-view-root .asset-fixed-table th:nth-child(5),.assets-view-root .asset-fixed-table td:nth-child(5){width:112px!important}.assets-view-root .asset-fixed-table th:nth-child(6),.assets-view-root .asset-fixed-table td:nth-child(6){width:120px!important}.assets-view-root .asset-disposed-table th:first-child,.assets-view-root .asset-disposed-table td:first-child,.assets-view-root .asset-balance-table th:first-child,.assets-view-root .asset-balance-table td:first-child{width:230px!important}.assets-view-root .asset-primary-content{min-width:0;max-width:100%;white-space:nowrap!important}.assets-view-root .asset-name-stack,.assets-view-root .asset-name-text,.assets-view-root .asset-subtext{min-width:0;max-width:100%}.assets-view-root .asset-name-text,.assets-view-root .asset-subtext{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.assets-view-root .asset-mobile-table td[data-label]{white-space:nowrap}.assets-view-root .asset-mobile-table td[data-label]:before{content:none}.assets-view-root .asset-mobile-table .progress-bar{min-width:72px}.assets-view-root .asset-mobile-actions{white-space:nowrap}.assets-view-root .asset-mobile-actions .flex{flex-wrap:nowrap;justify-content:flex-end}.assets-view-root .asset-mobile-actions .btn{min-width:40px;min-height:40px}.assets-section-head{gap:var(--space-sm);flex-direction:column!important;align-items:flex-start!important}.profit-row{align-items:flex-start;gap:var(--space-xs);flex-wrap:wrap}.profit-row-label{flex:55%;min-width:0}.profit-row-value{text-align:right;flex:none;margin-left:auto}.user-modal-otp-row{flex-direction:column!important;align-items:stretch!important}.user-modal-otp-row .btn{justify-content:center;width:100%}input[type=text],input[type=number],input[type=date],select{font-size:16px!important}}
*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-family);background-color:var(--bg-body);color:var(--text-primary);min-height:100vh;transition:background-color var(--transition-base), color var(--transition-base);line-height:1.6}.error-page-shell{min-height:100vh;padding:var(--space-lg);place-items:center;display:grid}.error-page-card{align-items:flex-start;gap:var(--space-md);flex-direction:column;width:min(100%,480px);display:flex}.error-page-card h1{font-size:var(--font-size-xl)}.error-page-card p{color:var(--text-secondary);line-height:1.6}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}input[type=number]{appearance:textfield}input:-webkit-autofill{caret-color:#fff;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#fff!important;-webkit-box-shadow:inset 0 0 0 1000px #0f0f1e!important}input:-webkit-autofill:hover{caret-color:#fff;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#fff!important;-webkit-box-shadow:inset 0 0 0 1000px #0f0f1e!important}input:-webkit-autofill:focus{caret-color:#fff;transition:background-color 5000s ease-in-out;-webkit-text-fill-color:#fff!important;-webkit-box-shadow:inset 0 0 0 1000px #0f0f1e!important}.app-layout{min-height:100vh;display:flex}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border-color);width:260px;padding:var(--space-lg);z-index:10;transition:transform var(--transition-base), background-color var(--transition-base);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-logo{align-items:center;gap:var(--space-sm);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border-color);margin-bottom:var(--space-lg);display:flex}.sidebar-logo-icon{width:36px;height:36px;color:var(--text-primary);justify-content:center;align-items:center;display:flex}.sidebar-logo-text{font-size:var(--font-size-lg);color:var(--text-primary);font-weight:700}.sidebar-nav{gap:var(--space-xs);flex-direction:column;flex:1;display:flex}.sidebar-link{align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;font-weight:500;display:flex}.sidebar-link:hover{background:var(--bg-card-hover);color:var(--text-primary)}.sidebar-link.active{background:var(--color-primary-light);color:var(--color-primary)}.sidebar-link-icon{text-align:center;width:24px;font-size:20px}.sidebar-footer{padding-top:var(--space-lg);border-top:1px solid var(--border-color)}.ledger-switcher{width:100%;margin-bottom:var(--space-lg);position:relative}.ledger-switcher-btn{align-items:center;gap:var(--space-sm);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);width:100%;color:var(--text-primary);cursor:pointer;text-align:left;transition:border-color var(--transition-fast);padding:8px 10px 8px 8px;display:flex}.ledger-switcher-btn:hover,.ledger-switcher-btn[aria-expanded=true]{border-color:var(--color-primary)}.ledger-switcher-icon{background:var(--color-primary-light);border-radius:var(--border-radius-sm);width:36px;height:36px;color:var(--color-primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.ledger-switcher-text{flex-direction:column;flex:1;min-width:0;display:flex}.ledger-switcher-caption{color:var(--text-tertiary);font-size:11px;font-weight:500;line-height:1.25}.ledger-switcher-name{min-width:0;color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.ledger-switcher-menu{top:calc(100% + var(--space-xs));background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-lg);z-index:100;position:absolute;left:0;right:0;overflow:hidden}.ledger-switcher-item{align-items:center;gap:var(--space-sm);text-align:left;width:100%;color:var(--text-primary);font-size:var(--font-size-sm);cursor:pointer;background:0 0;border:none;padding:10px 12px;display:flex}.ledger-switcher-item.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.ledger-switcher-item .ledger-switcher-item-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.main-content{min-width:0;padding:var(--space-xl);flex:1;max-width:1200px;margin-left:max(260px,50% - 470px);padding-bottom:96px}.global-header{z-index:40;background:var(--bg-body);-webkit-backdrop-filter:blur(12px);padding:var(--space-md) var(--space-xl);margin-left:calc(-1 * var(--space-xl));margin-right:calc(-1 * var(--space-xl));margin-top:calc(-1 * var(--space-xl));margin-bottom:var(--space-lg);border-bottom:1px solid var(--border-color);justify-content:center;align-items:center;display:flex;position:sticky;top:0}.tx-list{flex-direction:column;display:flex}.tx-date-group{margin-bottom:var(--space-md)}.tx-date-header{font-size:var(--font-size-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-sm) 0;font-weight:600}.tx-item{align-items:center;gap:var(--space-md);padding:var(--space-md);border-radius:var(--border-radius-md);transition:background var(--transition-fast);cursor:pointer;display:flex}.tx-item:hover{background:var(--bg-card-hover)}.tx-icon{border-radius:var(--border-radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex}.tx-icon.income{background:var(--color-income-bg)}.tx-icon.expense{background:var(--color-expense-bg)}.tx-icon.borrow-in{background:var(--color-borrow-in-bg)}.tx-icon.lend-out{background:var(--color-lend-out-bg)}.tx-icon.prepaid{background:var(--color-prepaid-bg)}.tx-info{flex:1;min-width:0}.tx-category{font-size:var(--font-size-sm);color:var(--text-primary);font-weight:600}.tx-note{font-size:var(--font-size-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:normal;flex-wrap:wrap;align-items:center;gap:2px;min-width:0;line-height:1.35;display:flex;overflow:hidden}.tx-note-time{color:var(--text-tertiary);font-size:var(--font-size-xs);font-family:var(--font-mono);flex-shrink:0}.tx-note-text{text-overflow:ellipsis;min-width:0;overflow:hidden}.tx-note-badge{font-size:var(--font-size-xs);border-radius:var(--border-radius-full);white-space:nowrap;flex-shrink:0;align-items:center;gap:3px;padding:1px 6px;line-height:1.2;display:inline-flex}.tx-note-badge svg{flex-shrink:0}.tx-note-badge-primary{color:var(--color-primary);background:var(--color-primary-light)}.tx-note-badge-warning{color:var(--color-lend-out);background:#ffaa0014}.tx-note-badge-success{color:var(--color-income);background:#00c85314}.voucher-panel{margin-top:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-input);padding:12px;transition:border-color .16s,background .16s,box-shadow .16s;position:relative}.voucher-panel-drag-active{border-color:var(--color-primary);background:#667eea17;box-shadow:0 0 0 1px #667eea3d}.voucher-panel-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.voucher-panel-title{font-size:var(--font-size-sm);color:var(--text-primary);align-items:center;gap:7px;font-weight:650;display:flex}.voucher-panel-title em{color:var(--text-tertiary);font-size:11px;font-style:normal;font-weight:600}.voucher-upload-btn{border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-secondary);border-radius:var(--border-radius-sm);cursor:pointer;align-items:center;gap:6px;min-height:32px;padding:0 10px;font-size:12px;font-weight:650;display:inline-flex}.voucher-upload-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary)}.voucher-upload-btn:disabled{opacity:.5;cursor:not-allowed}.voucher-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;margin-top:10px;display:grid}.voucher-thumb{aspect-ratio:1;border-radius:var(--border-radius-sm);border:1px solid var(--border-color);background:var(--bg-secondary);position:relative;overflow:hidden}.voucher-thumb a,.voucher-thumb img{width:100%;height:100%;display:block}.voucher-thumb img{object-fit:cover}.voucher-thumb-meta{color:#fff;background:#0000008c;border-radius:999px;padding:2px 5px;font-size:10px;line-height:1.2;position:absolute;bottom:4px;left:4px}.voucher-remove-btn{color:#fff;cursor:pointer;background:#0000009e;border:0;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex;position:absolute;top:4px;right:4px}.voucher-empty{border:1px dashed var(--border-color);border-radius:var(--border-radius-sm);min-height:52px;color:var(--text-tertiary);text-align:center;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:0 10px;font-size:12px;display:flex}.voucher-panel-drag-active .voucher-empty{border-color:var(--color-primary);color:var(--color-primary);background:#667eea14}.voucher-drop-overlay{z-index:2;border:1px dashed var(--color-primary);border-radius:var(--border-radius-sm);color:var(--color-primary);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#151823e0;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:650;display:flex;position:absolute;inset:48px 10px 10px}.voucher-message{color:var(--color-expense);margin-top:8px;font-size:12px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.tx-meta{min-width:0;color:var(--text-secondary);white-space:nowrap;align-items:center;gap:6px;margin-top:4px;font-size:12px;line-height:1.3;display:flex;overflow:hidden}.tx-meta-time{color:var(--text-tertiary);font-family:var(--font-mono);flex-shrink:0}.tx-meta-label{color:var(--text-tertiary);flex-shrink:0}.tx-meta-operator{min-width:0;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.tx-amount{font-size:var(--font-size-base);text-align:right;flex-shrink:0;font-weight:700}.tx-amount.income{color:var(--color-income)}.tx-amount.expense{color:var(--color-expense)}.tx-amount.borrow-in{color:var(--color-borrow-in)}.tx-amount.lend-out{color:var(--color-lend-out)}.tx-amount.prepaid{color:var(--color-prepaid)}.cashflow-record-card{overflow:hidden}.cashflow-record-scroll{-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto hidden}.cashflow-record-scroll::-webkit-scrollbar{height:6px}.cashflow-record-scroll::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--border-radius-full)}.cashflow-tx-list{min-width:0}.cashflow-tx-header,.cashflow-tx-list .tx-item{column-gap:var(--space-md);grid-template-columns:40px minmax(180px,1fr) minmax(260px,340px);align-items:center;display:grid}.cashflow-tx-header{padding:0 var(--space-md) var(--space-xs);color:var(--text-tertiary);font-size:11px;font-weight:700}.cashflow-tx-header-impact,.tx-impact{column-gap:var(--space-md);grid-template-columns:minmax(104px,max-content) minmax(132px,1fr);align-items:center;min-width:0;display:grid}.cashflow-tx-header-impact>span{text-align:right;white-space:nowrap}.cashflow-tx-list .tx-item{width:100%}.cashflow-tx-list .tx-icon,.cashflow-tx-list .tx-info,.cashflow-tx-list .tx-impact{min-width:0}.cashflow-pagination{justify-content:center;align-items:center;gap:var(--space-sm);margin-top:var(--space-md);color:var(--text-secondary);font-size:var(--font-size-sm);flex-wrap:wrap;max-width:100%;display:flex}.cashflow-pagination-button{min-width:88px}.cashflow-pagination-button-icon{display:none}.cashflow-pagination-pages{justify-content:center;align-items:center;gap:var(--space-xs);min-width:0;display:inline-flex}.cashflow-pagination-pages-mobile{display:none}.cashflow-pagination-page{font-variant-numeric:tabular-nums;width:40px;min-width:40px;height:40px;padding:0}.cashflow-pagination-ellipsis{width:24px;min-width:24px;height:40px;color:var(--text-tertiary);justify-content:center;align-items:center;display:inline-flex}.cashflow-pagination-total{color:var(--text-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;order:1}.tx-impact{font-variant-numeric:tabular-nums;row-gap:4px}.tx-impact-row{display:contents}.tx-impact-account{justify-content:flex-end;align-items:center;gap:6px;min-width:0;display:flex}.tx-impact-account-name{min-width:0;color:var(--text-secondary);font-size:var(--font-size-xs);text-overflow:ellipsis;white-space:nowrap;font-weight:650;overflow:hidden}.tx-impact-change,.tx-impact-balance{text-align:right;white-space:nowrap}.tx-impact-balance-cell{flex-direction:column;align-items:flex-end;gap:2px;min-width:0;display:flex}.tx-impact-change{font-size:var(--font-size-base);font-weight:760}.tx-impact-change.positive{color:var(--color-income)}.tx-impact-change.negative{color:var(--color-expense)}.tx-impact-change.neutral{color:var(--text-secondary)}.tx-impact-balance{color:var(--text-secondary);font-size:var(--font-size-sm);font-weight:700}.asset-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}.asset-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.asset-name{font-size:var(--font-size-base);margin-bottom:var(--space-xs);font-weight:600}.asset-meta{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--space-md)}.asset-values{margin-bottom:var(--space-sm);justify-content:space-between;display:flex}.asset-value-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.asset-value-amount{font-size:var(--font-size-sm);font-weight:700}.insight-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-md) var(--space-lg);align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-sm);transition:all var(--transition-base);display:flex}.insight-card:hover{box-shadow:var(--shadow-md)}.insight-icon{flex-shrink:0;margin-top:2px;font-size:24px}.insight-text{font-size:var(--font-size-sm);color:var(--text-secondary);line-height:1.6}.chart-container{width:100%;position:relative}.bar-chart{align-items:flex-end;gap:var(--space-sm);height:160px;padding-top:var(--space-md);display:flex}.bar-group{align-items:center;gap:var(--space-xs);flex-direction:column;flex:1;justify-content:flex-end;height:100%;display:flex}.bar{width:100%;max-width:32px;transition:height var(--transition-slow);border-radius:4px 4px 0 0;min-height:4px}.bar.income{background:var(--color-income)}.bar.expense{background:var(--color-expense)}.bar-label{color:var(--text-tertiary);font-size:10px;font-weight:500}.mini-chart{align-items:flex-end;gap:2px;height:40px;display:flex}.mini-bar{min-height:2px;transition:height var(--transition-slow);border-radius:2px;flex:1}.theme-toggle{align-items:center;gap:var(--space-md);width:100%;padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:var(--font-size-sm);transition:all var(--transition-fast);font-weight:500;display:flex}.theme-toggle:hover{background:var(--bg-card-hover);color:var(--text-primary)}.profit-breakdown{gap:var(--space-sm);flex-direction:column;display:flex}.profit-row{padding:var(--space-sm) 0;font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.profit-row.indent{padding-left:var(--space-lg);color:var(--text-secondary)}.profit-row.total{border-top:2px solid var(--border-color);padding-top:var(--space-md);font-weight:700;font-size:var(--font-size-lg)}.profit-row-label{align-items:center;gap:var(--space-sm);display:flex}.profit-row-value{font-variant-numeric:tabular-nums;font-weight:600}.donut-chart{border-radius:50%;justify-content:center;align-items:center;width:160px;height:160px;display:flex;position:relative}.donut-center{background:var(--bg-card);z-index:1;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;display:flex}.donut-value{font-size:var(--font-size-lg);font-weight:800}.donut-label{font-size:var(--font-size-xs);color:var(--text-tertiary)}.liability-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg);transition:all var(--transition-base)}.liability-card:hover{box-shadow:var(--shadow-md)}.reconciliation-section{margin-top:var(--space-xl)}.recon-bridge{align-items:stretch;gap:var(--space-md);padding:var(--space-lg);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--space-lg);transition:all var(--transition-base);flex-direction:row;display:flex}.recon-bridge:hover{box-shadow:var(--shadow-md)}.recon-bridge-node{text-align:center;padding:var(--space-md);border-radius:var(--border-radius-md);background:var(--bg-input);border:1px solid var(--border-color);transition:all var(--transition-base);flex-direction:column;flex:1;justify-content:center;min-width:0;display:flex;container-type:inline-size}.recon-bridge-node:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}.recon-bridge-node.profit{border-color:rgb(from var(--color-primary) r g b / .3);background:rgb(from var(--color-primary) r g b / .06)}.recon-bridge-node.adjustment{background:#f59e0b0f;border-color:#f59e0b4d}.recon-bridge-node.cash{background:#22c55e0f;border-color:#22c55e4d}.recon-bridge-label{font-size:var(--font-size-xs);color:var(--text-tertiary);margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.recon-bridge-value{font-size:min(var(--font-size-2xl), 12cqw);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;font-weight:800;line-height:1.2;overflow:hidden}.recon-bridge-arrow{font-size:var(--font-size-xl);color:var(--text-tertiary);opacity:.5;flex:none;justify-content:center;align-items:center;display:flex}.recon-summary-text{text-align:center;font-size:var(--font-size-sm);color:var(--text-secondary);margin-top:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--bg-input);border-radius:var(--border-radius-sm);line-height:1.6}.waterfall-container{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);padding:var(--space-lg);margin-bottom:var(--space-lg);transition:all var(--transition-base)}.waterfall-container:hover{box-shadow:var(--shadow-md)}.waterfall-chart{height:200px;padding:var(--space-md) 0;align-items:flex-end;gap:6px;display:flex;position:relative}.waterfall-chart:before{content:"";background:var(--border-color);opacity:.5;z-index:0;height:1px;position:absolute;top:50%;left:0;right:0}.waterfall-col{z-index:1;flex-direction:column;flex:1;align-items:center;height:100%;display:flex;position:relative}.waterfall-bar-wrapper{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;width:100%;display:flex;position:relative}.waterfall-bar{width:70%;max-width:48px;min-height:4px;transition:all var(--transition-slow);cursor:pointer;border-radius:4px;position:relative}.waterfall-bar:hover{filter:brightness(1.2);transform:scaleY(1.05)}.waterfall-bar.positive{background:linear-gradient(180deg, var(--color-income), #22c55eb3);box-shadow:0 2px 8px #22c55e33}.waterfall-bar.negative{background:linear-gradient(180deg, #ef4444b3, var(--color-expense));box-shadow:0 2px 8px #ef444433}.waterfall-bar.neutral{background:linear-gradient(180deg, var(--color-primary), rgb(from var(--color-primary) r g b / .7));box-shadow:0 2px 8px rgb(from var(--color-primary) r g b / .2)}.waterfall-bar-value{white-space:nowrap;color:var(--text-secondary);font-size:10px;font-weight:700;position:absolute;top:-22px;left:50%;transform:translate(-50%)}.waterfall-label{color:var(--text-tertiary);text-align:center;padding-top:var(--space-xs);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10px;font-weight:500;line-height:1.3;overflow:hidden}.waterfall-connector{background:var(--text-tertiary);opacity:.3;z-index:0;width:6px;height:1px;position:absolute;top:0;right:-6px}.recon-adjustments{gap:var(--space-sm);flex-direction:column;display:flex}.recon-adj-row{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-md);transition:all var(--transition-base);overflow:hidden}.recon-adj-row:hover{box-shadow:var(--shadow-sm);border-color:var(--border-color-hover)}.recon-adj-header{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);cursor:pointer;transition:background var(--transition-fast);display:flex}.recon-adj-header:hover{background:var(--bg-card-hover)}.recon-adj-icon{border-radius:var(--border-radius-sm);background:var(--bg-input);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:24px;display:flex}.recon-adj-info{flex:1;min-width:0}.recon-adj-label{font-size:var(--font-size-sm);color:var(--text-primary);margin-bottom:2px;font-weight:600}.recon-adj-explanation{font-size:var(--font-size-xs);color:var(--text-tertiary);line-height:1.5}.recon-adj-amounts{gap:var(--space-lg);flex-shrink:0;align-items:center;display:flex}.recon-adj-amount-col{text-align:right;min-width:80px}.recon-adj-amount-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px;font-size:10px}.recon-adj-amount-value{font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;font-weight:700}.recon-adj-diff{text-align:right;min-width:90px;padding:var(--space-xs) var(--space-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);font-weight:700}.recon-adj-diff.positive{color:var(--color-income);background:var(--color-income-bg)}.recon-adj-diff.negative{color:var(--color-expense);background:var(--color-expense-bg)}.recon-status{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-lg);border-radius:var(--border-radius-md);font-size:var(--font-size-sm);margin-top:var(--space-md);font-weight:600;display:flex}.recon-status.balanced{background:var(--color-income-bg);color:var(--color-income);border:1px solid #22c55e33}.recon-status.unbalanced{background:var(--color-expense-bg);color:var(--color-expense);border:1px solid #ef444433}.recon-mode-bar{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--border-radius-lg);margin-bottom:var(--space-md);transition:all var(--transition-base);flex-wrap:wrap;display:flex}.recon-mode-bar.active{border-color:rgb(from var(--color-primary) r g b / .3);background:rgb(from var(--color-primary) r g b / .04)}.recon-mode-toggle{align-items:center;gap:var(--space-sm);border-radius:var(--border-radius-full);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid var(--border-color);background:var(--bg-input);color:var(--text-secondary);padding:6px 14px;font-weight:600;display:flex}.recon-mode-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.recon-mode-toggle.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 2px 8px var(--color-primary-glow)}.bank-balance-input-wrapper{align-items:center;gap:var(--space-sm);flex:1;min-width:200px;display:flex}.bank-balance-input-wrapper label{font-size:var(--font-size-xs);color:var(--text-tertiary);white-space:nowrap;font-weight:600}.bank-balance-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);width:140px;color:var(--text-primary);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;transition:all var(--transition-fast);outline:none;padding:6px 12px;font-weight:600}.bank-balance-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.tx-balance{font-size:var(--font-size-xs);color:var(--text-tertiary);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;flex-shrink:0;align-items:flex-end;gap:1px;min-width:80px;font-weight:600;display:flex}.tx-balance-label{min-width:0;max-width:100%;color:var(--text-tertiary);opacity:.6;text-transform:uppercase;letter-spacing:.05em;justify-content:flex-end;align-items:center;gap:4px;font-size:9px;font-weight:500;display:inline-flex}.tx-balance-label svg{flex-shrink:0}.tx-balance-label-text{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.tx-balance-value{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;font-weight:700}.tx-balance-transfer{flex-direction:column;align-items:flex-end;gap:4px;min-width:0;max-width:100%;display:flex}.tx-balance-line{justify-content:flex-end;align-items:center;gap:6px;min-width:0;max-width:100%;display:flex}.cashflow-filter-summary{flex-wrap:wrap;align-items:center;gap:4px 8px;display:flex}.cashflow-filter-values{flex-wrap:wrap;gap:4px 8px;min-width:0;display:inline-flex}.cashflow-filter-value{white-space:nowrap}.tx-item.mismatch{border-left:3px solid var(--color-expense);border-radius:0 var(--border-radius-md) var(--border-radius-md) 0;background:#ef44440f}.tx-item.mismatch-start{border-left:3px solid var(--color-expense);border-radius:0 var(--border-radius-md) var(--border-radius-md) 0;background:#ef44441f;position:relative}.mismatch-banner{align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--border-radius-md);margin-bottom:var(--space-md);font-size:var(--font-size-sm);color:var(--color-expense);background:#ef444414;border:1px solid #ef444433;font-weight:500;display:flex}.mismatch-banner.matched{color:var(--color-income);background:#22c55e14;border-color:#22c55e33}.account-chip.filterable{cursor:pointer;transition:all var(--transition-fast)}.account-chip.filterable:hover{border-color:var(--color-primary);transform:translateY(-1px)}.account-chip.filterable.selected{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:0 2px 8px rgb(from var(--color-primary) r g b / .15)}.mismatch-action{border-radius:var(--border-radius-full);font-size:var(--font-size-xs);background:var(--color-primary);color:#fff;cursor:pointer;transition:all var(--transition-fast);border:none;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-weight:600;display:inline-flex}.mismatch-action:hover{box-shadow:0 2px 8px var(--color-primary-glow);transform:translateY(-1px)}.global-action-footer{z-index:50;gap:var(--space-xl);background:rgba(var(--bg-body-rgb,255, 255, 255), .85);background:var(--bg-body);-webkit-backdrop-filter:blur(12px);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border-color);justify-content:center;align-items:center;display:flex;position:fixed;bottom:0;left:260px;right:0}.global-action-btn{border-radius:var(--border-radius-full);font-weight:600;font-size:var(--font-size-base);color:#fff;transition:all var(--transition-base);box-shadow:var(--shadow-md);white-space:nowrap;align-items:center;gap:6px;padding:10px 20px;display:flex}.global-action-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.global-action-btn.income{background:var(--color-income)}.global-action-btn.expense{background:var(--color-expense)}.global-action-btn.asset{background:linear-gradient(135deg, var(--color-primary-surface), var(--color-primary-gradient-end));box-shadow:var(--shadow-md), 0 0 0 1px rgb(from var(--color-primary) r g b / .4)}.global-action-btn.scan{background:var(--color-primary)}@media (max-width:768px){html,body,.app-layout{width:100%;max-width:100%;overflow-x:clip}.sidebar{transform:translate(-100%)}.sidebar.open{z-index:60;padding-top:calc(env(safe-area-inset-top,0px) + var(--space-lg));padding-bottom:calc(56px + env(safe-area-inset-bottom,0px) + var(--space-lg));transform:translate(0)}.main-content{padding:var(--space-md);padding-bottom:calc(72px + env(safe-area-inset-bottom,0px) + var(--space-lg));padding-top:calc(var(--mobile-top-bar-h) + env(safe-area-inset-top,0px) + var(--space-sm));width:100%;max-width:100%;margin-left:0;overflow-x:clip}.global-header{top:calc(var(--mobile-top-bar-h) + env(safe-area-inset-top,0px));margin-left:calc(-1 * var(--space-md));margin-right:calc(-1 * var(--space-md));margin-top:calc(-1 * var(--space-sm));padding:var(--space-xs) var(--space-md)}.stat-grid{gap:var(--space-sm);grid-template-columns:1fr 1fr}.stat-value{font-size:clamp(var(--font-size-xl), 5vw, var(--font-size-3xl))}.page-title{font-size:var(--font-size-xl)}.mobile-menu-btn{z-index:70;display:flex}.recon-bridge{text-align:center;flex-direction:column}.recon-bridge-arrow{padding:var(--space-xs) 0;transform:rotate(90deg)}.recon-adj-amounts{gap:var(--space-xs);flex-direction:column;align-items:flex-end}.recon-adj-header{flex-wrap:wrap}.waterfall-chart{height:150px}.tx-item{column-gap:var(--space-sm);padding:var(--space-sm);grid-template-rows:auto auto auto;align-items:start;row-gap:2px;grid-template-columns:40px minmax(0,1fr) minmax(92px,max-content)!important;display:grid!important}.tx-item .tx-icon{grid-area:1/1/4;align-self:start}.tx-item .tx-info{grid-area:1/2/4;grid-template-rows:auto;row-gap:3px;min-width:0;display:grid}.tx-item .tx-category{white-space:nowrap;text-overflow:ellipsis;line-height:1.25;overflow:hidden}.tx-item .tx-note{text-overflow:ellipsis;white-space:nowrap;word-break:normal;overflow-wrap:normal;flex-wrap:nowrap;align-items:center;gap:4px;min-width:0;max-width:100%;line-height:1.35;display:flex;overflow:hidden}.tx-item .tx-note-text{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.tx-item .tx-note-badge{flex:none}.tx-item .tx-meta{color:var(--text-tertiary);gap:6px;margin-top:0;line-height:1.3}.tx-item .tx-meta-operator{flex:auto;min-width:0}.tx-item .tx-amount{white-space:nowrap;text-align:right;grid-area:1/3;align-self:start;margin-left:0;line-height:1.2}.tx-item .tx-balance{text-align:right;grid-column:3;place-self:start end;min-width:0;max-width:122px;overflow:hidden}.tx-item .tx-balance-simple{grid-row:2;gap:0}.tx-item .tx-balance-simple .tx-balance-label{display:none}.tx-item .tx-balance-transfer-wrap{grid-row:2/4}.tx-item .tx-balance-transfer{gap:2px}.tx-item .tx-balance-line{gap:4px}.tx-item .tx-balance-line .tx-balance-label{letter-spacing:0;opacity:.65;flex-shrink:0;max-width:none;font-size:10px}.tx-item .tx-balance-value{font-size:var(--font-size-xs);line-height:1.25}.cashflow-record-card{padding:var(--space-sm)}.cashflow-record-scroll{margin:0 calc(-1 * var(--space-sm));padding:0 var(--space-sm) 4px}.cashflow-tx-list{min-width:540px}.cashflow-tx-header,.cashflow-tx-list .tx-item{column-gap:var(--space-sm);grid-template-columns:44px minmax(132px,1fr) 332px!important}.cashflow-tx-header{padding-right:var(--space-sm);padding-left:var(--space-sm)}.cashflow-tx-header-impact,.tx-impact{grid-template-columns:86px minmax(0,1fr);column-gap:8px}.cashflow-pagination{justify-content:center;align-items:stretch;gap:var(--space-xs);flex-wrap:wrap}.cashflow-pagination-button{flex:none;width:34px;min-width:34px;height:34px;padding:0}.cashflow-pagination-button-text{display:none}.cashflow-pagination-button-icon{display:inline-flex}.cashflow-pagination-pages-desktop{display:none}.cashflow-pagination-pages-mobile{flex:0 auto;justify-content:center;display:inline-flex}.cashflow-pagination-page{width:34px;min-width:34px;height:34px}.cashflow-pagination-ellipsis{width:18px;min-width:18px;height:34px}.cashflow-pagination-total{text-align:center;flex-basis:100%}.tx-impact-change{font-size:var(--font-size-sm)}.tx-impact-balance{font-size:var(--font-size-xs)}.tx-impact-account{gap:6px}.tx-impact-account-name{max-width:96px;font-size:var(--font-size-xs)}.bank-balance-input-wrapper{min-width:100%}.global-action-footer{width:100%;padding:var(--space-md);bottom:0;left:0;right:0;transform:none;box-shadow:0 -4px 12px #0000000d}.global-action-btn{flex:1;justify-content:center;padding:12px 16px}.recon-mode-bar{padding:var(--space-sm) var(--space-md)}}@media (min-width:769px){.mobile-menu-btn{display:none}}.react-datepicker-wrapper.w-full{width:100%}.react-datepicker{background-color:var(--bg-card)!important;border:1px solid var(--border-color)!important;box-shadow:var(--shadow-lg)!important;border-radius:var(--border-radius-lg)!important;flex-direction:row!important;padding:8px!important;font-family:inherit!important;display:flex!important}.react-datepicker__header{background-color:#0000!important;border-bottom:none!important;padding-top:8px!important}.react-datepicker__current-month{display:none!important}.react-datepicker__day-name{color:var(--text-tertiary)!important;width:32px!important;margin:2px!important;font-size:13px!important;font-weight:600!important;line-height:32px!important}.react-datepicker__day{color:var(--text-secondary)!important;width:32px!important;transition:all var(--transition-base)!important;border-radius:8px!important;margin:2px!important;font-size:14px!important;font-weight:500!important;line-height:32px!important}.react-datepicker__day:hover{background-color:var(--bg-secondary)!important;color:var(--text-primary)!important}.react-datepicker__day--selected,.react-datepicker__day--keyboard-selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range{background:linear-gradient(135deg, var(--color-primary-surface), var(--color-primary-gradient-end))!important;color:#fff!important;box-shadow:0 4px 12px rgb(from var(--color-primary-gradient-end) r g b / .3)!important;font-weight:700!important}.react-datepicker__day--today{color:var(--color-primary)!important;font-weight:800!important}.react-datepicker .react-datepicker__navigation.react-datepicker__navigation--previous,.react-datepicker .react-datepicker__navigation.react-datepicker__navigation--next{top:23px!important}.react-datepicker__navigation-icon:before{border-color:var(--text-tertiary)!important}.react-datepicker__navigation:hover .react-datepicker__navigation-icon:before{border-color:var(--text-primary)!important}.react-datepicker__header__dropdown{justify-content:center;gap:4px;margin-top:6px;margin-bottom:8px;display:flex}.react-datepicker__month-select,.react-datepicker__year-select{border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition-short);outline:none;padding:4px 8px;font-family:inherit;font-size:13px;font-weight:600;background-color:var(--bg-card)!important;color:var(--text-primary)!important;border:1px solid var(--border-color)!important}.react-datepicker__month-select:hover,.react-datepicker__year-select:hover{border-color:var(--color-primary)}.react-datepicker__month-select:focus,.react-datepicker__year-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 2px rgb(from var(--color-primary-gradient-end) r g b / .1)}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle{fill:var(--bg-card)!important;color:var(--border-color)!important}.react-datepicker__time-container{border-left:1px solid var(--border-color)!important}.react-datepicker__time{background:var(--bg-card)!important;color:var(--text-primary)!important}.react-datepicker__time-box{border-radius:0 0 var(--border-radius-md) 0!important}.react-datepicker-time__header{color:var(--text-secondary)!important;font-weight:600!important;font-size:var(--font-size-sm)!important}.react-datepicker__time-list-item{transition:all var(--transition-base);color:var(--text-primary)!important;font-size:var(--font-size-sm)!important}.react-datepicker__time-list-item:hover{background:var(--bg-hover)!important}.react-datepicker__time-list-item--selected{background:var(--color-primary)!important;color:#fff!important;font-weight:600!important}.feedback-view-root{gap:var(--space-xl);flex-direction:column;width:100%;max-width:1280px;padding-bottom:120px;display:flex}.feedback-page-head{justify-content:space-between;align-items:flex-end;gap:var(--space-xl);display:flex}.feedback-page-head h1{color:var(--text-primary);margin:0;font-size:30px;font-weight:760;line-height:1.15}.feedback-page-head p,.feedback-list-head p{margin-top:var(--space-xs);color:var(--text-secondary);font-size:var(--font-size-sm)}.feedback-layout{align-items:start;gap:var(--space-xl);grid-template-columns:minmax(320px,420px) minmax(0,1fr);display:grid}.feedback-submit-panel{top:var(--space-xl);min-width:0;padding:var(--space-xl);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm);position:sticky}.feedback-panel-title{color:var(--text-primary);font-size:var(--font-size-md);align-items:center;gap:10px;font-weight:720;display:flex}.feedback-type-row,.feedback-filter-row{gap:var(--space-sm);flex-wrap:wrap;display:flex}.feedback-type-row{margin:var(--space-lg) 0}.feedback-type-row button,.feedback-filter-row button{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);min-height:36px;color:var(--text-secondary);background:var(--bg-secondary);font-size:var(--font-size-xs);transition:background-color var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:8px 12px;font-weight:700;display:inline-flex}.feedback-type-row button:hover,.feedback-type-row button.active,.feedback-filter-row button:hover,.feedback-filter-row button.active{color:var(--text-primary);border-color:var(--border-color-hover);background:var(--bg-card-hover)}.feedback-filter-row button span{min-width:18px;height:18px;color:var(--color-primary);background:var(--color-primary-light);border-radius:999px;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:800;display:inline-flex}.feedback-textarea{resize:vertical;min-height:148px;line-height:1.55}.feedback-upload-row{align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md);display:flex}.feedback-upload-row span{color:var(--text-tertiary);font-size:var(--font-size-xs);font-weight:700}.feedback-draft-attachments,.feedback-attachment-grid{gap:var(--space-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.feedback-draft-attachments{margin-bottom:var(--space-md)}.feedback-draft-thumb,.feedback-attachment-thumb{aspect-ratio:1;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-secondary);position:relative;overflow:hidden}.feedback-draft-thumb img,.feedback-attachment-thumb img{object-fit:cover;width:100%;height:100%;display:block}.feedback-draft-thumb button{color:#fff;background:#000000ad;border-radius:999px;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex;position:absolute;top:6px;right:6px}.feedback-message{margin-bottom:var(--space-md);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);align-items:flex-start;gap:8px;padding:10px 12px;font-weight:650;line-height:1.45;display:flex}.feedback-message.error{color:#fb7185;background:#fb71851a}.feedback-message.success{color:#34d399;background:#34d3991a}.feedback-submit-btn{width:100%}.feedback-submit-btn:disabled,.feedback-upload-row button:disabled{cursor:not-allowed;opacity:.58;transform:none}.feedback-list-panel{min-width:0}.feedback-list-head{justify-content:space-between;align-items:flex-end;gap:var(--space-md);margin-bottom:var(--space-md);display:flex}.feedback-filter-row{margin-bottom:var(--space-lg)}.feedback-card-list{gap:var(--space-md);flex-direction:column;display:flex}.feedback-card{min-width:0;padding:var(--space-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm)}.feedback-card-head{justify-content:space-between;align-items:flex-start;gap:var(--space-md);margin-bottom:var(--space-sm);display:flex}.feedback-card-main{flex:auto;min-width:0}.feedback-card-tools{flex-wrap:wrap;flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.feedback-card-meta{color:var(--text-tertiary);flex-wrap:wrap;gap:8px;margin-bottom:6px;font-size:11px;font-weight:700;display:flex}.feedback-card-meta span{align-items:center;display:inline-flex}.feedback-card-meta .feedback-card-no{border:1px solid rgb(from var(--color-brand-from) r g b / .24);color:var(--color-primary);background:rgb(from var(--color-brand-from) r g b / .1);border-radius:999px;padding:1px 7px}.feedback-card-meta .feedback-card-no+span:before{display:none}.feedback-card-meta span+span:before{content:"";background:var(--border-color-hover);border-radius:999px;width:4px;height:4px;margin-right:8px}.feedback-card h3{overflow-wrap:anywhere;color:var(--text-primary);font-size:var(--font-size-md);margin:0;font-weight:720;line-height:1.35}.feedback-card-content{margin:var(--space-sm) 0 0;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.65}.feedback-attachment-grid{margin-top:var(--space-md);max-width:360px}.feedback-status-badge{border-radius:var(--border-radius-sm);white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;min-height:26px;padding:4px 9px;font-size:11px;font-weight:800;display:inline-flex}.feedback-status-badge.submitted{color:#fbbf24;background:#fbbf241f}.feedback-status-badge.accepted{color:#38bdf8;background:#38bdf81f}.feedback-status-badge.in-progress{color:#a78bfa;background:#a78bfa1f}.feedback-status-badge.resolved{color:#34d399;background:#34d3991f}.feedback-status-badge.closed{color:var(--text-tertiary);background:var(--bg-secondary)}.feedback-team-reply{gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-color);display:grid}.feedback-team-reply span{color:var(--text-tertiary);margin-bottom:4px;font-size:11px;font-weight:800;display:block}.feedback-team-reply p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-primary);font-size:var(--font-size-sm);margin:0;line-height:1.6}.feedback-volume,.feedback-vote-buttons,.feedback-vote-btn{align-items:center;display:inline-flex}.feedback-volume{min-height:24px;color:var(--text-tertiary);font-variant-numeric:tabular-nums;gap:4px;padding:0 6px;font-size:11px;font-weight:800}.feedback-vote-buttons{border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-secondary);gap:2px;min-height:28px;padding:2px}.feedback-vote-btn{min-width:38px;height:24px;color:var(--text-secondary);font-variant-numeric:tabular-nums;transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:6px;justify-content:center;gap:4px;padding:0 6px;font-size:11px;font-weight:800}.feedback-vote-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-color-hover);background:var(--bg-card-hover)}.feedback-vote-btn.up.active{color:#34d399;background:#34d3991f;border-color:#34d39957}.feedback-vote-btn.down.active{color:#fb7185;background:#fb71851f;border-color:#fb718557}.feedback-vote-btn:disabled{cursor:not-allowed;opacity:.56}.feedback-empty{min-height:110px;color:var(--text-tertiary);font-size:var(--font-size-sm);align-items:center;gap:10px;display:flex}.feedback-empty svg{flex-shrink:0}@media (max-width:1100px){.feedback-layout{grid-template-columns:1fr}.feedback-submit-panel{position:static}}@media (max-width:768px){.feedback-view-root{padding:0 0 96px}.feedback-page-head{flex-direction:column;align-items:stretch}.feedback-page-head h1{font-size:24px}.feedback-submit-panel,.feedback-card{padding:var(--space-lg)}.feedback-card-head{flex-direction:column}.feedback-card-tools{justify-content:flex-start}.feedback-draft-attachments,.feedback-attachment-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.admin-view-root{gap:var(--space-xl);flex-direction:column;width:100%;max-width:1240px;padding-bottom:120px;display:flex}.admin-hero{justify-content:space-between;align-items:flex-end;gap:var(--space-xl);padding:var(--space-xl);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:linear-gradient(135deg, rgb(from var(--color-primary) r g b / .14), transparent 36%), var(--bg-card);box-shadow:var(--shadow-sm);display:flex}.admin-kicker{margin-bottom:var(--space-xs);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700}.admin-hero h1{color:var(--text-primary);margin:0;font-size:30px;font-weight:760;line-height:1.15}.admin-hero p{max-width:620px;margin-top:var(--space-sm);color:var(--text-secondary);font-size:var(--font-size-sm)}.admin-tabs{gap:var(--space-lg);border:0;border-bottom:1px solid var(--border-color);background:0 0;border-radius:0;flex-wrap:wrap;padding:0;display:flex}.admin-tabs button{min-height:38px;color:var(--text-secondary);font-size:var(--font-size-sm);transition:color var(--transition-fast);background:0 0;border-radius:0;justify-content:center;align-items:center;gap:8px;padding:8px 2px 12px;font-weight:650;display:inline-flex;position:relative}.admin-tabs button:after{content:"";height:2px;transition:background-color var(--transition-fast);background:0 0;border-radius:2px 2px 0 0;position:absolute;bottom:-1px;left:0;right:0}.admin-tabs button:hover{color:var(--text-primary)}.admin-tabs button:hover:after{background:var(--border-color)}.admin-tabs button.active{color:var(--color-primary)}.admin-tabs button.active:after{background:var(--color-primary)}.admin-section-title{color:var(--text-primary);font-size:var(--font-size-lg);align-items:center;gap:10px;font-weight:720;display:flex}.admin-stack{gap:var(--space-xl);flex-direction:column;display:flex}.admin-metric-grid{gap:var(--space-md);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.admin-metric{gap:var(--space-md);min-height:128px;padding:var(--space-lg);border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-card);box-shadow:var(--shadow-sm);grid-template-columns:42px 1fr;display:grid}.admin-metric-icon{border-radius:var(--border-radius-sm);width:42px;height:42px;color:var(--color-primary);background:var(--color-primary-light);justify-content:center;align-items:center;display:flex}.admin-metric-blue .admin-metric-icon{color:#60a5fa;background:#60a5fa1f}.admin-metric-green .admin-metric-icon{color:#34d399;background:#34d3991f}.admin-metric-violet .admin-metric-icon{color:#a78bfa;background:#a78bfa1f}.admin-metric-amber .admin-metric-icon{color:#fbbf24;background:#fbbf241f}.admin-metric-cyan .admin-metric-icon{color:#22d3ee;background:#22d3ee1f}.admin-metric-rose .admin-metric-icon{color:#fb7185;background:#fb71851f}.admin-metric-value{color:var(--text-primary);font-variant-numeric:tabular-nums;font-size:26px;font-weight:760;line-height:1.15}.admin-metric-label{color:var(--text-secondary);font-size:var(--font-size-sm);margin-top:6px;font-weight:650}.admin-metric-hint{color:var(--text-tertiary);font-size:var(--font-size-xs);margin-top:10px}.admin-two-col{gap:var(--space-xl);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-panel,.admin-detail{border:1px solid var(--border-color);border-radius:var(--border-radius-md);background:var(--bg-card);min-width:0;box-shadow:var(--shadow-sm)}.admin-panel-header{justify-content:space-between;align-items:center;gap:var(--space-md);padding:var(--space-lg);border-bottom:1px solid var(--border-color);display:flex}.admin-panel-header h2{color:var(--text-primary);font-size:var(--font-size-md);align-items:center;gap:10px;margin:0;font-weight:720;line-height:1.3;display:flex}.admin-table-wrap{width:100%;overflow-x:auto}.admin-table{border-collapse:collapse;width:100%;min-width:720px}.admin-table th,.admin-table td{border-bottom:1px solid var(--border-color);text-align:left;vertical-align:middle;color:var(--text-secondary);padding:12px 14px;font-size:12px;line-height:1.4}.admin-table th{color:var(--text-tertiary);font-size:11px;font-weight:760}.admin-table tbody tr.clickable{cursor:pointer}.admin-table tbody tr:hover{background:var(--bg-card-hover)}.admin-badge{border-radius:var(--border-radius-sm);max-width:100%;min-height:22px;color:var(--text-secondary);background:var(--bg-secondary);white-space:nowrap;align-items:center;padding:2px 8px;font-size:11px;font-weight:700;display:inline-flex}.admin-badge.active,.admin-badge.paid,.admin-badge.owner,.admin-badge.super_admin,.admin-badge.resolved{color:#34d399;background:#34d3991f}.admin-badge.pending,.admin-badge.derived_free,.admin-badge.readonly,.admin-badge.submitted{color:#fbbf24;background:#fbbf241f}.admin-badge.accepted{color:#38bdf8;background:#38bdf81f}.admin-badge.in_progress{color:#a78bfa;background:#a78bfa1f}.admin-badge.failed,.admin-badge.disabled,.admin-badge.cancelled,.admin-badge.expired,.admin-badge.closed{color:#fb7185;background:#fb71851f}.admin-search{align-items:end;gap:var(--space-sm);grid-template-columns:minmax(220px,420px) auto;display:grid}.admin-search .form-group{margin:0}.admin-feedback-toolbar{align-items:end;gap:var(--space-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.admin-feedback-title-cell{max-width:320px;color:var(--text-primary);text-overflow:ellipsis;white-space:nowrap;display:inline-block;overflow:hidden}.admin-feedback-detail .admin-detail-title{flex-wrap:wrap}.admin-feedback-detail .admin-detail-title em{border:1px solid rgb(from var(--color-brand-from) r g b / .24);color:var(--color-primary);background:rgb(from var(--color-brand-from) r g b / .1);border-radius:999px;padding:2px 8px;font-size:12px;font-style:normal;line-height:1.2}.admin-feedback-content{padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-secondary)}.admin-feedback-content span{color:var(--text-tertiary);margin-bottom:8px;font-size:11px;font-weight:800;display:block}.admin-feedback-content p{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--text-primary);font-size:var(--font-size-sm);margin:0;line-height:1.65}.admin-feedback-attachments{gap:var(--space-sm);grid-template-columns:repeat(4,104px);display:grid}.admin-feedback-attachments a{aspect-ratio:1;border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-secondary);display:block;overflow:hidden}.admin-feedback-attachments img{object-fit:cover;width:100%;height:100%;display:block}.admin-feedback-form{gap:var(--space-md);grid-template-columns:220px minmax(0,1fr) minmax(0,1fr);align-items:start;display:grid}.admin-feedback-form .form-group{margin:0}.admin-feedback-textarea{resize:vertical;min-height:108px;line-height:1.55}.admin-feedback-actions{justify-content:flex-end;align-items:center;gap:var(--space-md);grid-column:1/-1;display:flex}.admin-feedback-actions span{color:#34d399;font-size:var(--font-size-xs);font-weight:700}.admin-empty,.admin-loading,.admin-error{min-height:88px;padding:var(--space-lg);color:var(--text-tertiary);font-size:var(--font-size-sm);align-items:center;gap:10px;display:flex}.admin-loading svg{animation:1s linear infinite admin-spin}.admin-error{border-radius:var(--border-radius-md);color:var(--color-expense);background:#ef444414;border:1px solid #ef444440;justify-content:space-between}.admin-error>div{align-items:center;gap:10px;display:flex}.admin-detail{gap:var(--space-xl);padding:var(--space-lg);flex-direction:column;display:flex}.admin-detail-title{color:var(--text-primary);font-size:var(--font-size-md);align-items:center;gap:10px;font-weight:760;display:flex}.admin-detail-grid{gap:var(--space-sm);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-detail-grid>div{min-width:0;padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-secondary)}.admin-detail-grid span{color:var(--text-tertiary);margin-bottom:6px;font-size:11px;display:block}.admin-detail-grid strong{overflow-wrap:anywhere;color:var(--text-primary);font-size:12px;line-height:1.45;display:block}.admin-json-cell{text-overflow:ellipsis;white-space:nowrap;max-width:320px;display:inline-block;overflow:hidden}@media (max-width:1100px){.admin-metric-grid,.admin-two-col{grid-template-columns:1fr}.admin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:768px){.admin-view-root{padding:0 0 96px}.admin-hero{padding:var(--space-lg);flex-direction:column;align-items:stretch}.admin-hero h1{font-size:24px}.admin-tabs{gap:var(--space-md);scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.admin-tabs::-webkit-scrollbar{display:none}.admin-tabs button{flex:none;padding:8px 2px 12px}.admin-search,.admin-feedback-toolbar,.admin-feedback-form{grid-template-columns:1fr}.admin-feedback-attachments{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-detail-grid{grid-template-columns:1fr}.admin-table{min-width:640px}}@keyframes admin-spin{to{transform:rotate(360deg)}}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:3px solid color-mix(in srgb, var(--color-primary) 72%, white);outline-offset:3px}.not-found-page{place-content:center;justify-items:center;gap:var(--space-md);min-height:100dvh;padding:var(--space-xl);text-align:center;background:var(--bg-primary);color:var(--text-primary);display:grid}.not-found-page p{color:var(--text-secondary)}.not-found-page .not-found-code{color:var(--color-brand-mid);font:800 64px/1 var(--font-mono)}.ai-scan-dropzone-host,.ai-scan-intro{gap:var(--space-md);flex-direction:column;display:flex}.ai-scan-intro-lead{color:var(--text-secondary);margin:0;line-height:1.6}.ai-scan-intro-cards{gap:var(--space-sm);grid-template-columns:repeat(3,1fr);display:grid}.ai-scan-intro-card{gap:var(--space-xs);padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);background:var(--bg-card);color:var(--text-secondary);flex-direction:column;font-size:13px;line-height:1.5;display:flex}.ai-scan-intro-card strong{color:var(--text-primary);font-size:14px}.ai-scan-dropzone{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-lg);border:1px dashed var(--bg-tertiary,var(--text-tertiary));border-radius:var(--border-radius-sm);background:var(--bg-secondary);min-height:120px;color:var(--text-secondary);cursor:pointer;flex-direction:column;width:100%;display:flex}.ai-scan-dropzone:hover,.ai-scan-dropzone.is-dragover{border-color:var(--color-primary);color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 8%, var(--bg-secondary))}.ai-scan-intro-formats{text-align:center;color:var(--text-tertiary);margin:0;font-size:12px}.ai-scan-status-text{align-items:center;gap:var(--space-sm);display:inline-flex}.ai-scan-thumb{border-radius:var(--border-radius-sm);border:1px solid var(--bg-tertiary,var(--text-tertiary));object-fit:cover;max-width:160px;max-height:160px}.ai-scan-progress{color:var(--text-secondary);margin:0}.ai-scan-group{gap:var(--space-sm);flex-direction:column;display:flex}.ai-scan-group-head{align-items:center;gap:var(--space-sm);color:var(--text-secondary);flex-wrap:wrap;display:flex}.ai-scan-group-head .ai-scan-thumb{max-width:40px;max-height:40px}.ai-scan-group-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ai-scan-group-empty{color:var(--text-tertiary);margin:0}.ai-scan-rows{gap:var(--space-sm);flex-direction:column;max-height:50vh;display:flex;overflow-y:auto;container-type:inline-size}.ai-scan-row{border-bottom:1px solid var(--border-color);content-visibility:auto;contain-intrinsic-size:0 80px;grid-template-columns:28px 52px 168px 104px minmax(160px,1fr) 132px 140px;align-items:center;column-gap:8px;padding:8px 0;display:grid}.ai-scan-row:last-child{border-bottom:none}.ai-scan-row .form-group{margin:0}.ai-scan-row .form-input{height:36px;padding-top:6px;padding-bottom:6px}.ai-scan-cell-check{justify-content:center;min-width:0;display:flex}.ai-scan-row>.ai-scan-type-badge{justify-self:start}.ai-scan-row-amount{min-width:0}.ai-scan-amount-input{text-align:right}.ai-scan-row-date,.ai-scan-row-note,.ai-scan-row-category,.ai-scan-row-account{min-width:0}@container (max-width:834px){.ai-scan-row{grid-template-columns:28px 52px 168px 104px minmax(120px,1fr);row-gap:8px}.ai-scan-row-category{grid-column:3/4}.ai-scan-row-account{grid-column:4/6}}.ai-scan-group-tools{gap:var(--space-xs);margin:var(--space-xs) 0;display:flex}.ai-scan-group-tools .btn{padding:2px 8px;font-size:12px}.ai-scan-table-icon{color:var(--text-tertiary);flex-shrink:0}.ai-scan-row-unchecked{opacity:.55}.ai-scan-type-badge{border-radius:999px;flex-shrink:0;padding:2px 8px;font-size:12px;font-weight:600}.ai-scan-type-income{color:var(--color-income);background:#22c55e1f}.ai-scan-type-expense{color:var(--color-expense);background:#ef44441f}.ai-scan-dup-hint-strong{color:var(--color-expense);grid-column:1/-1;margin:4px 0 0;padding-left:96px;font-size:12px}.ai-scan-dup-hint-weak{color:var(--text-secondary);grid-column:1/-1;margin:4px 0 0;padding-left:96px;font-size:12px}.ai-scan-thumb-btn{align-items:center;gap:var(--space-sm);min-width:0;color:inherit;font:inherit;text-align:left;cursor:zoom-in;background:0 0;border:none;flex:1;padding:0;display:flex}.ai-scan-thumb-btn[aria-pressed=true]{cursor:zoom-out}.ai-scan-group-active{border-left:3px solid var(--color-primary);padding-left:var(--space-sm);background:var(--bg-secondary);border-radius:var(--border-radius-sm)}.ai-scan-layout-split{flex-direction:row;align-items:flex-start}.ai-scan-main{gap:var(--space-md);flex-direction:column;flex:1;min-width:0;display:flex}.ai-scan-preview-pane{align-self:flex-start;gap:var(--space-sm);max-height:70vh;padding:var(--space-sm);border:1px solid var(--bg-tertiary,var(--text-tertiary));border-radius:var(--border-radius-sm);background:var(--bg-secondary);flex-direction:column;flex:0 0 46%;display:flex;position:sticky;top:0;overflow:auto}.ai-scan-preview-toolbar{align-items:center;gap:var(--space-xs,var(--space-sm));z-index:1;background:var(--bg-secondary);display:flex;position:sticky;top:0}.ai-scan-preview-close{margin-left:auto}.ai-scan-preview-img{border-radius:var(--border-radius-sm);max-width:none;display:block}.ai-scan-viewer{z-index:calc(var(--z-modal) + 1);background:var(--bg-primary,var(--bg-card));flex-direction:column;display:flex;position:fixed;inset:0}.ai-scan-viewer-toolbar{align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--bg-tertiary,var(--text-tertiary));display:flex}.ai-scan-viewer-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-secondary);flex:1;overflow:hidden}.ai-scan-viewer-body{-webkit-overflow-scrolling:touch;flex:1;overflow:auto}.ai-scan-viewer-body .ai-scan-preview-img{margin:0 auto}@media (max-width:899px){.ai-scan-layout-split{flex-direction:column}.ai-scan-preview-pane{display:none}.ai-scan-row{contain-intrinsic-size:0 150px;grid-template-columns:auto auto minmax(0,1fr) auto;row-gap:8px}.ai-scan-cell-check{grid-area:1/1}.ai-scan-row>.ai-scan-type-badge{grid-area:1/2}.ai-scan-row-amount{grid-area:1/3}.ai-scan-row-date{grid-area:1/4;min-width:168px}.ai-scan-row-note{grid-column:1/-1}.ai-scan-row-category{grid-column:1/4}.ai-scan-row-account{grid-column:4/-1}.ai-scan-row .form-input{height:40px}.ai-scan-dup-hint-strong,.ai-scan-dup-hint-weak{padding-left:0}.ai-scan-intro-cards{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0s;--transition-base:0s;--transition-slow:0s;--transition-spring:0s}html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_4a4f7444-module__UHjWDq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_4a4f7444-module__UHjWDq__variable{--font-inter:"Inter", "Inter Fallback"}
