:root{--bg: #f6faf8;--bg2: #eaf3ee;--card: #ffffff;--card2: #f6faf8;--line: #e6efe9;--line2: #d8e7df;--text: #0f1f1a;--muted: #6b8079;--pos: #059669;--neg: #f43f5e;--warn: #d97706;--accent: #10b981;--accent-dark: #059669}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,system-ui,sans-serif;background:radial-gradient(1100px 520px at 82% -12%,#c6f4e1 0%,var(--bg) 56%);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased}.app-shell{display:flex;max-width:1400px;margin:0 auto;min-height:100vh;align-items:flex-start}.sidebar{width:230px;flex:none;box-sizing:border-box;position:sticky;top:26px;align-self:flex-start;display:flex;flex-direction:column;gap:22px;padding:4px 16px}.side-brand{display:flex;align-items:center;gap:10px;padding:2px 10px 6px}.brand-mark{width:26px;height:26px;border-radius:8px;flex:none;background:linear-gradient(135deg,var(--accent),var(--accent-dark));box-shadow:inset 0 1px #ffffff40,0 1px 3px #0596694d;position:relative}.brand-mark:after{content:"";position:absolute;inset:7px 7px auto 7px;height:3px;border-radius:2px;background:#ffffffe6;box-shadow:0 5px #ffffff8c,0 10px #ffffff59}.brand-name{font-size:16px;font-weight:650;letter-spacing:-.02em}.side-nav{display:flex;flex-direction:column;gap:2px}.side-nav button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;cursor:pointer;padding:9px 12px;border-radius:9px;border:none;background:transparent;color:var(--muted);font-size:14px;font-weight:500;transition:background .13s,color .13s}.nav-main{display:flex;align-items:center;gap:11px;min-width:0}.nav-icon{width:17px;height:17px;flex:none;opacity:.65}.side-nav button:hover{background:var(--bg2);color:var(--text)}.side-nav button:hover .nav-icon{opacity:.85}.side-nav button.active{background:#e6f6ef;color:var(--accent-dark);font-weight:600}.side-nav button.active .nav-icon{opacity:1}.nav-sep{font-size:10px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);opacity:.55;padding:16px 12px 5px;margin-top:6px;border-top:1px solid var(--line)}.side-badge{font-size:11px;font-weight:600;color:var(--accent-dark);background:var(--card);border:1px solid var(--line2);padding:1px 8px;border-radius:20px;font-variant-numeric:tabular-nums}.side-foot{margin-top:18px}.side-foot .restart-btn{width:100%;justify-content:center;background:transparent;color:var(--muted);border:1px solid var(--line);font-size:13px;padding:8px;border-radius:9px}.side-foot .restart-btn:hover{border-color:var(--accent);color:var(--accent-dark)}.content{flex:1;min-width:0;padding:26px 36px 72px}.content-top{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px;margin-bottom:6px}.content-title h1{font-size:22px;margin:0 0 2px;letter-spacing:-.02em;font-weight:650}.content-title .subtitle{display:block;text-transform:none}@media(max-width:860px){.app-shell{flex-direction:column;align-items:stretch}.sidebar{width:auto;height:auto;position:static;flex-direction:row;align-items:center;align-self:stretch;gap:14px;padding:12px 16px;border-right:none;border-bottom:1px solid var(--line)}.side-brand{display:none}.side-nav{flex-direction:row;gap:4px;overflow-x:auto}.side-nav button{white-space:nowrap}.nav-sep{display:none}.side-foot{margin:0 0 0 auto}.side-foot .restart-btn{width:auto;padding:7px 10px}.content{padding:18px 16px 56px}}header{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:12px}.brand{display:flex;flex-direction:column;gap:2px}h1{font-size:22px;margin:0;letter-spacing:-.02em;font-weight:650}.subtitle{color:var(--muted);font-size:13px;text-transform:capitalize}h2{font-size:12px;color:var(--muted);margin:32px 0 12px;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.controls{display:flex;gap:8px}.sync-ago{display:flex;align-items:center;font-size:12px;color:var(--muted);white-space:nowrap;cursor:default}.server-down{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:center;justify-content:center;background:#f6faf8b8;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.server-down-card{display:flex;flex-direction:column;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line2);border-radius:16px;padding:26px 38px;box-shadow:0 12px 44px #00000021;text-align:center}.server-down-card strong{font-size:15px}.sd-note{font-size:12.5px;color:var(--muted);max-width:240px}.sd-spinner{width:26px;height:26px;border-radius:50%;border:3px solid var(--line2);border-top-color:var(--accent);animation:sd-spin .8s linear infinite}@keyframes sd-spin{to{transform:rotate(360deg)}}select,button,input{background:var(--card);color:var(--text);border:1px solid var(--line2);border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer;transition:border-color .15s,background .15s,opacity .15s}select:hover{border-color:var(--accent)}.controls button{background:var(--accent);color:#fff;border:none;font-weight:600}.controls button:hover:not(:disabled){filter:brightness(1.06)}button:disabled{opacity:.5;cursor:not-allowed}.banner{padding:10px 14px;border-radius:8px;margin-top:16px;font-size:14px}.banner.error{background:#fef0f2;color:#b3203a;border:1px solid #fbd7de}.banner.ok{background:#e7f7f0;color:#047857;border:1px solid #c8ecdc}.toast-wrap{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{pointer-events:auto;cursor:pointer;padding:10px 16px;border-radius:10px;font-size:14px;font-weight:500;box-shadow:0 6px 24px #00000024;border:1px solid transparent;max-width:90vw;animation:toast-in .22s ease-out}.toast-ok{background:#ecfdf5;color:#047857;border-color:#c8ecdc}.toast-error{background:#fef2f4;color:#b3203a;border-color:#fbd7de}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;display:flex;flex-direction:column;gap:6px}.card span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em;font-weight:500}.card strong{font-size:22px;letter-spacing:-.02em;font-weight:650;font-variant-numeric:tabular-nums}.card small{color:var(--muted);font-size:12px}.card.out strong{color:var(--neg)}.card.in strong{color:var(--pos)}.card.net.neg strong{color:var(--neg)}.bars{display:flex;flex-direction:column;gap:10px}.bar-row{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:14px}.bar-label{display:flex;align-items:center;gap:8px;font-size:14px}.bar-row.clickable{cursor:pointer;padding:6px 8px;margin:-6px -8px;border-radius:9px;transition:background .12s}.bar-row.clickable:hover{background:var(--bg2)}.bar-row.clickable:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.bar-go{color:var(--muted);font-weight:700;opacity:0;transition:opacity .12s,transform .12s;transform:translate(-3px)}.bar-row.clickable:hover .bar-go{opacity:1;transform:translate(0)}.dot{width:8px;height:8px;border-radius:50%;flex:none}.bar-track{background:var(--bg2);border-radius:5px;height:8px;overflow:hidden}.bar-fill{height:100%;border-radius:5px;transition:width .4s ease;min-width:2px}.bar-value{font-size:14px;text-align:right;white-space:nowrap;display:flex;gap:8px;align-items:baseline;justify-content:flex-end;font-variant-numeric:tabular-nums}.bar-pct{color:var(--muted);font-size:12px;width:36px;text-align:right}.section-head{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px}.section-head h2{margin:32px 0 12px}.tx-filters{position:sticky;top:0;z-index:20;display:flex;flex-direction:column;gap:9px;background:var(--bg);padding:10px 0 12px}.filter-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tb-filter{flex:0 0 auto}.tb-filter .dd-trigger{width:auto;padding:7px 11px}.f-on .dd-trigger{border-color:var(--accent);background:#e6f6ef}.f-on .dd-value{color:var(--accent-dark);font-weight:600}.amount-range.f-on .amt-field{border-color:var(--accent);background:#e6f6ef}.dd-trigger.clearable{padding-right:32px}.dd-trigger.clearable .dd-caret{visibility:hidden}.dd-clear,.amt-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;border:none;padding:0;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-dark);color:#fff;font-size:10.5px;font-weight:700;cursor:pointer;line-height:1}.dd-clear:hover,.amt-clear:hover{filter:brightness(1.12)}.amount-range{position:relative}.amount-range.f-on{padding-right:28px}.amt-clear{right:0}.filter-body .search-wrap{flex:0 1 340px;min-width:220px}.search-wrap{position:relative;display:flex;flex:1 1 240px;min-width:220px}.search{padding:7px 32px 7px 11px;width:100%;cursor:text}.search:focus{outline:none;border-color:var(--accent)}.search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:var(--bg2);color:var(--muted);width:20px;height:20px;border-radius:50%;padding:0;font-size:11px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer}.search-clear:hover{background:var(--line2);color:var(--text)}.date-range,.amount-range{display:inline-flex;align-items:center;gap:6px}.date-range input[type=date]{padding:6px 9px}.amt-field{display:inline-flex;align-items:center;gap:5px;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:6px 10px}.amt-field:focus-within{border-color:var(--accent)}.amt-prefix{color:var(--muted);font-size:13px}.amt-field{width:130px}.amt-input{flex:1;width:auto;min-width:0;border:none;background:transparent;padding:1px 0;text-align:left;font-variant-numeric:tabular-nums}.amt-input:focus{outline:none}.amt-input::-webkit-outer-spin-button,.amt-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.amount-range .dash,.date-range .dash{color:var(--muted)}.reset-filters{white-space:nowrap;margin-left:auto}.load-more-wrap{display:flex;flex-direction:column;align-items:center;gap:6px;margin-top:16px}.load-more{background:var(--card);color:var(--text);border:1px solid var(--line2);padding:9px 20px;border-radius:9px;font-size:14px;font-weight:500;cursor:pointer}.load-more:hover{border-color:var(--accent);color:var(--accent-dark)}.load-more-note{color:var(--muted);font-size:12px}.empty-cell{text-align:center;color:var(--muted);padding:32px 8px}.segmented{display:inline-flex;background:var(--bg2);border:1px solid var(--line);border-radius:8px;padding:2px}.segmented button{border:none;background:transparent;color:var(--muted);padding:6px 12px;font-size:13px;border-radius:6px;font-weight:500}.segmented button.active{background:var(--card);color:var(--accent-dark);box-shadow:0 1px 2px #0000000f}.table-card{background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 1px 3px #0f1f1a0a;margin-top:8px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line)}tbody td{vertical-align:middle}th:first-child,td:first-child{padding-left:18px}th:last-child,td:last-child{padding-right:18px}tbody tr:last-child td{border-bottom:none}thead th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;vertical-align:bottom;position:sticky;top:var(--th-top, 0);z-index:5;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 6px 10px -8px #0f1f1a2e}thead th:first-child{border-top-left-radius:14px}thead th:last-child{border-top-right-radius:14px}.th-sort{background:none;border:none;padding:0;cursor:pointer;font:inherit;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}.th-sort:hover{color:var(--text)}.th-sort.on{color:var(--accent)}.right .th-sort{float:right}@media(hover:hover){tbody tr:hover{background:var(--card2)}}.right{text-align:right}.nowrap{white-space:nowrap;color:var(--muted);font-size:13px}td.debit,td.credit{font-variant-numeric:tabular-nums;font-weight:600}td.debit{color:var(--text)}td.credit{color:var(--pos)}.desc-cell{font-weight:500;color:var(--text);height:72px;padding-top:8px;padding-bottom:8px}.desc-text{font-weight:500}.desc-cell.has-actions .desc-stack{transform:translateY(9px);transition:transform .18s ease}tbody tr:hover .desc-cell.has-actions .desc-stack{transform:translateY(0)}.row-actions{display:flex;column-gap:14px;margin-top:3px;opacity:0;transition:opacity .16s ease;pointer-events:none}tbody tr:hover .row-actions{opacity:1;pointer-events:auto}.ra-btn{padding:0;background:none;border:none;cursor:pointer;font-size:12px;font-weight:500;color:var(--accent-dark);white-space:nowrap}.ra-btn:hover{text-decoration:underline}.ra-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.row-note-btn{display:flex;align-items:baseline;gap:5px;margin-top:3px;padding:0;background:none;border:none;text-align:left;font-size:12px;font-weight:400;color:var(--muted);cursor:pointer;max-width:380px;white-space:normal;line-height:1.35}.row-note-btn:before{content:"✎";opacity:.65;flex:none}.row-note-btn:hover{color:var(--text)}.row-note-btn:hover:before{opacity:.9}.row-note-input{margin-top:4px;display:block;width:100%;max-width:360px}.src-cell{line-height:1.35}.src-bank{display:block;color:var(--text);font-size:13px}.src-acct{display:block;color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.tag{background:var(--bg2);color:var(--muted);padding:2px 8px;border-radius:6px;font-size:12px}.empty{color:var(--muted);padding:8px 0;font-size:14px}td.muted{color:var(--muted);font-size:12px}button.ghost,.controls button.ghost{background:var(--card);color:var(--text);border:1px solid var(--line2);font-weight:550}button.ghost:hover:not(:disabled){border-color:#c7c7cc;background:var(--bg2)}.controls button.restart-btn{background:var(--card);color:var(--muted);border:1px solid var(--line2);width:34px;padding:0;font-size:16px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.controls button.restart-btn:hover:not(:disabled){border-color:#c7c7cc;background:var(--bg2);color:var(--text)}.controls button.restart-btn:disabled{opacity:.6}.tabs{display:flex;gap:4px;margin-top:20px;border-bottom:1px solid var(--line)}.tabs button{background:transparent;border:none;border-bottom:2px solid transparent;color:var(--muted);font-weight:550;font-size:14px;padding:10px 14px;border-radius:0}.tabs button.active{color:var(--accent-dark);border-bottom-color:var(--accent)}.tabs button:hover{color:var(--text)}.budget{margin-top:8px}.budget-rows{display:grid;grid-template-columns:1fr 1fr;gap:12px}.budget-row{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px}.budget-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.budget-period{font-weight:550;font-size:14px}.budget-amount{background:transparent;border:none;padding:0;font-size:14px;font-weight:550;font-variant-numeric:tabular-nums}.budget-amount:hover{color:var(--muted)}.budget-amount .muted{color:var(--muted);font-weight:400}.budget-edit{display:inline-flex;gap:6px;align-items:center}.budget-edit input{padding:4px 8px;width:120px;font-size:13px}.budget-remain{font-size:13px;margin-top:10px;font-weight:500}.budget-remain.pos{color:var(--muted)}.budget-remain.neg{color:var(--neg)}.mini{padding:4px 9px;font-size:12px;font-weight:600;background:var(--accent);color:#fff;border:none}.add-card{align-items:center;justify-content:center}.add-card button{background:var(--accent);color:#fff;border:none;font-weight:600}.add-card button:hover{filter:brightness(1.06)}.loan-toggle{padding:4px 12px;border-radius:6px;font-size:12px;font-weight:600;border:1px solid;min-width:76px;text-align:center;transition:background-color .18s ease,color .18s ease,border-color .18s ease}.loan-toggle.belum{color:#b45309;border-color:#fcd9a8;background:#fff7ec}.loan-toggle.lunas{color:var(--accent-dark);border-color:#b9e8d3;background:#ecfaf3}.paid-row td{opacity:.5}.wife-wrap tbody td{transition:opacity .18s ease}.note-cell{background:transparent;border:none;padding:2px 4px;font-size:13px;text-align:left;cursor:pointer}.note-cell.has-note{color:var(--text)}.note-cell.has-note:hover{color:var(--accent-dark);text-decoration:underline}.note-cell.add-note{color:var(--muted);border:1px dashed var(--line2);border-radius:7px;padding:3px 11px;font-weight:500}.note-cell.add-note:hover{border-color:var(--accent);color:var(--accent-dark);background:#f0faf5}.note-input{padding:5px 8px;font-size:13px;min-width:160px}.check-col{width:38px;text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none}.check-col input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;vertical-align:middle}td.check-col input[type=checkbox]{pointer-events:none}.table-card.is-dragging,.table-card.is-dragging *{-webkit-user-select:none;user-select:none}tbody tr.sel-row{background:#eafaf2}tbody tr.sel-row:hover{background:#e1f6ec}.hint-shift{font-size:12px}.batch-bar{position:fixed;bottom:22px;left:50%;transform:translate(-50%);z-index:50;display:flex;align-items:center;gap:14px;flex-wrap:wrap;max-width:94vw;background:var(--text);color:#fff;padding:10px 14px;border-radius:13px;box-shadow:0 12px 34px #0000003d;animation:toast-in .18s ease-out}.batch-count{font-weight:600;font-size:14px;white-space:nowrap}.batch-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.batch-btn{background:#ffffff1f;color:#fff;border:1px solid rgba(255,255,255,.2);padding:7px 12px;border-radius:8px;font-size:13px;font-weight:500;cursor:pointer}.batch-btn:hover:not(:disabled){background:#ffffff38}.batch-btn.ok{background:var(--accent);border-color:var(--accent)}.batch-btn.ok:hover:not(:disabled){filter:brightness(1.08)}.batch-btn:disabled{opacity:.45;cursor:not-allowed}.batch-note{display:inline-flex;gap:6px;align-items:center}.batch-note input{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.22);padding:7px 10px;border-radius:8px;font-size:13px;min-width:150px}.batch-note input::placeholder{color:#ffffff8c}.batch-note input:focus{outline:none;border-color:var(--accent)}.batch-cancel{background:transparent;border:none;color:#ffffffb3;cursor:pointer;font-size:14px;padding:4px 8px}.batch-cancel:hover{color:#fff}.row-note{color:var(--muted);font-size:12px}.icon-btn{background:transparent;border:none;color:var(--muted);padding:4px 7px;font-size:14px;border-radius:6px}.icon-btn:hover{background:var(--bg2);color:var(--text)}.icon-btn.del:hover{background:#fcf1f0;color:var(--neg)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#18181b59;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px;z-index:50;overflow-y:auto;-webkit-overflow-scrolling:touch}.modal{background:var(--card);border-radius:14px;width:100%;max-width:560px;box-shadow:0 12px 40px #00000024;padding:20px 22px 22px;border:1px solid var(--line)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-head h3{margin:0;font-size:16px;font-weight:600}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:flex;flex-direction:column;gap:5px;font-size:13px;color:var(--muted)}.form-grid label span em{font-style:normal;opacity:.7;font-size:11px}.form-grid input,.form-grid select{cursor:auto;width:100%}.form-grid select{cursor:pointer}.col-2{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.modal-actions button{padding:9px 18px;font-weight:550}.modal-actions button[type=submit]{background:var(--accent);color:#fff;border:none}.modal-actions button[type=submit]:hover:not(:disabled){filter:brightness(1.06)}.dd{position:relative;display:inline-block}.dd-trigger{display:inline-flex;align-items:center;gap:8px;justify-content:space-between;background:var(--card);color:var(--text);border:1px solid var(--line2);border-radius:8px;padding:8px 12px;font-size:14px;cursor:pointer;font-weight:500;max-width:100%}.dd-trigger:hover{border-color:var(--accent)}.dd-value{display:inline-flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dd-caret{color:var(--muted);font-size:11px;flex:none}.controls .dd-trigger{background:var(--card);color:var(--text);border:1px solid var(--line2);font-weight:500}.controls .dd-trigger:hover{filter:none;border-color:var(--accent)}.dd-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:var(--card);border:1px solid var(--line2);border-radius:10px;box-shadow:0 12px 32px #00000024;padding:4px;min-width:100%;max-height:264px;overflow:auto}.dd-menu.right{left:auto;right:0}.dd-menu.up{top:auto;bottom:calc(100% + 4px)}.dd-option{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:none;border-radius:6px;padding:8px 10px;font-size:14px;color:var(--text);white-space:nowrap;cursor:pointer}.dd-option:hover{background:var(--bg2)}.dd-option.sel{color:var(--accent-dark);font-weight:600}.controls .dd-option{background:transparent;color:var(--text);font-weight:400;border:none}.controls .dd-option:hover{background:var(--bg2)}.controls .dd-option.sel{color:var(--accent-dark);font-weight:600}.dd-label{flex:1}.dd-check{margin-left:8px;color:var(--accent)}.dd-dot{width:8px;height:8px;border-radius:50%;flex:none}.ms-check{width:15px;height:15px;flex:none;border:1.5px solid var(--line2);border-radius:4px;position:relative}.ms-check.on{background:var(--accent);border-color:var(--accent)}.ms-check.on:after{content:"✓";color:#fff;font-size:10px;line-height:1;position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.dd-search{position:sticky;top:-4px;z-index:1;background:var(--card);padding:4px 4px 6px;margin:-4px -4px 2px;border-bottom:1px solid var(--line)}.dd-search-input{width:100%;box-sizing:border-box;padding:7px 26px 7px 10px;border:1px solid var(--line2);border-radius:7px;font-size:13px;color:var(--text);background:var(--bg2);outline:none}.dd-search-input:focus{border-color:var(--accent);background:var(--card)}.dd-search-clear{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:11px;line-height:1;padding:2px}.dd-search-clear:hover{color:var(--text)}.dd-empty{padding:10px;font-size:13px;color:var(--muted);text-align:center}.dd.cat{display:inline-block}.dd.cat .dd-trigger{padding:4px 10px;border-radius:6px;font-size:12px;font-weight:500}.dd.cat .dd-menu{min-width:168px}.form-grid .dd,.form-grid .dd-trigger{width:100%}.cal-time .dd-trigger{padding:6px 10px}.cal-menu{width:268px;padding:12px}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.cal-title{font-size:13px;font-weight:600}.cal-nav{background:transparent;border:none;color:var(--muted);font-size:18px;line-height:1;padding:2px 9px;border-radius:6px;cursor:pointer}.cal-nav:hover{background:var(--bg2);color:var(--text)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-dow{margin-bottom:4px}.cal-dow-cell{text-align:center;font-size:11px;color:var(--muted);padding:2px 0}.cal-day{background:transparent;border:none;border-radius:7px;padding:7px 0;font-size:13px;color:var(--text);cursor:pointer;font-variant-numeric:tabular-nums}.cal-day:hover{background:var(--bg2)}.cal-day.sel{background:var(--accent);color:#fff;font-weight:600}.cal-time{display:flex;align-items:center;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.cal-colon{margin:0 -2px}.modal.confirm{max-width:400px}.confirm-msg{font-size:14px;color:var(--text);margin:0 0 18px;line-height:1.5}.modal-actions button.danger{background:var(--neg);color:#fff;border:none;font-weight:600}.modal-actions button.danger:hover{filter:brightness(1.04)}.tx-time{display:block;font-size:11px;color:var(--muted);margin-top:2px}.tx-idr{display:block;font-size:11px;color:var(--muted);margin-top:2px;font-weight:400}.tx-idr-actual{color:var(--green, #1a7f5a);font-weight:600}.tx-idr-actual:after{content:" ✓";font-size:10px;opacity:.8}.modal.bulk{max-width:520px}.modal.bulk .modal-actions button:not(.ghost){background:var(--accent);color:#fff;border:none;font-weight:600}.modal.bulk .modal-actions button:not(.ghost):hover:not(:disabled){filter:brightness(1.06)}.solid-chip{display:inline-flex;align-items:center;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;background:var(--muted);white-space:nowrap}.bulk-tools{display:flex;align-items:center;justify-content:space-between;margin:4px 0 8px;font-size:13px}.link-btn{background:none;border:none;color:var(--accent-dark);font-weight:600;cursor:pointer;padding:0;font-size:13px}.link-btn:hover{text-decoration:underline}.bulk-list{max-height:280px;overflow-y:auto;border:1px solid var(--line);border-radius:10px}.bulk-item{display:grid;grid-template-columns:18px 78px 1fr auto auto;align-items:center;gap:10px;padding:9px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line)}.bulk-item:last-child{border-bottom:none}.bulk-item:hover{background:var(--bg2)}.bulk-item.on{background:color-mix(in srgb,var(--accent) 8%,transparent)}.bulk-item input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent)}.bulk-date{color:var(--muted);white-space:nowrap}.bulk-desc{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bulk-amt{font-variant-numeric:tabular-nums;white-space:nowrap}.bulk-future{display:flex;align-items:center;gap:9px;margin:14px 0 4px;font-size:13px;color:var(--text);cursor:pointer}.bulk-future input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent);flex:none}.bulk-mode{margin:6px 0 4px;color:var(--muted)}.bulk-kw{display:flex;align-items:center;gap:8px;margin:2px 0 10px;font-size:13px}.kw-input{padding:6px 10px;flex:1;max-width:220px}.kw-input:focus{outline:none;border-color:var(--accent)}@media(max-width:640px){.cards{grid-template-columns:1fr}.bar-row{grid-template-columns:100px 1fr auto;gap:8px}.budget-rows,.form-grid{grid-template-columns:1fr}}.rec-hint{color:var(--muted);font-size:13px;margin:0 0 16px;max-width:760px;line-height:1.5}.rec-form{padding:16px;margin-bottom:18px}.rec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px 16px}.rec-field{display:flex;flex-direction:column;gap:5px;min-width:0}.rec-field.rec-wide{grid-column:1 / -1}.rec-field>span{font-size:12px;font-weight:600;color:var(--muted)}.rec-field input[type=text],.rec-field input[type=month]{width:100%;box-sizing:border-box;padding:8px 10px;font-size:14px;border:1px solid var(--line2);border-radius:8px;background:var(--card);color:var(--text)}.rec-field input:focus{outline:none;border-color:var(--accent)}.rec-field .dd,.rec-field .dd-trigger{width:100%}.rec-form-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.rec-active{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);cursor:pointer}.rec-actions{display:flex;gap:8px}.rec-list{display:flex;flex-direction:column;gap:10px}.rec-card{display:flex;justify-content:space-between;align-items:center;gap:16px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px 16px}.rec-card.off{opacity:.6}.rec-card-main{min-width:0}.rec-card-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px}.rec-card-meta{color:var(--muted);font-size:12.5px;margin-top:4px}.rec-card-amt{text-align:right;flex:none}.rec-card-amt strong{font-size:16px;font-variant-numeric:tabular-nums}.rec-card-amt .debit{color:var(--neg)}.rec-card-amt .credit{color:var(--pos)}.rec-card-btns{display:flex;gap:12px;margin-top:6px;justify-content:flex-end}.rec-badge{font-size:10.5px;font-weight:600;color:var(--muted);background:var(--bg2);border-radius:6px;padding:2px 7px;text-transform:uppercase;letter-spacing:.04em}.danger-link{color:var(--neg)}@media(max-width:640px){.rec-grid{grid-template-columns:1fr}}.rule-group{margin-bottom:26px}.rule-group-head{display:flex;align-items:center;gap:8px;margin:24px 0 2px}.rule-group-head h3{font-size:15px;color:var(--text);font-weight:650;margin:0}.rule-group-help{font-size:12.5px;color:var(--muted);margin:0 0 10px;line-height:1.45;max-width:720px}.rule-tag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;border-radius:5px;padding:2px 7px;flex:none}.rule-tag.db{background:#e0f2fe;color:#0369a1}.rule-tag.code{background:#f3e8ff;color:#7e22ce}.rule-list{display:flex;flex-direction:column;gap:8px}.rule-row{display:flex;align-items:center;gap:12px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 14px}.rule-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;font-size:14px;color:var(--text);word-break:break-word;line-height:1.4}.rule-main b{font-weight:650}.rule-detail{font-size:12px;color:var(--muted);word-break:break-word}.rule-arrow{color:var(--muted);flex:none;font-size:15px}.rule-cat{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px;flex:none}.rule-del{flex:none;background:transparent;border:1px solid var(--line2);color:var(--neg);font-size:12px;font-weight:600;padding:5px 11px;border-radius:8px;cursor:pointer}.rule-del:hover{background:#fef2f4;border-color:var(--neg)}tr.tx-linger>td{background:#fffbeb}tr.tx-linger>td:first-child{box-shadow:inset 3px 0 #f59e0b}.linger-tag{display:inline-block;margin-left:8px;vertical-align:middle;font-size:10.5px;font-weight:600;color:#92660b;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;padding:1px 7px;white-space:nowrap}.split-tag{display:block;margin-top:3px;font-size:12px;color:var(--muted);line-height:1.4}.split-tag b{color:var(--text);font-weight:600}.ra-paid{color:var(--pos);font-weight:600}.ra-undo{color:var(--muted);font-weight:500}.paid-chip{display:inline-block;margin-left:8px;vertical-align:middle;font-size:10.5px;font-weight:600;color:var(--pos);background:#e7f6ef;border:1px solid #cfeede;border-radius:6px;padding:1px 7px;white-space:nowrap}.split-action{display:inline-block;margin-top:5px;padding:2px 9px;background:var(--bg2);border:1px dashed var(--line2);border-radius:7px;font-size:11.5px;font-weight:600;color:var(--accent-dark);cursor:pointer;transition:border-color .12s,background .12s}.split-action:hover{border-color:var(--accent);background:#eaf6f0}.split-action:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.split-undo{margin-left:8px;padding:0;background:none;border:none;font-size:12px;font-weight:500;color:var(--neg);cursor:pointer;text-decoration:underline}.split-modal{width:480px;max-width:calc(100vw - 32px)}.split-amt-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.split-amt-row .amt-field{width:150px;flex:none}.pct-field{display:inline-flex;align-items:center;gap:3px;width:72px;flex:none;background:var(--bg);border:1px solid var(--line2);border-radius:8px;padding:6px 10px}.pct-field:focus-within{border-color:var(--accent)}.pct-input{width:100%;min-width:0;border:none;background:transparent;padding:1px 0;text-align:right;font-variant-numeric:tabular-nums}.pct-input:focus{outline:none}.pct-suffix{color:var(--muted);font-size:13px}.formula-field{flex:1;min-width:110px;display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line2);border-radius:8px;background:var(--bg)}.formula-field:focus-within{border-color:var(--accent);background:var(--card)}.formula-field.bad{border-color:var(--neg)}.formula-icon{flex:none;font-family:Georgia,Times New Roman,serif;font-style:italic;font-size:15px;color:var(--accent-dark);line-height:1}.formula-input{flex:1;min-width:0;border:none;background:transparent;padding:1px 0;font-size:13px;color:var(--text);font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,monospace}.formula-input:focus{outline:none}.formula-input::placeholder{color:var(--muted);opacity:.6}.split-hint{margin-top:7px;font-size:11.5px;color:var(--muted);line-height:1.4;font-weight:400}.split-hint code{background:var(--bg2);border-radius:4px;padding:0 4px;font-size:11px}.split-summary{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}.split-summary b{color:var(--text);font-weight:650}.split-summary-rest b{color:var(--accent-dark)}.row-tools{display:inline-flex;gap:2px}.detail-tag{position:relative;display:flex;align-items:baseline;gap:6px;margin-top:3px;font-size:12px;color:var(--muted);line-height:1.35;max-width:420px}.detail-tag:before{content:"↳";opacity:.6;flex:none}.detail-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.detail-pop{position:absolute;left:16px;bottom:calc(100% + 4px);z-index:30;max-width:420px;width:max-content;padding:7px 10px;border-radius:8px;background:var(--text, #1f2937);color:#fff;font-size:12px;line-height:1.4;white-space:normal;box-shadow:0 6px 20px #0000002e;opacity:0;visibility:hidden;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease,visibility .12s;pointer-events:none}.detail-tag:hover .detail-pop{opacity:1;visibility:visible;transform:translateY(0)}.detail-count{color:var(--text);font-weight:600;margin-right:2px}.detail-pop-head{display:block;margin-bottom:5px;opacity:.75;font-size:11px;font-weight:600}.detail-pop-item{display:block;padding-left:12px;position:relative}.detail-pop-item+.detail-pop-item{margin-top:3px}.detail-pop-item:before{content:"•";position:absolute;left:2px;opacity:.6}.cc-section{margin-top:22px}.cc-section h2{font-size:15px;margin:0}.cc-head-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px}.cc-pull{background:var(--card);color:var(--accent-dark);border:1px solid var(--line2);font-size:13px;font-weight:600;padding:7px 12px;border-radius:9px}.cc-pull:hover:not(:disabled){border-color:var(--accent);background:#f0faf5}.cc-empty{font-size:13px;color:var(--muted);background:var(--card);border:1px dashed var(--line2, var(--line));border-radius:12px;padding:16px}.cc-cards{display:flex;flex-wrap:wrap;gap:12px}.cc-card{flex:0 1 280px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:3px;box-shadow:0 1px 3px #0f1f1a0a}.cc-card-label{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:500}.cc-card-value{font-size:24px;font-weight:650;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--accent-dark)}.cc-card-sub{font-size:12px;color:var(--muted)}.cc-card-foot{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-top:8px;flex-wrap:wrap}.cc-card-nums{font-size:11px;color:var(--muted);letter-spacing:.02em}.cc-card-upd{font-size:10.5px;color:var(--muted);opacity:.75}.cc-card--bill{border-color:#f0d8a6;background:#fffdf5}.cc-card--bill .cc-card-value{color:var(--warn)}.cc-card--bill .cc-due-rel{color:var(--warn);font-weight:600}.cc-card--bill.urgent{border-color:#f4c4c9;background:#fff8f7}.cc-card--bill.urgent .cc-card-value,.cc-card--bill.urgent .cc-due-rel{color:var(--neg)}.boot{padding:48px 16px;text-align:center;color:var(--muted);font-size:15px}.denied-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:24px}.denied-card{max-width:360px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:28px 22px;box-shadow:0 1px 3px #0f1f1a0a}.denied-card h1{font-size:19px;margin:0 0 10px;color:var(--neg)}.denied-card p{margin:0 0 8px;font-size:14px;color:var(--text);line-height:1.5}.denied-hint{color:var(--muted)!important;font-size:13px!important}.wife-wrap{max-width:560px;margin:0 auto;padding:18px 16px 40px;-webkit-tap-highlight-color:transparent}.wife-head h1{font-size:22px;margin:0 0 2px}.wife-head p{margin:0;color:var(--muted);font-size:14px}.wife-head-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wife-refresh{flex:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line2);background:var(--card);color:var(--accent-dark);font-size:18px;cursor:pointer}.wife-refresh:active{background:#f0faf5}.section-head-right{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.loan-filter{display:inline-flex;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px}.loan-filter button{border:none;background:none;padding:6px 13px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted);white-space:nowrap}.loan-filter button.on{background:var(--card);color:var(--accent-dark);box-shadow:0 1px 2px #0f1f1a14}.wife-filter{display:inline-flex;margin-top:14px;background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:3px;gap:3px}.wife-filter button{border:none;background:none;padding:7px 14px;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;color:var(--muted)}.wife-filter button.on{background:var(--card);color:var(--accent-dark);box-shadow:0 1px 2px #0f1f1a14}.wife-err{margin:14px 0 0;padding:11px 13px;border-radius:10px;font-size:13px;background:#fff1f2;border:1px solid #fbcfd4;color:#b4233a}.wife-wrap .cards{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.wife-wrap .card strong{font-size:18px}.wife-wrap .section-head{flex-wrap:wrap;gap:4px}.wife-wrap .table-card{overflow:visible}.wife-wrap table,.wife-wrap tbody{display:block;width:100%}.wife-wrap thead{display:none}.wife-wrap tbody tr{display:flex;align-items:center;gap:10px;padding:4px 12px;border-bottom:1px solid var(--line)}.wife-wrap tbody tr:last-child{border-bottom:none}.wife-wrap tbody td{display:block;border:none;padding:10px 0}.wife-wrap td.desc-cell{flex:1 1 auto;min-width:0;max-width:none}.wife-wrap .desc-text{font-size:13.5px;word-break:break-word}.wife-wrap td.amt{flex:0 0 auto;white-space:nowrap;font-size:13px}.wife-wrap td.right:last-child{flex:0 0 auto}.wife-note{font-size:12px;color:var(--muted);margin-top:2px}.wife-foot{margin-top:28px;text-align:center;font-size:12px;color:var(--muted)}.access-wrap{margin-top:22px;max-width:620px}.access-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px 22px 24px;box-shadow:0 1px 3px #0f1f1a0a}.access-card h2{font-size:16px;margin:0 0 6px}.access-desc{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0 0 16px}.access-link-row{display:flex;gap:8px}.access-link{flex:1 1 auto;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;padding:10px 12px;border:1px solid var(--line2);border-radius:9px;background:var(--card2);color:var(--text)}.access-copy{flex:none;padding:0 16px;border-radius:9px;border:1px solid var(--accent);background:var(--accent);color:#fff;font-size:13px;font-weight:600;cursor:pointer;white-space:nowrap}.access-copy:hover:not(:disabled){filter:brightness(1.04)}.access-copy:disabled{opacity:.5;cursor:default}.access-meta{font-size:12px;color:var(--muted);margin:8px 0 0}.access-sep{border:none;border-top:1px solid var(--line);margin:20px 0}.access-regen{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.access-regen strong{font-size:14px}.access-regen .access-meta{margin-top:2px}.access-regen-btn{flex:none;padding:8px 14px;border-radius:9px;border:1px solid var(--line2);background:var(--card);color:var(--text);font-size:13px;font-weight:600;cursor:pointer}.access-regen-btn:hover:not(:disabled){border-color:var(--accent);background:#f0faf5}.access-regen-btn.danger{border-color:var(--neg);color:#fff;background:var(--neg)}.access-regen-btn.danger:hover:not(:disabled){filter:brightness(1.04)}.access-confirm{background:#fff7f7;border:1px solid #f4c4c9;border-radius:11px;padding:14px 16px}.access-confirm p{font-size:13px;color:var(--text);line-height:1.5;margin:0 0 12px}.access-confirm-actions{display:flex;gap:10px;align-items:center}.access-cancel{background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;padding:6px 4px}.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.date-sep{display:none}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;background:#0f1f1a6b;animation:sheet-fade .18s ease-out}.tx-sheet{position:fixed;left:0;right:0;bottom:0;z-index:71;background:var(--card);border-radius:18px 18px 0 0;padding:8px 20px calc(16px + env(safe-area-inset-bottom));box-shadow:0 -10px 44px #0003;max-height:82vh;overflow-y:auto;-webkit-overflow-scrolling:touch;animation:sheet-up .22s ease-out}@keyframes sheet-up{0%{transform:translateY(48px);opacity:.4}to{transform:none;opacity:1}}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}.sheet-grip{width:38px;height:4px;border-radius:2px;background:var(--line2);margin:6px auto 14px}.sheet-title{font-size:15.5px;font-weight:650;line-height:1.35;word-break:break-word}.sheet-amount{font-size:21px;font-weight:650;margin-top:6px;font-variant-numeric:tabular-nums}.sheet-amount.credit{color:var(--pos)}.sheet-idr{display:block;font-size:12.5px;font-weight:500;color:var(--muted);margin-top:2px}.sheet-meta{font-size:12.5px;color:var(--muted);margin-top:6px;line-height:1.5}.sheet-note{margin-top:12px;font-size:13px;line-height:1.5;background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:9px 12px}.sheet-detail{margin-top:12px;background:var(--card2);border:1px solid var(--line);border-radius:9px;padding:6px 12px;max-height:170px;overflow-y:auto}.sheet-detail-item{font-size:12.5px;line-height:1.5;padding:4px 0;border-bottom:1px solid var(--line)}.sheet-detail-item:last-child{border-bottom:none}.sheet-actions{margin-top:16px;display:flex;flex-direction:column;gap:9px}.sheet-btn{width:100%;padding:13px;border-radius:11px;font-size:15px;font-weight:600;border:1px solid var(--line2);background:var(--card2);color:var(--text);cursor:pointer}.sheet-btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.sheet-btn.danger{background:#fff1f2;border-color:#fbcfd4;color:#b4233a}.sheet-btn.plain{background:none;border:none;color:var(--muted);font-weight:500;padding:10px}.filter-mbar{display:none}.filter-btn{flex:none;display:inline-flex;align-items:center;gap:7px;padding:10px 16px;border-radius:10px;font-size:14px;font-weight:600;background:var(--card);border:1px solid var(--line2);color:var(--text);cursor:pointer}.filter-btn.on{border-color:var(--accent);color:var(--accent-dark)}.filter-badge{min-width:19px;height:19px;border-radius:10px;padding:0 5px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700}.fsheet-group{margin-top:13px}.fsheet-label{display:block;font-size:12px;font-weight:650;color:var(--muted);margin-bottom:6px}.tx-sheet .tb-filter,.tx-sheet .dd,.tx-sheet .tb-filter .dd-trigger{width:100%}.tx-sheet .segmented{display:flex;width:100%}.tx-sheet .segmented button{flex:1;padding:10px;font-size:14px}.tx-sheet .amount-range{display:flex;width:100%}.tx-sheet .amt-field{flex:1 1 0;width:auto;min-width:0}.tx-sheet .date-range{display:flex;margin-top:8px;width:100%}.tx-sheet .date-range input{flex:1 1 0;min-width:0}.toast-wrap{bottom:calc(24px + env(safe-area-inset-bottom))}.batch-bar{bottom:calc(22px + env(safe-area-inset-bottom))}@media(hover:none){.row-actions{opacity:1;pointer-events:auto}.desc-cell.has-actions .desc-stack{transform:none}.bar-go{opacity:1;transform:none}.bar-row.clickable:active{background:var(--bg2)}.detail-pop{display:none}.detail-text{white-space:normal}.budget-amount{text-decoration:underline dotted var(--muted);text-underline-offset:3px}}@media(pointer:coarse){.loan-toggle{padding:10px 12px}.icon-btn{padding:9px 11px;font-size:15px}.row-tools{gap:10px}.ra-btn{padding:8px 2px}.row-actions{column-gap:18px}.search-clear,.dd-search-clear{width:32px;height:32px}.dd-option{padding:12px 10px}.cal-day{padding:11px 0}.cal-nav{padding:8px 12px}.modal-actions button{padding:12px 18px}.loan-filter button,.wife-filter button{padding:10px 13px}.note-cell{padding:8px 6px}.split-action{padding:7px 11px}.split-undo{padding:6px 8px}.bar-row.clickable{padding:10px 8px;margin:-2px -8px;border-radius:8px}.rec-card-btns .link-btn{padding:8px 4px}.side-nav button{min-height:44px}}@media(max-width:860px){.controls{flex-wrap:wrap;row-gap:8px}.side-badge{display:none}}@media(max-width:640px){.sync-ago{display:none}input,select,textarea,.search,.amt-input,.note-input,.row-note-input,.dd-search-input,.batch-note input,.formula-input,.pct-input,.kw-input,.budget-edit input,.access-link,.rec-field input[type=text],.rec-field input[type=month]{font-size:16px}.tx-filters{position:static}.filter-body{display:none}.filter-mbar{display:flex;gap:9px;align-items:stretch}.filter-mbar .search-wrap{flex:1 1 auto;min-width:0}.tb-filter{flex:1 1 calc(50% - 5px);min-width:0}.search{min-width:0}.amount-range{flex:1 1 100%;min-width:0}.amt-field{width:auto;flex:1 1 0;min-width:0}.amt-input{width:60px}.detail-pop{display:none}.detail-text{white-space:normal}.dd-menu{max-width:min(320px,calc(100vw - 24px))}.dd-option{white-space:normal}.table-card.tx-table{background:none;border:none;box-shadow:none}.tx-table table,.tx-table tbody{display:block;width:100%}.tx-table thead{display:none}.tx-table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px 12px;padding:13px 16px;background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 2px #0f1f1a0d;margin-bottom:9px;transition:transform .08s ease,box-shadow .08s ease}.tx-table tbody tr:active{transform:scale(.982);background:var(--card2)}.tx-table tr.tx-child,.tx-table .split-undo{display:none}.tx-table tbody td{display:block;border:none;padding:0}.tx-table td.desc-cell{grid-column:1;grid-row:1;height:auto;max-width:none;min-width:0}.tx-table .desc-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14.5px;line-height:1.4}.tx-table .split-tag,.tx-table .row-note-btn,.tx-table .detail-tag,.tx-table .paid-chip,.tx-table .linger-tag{display:none}.tx-table tr:has(.detail-tag) td.nowrap:after{content:" · 🧾"}.tx-table tr:has(.row-note-btn) td.nowrap:after{content:" · 📝"}.tx-table tr:has(.split-tag) td.nowrap:after{content:" · ✂ dipecah"}.tx-table tr:has(.paid-chip) td.nowrap:before{content:"✓ ";color:var(--pos);font-weight:700}.tx-table td.right.debit,.tx-table td.right.credit{grid-column:2 / 4;grid-row:1;text-align:right;white-space:nowrap;align-self:start}.tx-table td.nowrap{grid-column:1;grid-row:2;font-size:12px;min-width:0;overflow:hidden;text-overflow:ellipsis}.tx-table td:nth-child(4){grid-column:2;grid-row:2;justify-self:end}.tx-table td:nth-child(6){grid-column:3;grid-row:2;justify-self:end}.tx-table td.src-cell{display:none}.tx-table .tx-time{display:inline;margin:0 0 0 4px}.tx-table .tx-time:before{content:"· "}.tx-table.by-date .tx-date{display:none}.tx-table.by-date .tx-time{margin:0}.tx-table.by-date .tx-time:before{content:none}.tx-table tbody tr.date-sep{display:block;position:sticky;top:0;z-index:5;padding:10px 4px 8px;margin:4px 0 2px;background:var(--bg);border:none;border-radius:0;box-shadow:none;font-size:11px;font-weight:650;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.tx-table tbody tr.date-sep:active{transform:none;background:var(--bg)}.tx-table .empty-cell{display:block;grid-column:1 / -1;padding:18px 4px}.tx-table .tx-idr{display:inline;margin-left:6px;font-size:11.5px}.tx-table .dd.cat .dd-trigger{background:none;border:none;padding:4px 0;font-size:12px;color:var(--muted)}.tx-table .dd.cat .dd-caret,.tx-table .row-actions{display:none}.tx-table .desc-cell.has-actions .desc-stack{transform:none}.tx-table .split-tag,.tx-table .row-note-btn{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px}.tx-table .detail-tag{display:block;max-width:100%;overflow:hidden}.tx-table .detail-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content .table-card.loan-table{background:none;border:none;box-shadow:none}.content .loan-table table,.content .loan-table tbody{display:block;width:100%}.content .loan-table thead{display:none}.content .loan-table tbody tr{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:5px 10px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:13px;box-shadow:0 1px 2px #0f1f1a0d;margin-bottom:9px}.content .loan-table tbody tr{transition:transform .08s ease}.content .loan-table tbody tr:active{transform:scale(.982);background:var(--card2)}.content .loan-table tbody td{display:block;border:none;padding:0}.content .loan-table td.check-col{display:none}.content .loan-table .note-input{width:100%;min-width:0}.content .loan-table td.desc-cell{grid-column:1 / 3;grid-row:1;height:auto;max-width:none;min-width:0}.content .loan-table .desc-text{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:14.5px;line-height:1.4}.content .loan-table td.amt{grid-column:3;grid-row:1;text-align:right;white-space:nowrap}.content .loan-table td.nowrap{grid-column:1;grid-row:2;font-size:12px;padding:0}.content .loan-table td:nth-child(4){grid-column:2;grid-row:2;min-width:0;overflow:hidden}.content .loan-table td.right:last-child{grid-column:3;grid-row:2;justify-self:end}.content .loan-table .note-cell{display:block;max-width:100%;padding:0;border:none;background:none;font-size:12px;color:var(--muted);text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.content .loan-table .note-cell.add-note,.content .loan-table .split-action,.content .loan-table .split-undo,.content .loan-table .split-tag{display:none}.content .loan-table tr:has(.split-tag) td.nowrap:after{content:" · ✂"}.loan-cards{grid-template-columns:1fr 1fr!important;gap:10px}.loan-cards .add-card{grid-column:1 / -1}.loan-cards .card strong{font-size:18px}.batch-bar{left:8px;right:8px;transform:none;max-width:none;bottom:calc(8px + env(safe-area-inset-bottom))}.batch-note{flex:1 1 100%}.batch-note input{flex:1;min-width:0}.modal-backdrop{padding:16px 12px 24px}.bulk-item{grid-template-columns:18px 1fr auto}.bulk-item .bulk-date{display:none}.bulk-item .solid-chip{grid-column:2;justify-self:start}.bulk-item .bulk-amt{grid-column:3}.rec-card{flex-direction:column;align-items:stretch;gap:6px}.rec-card-amt{display:flex;justify-content:space-between;align-items:center;text-align:left}.rec-card-btns{justify-content:flex-start}.rule-row{flex-wrap:wrap;row-gap:6px}.rule-main{flex:1 1 100%}.rule-arrow{display:none}.rule-del{margin-left:auto;padding:8px 12px}.table-scroll td.muted{word-break:break-all}.hint-shift{display:none}}
