:root{--bg: #F4F0E8;--surface: #FDFAF5;--surface-2: #EDE9E1;--surface-3: #E3DED5;--surface-4: #D6D0C6;--text: #1A1612;--text-2: #5A544C;--text-3: #9E988F;--border: #D8D2C8;--border-2: #E6E1D8;--border-3: #C4BDB3;--income: #1A6640;--income-dim: rgba(26,102,64,.08);--expense: #B22C2C;--expense-dim: rgba(178,44,44,.08);--transfer: #2255A0;--transfer-dim:rgba(34,85,160,.08);--gold: #A0721A;--gold-bright: #C48E28;--gold-dim: rgba(160,114,26,.1);--header-bg: #1A1612;--radius: 3px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}body{font-family:DM Sans,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;font-size:15px;line-height:1.55;overflow-x:hidden}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border-3);border-radius:2px}.app-header{background:var(--header-bg);border-bottom:1px solid rgba(255,255,255,.06);padding:0 22px;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:50}.header-brand{display:flex;align-items:center;gap:10px;flex-shrink:0}.header-logo{display:block;flex-shrink:0;filter:drop-shadow(0 1px 4px rgba(196,142,40,.25))}.app-header h1{font-family:Cormorant Garamond,serif;font-size:21px;font-weight:600;letter-spacing:.07em;color:#f4f0e8}.month-nav{display:flex;align-items:center;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius);overflow:hidden}.month-nav button{background:#ffffff0d;border:none;color:#f4f0e88c;width:32px;height:32px;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:color .12s,background .12s}.month-nav button:hover{background:#ffffff1f;color:#f4f0e8}.month-nav span{font-family:DM Mono,monospace;font-size:12px;letter-spacing:.1em;color:#f4f0e8a6;min-width:76px;text-align:center;padding:0 10px;height:32px;display:flex;align-items:center;justify-content:center;background:#ffffff0d;border-left:1px solid rgba(255,255,255,.1);border-right:1px solid rgba(255,255,255,.1)}.accounting-eq{display:flex;align-items:center;gap:6px;flex:1;justify-content:center;padding:0 12px;overflow:hidden}.eq-term{display:flex;flex-direction:column;align-items:center;gap:1px;flex-shrink:0}.eq-label{font-size:14px;color:#f4f0e899;letter-spacing:.06em;font-weight:600}.eq-value{font-family:DM Mono,monospace;font-size:12px;font-weight:500;letter-spacing:-.01em;white-space:nowrap}.eq-assets{color:#6aafe0}.eq-expenses{color:#e07878}.eq-liabilities{color:#e0b86a}.eq-equity{color:#9b8ae0}.eq-income{color:#6dbf88}.eq-plus{color:#f4f0e8b3;font-size:18px;font-weight:300;flex-shrink:0}.eq-equals{font-family:DM Mono,monospace;font-size:20px;font-weight:300;flex-shrink:0}.eq-ok{color:#6dbf8899}.eq-warn{color:#e07878cc}.header-right{display:flex;align-items:center;gap:8px;flex-shrink:0}.dir-btn{position:relative;background:#ffffff12;border:1px solid rgba(255,255,255,.14);color:#f4f0e873;width:32px;height:32px;border-radius:var(--radius);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all .12s}.dir-btn:hover{color:var(--gold-bright);border-color:#c48e2880;background:#c48e2814}.dir-btn--alert{border-color:#e050508c}.dir-btn-badge{position:absolute;top:-7px;right:-7px;min-width:16px;height:16px;padding:0 4px;border-radius:999px;background:#e05050;color:#fff;border:2px solid var(--bg);box-shadow:0 0 0 1px #e0505059;font-family:DM Mono,monospace;font-size:10px;font-weight:700;line-height:12px;display:flex;align-items:center;justify-content:center;pointer-events:none}.header-menu-badge{margin-left:auto;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#e05050;color:#fff;font-family:DM Mono,monospace;font-size:10px;font-weight:700;line-height:18px;text-align:center}.summary{display:grid;grid-template-columns:repeat(3,1fr);background:var(--surface);border-bottom:1px solid var(--border)}.summary-card{padding:18px 16px;text-align:center;position:relative}.summary-card+.summary-card:before{content:"";position:absolute;left:0;top:22%;bottom:22%;width:1px;background:var(--border)}.summary-card .label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:.16em;margin-bottom:6px;font-weight:600}.summary-card .amount{font-family:DM Mono,monospace;font-size:17px;font-weight:500;letter-spacing:-.02em}.income-color{color:var(--income)}.expense-color{color:var(--expense)}.balance-color{color:var(--gold)}.main{max-width:640px;margin:0 auto;padding:20px 16px 100px}.chart-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:16px}.chart-tabs{display:flex;gap:5px;margin-bottom:14px}.chart-tab{padding:5px 14px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;font-size:10px;font-family:DM Sans,sans-serif;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .12s;color:var(--text-3);font-weight:600}.chart-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}.chart-tab:not(.active):hover{color:var(--text-2);border-color:var(--border-3)}.chart-container{position:relative;height:190px}.mom-section{display:flex;flex-direction:column;gap:10px}.mom-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.mom-type-tabs{display:flex;gap:6px}.mom-tab{padding:4px 14px;border-radius:var(--radius);border:1px solid var(--border);background:transparent;color:var(--text-3);font-size:12px;font-weight:500;cursor:pointer;transition:all .12s}.mom-tab.active{background:var(--text);color:var(--bg);border-color:var(--text)}.mom-tab:not(.active):hover{color:var(--text-2);border-color:var(--border-3)}.mom-empty{text-align:center;color:var(--text-3);font-size:13px;padding:28px 0}.mom-table{width:100%;border-collapse:collapse;font-size:13px}.mom-table thead tr{border-bottom:1px solid var(--border)}.mom-table th{padding:6px 8px;color:var(--text-3);font-weight:500;text-align:left;white-space:nowrap}.mom-table th:not(:first-child){text-align:right}.mom-table tbody tr{border-bottom:1px solid var(--border-2);transition:background .1s}.mom-table tbody tr:last-child{border-bottom:none}.mom-table tbody tr:hover{background:var(--surface-2)}.mom-cat{padding:7px 8px;font-weight:500;color:var(--text)}.mom-amount{padding:7px 8px;text-align:right;font-family:DM Mono,monospace;font-size:12px;color:var(--text)}.mom-prev{color:var(--text-3)}.mom-pct{padding:7px 8px;text-align:right;font-family:DM Mono,monospace;font-size:12px;font-weight:600;white-space:nowrap}.mom-up-expense{color:var(--expense)}.mom-down-expense,.mom-up-income{color:var(--income)}.mom-down-income{color:var(--expense)}.filter-bar{display:flex;gap:8px;margin-bottom:16px}.filter-bar select,.filter-bar input{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;background:var(--surface);color:var(--text);outline:none;flex:1;min-width:80px;font-family:DM Sans,sans-serif;transition:border-color .12s;-webkit-appearance:none;-moz-appearance:none;appearance:none}.filter-bar select:focus,.filter-bar input:focus{border-color:var(--border-3)}.filter-bar input::placeholder{color:var(--text-3)}.expense-category-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.category-chip{padding:4px 12px;border:1px solid var(--border);border-radius:20px;font-size:12px;background:var(--surface);color:var(--text-2);cursor:pointer;font-family:DM Sans,sans-serif;transition:background .12s,color .12s,border-color .12s}.category-chip:hover{border-color:var(--border-3);color:var(--text)}.category-chip.active{background:var(--text);color:var(--bg);border-color:var(--text)}.records-section h3,.records-heading{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--text-3);margin-bottom:14px;font-weight:600}.records-heading{display:flex;justify-content:space-between;align-items:baseline}.records-total{font-size:12px;letter-spacing:.02em;font-weight:600;text-transform:none}.records-total.negative{color:var(--expense)}.records-total.positive{color:var(--income)}.record-group{margin-bottom:22px}.record-date{font-size:10px;color:var(--text-3);padding:0 0 8px;display:flex;justify-content:space-between;letter-spacing:.1em;text-transform:uppercase;font-weight:600;border-bottom:1px solid var(--border-2);margin-bottom:5px}.record-item{display:flex;align-items:center;gap:12px;padding:11px 12px 11px 0;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);margin-bottom:4px;transition:border-color .12s,background .12s,box-shadow .12s;position:relative;overflow:hidden}.record-item:hover{border-color:var(--border-3);background:#fff;box-shadow:0 2px 8px #1a16120f}.record-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--border-2)}.record-item--expense:before{background:var(--expense);opacity:.6}.record-item--income:before{background:var(--income);opacity:.6}.record-item--refund:before{background:var(--income);opacity:.4}.record-item--transfer:before{background:var(--transfer);opacity:.4}.record-item-left{padding-left:13px;display:flex;align-items:center;gap:11px;flex:1;min-width:0}.record-accounts{flex-shrink:0;display:flex;flex-direction:column;gap:2px;width:78px}.account-tag{font-family:DM Mono,monospace;font-size:10px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.02em}.account-arrow{color:var(--text-3);font-size:9px;line-height:1}.record-info{flex:1;min-width:0}.record-info .name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text);letter-spacing:.01em}.record-meta{display:flex;align-items:baseline;gap:6px;margin-top:2px;min-width:0;overflow:hidden}.record-meta .cat{font-size:12px;color:var(--text-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0}.record-tag{font-family:DM Mono,monospace;font-size:10px;color:var(--gold);letter-spacing:.04em;white-space:nowrap;flex-shrink:0;opacity:.8}.record-right{text-align:right;flex-shrink:0}.record-right .amount{font-family:DM Mono,monospace;font-size:15px;font-weight:500;letter-spacing:-.02em}.currency{font-family:DM Mono,monospace;font-size:9px;color:var(--text-3);margin-top:2px;letter-spacing:.08em}.record-edit{background:none;border:none;color:var(--border-3);font-size:14px;cursor:pointer;padding:2px 6px;line-height:1;flex-shrink:0;transition:color .12s}.record-edit:hover{color:var(--gold)}.record-delete{background:none;border:none;color:var(--border-3);font-size:16px;cursor:pointer;padding:2px 8px;line-height:1;flex-shrink:0;transition:color .12s}.record-delete:hover{color:var(--expense)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-3)}.empty-state .icon{font-size:30px;margin-bottom:14px;opacity:.3}.empty-state p{font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600}.fab{position:fixed;bottom:22px;right:20px;width:36px;height:36px;border-radius:var(--radius);background:var(--text);color:var(--bg);border:none;font-size:20px;font-weight:300;cursor:pointer;box-shadow:0 4px 20px #1a161247;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .15s;z-index:100}.fab:hover{transform:translateY(-2px);box-shadow:0 8px 28px #1a161261}.fab:active{transform:translateY(0)}.go-top{position:fixed;bottom:22px;right:64px;width:36px;height:36px;border-radius:var(--radius);background:var(--card);color:var(--text-muted);border:1px solid var(--border);font-size:14px;cursor:pointer;box-shadow:0 2px 12px #1a16122e;display:flex;align-items:center;justify-content:center;transition:opacity .2s,transform .15s,box-shadow .15s;z-index:100;opacity:0;pointer-events:none}.go-top.visible{opacity:1;pointer-events:auto}.go-top:hover{transform:translateY(-2px);box-shadow:0 6px 20px #1a161247;color:var(--text)}.go-top:active{transform:translateY(0)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a161285;z-index:200;display:flex;align-items:flex-end;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:var(--surface);width:calc(100% - 24px);max-width:300px;max-height:88vh;overflow:hidden;display:flex;flex-direction:column;transform:translateY(100%);transition:transform .32s cubic-bezier(.32,.72,0,1);border:1.5px solid var(--border-3);border-radius:16px;box-shadow:0 -20px 60px #1a16122e;margin-bottom:12px}.modal-overlay.open .modal{transform:translateY(0)}.modal-handle{flex-shrink:0;width:32px;height:3px;background:var(--border-3);border-radius:2px;margin:10px auto 0}.modal-header{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:12px 16px 0}.modal-header h2{font-family:Cormorant Garamond,serif;font-size:20px;font-weight:600;letter-spacing:.04em;color:var(--text)}.modal-close{background:var(--surface-2);border:1px solid var(--border);width:26px;height:26px;border-radius:var(--radius);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-2);transition:all .1s}.modal-close:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-3)}.modal-inner{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 24px}.table-scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}.modal-top-fixed{flex-shrink:0;padding:14px 16px 0}.modal-scroll-body{flex:1;overflow-y:auto;padding:12px 16px 0;-webkit-overflow-scrolling:touch}.modal-bottom-fixed{flex-shrink:0;padding:12px 16px 24px;background:var(--surface)}.preset-box{border:1.5px solid var(--border-3);border-radius:calc(var(--radius) + 2px);padding:10px;margin-bottom:14px}.preset-row{display:flex;gap:6px}.preset-btn{flex:1;padding:9px 4px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:12px;font-family:DM Sans,sans-serif;font-weight:600;letter-spacing:.06em;cursor:pointer;color:var(--text-2);transition:all .12s;text-transform:uppercase}.preset-btn:hover{border-color:var(--border-3);color:var(--text);background:var(--surface-3)}.preset-btn.active{background:var(--text);border-color:var(--text);color:var(--bg)}.template-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;margin-bottom:0;padding:10px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.template-chip{padding:4px 12px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:12px;font-family:DM Sans,sans-serif;font-weight:500;cursor:pointer;color:var(--text-2);transition:all .1s;letter-spacing:.02em}.template-chip:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-dim)}.form-group{margin-bottom:12px}.form-group label{font-size:10px;color:var(--text-3);margin-bottom:5px;display:block;text-transform:uppercase;letter-spacing:.14em;font-weight:700}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;transition:border-color .12s,box-shadow .12s;background:#fff;color:var(--text);font-family:DM Sans,sans-serif;-webkit-appearance:none;-moz-appearance:none;appearance:none;box-sizing:border-box}.form-group input[type=text],.form-group input[type=number],.form-group input[type=date]{white-space:nowrap;text-overflow:clip}.scrollable-text-input{overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;background:#fff;color:var(--text);font-family:DM Sans,sans-serif;box-sizing:border-box;min-height:36px;line-height:1.5;cursor:text;transition:border-color .12s,box-shadow .12s}.scrollable-text-input::-webkit-scrollbar{display:none}.scrollable-text-input:focus{border-color:var(--text);box-shadow:0 0 0 3px #1a16120f}.scrollable-text-input:empty:before{content:attr(data-placeholder);color:var(--text-3);pointer-events:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--text);box-shadow:0 0 0 3px #1a16120f}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-3)}.form-group textarea{resize:none;height:64px;line-height:1.55}.amount-row{display:flex;gap:10px;align-items:flex-end}.amount-row>div>label{display:block}.amount-row>div>input{width:100%}.tag-input-area{display:flex;flex-wrap:wrap;align-items:center;gap:5px;padding:6px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:text;min-height:38px;transition:border-color .12s}.tag-input-area:focus-within{border-color:var(--border-3)}.tag-input-area input{border:none;outline:none;background:transparent;font-size:13px;font-family:DM Sans,sans-serif;color:var(--text);flex:1;min-width:100px;padding:0}.tag-input-area input::placeholder{color:var(--text-3)}.tag-suggestions{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.tag-chip{padding:3px 10px;border-radius:14px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:12px;cursor:pointer;font-family:DM Sans,sans-serif;transition:background .12s,color .12s,border-color .12s;display:inline-flex;align-items:center;gap:4px}.tag-chip:hover{border-color:var(--gold);color:var(--gold)}.tag-chip.active{background:var(--gold-dim);border-color:var(--gold);color:var(--gold)}.tag-remove{background:none;border:none;padding:0;cursor:pointer;color:inherit;font-size:14px;line-height:1;opacity:.6}.tag-remove:hover{opacity:1}.submit-btn{width:100%;padding:11px;background:var(--text);color:var(--bg);border:none;border-radius:var(--radius);font-size:12px;font-weight:700;cursor:pointer;transition:opacity .12s;font-family:DM Sans,sans-serif;letter-spacing:.14em;text-transform:uppercase}.submit-btn:hover{opacity:.84}.submit-btn:disabled{opacity:.35;cursor:not-allowed}.recon-date-banner{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;margin-bottom:14px;background:var(--income-dim);border:1px solid rgba(26,102,64,.15);border-radius:var(--radius)}.recon-date-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--income)}.recon-date-value{font-family:DM Mono,monospace;font-size:13px;font-weight:500;color:var(--income)}.recon-table{width:100%;border-collapse:collapse;margin-bottom:12px;background:var(--income-dim);border:1px solid rgba(26,102,64,.15);border-radius:var(--radius);overflow:hidden}.recon-table tr:not(:last-child) td{border-bottom:1px solid rgba(26,102,64,.1)}.recon-table td{padding:6px 12px;font-size:12px;line-height:1.4}.recon-table-label{color:var(--text-3);font-weight:600;letter-spacing:.04em;width:40%}.recon-table-date{font-family:DM Mono,monospace;font-size:12px;font-weight:500;color:var(--income);text-align:right}.pin-input-row{display:flex;gap:6px}.pin-cell{width:36px!important;height:40px!important;padding:0!important;flex-shrink:0;text-align:center;font-family:DM Mono,monospace;font-size:14px;font-weight:600;letter-spacing:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text);caret-color:transparent;outline:none;transition:border-color .15s,box-shadow .15s}.pin-cell:focus{border-color:var(--text);box-shadow:0 0 0 2px #1a161214}.pin-cell:not(:placeholder-shown){background:var(--bg)}.text-input{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-family:DM Mono,monospace;font-size:11px;color:var(--text);outline:none;box-sizing:border-box}.text-input:focus{border-color:var(--gold);background:var(--surface)}.run-btn{width:100%;padding:11px;margin-top:8px;background:transparent;color:var(--text-2);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;font-weight:600;cursor:pointer;font-family:DM Sans,sans-serif;letter-spacing:.1em;text-transform:uppercase;transition:all .12s}.run-btn:hover{border-color:var(--text);color:var(--text);background:var(--surface-2)}.run-btn.parse-btn{background:var(--surface-2);color:var(--text);border-color:var(--text)}.run-btn.parse-btn:hover{opacity:.84}.run-btn.parse-btn:disabled{opacity:.35;cursor:not-allowed}.pw-member-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px 4px;margin-bottom:12px;background:var(--surface-2)}.pw-member-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.pw-member-title-input{flex:1;min-width:0;font-size:15px;font-weight:600;color:var(--text);letter-spacing:.04em;background:none;border:none;border-bottom:1px solid transparent;padding:2px 0;outline:none;font-family:DM Sans,sans-serif}.pw-member-title-input::placeholder{color:var(--text-2);font-weight:600;opacity:.7}.pw-member-title-input:hover{border-bottom-color:var(--border)}.pw-member-title-input:focus{border-bottom-color:var(--gold)}.pw-member-remove{background:none;border:none;color:var(--text-2);font-size:11px;cursor:pointer;padding:2px 6px;border-radius:4px;transition:color .1s,background .1s}.pw-member-remove:hover{color:#c0392b;background:#c0392b14}.pw-member-card .form-group{margin-bottom:10px}.pw-member-card .form-group input{background:var(--surface);font-size:12px;padding:9px 11px}.pw-member-card .form-group input:focus{box-shadow:0 0 0 2px #1a161214}.pw-member-card .form-group label{margin-bottom:4px}.pw-add-member{width:100%;padding:9px;background:none;border:1px dashed var(--border);border-radius:var(--radius);color:var(--text-2);font-size:12px;cursor:pointer;transition:all .12s}.pw-add-member:hover{border-color:var(--text);color:var(--text);background:var(--surface-2)}.income-year-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:12px}.income-year-tab{padding:3px 10px;font-size:11px;font-weight:600;border:1px solid var(--border);border-radius:20px;background:transparent;color:var(--text-2);cursor:pointer;transition:all .15s}.income-year-tab:hover{border-color:var(--text-3);color:var(--text)}.income-year-tab.active{background:var(--text);border-color:var(--text);color:var(--surface)}.income-table{width:100%;border-collapse:collapse;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.income-table td{padding:8px 12px;font-size:12.5px}.income-table td:last-child{text-align:right;font-family:DM Mono,monospace;font-weight:500}.income-table-total td{font-weight:700;font-size:13px;background:var(--income-dim);color:var(--income);border-bottom:1px solid rgba(26,102,64,.15)}.income-table-total td:last-child{font-family:DM Mono,monospace}.income-table-row td{color:var(--text-2);border-bottom:1px solid var(--border)}.income-table-row:last-child td{border-bottom:none}.income-table-row td:first-child{color:var(--text)}.stats-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:14px;gap:0}.stats-tab{flex:1;padding:7px 0;font-size:12px;font-weight:600;border:none;background:transparent;color:var(--text-3);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.stats-tab:hover{color:var(--text)}.stats-tab.active{color:var(--text);border-bottom-color:var(--text)}.asset-assert-date{display:flex;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--text-3);margin-bottom:10px;padding:0 2px}.asset-table td:first-child{padding-left:0}.asset-table-head th{position:sticky;top:0;z-index:1;background:var(--surface);padding:5px 10px;font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);text-align:right;border-bottom:1px solid var(--border)}.asset-table-head th:first-child{text-align:left}.asset-row td{padding:6px 10px;font-size:12px;border-bottom:1px solid var(--border)}.asset-row:last-child td{border-bottom:none}.asset-row td:nth-child(2),.asset-row td:nth-child(3){text-align:right;font-family:DM Mono,monospace;font-weight:500;white-space:nowrap}.asset-row--leaf td{color:var(--text)}.asset-row--parent td:first-child{color:var(--text-2);font-weight:600}.asset-row--mismatch td:first-child{color:var(--expense)}.asset-subtotal{color:var(--text-3)}.asset-assert-cell{min-width:90px}.asset-assert--ok{color:var(--income)}.asset-assert--diff{color:var(--expense);font-weight:600}.invest-year-nav{display:flex;align-items:center;justify-content:center;gap:0;margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;align-self:center;width:fit-content;margin-left:auto;margin-right:auto}.invest-year-nav button{background:var(--surface-2);border:none;width:34px;height:32px;font-size:16px;cursor:pointer;color:var(--text-2);transition:all .1s;display:flex;align-items:center;justify-content:center}.invest-year-nav button:hover:not(:disabled){background:var(--surface-3);color:var(--text)}.invest-year-nav button:disabled{opacity:.3;cursor:default}.invest-year-nav span{font-family:DM Mono,monospace;font-size:13px;font-weight:500;color:var(--text);padding:0 16px;height:32px;display:flex;align-items:center;border-left:1px solid var(--border);border-right:1px solid var(--border);background:var(--surface)}.invest-group{margin-bottom:18px}.invest-group-header{display:flex;align-items:center;margin-bottom:6px}.invest-group-title{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3)}.invest-empty{font-size:13px;color:var(--text-3);padding:8px 0}.invest-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border-2);border-radius:var(--radius);background:var(--surface);margin-bottom:6px;transition:background .1s}.invest-row:hover{background:var(--surface-2)}.invest-row-info{flex:1;display:flex;flex-direction:column;gap:1px;overflow:hidden}.invest-row-date{font-family:DM Mono,monospace;font-size:11px;color:var(--text-3)}.invest-row-narration{font-size:13px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invest-row-amount{font-family:DM Mono,monospace;font-size:13px;font-weight:600;color:var(--income);flex-shrink:0}.invest-row-actions{display:flex;gap:4px;flex-shrink:0}.invest-action-btn{padding:3px 8px;font-size:11px;font-family:DM Sans,sans-serif;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:all .1s}.invest-action-btn:hover{border-color:var(--border-3);color:var(--text)}.invest-action-btn--del:hover{border-color:var(--expense);color:var(--expense);background:var(--expense-dim)}.invest-add-row{display:flex;align-items:center;gap:10px;padding-top:10px;border-top:1px solid var(--border-2);flex-wrap:wrap}.invest-add-label{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);flex-shrink:0}.invest-add-btns{display:flex;gap:6px;flex-wrap:wrap;flex:1}.invest-add-btn{padding:7px 14px;font-size:12px;font-family:DM Sans,sans-serif;font-weight:600;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);color:var(--text-2);cursor:pointer;transition:all .12s;letter-spacing:.02em}.invest-add-btn:hover{border-color:var(--gold);color:var(--gold);background:var(--gold-dim)}.invest-pagination{display:flex;gap:8px;justify-content:center;padding:6px 0 2px}.invest-page-btn{font-size:12px;font-family:DM Sans,sans-serif;padding:4px 12px;border:1px solid var(--border-2);border-radius:var(--radius);background:none;color:var(--text-3);cursor:pointer;transition:all .12s}.invest-page-btn:hover{color:var(--text);border-color:var(--border)}.invest-back-btn{background:none;border:none;font-size:13px;color:var(--text-2);cursor:pointer;font-family:DM Sans,sans-serif;padding:0;width:60px;text-align:left}.invest-back-btn:hover{color:var(--text)}.assert-date-group{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;padding:8px 12px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius)}.assert-date-label{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3)}.assert-date-input{border:none;background:transparent;font-family:DM Mono,monospace;font-size:13px;font-weight:500;color:var(--text);outline:none;cursor:pointer;text-align:right}.asset-diff-cell{text-align:right;padding-right:10px;width:90px}.asset-diff{font-family:DM Mono,monospace;font-size:11px;font-weight:500;color:var(--expense);white-space:nowrap}.ufo-btn{padding:7px 16px;font-size:12px;font-family:DM Sans,sans-serif;font-weight:600;border:1px solid var(--expense);border-radius:var(--radius);background:none;color:var(--expense);cursor:pointer;transition:all .12s;letter-spacing:.02em}.ufo-btn:hover{background:#e0787814}.asset-assert-edit{width:100%!important;border:none!important;outline:none!important;background:transparent!important;padding:0!important;margin:0!important;font-family:DM Mono,monospace!important;font-size:12px!important;font-weight:500!important;text-align:right!important;cursor:text;-moz-appearance:textfield}.asset-assert-edit::-webkit-outer-spin-button,.asset-assert-edit::-webkit-inner-spin-button{-webkit-appearance:none}.assert-input-wrap{display:flex;align-items:center;justify-content:flex-end}.assert-sign-inline{font-family:DM Mono,monospace;font-size:12px;color:var(--expense);margin-right:2px;-webkit-user-select:none;user-select:none}.assert-inline-input{width:90px!important;padding:3px 6px!important;border:1px solid var(--border)!important;border-radius:4px!important;background:var(--surface-2)!important;font-family:DM Mono,monospace!important;font-size:12px!important;font-weight:500!important;color:var(--text)!important;text-align:right!important;outline:none!important;-moz-appearance:textfield}.assert-inline-input::-webkit-outer-spin-button,.assert-inline-input::-webkit-inner-spin-button{-webkit-appearance:none}.assert-inline-input:focus{border-color:var(--gold)!important;background:var(--surface)!important}.assert-list{display:flex;flex-direction:column;margin-bottom:18px;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.assert-row{display:flex;align-items:center;gap:0;background:var(--surface);border-bottom:1px solid var(--border-2);transition:background .1s}.assert-row:last-child{border-bottom:none}.assert-row:hover{background:var(--surface-2)}.assert-row-accent{width:3px;align-self:stretch;flex-shrink:0;background:var(--border-3)}.assert-row--assets .assert-row-accent{background:var(--transfer)}.assert-row--liabilities .assert-row-accent{background:var(--expense)}.assert-account{flex:1;padding:10px 12px;font-size:13px;font-family:DM Sans,sans-serif;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assert-row--assets .assert-account{color:var(--transfer)}.assert-row--liabilities .assert-account{color:var(--expense)}.assert-amount-wrap{display:flex;align-items:center;flex-shrink:0;border-left:1px solid var(--border-2);background:#fff}.assert-sign{padding:0 0 0 10px;font-family:DM Mono,monospace;font-size:13px;color:var(--expense);-webkit-user-select:none;user-select:none;line-height:1}.assert-amount{width:110px;padding:10px 10px 10px 4px;border:none;outline:none;background:transparent;font-family:DM Mono,monospace;font-size:13px;font-weight:500;color:var(--text);text-align:right;-moz-appearance:textfield}.assert-amount::-webkit-outer-spin-button,.assert-amount::-webkit-inner-spin-button{-webkit-appearance:none}.assert-amount:focus{background:#1a161208}.assert-currency{padding:0 10px 0 0;font-family:DM Mono,monospace;font-size:10px;letter-spacing:.08em;color:var(--text-3);background:#fff;flex-shrink:0;align-self:stretch;display:flex;align-items:center}.dir-picker{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.dir-picker-card{max-width:320px;width:100%;margin:0 24px;text-align:center}.dir-icon{display:flex;align-items:center;justify-content:center;margin:0 auto 28px;filter:drop-shadow(0 4px 16px rgba(196,142,40,.3))}.dir-picker-card h2{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:600;margin-bottom:10px;letter-spacing:.03em;color:var(--text)}.dir-picker-card p{color:var(--text-2);font-size:13px;margin-bottom:32px;line-height:1.8}.pick-dir-btn{display:inline-block;background:var(--text);color:var(--bg);border:none;border-radius:var(--radius);padding:12px 36px;font-size:11px;font-family:DM Sans,sans-serif;cursor:pointer;font-weight:700;letter-spacing:.16em;text-transform:uppercase;transition:opacity .12s}.pick-dir-btn:hover{opacity:.82}.toast-container{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;z-index:9999;pointer-events:none;width:min(400px,90vw)}.toast{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 15px;border-radius:var(--radius);background:var(--text);color:var(--bg);font-size:13px;border:1px solid rgba(255,255,255,.06);box-shadow:0 6px 24px #1a161238;pointer-events:all;animation:toast-in .18s ease;font-weight:500}.toast-error{background:#7a1a1a;border-color:#ffffff14;color:#ffd0d0}.toast-success{background:#0d4228;border-color:#ffffff14;color:#a0ecc0}.toast-msg{flex:1}.toast-close{background:none;border:none;color:#f4f0e873;font-size:16px;cursor:pointer;padding:0;line-height:1;transition:color .1s}.toast-close:hover{color:var(--bg)}.toast-actions{display:flex;gap:6px;flex-shrink:0}.toast-btn{border:none;border-radius:var(--radius);padding:5px 12px;font-size:11px;cursor:pointer;font-weight:700;letter-spacing:.1em;white-space:nowrap;text-transform:uppercase;font-family:DM Sans,sans-serif;transition:opacity .1s}.toast-btn.toast-cancel{background:#ffffff14;color:#6dbf88}.toast-btn.toast-cancel:hover{background:#ffffff26}.toast-btn.toast-confirm{background:#ffffff14;color:#e07878}.toast-btn.toast-confirm:hover{background:#ffffff26}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.proc-section{margin-bottom:20px}.proc-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.proc-section-title{font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3)}.proc-import-btn{padding:5px 14px;background:var(--text);color:var(--bg);border:none;border-radius:var(--radius);font-size:12px;font-family:DM Sans,sans-serif;cursor:pointer;transition:opacity .12s}.proc-import-btn:hover{opacity:.8}.proc-import-btn:disabled{opacity:.35;cursor:not-allowed}.proc-textarea{width:100%;height:260px;padding:10px 12px;font-family:DM Mono,monospace;font-size:12px;line-height:1.6;background:var(--surface-2);border:1px solid var(--border);white-space:pre;overflow-x:auto;border-radius:var(--radius);color:var(--text);resize:vertical;outline:none;transition:border-color .12s}.proc-textarea:focus{border-color:var(--border-3);background:var(--surface)}.proc-textarea[readonly]{opacity:.6;cursor:default}.header-actions-desktop{display:flex;align-items:center;gap:8px}.header-actions-mobile{display:none;position:relative}.header-more{position:relative;display:inline-flex}.header-menu-dropdown{position:absolute;top:calc(100% + 8px);right:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px #0000002e;z-index:200;min-width:160px;overflow:hidden}.header-menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;background:none;border:none;color:var(--text-2);font-size:13px;cursor:pointer;text-align:left;transition:background .1s,color .1s}.header-menu-item:hover{background:var(--surface-2);color:var(--text)}.header-menu-item+.header-menu-item{border-top:1px solid var(--border-2)}.header-menu-icon{font-size:15px;flex-shrink:0}.header-menu-label{letter-spacing:.03em}.menu-toggle--open{color:var(--gold-bright);border-color:#c48e2880;background:#c48e2814}@media (max-width: 599px){.accounting-eq,.header-actions-desktop{display:none}.header-actions-mobile{display:block}.header-menu-dropdown{position:fixed;top:54px;right:14px;left:auto}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}.login-card{max-width:320px;width:100%;margin:0 24px;text-align:center}.login-card h2{font-family:Cormorant Garamond,serif;font-size:28px;font-weight:600;margin-bottom:10px;letter-spacing:.03em;color:var(--text)}.login-card p{color:var(--text-2);font-size:13px;margin-bottom:32px;line-height:1.8}.login-form{display:flex;flex-direction:column;gap:12px;text-align:left}.login-field input{width:100%;padding:10px 13px;border:1px solid var(--border);border-radius:var(--radius);font-size:13px;outline:none;background:var(--surface);color:var(--text);font-family:DM Sans,sans-serif;transition:border-color .12s,box-shadow .12s}.login-field input:focus{border-color:var(--text);box-shadow:0 0 0 3px #1a16120f}.login-field input::placeholder{color:var(--text-3)}.login-error{color:var(--expense);font-size:12px;text-align:center;margin:0}.login-submit{width:100%;margin-top:4px}.login-submit:disabled{opacity:.55;cursor:not-allowed}@media (min-width: 600px){.summary{max-width:640px;margin:0 auto}.modal-overlay{align-items:center}.modal{width:auto;max-width:480px;margin:0 auto;border-radius:16px;border:1.5px solid var(--border-3)}.modal.modal--wide{width:90vw;max-width:860px;margin:0 auto;border-radius:16px;border:1.5px solid var(--border-3);max-height:88vh}.modal-handle{display:none}}.beditor-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;background:#1a1612;color:#f4f0e8d9}.beditor-sidebar{width:240px;flex-shrink:0;display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.07);background:#141210;overflow:hidden;transition:width .2s ease}.beditor-sidebar.collapsed{width:48px}.beditor-sidebar.collapsed .beditor-tree-scroll,.beditor-sidebar.collapsed .bgs-panel{display:none}.beditor-sidebar.collapsed .beditor-sidebar-hd{flex-direction:column;align-items:center;padding:10px 0 8px;gap:6px}.beditor-sidebar.collapsed .beditor-mode-btns,.beditor-sidebar.collapsed .beditor-sidebar-hd-right{flex-direction:column}.beditor-sidebar-hd{display:flex;align-items:center;justify-content:space-between;padding:10px 12px 8px;flex-shrink:0}.beditor-sidebar-hd-right{display:flex;align-items:center;gap:2px}.beditor-collapse-btn{background:none;border:none;color:#f4f0e859;cursor:pointer;padding:3px 5px;border-radius:3px;display:flex;align-items:center}.beditor-collapse-btn:hover{background:#ffffff14;color:#f4f0e8b3}.beditor-sidebar-title{font-size:10.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#f4f0e873}.beditor-close{background:none;border:none;color:#f4f0e859;cursor:pointer;padding:3px 5px;border-radius:3px;display:flex;align-items:center}.beditor-close:hover{background:#ffffff14;color:#f4f0e8b3}.beditor-tree-scroll{flex:1;overflow-y:auto;padding-bottom:16px}.beditor-tree-scroll::-webkit-scrollbar{width:4px}.beditor-tree-scroll::-webkit-scrollbar-thumb{background:#ffffff1a}.btree-root-label{font-size:10.5px;font-weight:700;letter-spacing:.1em;color:#f4f0e880;padding:6px 12px 4px}.btree-list{list-style:none}.btree-dir,.btree-file{width:100%;background:none;border:none;text-align:left;cursor:pointer;display:flex;align-items:center;gap:5px;padding:3px 10px 3px 8px;font-size:12.5px;color:#f4f0e8b3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5}.btree-dir:hover,.btree-file:hover{background:#ffffff0f;color:#f4f0e8}.btree-file.active{background:#c48e2824;color:#d4a840}.btree-file.open{color:#f4f0e8d9}.btree-open-dot{width:6px;height:6px;border-radius:50%;background:#c48e2899;flex-shrink:0;margin-left:auto}.btree-arrow{font-size:9px;width:10px;flex-shrink:0;color:#f4f0e859}.btree-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.beditor-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.beditor-tabbar{display:flex;align-items:stretch;background:#141210;border-bottom:1px solid rgba(255,255,255,.07);overflow-x:auto;flex-shrink:0;scrollbar-width:none}.beditor-tabbar::-webkit-scrollbar{display:none}.beditor-tab{display:flex;align-items:center;gap:6px;padding:0 10px 0 13px;height:36px;cursor:pointer;border-right:1px solid rgba(255,255,255,.06);border-bottom:2px solid transparent;white-space:nowrap;flex-shrink:0;color:#f4f0e880;font-size:12.5px;transition:background .1s,color .1s;-webkit-user-select:none;user-select:none}.beditor-tab:hover{background:#ffffff0d;color:#f4f0e8cc}.beditor-tab.active{background:#1c1916;color:#f4f0e8f2;border-bottom-color:#c48e28}.beditor-tab-name{line-height:1}.beditor-tab-dirty{color:#c48e28;font-size:13px;line-height:1;flex-shrink:0}.beditor-tab-close{background:none;border:none;color:#f4f0e84d;cursor:pointer;padding:2px;border-radius:2px;display:flex;align-items:center;flex-shrink:0;opacity:0;transition:opacity .1s,background .1s}.beditor-tab:hover .beditor-tab-close,.beditor-tab.active .beditor-tab-close{opacity:1}.beditor-tab-close:hover{background:#ffffff1f;color:#f4f0e8cc}.beditor-tab-hint{padding:0 14px;font-size:12px;color:#f4f0e840;display:flex;align-items:center;height:36px}.beditor-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 14px;height:38px;background:#1a1612;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0;gap:10px}.beditor-filepath{font-size:12px;color:#f4f0e880;display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.beditor-dirty-dot{color:#c48e28;font-size:14px;flex-shrink:0;line-height:1}.beditor-toolbar-btns{display:flex;gap:7px;flex-shrink:0}.beditor-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.11);color:#f4f0e8bf;border-radius:3px;padding:3px 11px;font-size:12px;cursor:pointer;white-space:nowrap;transition:background .1s}.beditor-btn:hover:not(:disabled){background:#ffffff21;color:#f4f0e8}.beditor-btn:disabled{opacity:.35;cursor:default}.beditor-btn-primary{background:#c48e282e;border-color:#c48e2859;color:#c48e28}.beditor-btn-primary:hover:not(:disabled){background:#c48e2847}.beditor-icon-btn{padding:4px 8px;display:inline-flex;align-items:center;justify-content:center}.beditor-mode-btns{display:flex;gap:2px}.beditor-mode-btn{background:none;border:none;color:#f4f0e859;cursor:pointer;padding:4px 6px;border-radius:3px;display:flex;align-items:center}.beditor-mode-btn:hover{color:#f4f0e8b3;background:#ffffff0f}.beditor-mode-btn.active{color:#f4f0e8e6}.beditor-searchbar{display:flex;flex-direction:column;gap:3px;padding:4px 10px;background:#1a1612;border-bottom:1px solid rgba(255,255,255,.07);flex-shrink:0}.beditor-searchbar-row{display:flex;align-items:center;gap:4px}.beditor-search-toggle-replace{background:none;border:none;color:#f4f0e866;cursor:pointer;padding:2px 4px;font-size:11px;border-radius:3px;flex-shrink:0;line-height:1}.beditor-search-toggle-replace:hover{color:#f4f0e8cc}.beditor-search-input{flex:1;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:3px;color:#f4f0e8e6;font-size:12px;padding:3px 8px;outline:none;font-family:inherit;min-width:0}.beditor-search-input:focus{border-color:#c48e2880}.beditor-search-count{font-size:11px;color:#f4f0e866;white-space:nowrap;min-width:52px;text-align:center}.beditor-search-nav{background:none;border:1px solid rgba(255,255,255,.1);color:#f4f0e899;cursor:pointer;border-radius:3px;padding:2px 7px;font-size:12px}.beditor-search-nav:hover{background:#ffffff14;color:#f4f0e8}.beditor-search-close{background:none;border:none;color:#f4f0e866;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px}.beditor-search-close:hover{color:#f4f0e8cc}.beditor-editor-wrap{flex:1;display:flex;overflow:hidden;background:#1c1916}.beditor-linenos{flex-shrink:0;width:44px;overflow:hidden;padding:16px 8px 16px 0;text-align:right;font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,Menlo,monospace;font-size:14px;line-height:1.7;color:#f4f0e833;-webkit-user-select:none;user-select:none;border-right:1px solid rgba(255,255,255,.06);background:#1c1916}.beditor-lineno{display:block}.beditor-code-area{flex:1;position:relative;overflow:hidden}.beditor-highlight,.beditor-code{font-family:JetBrains Mono,Fira Code,Cascadia Code,Consolas,Menlo,monospace;font-size:14px;line-height:1.7;padding:16px 20px;-moz-tab-size:2;tab-size:2;white-space:pre;word-wrap:normal;margin:0}.beditor-highlight{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:auto;scrollbar-width:none;color:#f4f0e8e0;background:transparent;border:none}.beditor-highlight::-webkit-scrollbar{display:none}.beditor-code{position:absolute;top:0;right:0;bottom:0;left:0;resize:none;border:none;outline:none;background:transparent;color:transparent;caret-color:#f4f0e8e6;overflow:auto;z-index:1}.beditor-code::selection{background:#c48e2840}.beditor-code::-webkit-scrollbar{width:6px;height:6px}.beditor-code::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}.bh-date{color:#e6b450}.bh-flag{color:#e8c06a;font-weight:600}.bh-string{color:#8bc99a}.bh-comment{color:#f4f0e847;font-style:italic}.bh-directive,.bh-acct-a{color:#82aaff}.bh-acct-l{color:#f07178}.bh-acct-e{color:#ffab70}.bh-acct-i{color:#8bc99a}.bh-acct-q{color:#c3a6ff}.bh-acct{color:#f4f0e8bf}.bh-amount{color:#f4f0e8}.bh-currency{color:#f4f0e880}.bh-match{background:#ffc83247;color:inherit;border-radius:2px}.bh-current{background:#ff8c008c;color:#1a1612;border-radius:2px}.bgs-panel{flex:1;display:flex;flex-direction:column;overflow:hidden}.bgs-input-row{display:flex;gap:4px;padding:8px 10px 6px;flex-shrink:0}.bgs-input{flex:1;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:3px;color:#f4f0e8e6;font-size:12px;padding:4px 8px;outline:none;font-family:inherit;min-width:0}.bgs-input:focus{border-color:#c48e2880}.bgs-replace-row{padding-top:0;padding-bottom:4px}.bgs-btn{background:#ffffff12;border:1px solid rgba(255,255,255,.11);border-radius:3px;color:#f4f0e8b3;cursor:pointer;padding:4px 8px;display:flex;align-items:center}.bgs-btn:hover{background:#ffffff21}.bgs-status{padding:14px 12px;font-size:11.5px;color:#f4f0e84d}.bgs-results{flex:1;overflow-y:auto;padding-bottom:16px}.bgs-results::-webkit-scrollbar{width:4px}.bgs-results::-webkit-scrollbar-thumb{background:#ffffff1a}.bgs-summary{padding:4px 12px 6px;font-size:10.5px;color:#f4f0e859}.bgs-file-group{margin-bottom:6px}.bgs-file-name{display:flex;align-items:center;gap:5px;padding:4px 10px 3px;font-size:11px;font-weight:600;color:#f4f0e899;letter-spacing:.02em}.bgs-match-line{width:100%;background:none;border:none;text-align:left;cursor:pointer;display:flex;align-items:baseline;gap:8px;padding:2px 10px 2px 14px;font-size:11.5px;color:#f4f0e899;line-height:1.55}.bgs-match-line:hover{background:#ffffff0f;color:#f4f0e8e6}.bgs-lineno{flex-shrink:0;color:#f4f0e847;font-size:10.5px;min-width:24px;text-align:right;font-variant-numeric:tabular-nums}.bgs-linetext{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:11px}.beditor-placeholder{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:#f4f0e84d;font-size:13px;background:#1c1916}@media (max-width: 600px){.beditor-sidebar{width:180px}.beditor-highlight,.beditor-code{font-size:13px;padding:10px 12px}}.config-modal{max-width:960px;max-height:92vh}.config-layout{flex:1;display:flex;min-height:0;gap:0}.config-nav{flex-shrink:0;width:140px;border-right:1px solid var(--border-2);padding:12px 8px 12px 16px;display:flex;flex-direction:column;gap:4px;overflow-y:auto}.config-nav-item{text-align:left;padding:8px 10px;border:none;background:transparent;border-radius:var(--radius);font-size:12.5px;color:var(--text-2);cursor:pointer;transition:background .12s,color .12s}.config-nav-item:hover{background:var(--surface-2);color:var(--text)}.config-nav-item.active{background:var(--text);color:var(--bg)}.config-content{flex:1;overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch;padding:14px 16px 0;min-width:0}.config-panel{display:flex;flex-direction:column}.config-panel>.submit-btn,.config-panel>.config-actions{position:sticky;bottom:14px;margin-top:18px;z-index:5;background:var(--surface);box-shadow:0 0 0 14px var(--surface)}.config-panel>.config-actions{display:flex;gap:8px;align-items:stretch}.config-actions>.submit-btn{flex:1;margin-top:0}.config-actions>.run-btn{width:auto;padding:11px 16px;margin:0;flex-shrink:0;white-space:nowrap;background:var(--surface)}.config-hint{font-size:12px;color:var(--text-3);line-height:1.7;margin-bottom:14px}.config-error{background:var(--expense-dim);color:var(--expense);border:1px solid var(--expense);border-radius:var(--radius);padding:8px 10px;font-size:11.5px;white-space:pre-wrap;margin-bottom:10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.config-code{width:100%;min-height:320px;resize:vertical;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;line-height:1.6;background:#fff;outline:none;margin-bottom:12px;white-space:pre}.config-code:focus{border-color:var(--text);box-shadow:0 0 0 3px #1a16120f}.config-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.config-mode-row{display:flex;gap:6px;margin-bottom:12px}.config-table{width:auto;border-collapse:collapse;margin-bottom:8px}.config-table th{text-align:left;font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--text-3);font-weight:700;padding:0 4px 6px}.config-table td{padding:2px 4px;vertical-align:middle}.config-table input{width:100%;padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;outline:none;background:#fff}.config-table input:focus{border-color:var(--text)}.cell-account-wrap{width:252px;display:flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden}.cell-account-wrap:focus-within{border-color:var(--text)}.cell-account-prefix{align-self:stretch;display:inline-flex;align-items:center;padding:0 8px;background:var(--surface-2);border-right:1px solid var(--border);color:var(--text-3);font-family:DM Mono,monospace;font-size:12px;white-space:nowrap;-webkit-user-select:none;user-select:none}.config-table input.cell-account-suffix{width:100%;min-width:120px;border:none;border-radius:0;background:#fff}.config-table input.cell-account-suffix:focus{border-color:transparent}.config-table .cell-date{width:128px}.config-table .cell-account{width:252px}.config-table .cell-narrow{width:48px}.config-table .cell-amount{width:96px}.config-table .cell-desc{width:132px}.config-table select{padding:6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;outline:none;background:#fff}.config-table select:focus{border-color:var(--text)}.config-table select.cell-account{max-width:220px}.rules-scroll{overflow:auto;max-width:100%;max-height:48vh}.rules-table th,.rules-table td{white-space:nowrap}.rules-table input{min-width:120px}.rules-table input.cell-narrow{min-width:60px;width:72px}.rules-table .combobox-input{min-width:0}.combobox{position:relative;display:inline-flex;align-items:center;width:104px}.combobox-input{width:100%;padding:6px 22px 6px 8px;border:1px solid var(--border);border-radius:var(--radius);font-size:12px;outline:none;background:#fff}.combobox-input:focus{border-color:var(--text)}.combobox-toggle{position:absolute;right:4px;border:none;background:none;cursor:pointer;font-size:10px;color:var(--text-3);padding:0 2px;line-height:1}.combobox-menu{position:fixed;z-index:9998;background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 20px #1a161229;max-height:220px;overflow-y:auto;padding:3px}.combobox-option{display:block;width:100%;text-align:left;border:none;background:none;padding:6px 8px;font-size:12px;cursor:pointer;border-radius:2px;white-space:nowrap;color:var(--text)}.combobox-option:hover{background:var(--surface-2)}.combobox-option.active{background:var(--text);color:var(--bg)}.config-balances{margin-top:14px;border-top:1px solid var(--border-2);padding-top:12px}.config-balance-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.config-balance-row label{flex:1;margin:0;text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--text-2);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-balance-row input{width:130px}.config-provider{border-top:1px solid var(--border-2);padding-top:12px;margin-top:12px}.config-provider-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:8px}.config-chip-row{display:flex;gap:6px;flex-wrap:wrap}.wizard-card{width:100%;max-width:560px;margin:0 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 20px;max-height:92vh;display:flex;flex-direction:column}.wizard-steps{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.wizard-step-done{border-color:var(--income)!important;color:var(--income)!important}.wizard-body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;min-height:0}.wizard-nav{display:flex;gap:10px;margin-top:16px}.wizard-nav .run-btn,.wizard-nav .submit-btn{margin-top:0}.wizard-welcome{text-align:center;padding:16px 4px}.wizard-welcome h3{font-family:Cormorant Garamond,serif;font-size:24px;font-weight:600;margin-bottom:12px;color:var(--text)}.wizard-welcome p{font-size:13px;color:var(--text-2);line-height:1.8;margin-bottom:22px}@media (max-width: 600px){.config-nav{width:92px;padding-left:10px}.config-layout{flex-direction:column}}
