:root{--bg:#f7f8fb;--surface:#fff;--surface-alt:#f2f3f7;--border:#e6e8ee;--border-strong:#d7dae2;--text:#11151c;--text-muted:#666d7a;--text-faint:#98a0ad;--accent:#7f1d3a;--accent-hover:#671730;--accent-soft:#fbeef1;--accent-text:#7f1d3a;--income:#0d9168;--income-soft:#e7f7f0;--expense:#d23c3c;--expense-soft:#fceeed;--warning:#b5750f;--warning-soft:#fdf3e2;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--shadow-sm:0 1px 2px #11151c0a;--shadow-md:0 6px 16px #11151c14;--shadow-lg:0 16px 40px #11151c24;--sidebar-bg:#11131c;--sidebar-text:#aeb3c4;--sidebar-text-active:#fff;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme=dark]{--bg:#15171e;--surface:#1c1f28;--surface-alt:#262a35;--border:#343845;--border-strong:#454a59;--text:#edeef2;--text-muted:#a3a9b7;--text-faint:#767c8c;--accent:#c4487a;--accent-hover:#d75f90;--accent-soft:#3a1b29;--accent-text:#e8a0bd;--income:#2fcb8f;--income-soft:#103226;--expense:#f2635f;--expense-soft:#3a1818;--warning:#e0a53d;--warning-soft:#3a2b12;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 6px 16px #00000059;--shadow-lg:0 16px 40px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{letter-spacing:-.01em;margin:0}p{margin:0}button{font-family:inherit}.mono{font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace}.app-shell{min-height:100vh;display:flex}.mobile-topbar,.mobile-bottom-nav{display:none}.sidebar{background:var(--sidebar-bg);width:240px;color:var(--sidebar-text);flex-direction:column;flex-shrink:0;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:6px 10px 24px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#9f2b4f,#671730);border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:15px;font-weight:700;display:flex}.brand-text{color:#fff;font-size:15px;font-weight:650;line-height:1.1}.brand-text span{color:var(--sidebar-text);margin-top:1px;font-size:11px;font-weight:500;display:block}.sidebar nav{flex-direction:column;flex:1;gap:2px;display:flex}.nav-link{color:var(--sidebar-text);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:9px 12px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{background:var(--accent);color:#fff}.nav-section-label{text-transform:uppercase;letter-spacing:.04em;color:#5b6070;padding:16px 12px 6px;font-size:11px;font-weight:600}.sidebar-footer{border-top:1px solid #ffffff14;margin-top:10px;padding-top:14px}.user-chip{align-items:center;gap:10px;padding:6px 8px 12px;display:flex}.avatar{background:var(--accent-soft);width:32px;height:32px;color:var(--accent-text);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;font-weight:700;display:flex}.user-chip-info{flex:1;min-width:0}.user-chip-info .name{color:#fff;white-space:nowrap;text-overflow:clip;font-size:13px;font-weight:600;overflow:hidden}.theme-toggle-icon{color:#fff;border:1px solid #ffffff24;flex-shrink:0;width:30px;height:30px}.theme-toggle-icon:hover{color:#fff;background:#ffffff14}.role-pill{color:#cbd0dc;background:#ffffff1a;border-radius:999px;margin-top:2px;padding:1px 7px;font-size:10.5px;font-weight:600;display:inline-block}.logout-btn{width:100%;color:var(--sidebar-text);border-radius:var(--radius-sm);background:0 0;border:1px solid #ffffff1f;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:13px;display:flex}.logout-btn:hover{color:#fff;background:#ffffff0f}.content{flex:1;min-width:0;height:100vh;padding:20px;overflow-y:auto}.content:has(.ledger-page){overflow-y:hidden}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.page-header h1{font-size:22px;font-weight:650}.page-header .subtitle{color:var(--text-muted);margin-top:3px;font-size:13.5px}.header-controls{align-items:center;gap:8px;display:flex}.date-nav{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);height:38px;box-shadow:var(--shadow-sm);align-items:center;gap:4px;padding:0 4px;display:flex}.date-nav button.icon-btn{width:30px;height:30px}.date-nav .date-label{text-align:center;min-width:150px;padding:0 8px;font-size:13.5px;font-weight:600}.date-nav input[type=date],.date-nav input[type=month]{color:var(--text);background:0 0;border:none;padding:0 4px;font-size:13px;font-weight:600}.today-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);height:38px;color:var(--text);align-items:center;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.today-lock-badge{border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border);align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:650;display:inline-flex}.today-btn:hover{background:var(--surface-alt)}.popover-root{min-width:0;display:inline-flex;position:relative}.popover-panel{z-index:60;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:200px;max-width:400px;padding:12px;position:fixed}.date-picker-trigger{background:var(--surface);height:38px;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.date-picker-trigger:hover{background:var(--surface-alt)}.calendar-panel{width:240px}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:8px;font-size:13px;font-weight:650;display:flex}.calendar-weekdays{grid-template-columns:repeat(7,1fr);margin-bottom:2px;display:grid}.calendar-weekdays span{text-align:center;color:var(--text-faint);padding:4px 0;font-size:11px;font-weight:600}.calendar-grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.calendar-day{color:var(--text);background:0 0;border-radius:7px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:12.5px;font-weight:500;display:flex}.calendar-day:hover{background:var(--surface-alt)}.calendar-day.outside{color:var(--text-faint)}.calendar-day.today{background:var(--accent-soft);color:var(--accent-text);font-weight:650}.calendar-day.selected{background:var(--accent);color:#fff;font-weight:650}.calendar-today-btn{background:var(--surface-alt);width:100%;color:var(--text);margin-top:10px;padding:7px;font-size:12.5px}.calendar-today-btn:hover{background:var(--border)}.month-panel{width:220px}.month-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.month-cell{color:var(--text);background:0 0;border-radius:7px;padding:9px 0;font-size:12.5px;font-weight:550}.month-cell:hover{background:var(--surface-alt)}.month-cell.selected{background:var(--accent);color:#fff}button{cursor:pointer;background:var(--accent);color:#fff;border-radius:var(--radius-sm);border:none;padding:9px 16px;font-size:13.5px;font-weight:600;transition:background .15s,transform 50ms}button:hover{background:var(--accent-hover)}button:active{transform:translateY(1px)}button:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff;align-items:center;gap:6px;display:inline-flex}.btn-ghost{color:var(--text);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface-alt)}.btn-danger{background:var(--expense);color:#fff}.btn-danger:hover{background:#b32d2d}.btn-sm{padding:6px 11px;font-size:12.5px}.icon-btn{width:32px;height:32px;color:var(--text-muted);background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn:hover{background:var(--surface-alt);color:var(--text)}.icon-btn.danger:hover{background:var(--expense-soft);color:var(--expense)}.kpi-row{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-bottom:22px;display:grid}.ledger-page .kpi-row:last-child{margin-bottom:0}.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:10px;padding:16px 18px;display:flex}.kpi-top{justify-content:space-between;align-items:center;display:flex}.kpi-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:34px;height:34px;display:flex}.kpi-icon.income{background:var(--income-soft);color:var(--income)}.kpi-icon.expense{background:var(--expense-soft);color:var(--expense)}.kpi-icon.net{background:var(--accent-soft);color:var(--accent-text)}.kpi-icon.neutral{background:var(--surface-alt);color:var(--text-muted)}.kpi-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:12px;font-weight:600}.kpi-value{font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;width:100%;max-width:100%;font-family:JetBrains Mono,ui-monospace,monospace;font-size:22px;font-weight:700;display:block;overflow:hidden}.kpi-value.income{color:var(--income)}.kpi-value.expense{color:var(--expense)}.kpi-delta{align-items:center;gap:3px;font-size:11.5px;font-weight:650;display:inline-flex}.kpi-delta.good{color:var(--income)}.kpi-delta.bad{color:var(--expense)}.kpi-delta.flat{color:var(--text-faint)}.kpi-sub{color:var(--text-muted);font-size:11.5px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.card-header h2{font-size:15px;font-weight:650}.ledger-page{flex-direction:column;height:100%;min-height:0;display:flex}.ledger-main-row{flex:1;gap:16px;min-height:0;margin-top:4px;display:flex}.ledger-main-row .tape-wrapper{flex:80%;min-width:0;min-height:0;max-height:none}.calc-panel-slot{flex:20%;min-width:220px;max-width:300px;min-height:0;display:flex}.calc-panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;min-height:0;box-shadow:var(--shadow-sm);flex-direction:column;flex:1;display:flex;overflow:hidden}.calc-header{background:var(--surface-alt);border-bottom:1px solid var(--border);color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em;flex-shrink:0;align-items:center;gap:7px;padding:11px 14px;font-size:12px;font-weight:650;display:flex}.calc-history{flex-direction:column;flex:1;justify-content:safe flex-end;gap:4px;min-height:0;padding:10px 14px;display:flex;overflow-y:auto}.calc-history-empty{color:var(--text-faint);text-align:center;margin:auto 0;font-size:12px}.calc-history-item{border-bottom:1px dashed var(--border);justify-content:space-between;gap:8px;padding:3px 0;font-size:12px;display:flex}.calc-history-expr{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-family:JetBrains Mono,ui-monospace,monospace;overflow:hidden}.calc-history-result{flex-shrink:0;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:650}.calc-display{border-top:1px solid var(--border-strong);background:var(--surface-alt);cursor:text;flex-shrink:0;padding:10px 14px}.calc-input{text-align:right;width:100%;color:var(--text);background:0 0;border:none;padding:2px 0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:19px;font-weight:650}.calc-input:focus{outline:none}.calc-input-error{color:var(--expense)}.calc-preview{text-align:right;color:var(--accent-text);min-height:16px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:12.5px}.calc-use-result-btn{background:var(--accent-soft);color:var(--accent-text);flex-shrink:0;justify-content:center;align-items:center;gap:6px;margin:10px 10px 8px;padding:8px;font-size:12px;display:flex}.calc-use-result-btn:hover{background:var(--accent);color:#fff}.calc-grid{border-top:1px solid var(--border);flex-shrink:0;grid-template-columns:repeat(4,1fr);gap:6px;padding:10px;display:grid}.calc-btn{background:var(--surface-alt);color:var(--text);border-radius:var(--radius-sm);padding:10px 0;font-size:14px;font-weight:600}.calc-btn:hover{background:var(--border)}.calc-btn-op{background:var(--accent-soft);color:var(--accent-text)}.calc-btn-op:hover{background:var(--accent-soft)}.calc-btn-eq{background:var(--accent);color:#fff}.calc-btn-eq:hover{background:var(--accent-hover)}.calc-btn-clear{background:var(--expense-soft);color:var(--expense)}@media (width<=1100px){.calc-panel-slot{display:none}}.tape-wrapper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;max-height:58vh;display:flex;overflow:hidden}.tape-head,.tape-row{grid-template-columns:112px 128px 220px 120px 130px 44px 72px;align-items:center;gap:10px;padding:0 14px;display:grid}.tape-head.no-account,.tape-row.no-account{grid-template-columns:112px 128px 220px 120px 130px 44px 72px}.tape-row .type-toggle{height:38px}.tape-row .type-toggle button{padding:0 9px;font-size:11.5px}.tape-head{background:var(--surface-alt);text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0;padding:11px 14px;font-size:11px;font-weight:650}.tape-body{flex-direction:column;flex:1;justify-content:safe flex-end;min-height:0;display:flex;overflow-y:auto}.new-entry-bar{border-top:1px solid var(--border-strong);background:var(--accent-soft);flex-direction:column;flex-shrink:0;gap:8px;padding:12px 14px 10px;display:flex}.quick-entry-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.amount-field-group{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);flex:0 0 150px;align-items:center;gap:4px;height:44px;padding:0 14px;transition:border-color .12s,box-shadow .12s;display:flex}.amount-field-group:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.currency-prefix{color:var(--text-faint);font-size:17px;font-weight:650}.quick-amount-input{color:var(--text);background:0 0;border:none;flex:1;min-width:0;height:100%;font-family:JetBrains Mono,ui-monospace,monospace;font-size:19px;font-weight:650}.quick-amount-input:focus{outline:none}.quick-account-select{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);max-width:150px;height:44px;padding:0 10px;font-size:13.5px;font-weight:550}.quick-submit-btn{background:var(--accent);color:#fff;border-radius:var(--radius-md);height:44px;box-shadow:var(--shadow-sm);flex-shrink:0;align-items:center;gap:6px;padding:0 20px;font-size:14px;font-weight:650;display:inline-flex}.quick-submit-btn:hover{background:var(--accent-hover)}.category-search-trigger{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);flex-grow:1;align-items:center;gap:6px;min-width:160px;height:44px;padding:0 14px;font-size:13px;font-weight:600;display:inline-flex}.category-search-trigger:hover{border-color:var(--border-strong)}.category-search-trigger-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.category-search-trigger-flag{color:var(--expense);flex-shrink:0}.category-search-trigger-chevron{color:var(--text-faint);flex-shrink:0}.cell-category .popover-root{width:100%}.quick-entry-row .popover-root{flex:0 0 230px;max-width:230px}.cell-category .category-search-trigger{border-radius:var(--radius-sm);width:100%;max-width:none;height:36px;padding:0 9px;font-size:13px;font-weight:500}.category-search-panel{border-radius:var(--radius-md);background:var(--surface);width:300px;margin:-12px;padding:0;overflow:hidden}.account-select-panel{flex-direction:column;gap:2px;width:200px;margin:-12px;padding:6px;display:flex}.category-search-input-wrap{border-bottom:1px solid var(--border);background:var(--surface-alt);color:var(--text-faint);align-items:center;gap:8px;padding:10px 12px;display:flex}.category-search-input-wrap input{min-width:0;color:var(--text);background:0 0;border:none;flex:1;font-size:13.5px}.category-search-input-wrap input:focus{outline:none}.category-search-list{flex-direction:column;gap:2px;max-height:220px;padding:6px;display:flex;overflow-y:auto}.category-search-item{color:var(--text);border-radius:var(--radius-sm);text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;font-weight:500;display:flex}.category-search-item:hover{background:var(--surface-alt)}.category-search-item.selected{background:var(--accent-soft);color:var(--accent-text);font-weight:650}.category-search-item svg{color:var(--expense);flex-shrink:0}.category-search-empty{text-align:center;color:var(--text-faint);padding:14px 10px;font-size:12.5px}.quick-note-input{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);flex:1;min-width:120px;height:44px;padding:0 14px;font-size:13.5px}.quick-note-input:focus{border-color:var(--border);background:var(--surface);outline:none}.tape-row{border-bottom:1px solid var(--border);min-height:52px;transition:background .1s}.tape-row:hover{background:var(--surface-alt)}.tape-row:last-child{border-bottom:none}.tape-row .row-actions{opacity:0;justify-content:flex-end;gap:2px;display:flex}.tape-row:hover .row-actions,.tape-row:focus-within .row-actions{opacity:1}.type-chip{border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;display:flex}.type-chip.income{background:var(--income-soft);color:var(--income)}.type-chip.expense{background:var(--expense-soft);color:var(--expense)}.amount-cell{text-align:right;font-variant-numeric:tabular-nums;font-family:JetBrains Mono,ui-monospace,monospace;font-size:14px;font-weight:650}.amount-cell.income{color:var(--income)}.amount-cell.expense{color:var(--expense)}.tag{background:var(--surface-alt);color:var(--text);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;align-items:center;max-width:100%;padding:3px 9px;font-size:12px;font-weight:550;display:inline-flex;overflow:hidden}.note-cell{color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.balance-cell{text-align:right;color:var(--text);background:var(--surface-alt);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;padding:5px 8px;font-family:JetBrains Mono,ui-monospace,monospace;font-size:13.5px;font-weight:700}.proof-cell{justify-content:center;display:flex}.proof-link{width:28px;height:28px;color:var(--income);background:var(--income-soft);border-radius:50%;justify-content:center;align-items:center;display:flex}.proof-upload-label{width:28px;height:28px;color:var(--text-faint);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex}.proof-upload-label:hover{background:var(--surface-alt);color:var(--text-muted)}.proof-upload-label.proof-required{color:var(--expense)}.proof-upload-label.proof-required:hover{background:var(--expense-soft)}.proof-picked{background:var(--income-soft);color:var(--income);border-radius:999px;align-items:center;gap:4px;max-width:100%;padding:3px 4px 3px 8px;font-size:11px;font-weight:600;display:flex}.proof-picked-name{text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}.proof-picked .icon-btn{width:18px;height:18px;color:var(--income)}.tape-input,.tape-select{background:var(--surface);border-radius:var(--radius-sm);border:1px solid #0000;width:100%;min-width:0;padding:7px 9px;font-family:inherit;font-size:13px}.tape-input.amount-input{text-align:right;font-family:JetBrains Mono,ui-monospace,monospace;font-weight:650}.tape-input:focus,.tape-select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.type-toggle{border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-alt);flex-shrink:0;align-items:stretch;width:fit-content;height:44px;display:flex;overflow:hidden}.type-toggle button{color:var(--text-muted);background:0 0;border-radius:0;padding:0 18px;font-size:13.5px;font-weight:650}.type-toggle button.active.income{background:var(--income);color:#fff}.type-toggle button.active.expense{background:var(--expense);color:#fff}.add-row-hint{color:var(--text-faint);align-items:center;gap:6px;font-size:11.5px;display:flex}kbd{background:var(--surface-alt);border:1px solid var(--border-strong);border-radius:4px;padding:1px 5px;font-family:inherit;font-size:11px}.empty-state{text-align:center;color:var(--text-faint);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:48px 20px;display:flex}.empty-state svg{color:var(--text-faint)}.empty-state p{max-width:280px;font-size:13.5px}.chart-grid{grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:20px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:18px}.chart-card h2{margin-bottom:14px;font-size:14.5px;font-weight:650}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);border-bottom:1px solid var(--border);background:var(--surface-alt);padding:10px 16px;font-size:11.5px;font-weight:650}.data-table td{border-bottom:1px solid var(--border);padding:11px 16px;font-size:13.5px}.data-table tr:last-child td{border-bottom:none}.data-table td input,.data-table td select{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);width:100%;padding:7px 10px;font-family:inherit;font-size:13.5px}.data-table td input:focus,.data-table td select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.data-table th:nth-child(3),.data-table td:nth-child(3){min-width:100px}.data-table th:nth-child(4),.data-table td:nth-child(4){min-width:80px}.status-pill{border-radius:999px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.status-pill.active{background:var(--income-soft);color:var(--income)}.status-pill.inactive{background:var(--expense-soft);color:var(--expense)}.role-badge{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:650}.pagination{align-items:center;gap:4px;display:flex}.pagination-page{min-width:30px;height:30px;color:var(--text-muted);border-radius:var(--radius-sm);background:0 0;padding:0;font-size:12.5px;font-weight:600}.pagination-page:hover{background:var(--surface-alt);color:var(--text)}.pagination-page.active{background:var(--accent);color:#fff}.page-size-select{color:var(--text-muted);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px 8px;font-size:12.5px;font-weight:600}.pagination-ellipsis{color:var(--text-faint);padding:0 2px;font-size:12.5px}.tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:20px;display:flex}.tab-btn{color:var(--text-muted);background:0 0;border-bottom:2px solid #0000;border-radius:0;padding:10px 16px;font-size:13.5px;font-weight:600}.tab-btn:hover{color:var(--text);background:0 0}.tab-btn.active{color:var(--accent-text);border-bottom-color:var(--accent)}.inline-form{flex-wrap:wrap;align-items:flex-end;gap:8px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{color:var(--text-muted);font-size:12px;font-weight:600}.field input,.field select{border-radius:var(--radius-sm);border:1px solid var(--border);flex:1;width:100%;min-width:160px;padding:9px 11px;font-family:inherit;font-size:13.5px}.field input:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.overlay{z-index:100;background:#0f121973;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:440px;max-height:85vh;overflow-y:auto}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.modal-body{flex-direction:column;gap:14px;padding:18px;display:flex}.dialog-card{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);text-align:center;width:100%;max-width:360px;padding:22px}.dialog-icon{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 12px;display:flex}.dialog-icon.danger{background:var(--expense-soft);color:var(--expense)}.dialog-card h3{margin-bottom:6px;font-size:16px}.dialog-card p{color:var(--text-muted);margin-bottom:18px;font-size:13.5px}.dialog-actions{justify-content:center;gap:8px;display:flex}.toast-stack{z-index:200;flex-direction:column;gap:8px;display:flex;position:fixed;top:18px;right:18px}.toast{background:var(--text);color:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);align-items:center;gap:8px;min-width:240px;padding:11px 14px;font-size:13px;font-weight:500;animation:.18s ease-out toast-in;display:flex}@keyframes toast-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-success{background:#0b3d2c}.toast-error{background:#4a1414}.toast-close{opacity:.7;background:0 0;margin-left:auto;padding:2px}.toast-close:hover{opacity:1;background:#ffffff1f}.auth-page{background:radial-gradient(circle at 20% 20%, var(--accent-soft) 0%, var(--bg) 55%);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);width:360px;box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:36px 32px;display:flex}.auth-brand{flex-direction:column;align-items:center;gap:10px;margin-bottom:4px;display:flex}.auth-brand .brand-mark{border-radius:12px;width:46px;height:46px;font-size:19px}.auth-card h1{text-align:center;font-size:17px}.auth-card .subtitle{color:var(--text-muted);text-align:center;margin-top:-8px;font-size:12.5px}.auth-card label{color:var(--text-muted);flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.auth-card input{border-radius:var(--radius-sm);border:1px solid var(--border);padding:10px 12px;font-family:inherit;font-size:14px}.auth-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.auth-card button{margin-top:4px;padding:11px;font-size:14px}.error-text{color:var(--expense);background:var(--expense-soft);border-radius:var(--radius-sm);padding:8px 10px;font-size:12.5px}@media (width<=920px){.sidebar{width:72px;padding:16px 10px}.brand-text,.user-chip-info,.nav-link span,.logout-btn span,.nav-section-label{display:none}.nav-link,.user-chip{justify-content:center}.content{padding:20px 16px 40px}.chart-grid{grid-template-columns:1fr}.tape-head,.tape-row{grid-template-columns:70px 100px 1fr 44px}.tape-head .col-account,.tape-head .col-category,.tape-head .col-note,.tape-head .col-balance,.tape-row .cell-account,.tape-row .cell-category,.tape-row .cell-note,.tape-row .cell-balance{display:none}}@media (width<=720px){.sidebar{display:none}.mobile-topbar{z-index:40;background:var(--sidebar-bg);justify-content:space-between;align-items:center;padding:10px 14px;display:flex;position:sticky;top:0}.mobile-topbar .brand{padding:0}.mobile-topbar-user{align-items:center;gap:8px;display:flex}.mobile-topbar-user .icon-btn{color:var(--sidebar-text)}.mobile-topbar-user .icon-btn:hover{color:#fff;background:#ffffff1a}.mobile-bottom-nav{z-index:40;background:var(--sidebar-bg);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));border-top:1px solid #ffffff14;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-link{color:var(--sidebar-text);border-radius:var(--radius-sm);flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px 4px;font-size:10.5px;font-weight:600;display:flex}.mobile-nav-link.active{color:#fff;background:#ffffff14}.app-shell{flex-direction:column}.content{height:auto;min-height:0;padding:14px 14px calc(70px + env(safe-area-inset-bottom,0px));flex:1}.content:has(.ledger-page){overflow-y:visible}.ledger-page{height:auto}.ledger-main-row{flex:none}.tape-wrapper{max-height:none}.tape-body{max-height:50vh}.kpi-row{grid-template-columns:repeat(2,1fr);gap:8px}.kpi-card{gap:6px;padding:12px 14px}.kpi-value{font-size:18px}.quick-entry-row{flex-wrap:wrap}.type-toggle{flex:100%;width:100%}.type-toggle button{flex:1}.amount-field-group,.quick-account-select,.category-search-trigger,.quick-note-input{flex:100%;width:100%;max-width:none}.quick-submit-btn{flex:auto;justify-content:center}.tape-head{display:none}.tape-row,.tape-row.no-account{flex-shrink:0;grid-template-columns:auto 1fr auto auto;grid-template-areas:"type amount proof actions""cat cat note note";align-items:center;gap:6px 8px;height:auto;min-height:0;padding:10px 12px;display:grid}.tape-row .row-actions{opacity:1}.tape-row .type-chip,.tape-row .type-toggle{grid-area:type}.tape-row .amount-cell,.tape-row .amount-input{text-align:left;grid-area:amount}.tape-row .proof-cell{grid-area:proof}.tape-row .row-actions{grid-area:actions}.tape-row .cell-category{grid-area:cat;display:flex}.tape-row .note-cell,.tape-row input.cell-note{grid-area:note;display:block}.tape-row .cell-account,.tape-row .cell-balance{display:none}.tape-row .cell-category .category-search-trigger{width:auto;max-width:100%}.data-table thead{display:none}.data-table,.data-table tbody,.data-table tr{width:100%;display:block}.data-table tr{border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:10px;padding:4px 0}.data-table td{text-align:right;border-bottom:none;justify-content:space-between;align-items:center;gap:12px;padding:7px 12px;display:flex}.data-table td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.03em;color:var(--text-faint);text-align:left;font-size:11px;font-weight:650}.data-table td:empty{display:none}.data-table td:not([data-label]){justify-content:flex-end;gap:6px}.inline-form{flex-direction:column;align-items:stretch}.inline-form .field{min-width:0}.inline-form .field input,.inline-form .field select{width:100%;min-width:0}.auth-card{width:100%;max-width:360px;padding:28px 22px}.page-header h1{font-size:19px}.tabs{flex-wrap:wrap;row-gap:8px}}
