@charset "UTF-8";:root{--font-sans: "Geist", "Inter", system-ui, -apple-system, sans-serif;--font-mono: "Geist Mono", "JetBrains Mono", ui-monospace, monospace;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--r-1: 4px;--r-2: 6px;--r-3: 10px;--r-4: 14px;--bg: oklch(.985 .003 80);--bg-1: oklch(.97 .004 80);--bg-2: oklch(.945 .005 80);--bg-3: oklch(.92 .006 80);--bg-today: oklch(.95 .02 80);--line: oklch(.9 .005 80);--line-2: oklch(.85 .006 80);--line-strong: oklch(.75 .008 80);--fg: oklch(.2 .01 80);--fg-2: oklch(.38 .01 80);--fg-3: oklch(.55 .01 80);--fg-mute: oklch(.68 .01 80);--accent: oklch(.45 .07 195);--accent-2: oklch(.55 .08 195);--accent-bg: oklch(.92 .025 195);--accent-fg: oklch(.98 .005 195);--pos: oklch(.5 .11 150);--pos-bg: oklch(.95 .03 150);--neg: oklch(.52 .16 27);--neg-bg: oklch(.96 .025 27);--neu: oklch(.55 .04 260);--neu-bg: oklch(.96 .02 260);--c-pln: transparent;--c-eur: oklch(.97 .022 250);--c-usd: oklch(.97 .022 145);--c-czk: oklch(.97 .022 30);--c-isk: oklch(.97 .022 300);--c-sav: oklch(.96 .008 80);--row-h: 32px;--row-pad-y: 6px;--num-size: 12.5px;--label-size: 12px;--table-fs: 13px;--shadow-sm: 0 1px 2px oklch(0 0 0 / .04), 0 0 0 1px oklch(0 0 0 / .04);--shadow-md: 0 4px 16px oklch(0 0 0 / .08), 0 0 0 1px oklch(0 0 0 / .05);--shadow-lg: 0 18px 60px oklch(0 0 0 / .18), 0 0 0 1px oklch(0 0 0 / .06)}[data-theme=dark]{--bg: oklch(.18 .008 240);--bg-1: oklch(.215 .009 240);--bg-2: oklch(.245 .01 240);--bg-3: oklch(.28 .011 240);--bg-today: oklch(.255 .025 195);--line: oklch(.3 .01 240);--line-2: oklch(.35 .011 240);--line-strong: oklch(.45 .012 240);--fg: oklch(.96 .005 240);--fg-2: oklch(.8 .008 240);--fg-3: oklch(.65 .01 240);--fg-mute: oklch(.5 .01 240);--accent: oklch(.72 .09 195);--accent-2: oklch(.82 .1 195);--accent-bg: oklch(.28 .04 195);--accent-fg: oklch(.15 .02 195);--pos: oklch(.78 .14 150);--pos-bg: oklch(.25 .04 150);--neg: oklch(.74 .16 27);--neg-bg: oklch(.27 .05 27);--neu: oklch(.78 .07 260);--neu-bg: oklch(.26 .03 260);--c-pln: transparent;--c-eur: oklch(.24 .025 250);--c-usd: oklch(.24 .025 145);--c-czk: oklch(.24 .025 30);--c-isk: oklch(.24 .025 300);--c-sav: oklch(.205 .009 240);--shadow-sm: 0 1px 2px oklch(0 0 0 / .4), 0 0 0 1px oklch(1 0 0 / .05);--shadow-md: 0 6px 20px oklch(0 0 0 / .55), 0 0 0 1px oklch(1 0 0 / .05);--shadow-lg: 0 24px 60px oklch(0 0 0 / .65), 0 0 0 1px oklch(1 0 0 / .06)}[data-density=cozy]{--row-h: 36px;--row-pad-y: 8px;--num-size: 13px;--table-fs: 13.5px}[data-density=compact]{--row-h: 30px;--row-pad-y: 5px;--num-size: 12.5px;--table-fs: 12.5px}[data-density=dense]{--row-h: 24px;--row-pad-y: 3px;--num-size: 12px;--table-fs: 12px}@media(display-mode:standalone)and (max-width:760px){:root{--s-1: 3px;--s-2: 6px;--s-3: 10px;--s-4: 13px;--s-5: 16px;--s-6: 20px;--s-8: 28px;--s-10: 36px;--s-12: 42px;--row-h: 26px;--row-pad-y: 4px;--num-size: 11.5px;--label-size: 11px;--table-fs: 12px}body{font-size:12.5px}}[data-accent=teal]{--accent: oklch(.45 .07 195);--accent-2: oklch(.55 .08 195);--accent-bg: oklch(.92 .025 195)}[data-accent=navy]{--accent: oklch(.36 .1 260);--accent-2: oklch(.46 .11 260);--accent-bg: oklch(.92 .028 260)}[data-accent=forest]{--accent: oklch(.42 .08 155);--accent-2: oklch(.52 .09 155);--accent-bg: oklch(.94 .025 155)}[data-accent=ink]{--accent: oklch(.2 .01 80);--accent-2: oklch(.3 .02 80);--accent-bg: oklch(.93 .005 80)}[data-theme=dark][data-accent=teal]{--accent: oklch(.72 .09 195)}[data-theme=dark][data-accent=navy]{--accent: oklch(.7 .11 260)}[data-theme=dark][data-accent=forest]{--accent: oklch(.74 .1 155)}[data-theme=dark][data-accent=ink]{--accent: oklch(.95 .005 80);--accent-fg: oklch(.15 .005 80)}*{box-sizing:border-box}html,body{margin:0;padding:0}html,body{overscroll-behavior-x:contain}body{font-family:var(--font-sans);font-size:14px;color:var(--fg);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}input,select,textarea{font:inherit;color:inherit}.num,.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum","zero","ss01"}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:10px;border:2px solid var(--bg)}::-webkit-scrollbar-thumb:hover{background:var(--line-strong)}::selection{background:var(--accent);color:var(--accent-fg)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.app{display:grid;grid-template-rows:52px 1fr;grid-template-columns:220px 1fr;grid-template-areas:"topbar topbar" "rail   main";height:100vh;width:100vw}.app[data-rail=collapsed]{grid-template-columns:56px 1fr}.topbar{grid-area:topbar;display:flex;align-items:center;gap:var(--s-4);padding:0 var(--s-4);border-bottom:1px solid var(--line);background:var(--bg-1);z-index:20}.topbar .brand{display:flex;align-items:center;gap:var(--s-2);font-weight:600;letter-spacing:-.01em;padding-right:var(--s-4);border-right:1px solid var(--line);height:32px}.topbar .brand-mark{width:22px;height:22px;background:var(--accent);color:var(--accent-fg);border-radius:5px;display:grid;place-items:center;font-family:var(--font-mono);font-weight:700;font-size:12px}.topbar .month-nav{display:flex;align-items:center;gap:var(--s-1)}.topbar .month-pill{font-family:var(--font-mono);font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg);min-width:130px;text-align:center;letter-spacing:.02em}.icon-btn{width:28px;height:28px;border-radius:var(--r-1);display:grid;place-items:center;color:var(--fg-2);transition:background .12s,color .12s}.icon-btn:hover{background:var(--bg-2);color:var(--fg)}.icon-btn.active{background:var(--accent-bg);color:var(--accent)}.icon-btn svg{width:16px;height:16px}.btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border-radius:var(--r-2);border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:13px;font-weight:500;transition:background .12s,border-color .12s,transform .06s}.btn:hover{background:var(--bg-2);border-color:var(--line-2)}.btn:active{transform:translateY(.5px)}.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}.btn.primary:hover{background:var(--accent-2)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--bg-2)}.btn.sm{height:26px;padding:0 10px;font-size:12px;border-radius:var(--r-1)}.btn.lg{height:38px;padding:0 16px;font-size:14px}.btn svg{width:14px;height:14px}.spacer{flex:1}.rail{grid-area:rail;background:var(--bg-1);border-right:1px solid var(--line);padding:var(--s-3) var(--s-2);display:flex;flex-direction:column;gap:var(--s-1);overflow-y:auto}.rail-section{margin-top:var(--s-3)}.rail-section:first-child{margin-top:0}.rail-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-mute);padding:var(--s-1) var(--s-3);font-weight:600}.rail-item{display:flex;align-items:center;gap:10px;height:30px;padding:0 10px;border-radius:var(--r-2);font-size:13px;color:var(--fg-2);cursor:pointer;transition:background .1s,color .1s;white-space:nowrap}.rail-item:hover{background:var(--bg-2);color:var(--fg)}.rail-item.active{background:var(--accent-bg);color:var(--accent);font-weight:500}.rail-item .kbd{margin-left:auto;font-family:var(--font-mono);font-size:10px;color:var(--fg-mute);background:var(--bg-2);padding:1px 5px;border-radius:3px;border:1px solid var(--line)}.rail-item svg{width:14px;height:14px;flex-shrink:0}.rail-add{display:flex;align-items:center;gap:10px;width:100%;height:32px;padding:0 10px;border-radius:var(--r-2);font-size:13px;font-weight:500;color:var(--fg);border:1px dashed var(--line-2);background:var(--bg);transition:all .12s;white-space:nowrap}.rail-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}.rail-add.income:hover{border-color:var(--pos);color:var(--pos);background:var(--pos-bg)}.rail-add.expense:hover{border-color:var(--neg);color:var(--neg);background:var(--neg-bg)}.rail-add.transfer:hover{border-color:var(--neu);color:var(--neu);background:var(--neu-bg)}.rail-add .dot{width:8px;height:8px;border-radius:50%}.app[data-rail=collapsed] .rail-label,.app[data-rail=collapsed] .rail-item span,.app[data-rail=collapsed] .rail-add span,.app[data-rail=collapsed] .rail-item .kbd{display:none}.app[data-rail=collapsed] .rail-item,.app[data-rail=collapsed] .rail-add{justify-content:center;padding:0}.main{grid-area:main;overflow:hidden;display:flex;flex-direction:column;background:var(--bg);min-width:0}.main-scroll{flex:1;display:flex;flex-direction:column;overflow:hidden;min-height:0;min-width:0}.main-scroll>.kpi-strip,.main-scroll>.toolbar,.main-scroll>.budgets-wrap{flex-shrink:0}.table-scroll{flex:1;overflow:auto;min-height:200px;min-width:0;background:var(--bg-1)}.report-scroll{flex:1;overflow-y:auto;overflow-x:hidden;min-height:0}.budgets-wrap{border-top:1px solid var(--line);background:var(--bg-1);max-height:40vh;display:flex;flex-direction:column}.budgets-wrap[data-collapsed="1"]{max-height:42px}.budgets-toggle{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600;cursor:pointer;border-bottom:1px solid transparent}.budgets-toggle:hover{background:var(--bg-2)}.budgets-wrap[data-collapsed="0"] .budgets-toggle{border-bottom-color:var(--line)}.budgets-toggle .count{margin-left:6px;background:var(--bg-2);color:var(--fg-2);padding:1px 8px;border-radius:99px;font-family:var(--font-mono);letter-spacing:0;text-transform:none;font-size:11px}.budgets-toggle .chev{margin-left:auto;transition:transform .2s}.budgets-wrap[data-collapsed="0"] .chev{transform:rotate(180deg)}.budgets-body{flex:1;overflow-y:auto}.budgets-wrap[data-collapsed="1"] .budgets-body{display:none}.kpi-strip-wrap{border-bottom:1px solid var(--line);background:var(--bg-1);position:relative}.kpi-collapse-btn{position:absolute;bottom:-1px;right:16px;transform:translateY(50%);height:22px;padding:0 10px;border-radius:11px;background:var(--bg-1);border:1px solid var(--line);font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);display:inline-flex;align-items:center;gap:4px;z-index:6;cursor:pointer;transition:color .12s,border-color .12s}.kpi-collapse-btn:hover{color:var(--fg);border-color:var(--line-2)}.kpi-collapse-btn svg{width:11px;height:11px;transition:transform .2s}.kpi-strip-wrap[data-collapsed="0"] .kpi-collapse-btn svg{transform:rotate(180deg)}.kpi-strip{display:grid;grid-template-columns:1fr 1fr 1fr 1.4fr;gap:var(--s-3);padding:var(--s-4)}.kpi-strip-wrap[data-collapsed="1"] .kpi-strip{display:none}.kpi-mini{display:none;align-items:center;gap:var(--s-4);padding:10px 96px 10px 16px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;flex-wrap:wrap}.kpi-strip-wrap[data-collapsed="1"] .kpi-mini{display:flex}.kpi-mini .item{display:inline-flex;align-items:baseline;gap:6px;font-size:13px;white-space:nowrap}.kpi-mini .item .lbl{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600;font-family:var(--font-sans)}.kpi-mini .item .v{font-weight:500}.kpi-mini .item .sub{color:var(--fg-3);font-size:11px;font-family:var(--font-sans)}.kpi-mini .item.income .v{color:var(--pos)}.kpi-mini .item.expense .v{color:var(--neg)}.kpi-mini .divider{width:1px;height:16px;background:var(--line);align-self:center}.kpi-mini .foreign-chip{font-size:11px;padding:2px 7px;border-radius:4px;background:var(--bg-2);color:var(--fg-3);font-family:var(--font-mono)}.kpi{display:flex;flex-direction:column;padding:14px 16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-3);position:relative;overflow:hidden}.kpi-label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600}.kpi-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:24px;font-weight:500;letter-spacing:-.02em;margin-top:2px}.kpi-sub{font-size:11.5px;color:var(--fg-3);margin-top:4px;display:flex;align-items:center;gap:6px;font-family:var(--font-mono)}.kpi-sub .chip{padding:1px 6px;border-radius:3px;font-size:10.5px;font-weight:500}.kpi.income .kpi-value{color:var(--pos)}.kpi.expense .kpi-value{color:var(--neg)}.kpi.balance .kpi-value{color:var(--fg)}.donut-card{display:grid;grid-template-columns:130px 1fr;gap:var(--s-3);align-items:center}.donut-legend{display:flex;flex-direction:column;gap:3px;font-size:11px}.donut-legend .row{display:flex;align-items:center;gap:6px}.donut-legend .swatch{width:8px;height:8px;border-radius:2px;flex-shrink:0}.donut-legend .name{color:var(--fg-2);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.donut-legend .pct{font-family:var(--font-mono);color:var(--fg-3)}.toolbar{display:flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-4);border-bottom:1px solid var(--line);background:var(--bg-1);flex-wrap:wrap}.toolbar .filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.filter-chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:99px;border:1px solid var(--line);background:var(--bg);font-size:12px;color:var(--fg-2);cursor:pointer;transition:all .1s}.filter-chip:hover{border-color:var(--line-2);color:var(--fg)}.filter-chip.on{background:var(--accent-bg);color:var(--accent);border-color:transparent;font-weight:500}.filter-chip .x{opacity:.6;font-size:14px;line-height:1;margin-left:2px}.filter-chip .x:hover{opacity:1}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg);padding:2px;gap:1px}.segmented button{height:22px;padding:0 10px;border-radius:4px;font-size:11.5px;color:var(--fg-2);font-weight:500;white-space:nowrap}.segmented button.on{background:var(--bg-2);color:var(--fg);box-shadow:0 1px 2px #0000000a}.table-wrap{background:var(--bg-1)}.month-table{font-size:var(--table-fs);width:100%;border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}.month-table thead th{position:sticky;top:0;z-index:5;background:var(--bg-1);border-bottom:1px solid var(--line-2);text-align:left;font-weight:500;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);padding:8px 10px;white-space:nowrap}.month-table thead th:first-child{left:0;z-index:7;border-right:1px solid var(--line)}.month-table thead th.group-head{border-bottom:1px solid var(--line);border-top:1px solid var(--line);background:var(--bg-2);font-weight:600;color:var(--fg-2);text-align:center}.month-table thead tr.subhead th{border-top:0;top:27px;font-size:10px;z-index:4}.month-table tbody td.date-cell{z-index:3}.month-table tbody tr{border-bottom:1px solid var(--line)}.month-table tbody tr.day-row{border-top:1px solid var(--line)}.month-table tbody tr:hover td{background:var(--bg-2)}.month-table tbody tr.today td{background:var(--bg-today)}.month-table tbody tr.weekend td{background:oklch(from var(--bg-2) l c h/.5)}.month-table tbody tr.today.weekend td{background:var(--bg-today)}.month-table td{padding:var(--row-pad-y) 10px;vertical-align:top;border-right:1px solid var(--line);height:var(--row-h)}.month-table td:last-child{border-right:0}.month-table td.num{font-family:var(--font-mono);text-align:right;font-size:var(--num-size);white-space:nowrap}.month-table td.date-cell{width:110px;font-family:var(--font-mono);font-size:var(--num-size);color:var(--fg-2);white-space:nowrap;background:var(--bg-1);position:sticky;left:0;border-right:1px solid var(--line);z-index:2}.month-table td.date-cell .dow{display:inline-block;width:26px;color:var(--fg-mute)}.month-table td.date-cell .today-pill{display:inline-block;margin-left:4px;padding:1px 5px;border-radius:3px;background:var(--accent);color:var(--accent-fg);font-size:9px;letter-spacing:.06em;vertical-align:middle}.bal-cell{font-family:var(--font-mono);text-align:right;font-size:var(--num-size);color:var(--fg-2);white-space:nowrap;min-width:84px}.bal-cell.zero{color:var(--fg-mute)}.bal-cell.changed{color:var(--fg);font-weight:500}.bal-cell.negative{color:var(--neg)}.bal-cell.eur{background:var(--c-eur)!important}.bal-cell.usd{background:var(--c-usd)!important}.bal-cell.czk{background:var(--c-czk)!important}.bal-cell.isk{background:var(--c-isk)!important}.bal-cell.sav{background:var(--c-sav)!important}.month-table thead th.eur{background:oklch(from var(--c-eur) calc(l - .02) c h)!important}.month-table thead th.usd{background:oklch(from var(--c-usd) calc(l - .02) c h)!important}.month-table thead th.czk{background:oklch(from var(--c-czk) calc(l - .02) c h)!important}.month-table thead th.isk{background:oklch(from var(--c-isk) calc(l - .02) c h)!important}.month-table thead th.sav{background:oklch(from var(--c-sav) calc(l - .02) c h)!important}.budgets{padding:14px 16px 18px;background:var(--bg-1)}.budgets h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:600;color:var(--fg-3);margin:0 0 var(--s-3)}.fn-tooltip{position:fixed;background:var(--fg);color:var(--bg);padding:5px 9px;border-radius:4px;font-size:11.5px;line-height:1.4;pointer-events:none;white-space:pre-line;max-width:280px;z-index:9999;opacity:0;transform:translateY(2px);transition:opacity .12s ease,transform .12s ease;box-shadow:var(--shadow-md);font-family:var(--font-sans)}.fn-tooltip.show{opacity:1;transform:translateY(0)}.budget-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--s-3)}.budget{padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-3)}.budget-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.budget-cat{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500}.budget-cat .dot{width:8px;height:8px;border-radius:2px}.budget-spent{font-family:var(--font-mono);font-size:12px;color:var(--fg-2)}.budget-spent .of{color:var(--fg-mute)}.budget-bar{margin-top:8px;height:6px;background:var(--bg-2);border-radius:99px;position:relative;overflow:hidden}.budget-bar .fill{height:100%;background:var(--cat-color, var(--accent));border-radius:99px;transition:width .3s ease}.budget-bar.over .fill{background:var(--neg)}.budget-meta{margin-top:6px;font-size:11px;color:var(--fg-3);display:flex;justify-content:space-between;font-family:var(--font-mono)}.budget.over .budget-meta .left{color:var(--neg);font-weight:500}.modal-backdrop{position:fixed;inset:0;background:#03030366;backdrop-filter:blur(4px);z-index:100;display:grid;place-items:center;animation:fade .15s ease}@keyframes fade{0%{opacity:0}}.modal{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-4);box-shadow:var(--shadow-lg);width:460px;max-width:calc(100vw - 32px);overflow:hidden;animation:pop .18s cubic-bezier(.2,.9,.3,1.1)}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.97)}}.modal-head{display:flex;align-items:center;gap:8px;padding:14px 18px;border-bottom:1px solid var(--line)}.modal-head .title{font-size:14px;font-weight:600;flex:1}.modal-tabs{display:flex;gap:2px;padding:2px;background:var(--bg-2);border-radius:var(--r-2)}.modal-tabs button{padding:5px 12px;border-radius:4px;font-size:12px;font-weight:500;color:var(--fg-2)}.modal-tabs button.on.income{background:var(--pos-bg);color:var(--pos)}.modal-tabs button.on.expense{background:var(--neg-bg);color:var(--neg)}.modal-tabs button.on.transfer{background:var(--neu-bg);color:var(--neu)}.modal-body{padding:18px;display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:4px}.field label{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600}.input{height:36px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-2);background:var(--bg);font-size:14px;color:var(--fg);transition:border-color .12s}.input:focus{border-color:var(--accent);outline:0}.input.lg{height:56px;font-size:24px;font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;letter-spacing:-.02em}.amount-row{display:grid;grid-template-columns:1fr 90px;gap:8px}.input.currency{font-size:13px;text-align:center;font-family:var(--font-mono);height:56px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.chips{display:flex;flex-wrap:wrap;gap:5px}.chip{padding:5px 10px;border-radius:99px;border:1px solid var(--line);font-size:12px;background:var(--bg);color:var(--fg-2);cursor:pointer;transition:all .1s;display:inline-flex;align-items:center;gap:6px}.chip:hover{border-color:var(--line-2);color:var(--fg)}.chip.on{background:var(--accent-bg);color:var(--accent);border-color:transparent;font-weight:500}.chip .dot{width:7px;height:7px;border-radius:50%}.modal-foot{display:flex;gap:8px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line);background:var(--bg-2)}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-2);cursor:pointer}.checkbox-row input{accent-color:var(--accent)}.drawer-backdrop{position:fixed;inset:0;background:#0000004d;z-index:90}.drawer{position:fixed;right:0;top:0;bottom:0;width:340px;background:var(--bg-1);border-left:1px solid var(--line);z-index:91;display:flex;flex-direction:column;animation:slide .2s ease;box-shadow:var(--shadow-lg)}@keyframes slide{0%{transform:translate(100%)}}.drawer-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}.drawer-head .title{font-size:14px;font-weight:600;flex:1}.drawer-body{flex:1;overflow-y:auto;padding:12px 0}.drawer-group{padding:8px 0;border-bottom:1px solid var(--line)}.drawer-group:last-child{border-bottom:0}.drawer-group-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-mute);font-weight:600;padding:6px 20px}.drawer-acct{display:flex;align-items:center;gap:10px;padding:8px 20px;font-size:13px;cursor:pointer}.drawer-acct:hover{background:var(--bg-2)}.drawer-acct .toggle{width:28px;height:16px;background:var(--line-2);border-radius:99px;position:relative;transition:background .15s;flex-shrink:0}.drawer-acct .toggle:after{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;top:2px;left:2px;transition:left .15s;box-shadow:0 1px 2px #0003}.drawer-acct.on .toggle{background:var(--accent)}.drawer-acct.on .toggle:after{left:14px}.drawer-acct .name{flex:1}.drawer-acct .ccy{font-family:var(--font-mono);font-size:11px;color:var(--fg-mute)}.empty-day{padding:6px 10px;font-size:11px;color:var(--fg-mute);font-style:italic}.skip-to-today{position:sticky;bottom:var(--s-3);margin-left:auto;margin-right:var(--s-3)}.mobile-shell{display:flex;flex-direction:column;height:100vh;background:var(--bg)}.mobile-top{height:56px;padding:0 16px;border-bottom:1px solid var(--line);background:var(--bg-1);display:flex;align-items:center;gap:8px;flex-shrink:0}.mobile-top .month-pill{flex:1;text-align:center}.mobile-main{flex:1;overflow-y:auto;padding-bottom:80px}.mobile-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--bg-1);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 80px 1fr 1fr;align-items:center}.mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;height:100%;font-size:10px;color:var(--fg-3)}.mobile-bottom-nav button.on{color:var(--accent)}.mobile-bottom-nav button svg{width:20px;height:20px}.mobile-bottom-nav .fab{width:56px;height:56px;border-radius:50%;background:var(--accent);color:var(--accent-fg);margin:0 auto;display:grid;place-items:center;box-shadow:0 6px 20px oklch(from var(--accent) l c h/.4)}.mobile-bottom-nav .fab svg{width:22px;height:22px}.day-card{background:var(--bg-1);margin:12px;border:1px solid var(--line);border-radius:var(--r-4);overflow:hidden}.day-card.today{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.day-card-head{padding:14px 16px 10px;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.day-card-date{font-family:var(--font-mono);font-size:16px;font-weight:500;letter-spacing:-.01em}.day-card-date .dow{color:var(--fg-3);margin-right:6px;font-size:13px}.day-card-net{font-family:var(--font-mono);font-size:14px;font-weight:500}.day-card-net.income{color:var(--pos)}.day-card-net.expense{color:var(--neg)}.day-card-entries{display:flex;flex-direction:column}.day-card-entry{display:grid;grid-template-columns:30px 1fr auto;gap:10px;padding:10px 16px;align-items:center;border-top:1px solid var(--line);font-size:13px}.day-card-entry .ico{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--fg-2)}.day-card-entry .ico.income{background:var(--pos-bg);color:var(--pos)}.day-card-entry .ico.expense{background:var(--neg-bg);color:var(--neg)}.day-card-entry .ico.transfer{background:var(--neu-bg);color:var(--neu)}.day-card-entry .ico svg{width:14px;height:14px}.day-card-entry .name{font-weight:500}.day-card-entry .meta{font-size:11px;color:var(--fg-3)}.day-card-entry .amt{font-family:var(--font-mono);font-weight:500;text-align:right}.day-card-entry .amt.income{color:var(--pos)}.day-card-entry .amt.expense{color:var(--neg)}.day-card-entry .amt.transfer{color:var(--neu)}.day-card-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1px;background:var(--line)}.day-card-actions button{padding:12px 0;background:var(--bg-1);font-size:13px;font-weight:500;color:var(--fg-2);display:flex;align-items:center;justify-content:center;gap:6px;transition:background .1s}.day-card-actions button.income:hover{background:var(--pos-bg);color:var(--pos)}.day-card-actions button.expense:hover{background:var(--neg-bg);color:var(--neg)}.day-card-actions button.transfer:hover{background:var(--neu-bg);color:var(--neu)}.day-card-actions button svg{width:14px;height:14px}.day-card-empty{padding:8px 16px 4px;font-size:12px;color:var(--fg-mute);font-style:italic}.mobile-kpi{padding:16px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-kpi .kpi{padding:12px}.mobile-kpi .kpi-value{font-size:18px}.mobile-balance-card{margin:0 16px 16px;padding:18px;border-radius:var(--r-4);background:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);color:var(--accent-fg)}.mobile-balance-card .label{font-size:11px;opacity:.8;text-transform:uppercase;letter-spacing:.08em;font-weight:600}.mobile-balance-card .value{font-family:var(--font-mono);font-size:28px;font-weight:500;letter-spacing:-.02em;margin-top:4px}.mobile-balance-card .delta{font-family:var(--font-mono);font-size:12px;margin-top:6px;opacity:.9}.mobile-section{padding:12px 16px}.mobile-section h3{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600;margin:0 0 10px}.mobile-cat-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.mobile-cat-row .dot{width:10px;height:10px;border-radius:3px}.mobile-cat-row .name{flex:1;font-size:13px}.mobile-cat-row .amt{font-family:var(--font-mono);font-size:13px;font-weight:500}.mobile-cat-row .pct{font-family:var(--font-mono);font-size:11px;color:var(--fg-3);min-width:36px;text-align:right}.report{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-4);max-width:1400px;margin:0 auto}.report-head h1{font-size:22px;font-weight:600;margin:0 0 4px;letter-spacing:-.02em}.report-head p{font-size:13px;color:var(--fg-3);margin:0}.report-card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-3);padding:var(--s-4)}.report-card h2{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3);font-weight:600;margin:0 0 var(--s-3)}.report-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-4)}.report-grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--s-3)}.big-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:28px;font-weight:500;letter-spacing:-.02em}.big-num.pos{color:var(--pos)}.big-num.neg{color:var(--neg)}.report-table{width:100%;border-collapse:collapse;font-size:12.5px}.report-table th,.report-table td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}.report-table th{font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--fg-3);font-weight:600}.report-table td.num{font-family:var(--font-mono);text-align:right;font-variant-numeric:tabular-nums}.report-table tr:hover td{background:var(--bg-2)}.report-cat-cell{display:flex;align-items:center;gap:8px}.report-cat-cell .dot{width:8px;height:8px;border-radius:2px}@media(max-width:760px){.desktop-only{display:none!important}}@media(min-width:761px){.mobile-only{display:none!important}}.priv{transition:filter .22s ease,color .18s ease}html[data-privacy=peek] .priv{filter:blur(7px) saturate(.85);-webkit-user-select:none;user-select:none}html[data-peek-armed="1"] tr.day-row:hover .priv,html[data-peek-armed="1"] .kpi:hover .priv,html[data-peek-armed="1"] .kpi-mini .item:hover .priv{filter:none!important}html[data-peek-armed="1"] tr.day-row:hover,html[data-peek-armed="1"] .kpi:hover,html[data-peek-armed="1"] .kpi-mini .item:hover{outline:1px solid var(--accent);outline-offset:-1px;cursor:zoom-in}.icon-btn.privacy-btn{position:relative}.icon-btn.privacy-btn.on{color:var(--accent);background:var(--accent-bg, color-mix(in oklch, var(--accent) 16%, transparent))}.icon-btn.privacy-btn.on:after{content:"";position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.search-flash{animation:fnSearchFlash 2s ease;position:relative;z-index:1}@keyframes fnSearchFlash{0%{background-color:var(--accent-bg);box-shadow:0 0 0 3px var(--accent)}to{background-color:transparent;box-shadow:0 0 0 0 transparent}}@keyframes fnSkelShimmer{0%{background-position:-180% 0}to{background-position:180% 0}}@keyframes fnSkelPulse{0%,to{opacity:1}50%{opacity:.7}}.skel-bar{display:inline-block;height:10px;border-radius:3px;background-color:var(--bg-2);background-image:linear-gradient(90deg,var(--bg-2) 0%,var(--bg-1) 50%,var(--bg-2) 100%);background-size:220% 100%;background-repeat:no-repeat;animation:fnSkelShimmer 1.6s linear infinite,fnSkelPulse 2.4s ease-in-out infinite;vertical-align:middle}.skeleton-row .skel-bar{animation-delay:0s,0s}.skeleton-row:nth-child(2n) .skel-bar{animation-delay:.15s,.3s}.skeleton-row:nth-child(3n) .skel-bar{animation-delay:.3s,.6s}
