:root{--bg: #F4F2EC;--surface: #FBFAF6;--surface-alt: #EFEDE5;--surface-recessed: #ECEAE2;--border: rgba(40, 55, 40, .08);--border-strong: rgba(40, 55, 40, .14);--border-stronger: rgba(40, 55, 40, .22);--text: #16241B;--text-sec: rgba(22, 36, 27, .65);--text-ter: rgba(22, 36, 27, .45);--text-quat: rgba(22, 36, 27, .3);--accent: #0F6B3F;--accent-hover: #0C5933;--accent-text: #F4FBEF;--accent-soft: rgba(15, 107, 63, .12);--accent-soft-strong: rgba(15, 107, 63, .2);--accent-soft-text: #0B4E2D;--danger: #A8412B;--danger-soft: rgba(168, 65, 43, .12);--danger-soft-text: #7A2D1D;--warn: #8A6A1F;--warn-soft: rgba(138, 106, 31, .12);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-7: 32px;--sp-8: 40px;--sp-9: 48px;--r-1: 4px;--r-2: 6px;--r-3: 8px;--r-4: 12px;--shadow-card: 0 1px 0 rgba(40, 55, 40, .04), 0 1px 2px rgba(40, 55, 40, .04);--shadow-pop: 0 8px 24px rgba(40, 55, 40, .1), 0 2px 6px rgba(40, 55, 40, .06);--shadow-modal: 0 20px 60px rgba(20, 30, 22, .22), 0 4px 12px rgba(20, 30, 22, .1);--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SFMono-Regular", "Menlo", monospace;--sidebar-w: 240px;--topbar-h: 56px;--max-content: 1440px;--row-h: 40px;--row-pad-y: 10px;--table-font: 13px}[data-density=compact]{--row-h: 32px;--row-pad-y: 6px;--table-font: 12px}[data-theme=dark]{--bg: #0F1612;--surface: #16201B;--surface-alt: #1B2620;--surface-recessed: #121B16;--border: rgba(220, 230, 220, .06);--border-strong: rgba(220, 230, 220, .1);--border-stronger: rgba(220, 230, 220, .18);--text: #E8EFE6;--text-sec: rgba(232, 239, 230, .65);--text-ter: rgba(232, 239, 230, .45);--text-quat: rgba(232, 239, 230, .28);--accent: #4BA774;--accent-hover: #5DBA86;--accent-text: #07150C;--accent-soft: rgba(75, 167, 116, .16);--accent-soft-strong: rgba(75, 167, 116, .26);--accent-soft-text: #B7E5C8;--danger: #D27764;--danger-soft: rgba(210, 119, 100, .18);--danger-soft-text: #ECB7AA;--shadow-card: 0 1px 0 rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-pop: 0 8px 24px rgba(0, 0, 0, .45), 0 2px 6px rgba(0, 0, 0, .25);--shadow-modal: 0 20px 60px rgba(0, 0, 0, .6), 0 4px 12px rgba(0, 0, 0, .3)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-sans);font-size:14px;line-height:1.45;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv11","ss01","ss03"}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover)}.mono,.num{font-family:var(--font-mono);font-feature-settings:"tnum","zero";font-variant-numeric:tabular-nums}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;border-right:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;padding:18px 0 12px}.sb-logo{display:flex;align-items:center;gap:10px;padding:0 18px 18px;border-bottom:1px solid var(--border)}.sb-logo-mark{width:28px;height:28px;border-radius:7px;background:var(--accent);display:grid;place-items:center;color:var(--accent-text);font-weight:700;font-size:13px;letter-spacing:-.02em}.sb-logo-text{display:flex;flex-direction:column;line-height:1.1}.sb-logo-text b{font-size:13.5px;letter-spacing:-.01em}.sb-logo-text span{font-size:11px;color:var(--text-ter)}.sb-nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:1px}.sb-section-label{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);padding:14px 10px 6px}.sb-item{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-2);color:var(--text-sec);font-size:13px;font-weight:500;width:100%;text-align:left;transition:background .08s,color .08s}.sb-item:hover{background:var(--surface-alt);color:var(--text)}.sb-item.active{background:var(--accent-soft);color:var(--accent-soft-text);font-weight:600}[data-theme=dark] .sb-item.active{color:var(--accent-soft-text)}.sb-item .ico{width:16px;height:16px;flex:0 0 16px;opacity:.8}.sb-item.active .ico{opacity:1}.sb-item .sb-badge{margin-left:auto;font-size:10px;background:var(--accent-soft);color:var(--accent-soft-text);padding:1px 6px;border-radius:999px;font-weight:600}.sb-sub{display:flex;flex-direction:column;gap:1px;padding-left:26px;margin-top:1px}.sb-sub .sb-item{font-size:12.5px;padding:5px 10px}.sb-period{margin:8px 14px;padding:10px 12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--r-3)}.sb-period-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);margin-bottom:4px}.sb-period-value{font-size:13px;font-weight:600;color:var(--text)}.sb-period-sub{font-size:11.5px;color:var(--text-sec);margin-top:2px}.sb-user{display:flex;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--border)}.sb-avatar{width:28px;height:28px;border-radius:50%;background:var(--surface-alt);display:grid;place-items:center;font-size:11px;font-weight:600;color:var(--text-sec);border:1px solid var(--border-strong)}.sb-user-info{flex:1;line-height:1.2}.sb-user-info b{font-size:12.5px;display:block}.sb-user-info span{font-size:11px;color:var(--text-ter)}.main{min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);background:#f4f2ecd9;-webkit-backdrop-filter:saturate(140%) blur(8px);backdrop-filter:saturate(140%) blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:16px}[data-theme=dark] .topbar{background:#0f1612d9}.topbar-title{font-size:14px;font-weight:600;letter-spacing:-.01em;display:flex;align-items:center;gap:10px}.topbar-title .crumb-sep{color:var(--text-quat)}.topbar-title .crumb-prev{color:var(--text-sec);font-weight:500}.topbar-spacer{flex:1}.topbar-actions{display:flex;align-items:center;gap:8px}.kbd-hint{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border-strong);border-radius:var(--r-2);background:var(--surface);color:var(--text-sec);font-size:12px}.kbd{font-family:var(--font-mono);font-size:11px;background:var(--surface-alt);padding:1px 5px;border-radius:3px;color:var(--text-sec)}.icon-btn{width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-2);color:var(--text-sec);position:relative}.icon-btn:hover{background:var(--surface-alt);color:var(--text)}.icon-btn .dot{position:absolute;top:6px;right:7px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.content{padding:28px 28px 80px;max-width:var(--max-content);width:100%;margin:0 auto}.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:24px;gap:16px}.page-title{font-size:22px;font-weight:600;letter-spacing:-.018em}.page-sub{color:var(--text-sec);font-size:13px;margin-top:2px}.page-actions{display:flex;gap:8px;align-items:center}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-2);font-size:13px;font-weight:500;color:var(--text);transition:background .08s,border-color .08s;white-space:nowrap}.btn:hover{background:var(--surface-alt);border-color:var(--border-stronger)}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--surface-alt)}.btn.sm{padding:4px 9px;font-size:12px}.btn:disabled{opacity:.4;cursor:not-allowed}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-card)}.card-pad{padding:18px 20px}.card-hd{display:flex;align-items:center;justify-content:space-between;padding:14px 20px;border-bottom:1px solid var(--border);gap:12px}.card-hd h3{margin:0;font-size:13px;font-weight:600;letter-spacing:-.005em}.card-hd .hd-meta{font-size:12px;color:var(--text-sec)}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.kpi{position:relative;padding:16px 18px 14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-card);transition:border-color .1s}.kpi:hover{border-color:var(--border-strong)}.kpi:hover .kpi-link{opacity:1;transform:translate(0)}.kpi-label{font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);margin-bottom:8px}.kpi-value{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:28px;font-weight:600;letter-spacing:-.02em;color:var(--text);line-height:1.1}.kpi-value .ccy{font-size:13px;color:var(--text-ter);margin-right:5px;font-weight:500}.kpi-meta{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--text-sec)}.delta{display:inline-flex;align-items:center;gap:3px;font-weight:500}.delta.up{color:var(--accent)}.delta.down{color:var(--danger)}.delta-arrow{font-size:10px}.kpi-link{position:absolute;right:16px;bottom:14px;font-size:12px;color:var(--accent);opacity:0;transform:translate(-4px);transition:opacity .15s,transform .15s;pointer-events:none}.kpi:hover .kpi-link{pointer-events:auto}.kpi.muted .kpi-value{color:var(--text-sec)}.chart-wrap{padding:6px 8px 8px 4px}.range-picker{display:flex;gap:2px;background:var(--surface-alt);border-radius:var(--r-2);padding:2px}.range-picker button{padding:4px 10px;font-size:12px;font-weight:500;border-radius:4px;color:var(--text-sec)}.range-picker button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #0000000d}.legend{display:flex;gap:14px;font-size:12px}.legend-item{display:inline-flex;align-items:center;gap:6px;color:var(--text-sec)}.legend-swatch{width:10px;height:2px;border-radius:2px}.chart-svg{display:block;width:100%;height:280px}.chart-svg .grid line{stroke:var(--border);stroke-dasharray:2 3}.chart-svg .axis text{font-size:11px;fill:var(--text-ter);font-family:var(--font-mono)}.chart-svg .line{fill:none;stroke-width:1.75}.chart-svg .line.revenue{stroke:var(--accent)}.chart-svg .line.expenses{stroke:var(--danger);opacity:.85}.chart-svg .line.profit{stroke:var(--text);opacity:.55;stroke-dasharray:4 3}.chart-svg .dot{stroke:var(--surface);stroke-width:2}.chart-svg .dot.revenue{fill:var(--accent)}.chart-svg .dot.expenses{fill:var(--danger)}.chart-svg .dot.profit{fill:var(--text);opacity:.7}.chart-svg .guide{stroke:var(--border-stronger);stroke-dasharray:3 3}.chart-tooltip{position:absolute;pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-3);box-shadow:var(--shadow-pop);padding:10px 12px;font-size:12px;min-width:200px}.chart-tooltip .tt-month{font-weight:600;margin-bottom:6px;font-size:12.5px}.chart-tooltip .tt-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:2px 0}.chart-tooltip .tt-label{display:inline-flex;align-items:center;gap:6px;color:var(--text-sec)}.chart-tooltip .tt-val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.tx-list-row{display:grid;grid-template-columns:80px 24px 110px 1fr 130px 38px;align-items:center;gap:12px;padding:9px 20px;border-top:1px solid var(--border);font-size:13px;cursor:pointer;transition:background .08s}.tx-list-row:first-of-type{border-top:none}.tx-list-row:hover{background:var(--surface-alt)}.tx-list-row .tx-date{color:var(--text-sec);font-family:var(--font-mono);font-size:12px}.tx-list-row .tx-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;background:var(--surface-alt);color:var(--text-sec)}.tx-list-row .tx-icon.in{background:var(--accent-soft);color:var(--accent-soft-text)}.tx-list-row .tx-icon.out{background:var(--danger-soft);color:var(--danger-soft-text)}.tx-list-row .tx-cat{color:var(--text-sec);font-size:12px;font-weight:500}.tx-list-row .tx-desc{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-list-row .tx-amt{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:500}.tx-list-row .tx-amt.neg{color:var(--danger)}.tx-list-row .tx-cur{font-size:10px;color:var(--text-ter);display:block;font-weight:500}.tx-list-row .tx-arrow{color:var(--text-quat)}.reminder{display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-top:1px solid var(--border);cursor:pointer;transition:background .08s}.reminder:first-child{border-top:none}.reminder:hover{background:var(--surface-alt)}.reminder-dot{width:6px;height:6px;border-radius:50%;margin-top:7px;background:var(--warn);flex:0 0 6px}.reminder-dot.urgent{background:var(--danger)}.reminder-body{flex:1}.reminder-title{font-size:13px;font-weight:500;margin-bottom:1px}.reminder-sub{font-size:11.5px;color:var(--text-sec)}.reminder-arrow{color:var(--text-quat);align-self:center}.balance-mini{display:flex;flex-direction:column;gap:4px;padding:16px 20px}.balance-mini-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);font-weight:600}.balance-mini-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;letter-spacing:-.01em}.balance-mini-foot{font-size:11.5px;color:var(--text-ter);margin-top:2px}.filter-bar{position:sticky;top:var(--topbar-h);z-index:20;background:var(--bg);padding:12px 0;margin:-28px 0 0;border-bottom:1px solid var(--border)}.filter-bar.scrolled{background:#f4f2ecf2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}[data-theme=dark] .filter-bar.scrolled{background:#0f1612f2}.filter-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:14px}.filter{display:inline-flex;align-items:center;gap:6px;padding:6px 10px 6px 12px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-2);font-size:12.5px;color:var(--text);font-weight:500;cursor:pointer;transition:background .08s,border-color .08s}.filter:hover{background:var(--surface-alt);border-color:var(--border-stronger)}.filter .filter-label{color:var(--text-ter);font-weight:400}.filter.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-soft-text)}.filter.active .filter-label{color:var(--accent-soft-text);opacity:.7}.filter .chev{color:var(--text-ter);margin-left:2px}.filter-search{flex:1;min-width:200px;display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-2)}.filter-search input{border:none;outline:none;background:transparent;flex:1;font-size:13px}.filter-search .ico{color:var(--text-ter)}.active-filters{display:flex;flex-wrap:wrap;gap:6px;padding-top:10px;align-items:center}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 4px 3px 8px;background:var(--accent-soft);border-radius:4px;font-size:11.5px;font-weight:500;color:var(--accent-soft-text)}.chip button{width:14px;height:14px;display:grid;place-items:center;border-radius:3px;color:var(--accent-soft-text);opacity:.7}.chip button:hover{background:var(--accent-soft-strong);opacity:1}.chip-clear{color:var(--text-sec);font-size:11.5px;padding:3px 6px;border-radius:4px}.chip-clear:hover{background:var(--surface-alt)}.result-summary{display:flex;align-items:center;justify-content:space-between;padding:12px 0 14px;font-size:12.5px;color:var(--text-sec)}.result-summary b{color:var(--text);font-weight:600}.result-summary .mono{color:var(--text)}.dropdown{position:absolute;z-index:50;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-3);box-shadow:var(--shadow-pop);padding:4px;min-width:200px;max-height:320px;overflow-y:auto}.dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:13px;border-radius:4px;width:100%;text-align:left}.dropdown-item:hover{background:var(--surface-alt)}.dropdown-item.active{background:var(--accent-soft);color:var(--accent-soft-text)}.dropdown-item .check{width:14px;height:14px;display:grid;place-items:center;border-radius:3px;border:1px solid var(--border-stronger);flex:0 0 14px}.dropdown-item.checked .check{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.dropdown-divider{height:1px;background:var(--border);margin:4px 0}.table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);overflow:hidden;box-shadow:var(--shadow-card)}table.t{width:100%;border-collapse:collapse;font-size:var(--table-font)}.t th{font-weight:600;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--text-ter);padding:10px 12px;text-align:left;background:var(--surface-alt);border-bottom:1px solid var(--border);white-space:nowrap;position:sticky;top:0;z-index:1}.t th.right{text-align:right}.t td{padding:var(--row-pad-y) 12px;border-bottom:1px solid var(--border);vertical-align:middle}.t tr:last-child td{border-bottom:none}.t tr.row{transition:background .08s;cursor:pointer}.t tr.row:hover{background:var(--surface-alt)}.t tr.row.locked{color:var(--text-ter)}.t tr.row.adjustment td:first-child{box-shadow:inset 3px 0 0 var(--accent)}.t .num,.t .right{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.t .neg{color:var(--danger)}.t .pos{color:var(--accent)}.t .muted{color:var(--text-sec)}.type-ico{width:18px;height:18px;display:inline-grid;place-items:center;border-radius:4px;background:var(--surface-alt);color:var(--text-sec)}.type-ico.in{background:var(--accent-soft);color:var(--accent-soft-text)}.type-ico.out{background:var(--danger-soft);color:var(--danger-soft-text)}.type-ico.mov{background:#2837280f;color:var(--text-sec)}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 6px;border-radius:3px;font-size:10.5px;font-weight:600;letter-spacing:.04em;background:var(--surface-alt);color:var(--text-sec)}.badge.late{background:var(--warn-soft);color:var(--warn)}.badge.owner{background:var(--accent-soft);color:var(--accent-soft-text)}.badge.lkr{background:var(--surface-alt);color:var(--text-sec)}.badge.usd{background:#1f648a1a;color:#1f648a}.badge.eur{background:#3c46821a;color:#3c4682}.badge.cash,.badge.card,.badge.transfer,.badge.internet,.badge.closed{background:var(--surface-alt);color:var(--text-sec)}.badge.open{background:var(--accent-soft);color:var(--accent-soft-text)}.badge.reopened{background:var(--warn-soft);color:var(--warn)}.badge.implied{background:var(--surface-alt);color:var(--text-ter)}.badge.manual{background:var(--surface-alt);color:var(--text-sec)}[data-theme=dark] .badge.usd{background:#78b4dc29;color:#9ec7e0}[data-theme=dark] .badge.eur{background:#96a0dc29;color:#b3bce0}.lock-col{width:28px}.lock-icon{width:22px;height:22px;display:grid;place-items:center;border-radius:4px;color:var(--text-quat);position:relative}.lock-icon:hover{background:var(--surface-alt);color:var(--text-sec)}.tooltip{position:absolute;z-index:60;background:var(--text);color:var(--bg);font-size:11.5px;padding:5px 9px;border-radius:var(--r-2);white-space:nowrap;pointer-events:none;box-shadow:var(--shadow-pop)}.sticky-totals{position:sticky;bottom:0;z-index:10;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--r-3);margin-top:12px;padding:12px 16px;display:flex;align-items:center;gap:28px;box-shadow:0 -2px 12px #0000000a,var(--shadow-card)}.totals-cell{display:flex;flex-direction:column;gap:1px;min-width:120px}.totals-cell-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);font-weight:600}.totals-cell-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.totals-cell-value.pos{color:var(--accent)}.totals-cell-value.neg{color:var(--danger)}.t td.editing input,.t td.editing select{width:100%;padding:4px 6px;border:1px solid var(--accent);border-radius:3px;background:var(--surface);outline:2px solid var(--accent-soft);font:inherit}.edit-pulse{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin-left:6px;animation:pulse 1.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}.edit-saved{display:inline-block;width:12px;height:12px;margin-left:6px;color:var(--accent);animation:fadeOut 1.6s ease-in forwards}@keyframes fadeOut{0%{opacity:1}60%{opacity:1}to{opacity:0}}.edit-mark{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--text-quat);margin-left:5px;vertical-align:middle}.edit-mark:hover{background:var(--text-sec)}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:22px}.tab{padding:10px 14px;font-size:13px;font-weight:500;color:var(--text-sec);border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.period-layout{display:grid;grid-template-columns:1fr 380px;gap:18px}.period-detail{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);box-shadow:var(--shadow-card);position:sticky;top:calc(var(--topbar-h) + 12px);height:fit-content}.period-detail-hd{padding:16px 20px;border-bottom:1px solid var(--border)}.period-detail-hd h3{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.period-detail-hd .sub{font-size:12px;color:var(--text-sec);margin-top:2px}.period-detail-body{padding:16px 20px}.period-detail-body .stat{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}.period-detail-body .stat:last-child{border-bottom:none}.period-detail-body .stat .num{font-weight:500}.breakdown-row{display:grid;grid-template-columns:1fr 120px 60px;align-items:center;gap:8px;font-size:12.5px;padding:5px 0}.breakdown-row .lbl{color:var(--text-sec)}.breakdown-row .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.breakdown-row .pct{color:var(--text-ter);text-align:right;font-size:11px}.breakdown-bar{position:relative;height:3px;background:var(--surface-alt);border-radius:2px;margin:4px 0 8px;overflow:hidden}.breakdown-bar-fill{position:absolute;top:0;left:0;bottom:0;background:var(--accent);border-radius:2px}.breakdown-bar-fill.expense{background:var(--danger);opacity:.75}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#141e1666;z-index:100;display:grid;place-items:center;padding:40px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-modal);width:100%;max-width:720px;max-height:calc(100vh - 80px);display:flex;flex-direction:column;border:1px solid var(--border-strong)}.modal-hd{padding:18px 24px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.modal-hd h2{margin:0;font-size:16px;font-weight:600;letter-spacing:-.01em}.modal-hd .sub{font-size:12px;color:var(--text-sec);margin-top:2px}.modal-body{padding:22px 24px;overflow-y:auto;flex:1}.modal-ft{padding:14px 24px;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px}.stepper{display:flex;align-items:center;gap:0;padding:0 0 6px}.stepper-item{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.stepper-num{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:600;background:var(--surface-alt);color:var(--text-sec);flex:0 0 22px}.stepper-item.active .stepper-num{background:var(--accent);color:var(--accent-text)}.stepper-item.done .stepper-num{background:var(--accent-soft);color:var(--accent-soft-text)}.stepper-label{font-size:12px;color:var(--text-sec);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stepper-item.active .stepper-label,.stepper-item.done .stepper-label{color:var(--text);font-weight:500}.stepper-bar{flex:1;height:1px;background:var(--border-strong);margin:0 12px}.stepper-item.done+.stepper-item .stepper-bar,.stepper-item.done .stepper-bar{background:var(--accent-soft-strong)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.form-row.single{grid-template-columns:1fr}.field-label{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-ter);margin-bottom:6px;display:block}.field-input{width:100%;padding:8px 10px;border:1px solid var(--border-strong);background:var(--surface);border-radius:var(--r-2);font-size:13px;outline:none;transition:border-color .08s,box-shadow .08s}.field-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.field-input.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.field-help{font-size:11.5px;color:var(--text-ter);margin-top:4px}textarea.field-input{resize:vertical;min-height:70px;font-family:inherit}.payout-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.payout-card{border:1px solid var(--border-strong);border-radius:var(--r-3);padding:16px;background:var(--surface-alt)}.payout-card .who{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--text-ter);margin-bottom:6px}.payout-card .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;letter-spacing:-.01em}.payout-card .pct{font-size:12px;color:var(--text-sec);margin-top:4px}.balance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.balance-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-4);padding:22px 26px;box-shadow:var(--shadow-card)}.balance-card.owner{border-left:3px solid var(--accent)}.balance-card .who{font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:600;color:var(--text-ter);margin-bottom:8px}.balance-card .amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:32px;font-weight:600;letter-spacing:-.02em;line-height:1.05}.balance-card .ccy{font-size:14px;color:var(--text-ter);margin-right:6px;font-weight:500}.balance-card .meta{font-size:12.5px;color:var(--text-sec);margin-top:8px}.drawer-detail-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}.drawer-curr{border:1px solid var(--border);border-radius:var(--r-3);padding:12px 14px}.drawer-curr-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.drawer-curr-hd .lbl{font-size:11px;font-weight:600;letter-spacing:.05em;color:var(--text-ter);text-transform:uppercase}.drawer-line{display:flex;justify-content:space-between;align-items:baseline;padding:3px 0;font-size:12.5px}.drawer-line .lbl{color:var(--text-sec)}.drawer-line .num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.drawer-line.diff{padding-top:6px;border-top:1px solid var(--border);margin-top:6px;font-weight:600;font-size:13px}.drawer-line.diff .num.neg{color:var(--danger)}.drawer-line.diff .num.pos{color:var(--accent)}.cum-card{display:grid;grid-template-columns:1fr 1fr 1fr;gap:24px;padding:16px 22px}.cum-cell .lbl{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);font-weight:600}.cum-cell .val{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:20px;font-weight:600;margin-top:4px}.cum-cell .val.neg{color:var(--danger)}.cum-cell .sub{font-size:12px;color:var(--text-sec);margin-top:2px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.settings-card{display:block;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-3);padding:18px 20px;cursor:pointer;transition:border-color .1s,transform .1s}.settings-card:hover{border-color:var(--border-strong)}.settings-card .ico{width:28px;height:28px;display:grid;place-items:center;border-radius:6px;background:var(--accent-soft);color:var(--accent-soft-text);margin-bottom:12px}.settings-card h4{margin:0 0 4px;font-size:14px;font-weight:600}.settings-card p{margin:0;font-size:12.5px;color:var(--text-sec)}.settings-card .arrow{display:inline-flex;align-items:center;gap:4px;color:var(--accent);font-size:12.5px;font-weight:500;margin-top:10px}.fx-today{display:grid;grid-template-columns:1fr 1fr;gap:24px}.fx-input-block .field-label{margin-bottom:8px}.fx-input{display:flex;align-items:center;gap:10px}.fx-input .from{font-family:var(--font-mono);font-size:13px;color:var(--text-ter);min-width:70px}.fx-input input.field-input{font-family:var(--font-mono);font-size:18px;font-weight:600;flex:1;text-align:right}.fx-input .to-lkr{font-family:var(--font-mono);color:var(--text-ter);font-size:13px}.fx-input-meta{font-size:11.5px;color:var(--text-ter);margin-top:6px}.text-sec{color:var(--text-sec)}.text-ter{color:var(--text-ter)}.text-tiny{font-size:11.5px}.hstack{display:flex;align-items:center;gap:8px}.vstack{display:flex;flex-direction:column;gap:8px}.flex1{flex:1}.right{text-align:right}.nowrap{white-space:nowrap}.rate-limited{opacity:.6;cursor:not-allowed}.section-title{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-ter);font-weight:600;margin:0 0 12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}tr:focus-visible{outline-offset:-2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-stronger)}/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.border{border-style:var(--tw-border-style);border-width:1px}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}}html,body,#root{height:100%}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}
