:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#ecf4ff;background:#070b14;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 0 0,#1e66f540,#0000 32rem),radial-gradient(circle at 100% 100%,#32d3ff1f,#0000 28rem),#070b14;min-height:100vh;margin:0}button,input,select{font:inherit}button{transition:transform .15s,border-color .15s,background .15s}button:hover{transform:translateY(-1px)}.app-shell{grid-template-columns:280px 1fr;min-height:100vh;display:grid}.sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#080d18db;border-right:1px solid #ffffff14;height:100vh;padding:24px;position:sticky;top:0}.brand{align-items:center;gap:12px;margin-bottom:28px;display:flex}.brand-mark{color:#fff;background:linear-gradient(135deg,#4f8cff,#32d3ff);border-radius:14px;place-items:center;width:44px;height:44px;font-weight:900;display:grid;box-shadow:0 12px 40px #32d3ff47}.brand span{color:#90a2bd;margin-top:2px;font-size:13px;display:block}.nav-btn{text-align:left;color:#b7c6da;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:14px;width:100%;margin:8px 0;padding:12px 14px;display:block}.nav-btn.active,.nav-btn:hover{color:#fff;background:#ffffff14;border-color:#ffffff1a}main{width:100%;max-width:1260px;margin:0 auto;padding:28px}.topbar{justify-content:space-between;align-items:start;gap:20px;margin-bottom:24px;display:flex}h1{letter-spacing:-.04em;margin:0;font-size:clamp(30px,4vw,46px)}h2{margin:0 0 16px;font-size:18px}p{color:#9aabc4;margin-top:6px}.month-picker{color:#9aabc4;gap:6px;min-width:190px;display:grid}.card,.metric{background:#0f172ac7;border:1px solid #ffffff1a;border-radius:24px;padding:22px;box-shadow:0 20px 60px #00000047}.stack{gap:20px;display:grid}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.metric{gap:10px;display:grid;position:relative;overflow:hidden}.metric.good{border-color:#4ade8040}.metric.warning{border-color:#fbbf244d}.metric-icon{color:#6ab8ff}.metric span,small{color:#91a4bd}.metric strong{letter-spacing:-.03em;font-size:26px}.positive{color:#86efac}.two-col{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.list-row,.subtle-row{border-bottom:1px solid #ffffff12;justify-content:space-between;gap:16px;padding:12px 0;display:flex}.subtle-row{color:#bdd0e8;background:#ffffff0a;border:1px solid #ffffff12;border-radius:16px;margin-bottom:8px;padding:12px 14px}.list-row span{gap:4px;display:grid}.form{gap:18px;display:grid}.form-heading{justify-content:space-between;align-items:start;gap:16px;display:flex}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{color:#a7b8cf;gap:7px;display:grid}input,select{color:#fff;background:#02061799;border:1px solid #ffffff1f;border-radius:14px;outline:none;width:100%;padding:12px 14px}input:focus,select:focus{border-color:#5aa4ff;box-shadow:0 0 0 4px #5aa4ff1f}.segmented{background:#ffffff0f;border-radius:18px;grid-template-columns:repeat(3,1fr);gap:8px;padding:6px;display:grid}.segmented button{color:#afc0d4;cursor:pointer;background:0 0;border:0;border-radius:13px;padding:11px}.segmented .selected{color:#fff;background:#4f8cff52}.check-row{color:#b6c7da;flex-wrap:wrap;gap:18px;display:flex}.check-row input{width:auto}.primary,.ghost,.icon-button{cursor:pointer;border:0;border-radius:16px;justify-content:center;align-items:center;gap:10px;padding:13px 18px;text-decoration:none;display:inline-flex}.primary{color:#fff;background:linear-gradient(135deg,#4f8cff,#32d3ff);font-weight:800}.ghost{color:#c9d8eb;background:#ffffff0f;border:1px solid #ffffff17}.link-button{width:fit-content}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:940px}th,td{text-align:left;vertical-align:top;border-bottom:1px solid #ffffff14;padding:12px 10px}th{color:#93a8c4;font-size:13px}td small{margin-top:4px;display:block}.toast{color:#dff8ff;cursor:pointer;background:#32d3ff24;border:1px solid #32d3ff47;border-radius:14px;margin-bottom:16px;padding:12px 14px}.filter-card{gap:14px;display:grid}.filter-title{color:#dceaff;align-items:center;gap:8px;display:flex}.filter-grid{grid-template-columns:minmax(220px,1.2fr) repeat(3,minmax(150px,1fr));gap:12px;display:grid}.search-box{color:#90a2bd;background:#02061799;border:1px solid #ffffff1f;border-radius:14px;align-items:center;gap:8px;padding-left:12px;display:flex}.search-box input{box-shadow:none;background:0 0;border:0;padding-left:4px}.search-box input:focus{box-shadow:none}.mini-metrics{flex-wrap:wrap;gap:10px;display:flex}.mini-metrics span,.pill,.flags span{color:#c9d8eb;background:#ffffff12;border:1px solid #ffffff14;border-radius:999px;width:fit-content;padding:6px 10px;font-size:12px;display:inline-flex}.pill.income{color:#bbf7d0;background:#22c55e1f;border-color:#22c55e3d}.pill.expense{color:#fecaca;background:#ef44441f;border-color:#ef44443d}.pill.transfer{color:#bfdbfe;background:#3b82f61f;border-color:#3b82f63d}.flags{flex-wrap:wrap;gap:6px;display:flex}.row-actions{white-space:nowrap;text-align:right}.icon-button{color:#c9d8eb;background:#ffffff0f;border:1px solid #ffffff14;width:36px;height:36px;margin-left:6px;padding:0}.icon-button.danger{color:#fecaca}.empty-state{background:#ffffff09;border:1px dashed #ffffff24;border-radius:18px;padding:18px}.empty-state p{margin-bottom:0}@media (width<=1000px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-grid{grid-template-columns:1fr 1fr}}@media (width<=860px){.app-shell{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr;gap:8px;height:auto;display:grid;position:static}.brand{grid-column:1/-1}main{padding:18px}.topbar,.two-col{grid-template-columns:1fr;display:grid}.metrics-grid,.form-grid,.filter-grid{grid-template-columns:1fr}.form-heading{display:grid}.month-picker{min-width:0}}.report-hero{justify-content:space-between;align-items:start;gap:20px;display:flex}.export-grid{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch;gap:12px;display:grid}.export-grid h2{grid-column:1/-1}.export-grid a{text-align:center;min-height:54px}@media (width<=1100px){.export-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=680px){.export-grid,.report-hero{grid-template-columns:1fr;display:grid}}.nested-card{box-shadow:none;background:#ffffff0b}.topbar-actions{flex-wrap:wrap;justify-content:flex-end;align-items:end;gap:12px;display:flex}.mobile-nav,.mobile-fab,.mobile-ledger-list{display:none}.ledger-panel{overflow:hidden}.card-actions{justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.danger-text{color:#fecaca}.transaction-card{background:#ffffff0b;border:1px solid #ffffff1a;border-radius:20px;gap:12px;padding:16px;display:grid}.transaction-card-top{justify-content:space-between;align-items:start;gap:16px;display:flex}.transaction-card-top small{margin-top:4px;display:block}.transaction-card-meta{color:#9fb0c7;flex-wrap:wrap;gap:8px;font-size:13px;display:flex}.transaction-card p{margin:0}@media (width<=860px){body{padding-bottom:86px}.sidebar{display:none}.app-shell{min-height:100dvh}main{padding:16px 14px 96px}.topbar{z-index:1;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border-bottom:0;margin:0 0 16px;padding:0;position:relative}.topbar h1{font-size:28px}.topbar p{font-size:13px;line-height:1.35}.topbar-actions{grid-template-columns:1fr;justify-content:stretch;width:100%;display:grid}.topbar-actions .ghost,.topbar-actions .month-picker{width:100%}.topbar-actions .ghost{min-height:48px}.card,.metric{border-radius:20px;padding:17px}.metric strong{font-size:22px}.segmented{grid-template-columns:1fr}.segmented button,.primary,.ghost,input,select{min-height:48px}.check-row{gap:12px;display:grid}.check-row label{align-items:center;gap:10px;min-height:44px;display:flex}.desktop-table{display:none}.mobile-ledger-list{gap:12px;display:grid}.mobile-nav{z-index:50;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#080d18eb;border:1px solid #ffffff1f;border-radius:22px;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;padding:8px;display:grid;position:fixed;bottom:12px;left:12px;right:12px;box-shadow:0 18px 60px #0000005c}.mobile-nav .nav-btn{text-align:center;border-radius:15px;margin:0;padding:10px 6px;font-size:12px}.mobile-fab{z-index:55;color:#fff;background:linear-gradient(135deg,#4f8cff,#32d3ff);border:0;border-radius:999px;place-items:center;width:58px;height:58px;display:grid;position:fixed;bottom:88px;right:18px;box-shadow:0 18px 42px #32d3ff57}.mobile-fab:active{transform:scale(.96)}.export-grid a{justify-content:center}}@media (width>=861px){.mobile-fab,.mobile-nav{display:none!important}}@media (width<=420px){main{padding-left:10px;padding-right:10px}.topbar{margin-left:-10px;margin-right:-10px;padding-left:10px;padding-right:10px}.mobile-nav{bottom:8px;left:8px;right:8px}.mobile-nav .nav-btn{padding-left:3px;padding-right:3px;font-size:11px}}.receipt-upload-panel{flex-wrap:wrap;align-items:center;gap:.75rem;margin:.75rem 0 1rem;display:flex}.upload-tile{min-height:48px;color:var(--text,#0f172a);cursor:pointer;background:#4a90e21a;border:1px dashed #4a90e28c;border-radius:16px;align-items:center;gap:.55rem;padding:.8rem 1rem;font-weight:700;display:inline-flex;position:relative}.upload-tile input{opacity:0;cursor:pointer;position:absolute;inset:0}.receipt-view-link{min-height:48px}.warning-box{color:#92400e;background:#f59e0b1a;border:1px solid #f59e0b73;border-radius:14px;margin:.5rem 0 1rem;padding:.75rem .9rem}.upload-tile small{opacity:.72;font-size:.72rem;font-weight:600;display:block}.import-row{align-items:flex-start;gap:.75rem}.import-row em{text-transform:uppercase;color:var(--muted);background:#94a3b829;border-radius:999px;padding:.25rem .55rem;font-size:.75rem;font-style:normal;font-weight:700}.import-row.ready em{color:#166534;background:#22c55e24}.import-row.duplicate em{color:#92400e;background:#f59e0b29}.import-row.error em{color:#991b1b;background:#ef444424}.quick-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.quick-actions h2{margin-bottom:.25rem}.quick-actions p{margin-bottom:0}.quick-action-buttons{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}@media (width<=860px){.quick-actions{display:grid}.quick-action-buttons{justify-content:stretch}.quick-action-buttons .primary,.quick-action-buttons .ghost{width:100%}.mobile-nav{grid-template-columns:repeat(6,minmax(72px,1fr));overflow-x:auto}}.brand-logo{object-fit:contain;background:#ffffff0f;border-radius:14px;width:48px;height:48px;box-shadow:0 12px 40px #32d3ff2e}.review-list{gap:10px;display:grid}.review-row{background:#ffffff09;border:1px solid #ffffff14;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:14px;padding:14px;display:grid}.review-row.selected{background:#32d3ff14;border-color:#32d3ff73}.review-row p{margin:6px 0 0}.review-check{cursor:pointer;place-items:center;display:inline-grid}.review-check input{width:18px;height:18px}@media (width<=860px){.mobile-nav{grid-template-columns:repeat(7,minmax(72px,1fr))}.review-row{grid-template-columns:auto 1fr}.review-row>strong:last-child{grid-column:2}}.progress-track{background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;width:100%;height:14px;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(135deg,#4f8cff,#32d3ff);min-width:2px;height:100%;transition:width .2s}.close-check-row{color:#d6e4f7;border-bottom:1px solid #ffffff12;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.close-check-row input{width:auto;margin-top:3px}.close-actions{justify-content:flex-start;margin-top:16px}@media (width<=860px){.close-actions .ghost{width:100%}}.analytics-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.analytics-card{gap:16px;display:grid}.analytics-card.wide{grid-column:span 2}.section-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-head h2{margin-bottom:4px}.section-head p{color:#9fb0c7;margin:0}.cashflow-bars{gap:12px;display:grid}.cashflow-row{grid-template-columns:42px 1fr minmax(92px,auto);align-items:center;gap:12px;display:grid}.bar-track{background:#ffffff0b;border-radius:14px;gap:5px;padding:7px;display:grid;position:relative;overflow:hidden}.bar-track i{border-radius:999px;min-width:3px;height:9px;display:block}.income-bar{background:linear-gradient(90deg,#22c55eeb,#32d3ffeb)}.expense-bar{background:linear-gradient(90deg,#ef4444e0,#f59e0be0)}.analytics-legend{color:#b9c9dd;flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.analytics-legend span{align-items:center;gap:7px;display:inline-flex}.dot{border-radius:999px;width:9px;height:9px;display:inline-block}.income-dot{background:#22c55e}.expense-dot{background:#ef4444}.pulse-list{gap:10px;display:grid}.pulse-list>div{border-bottom:1px solid #ffffff12;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.pulse-list>div:last-child{border-bottom:0}.pulse-list strong{align-items:center;gap:6px;display:inline-flex}.negative{color:#fecaca}.warning-text{color:#fbbf24;margin:0}.success-text{color:#bbf7d0;margin:0}.category-share-list{gap:12px;display:grid}.share-row{background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;justify-content:space-between;gap:12px;padding:12px;display:flex;position:relative;overflow:hidden}.share-row>*{z-index:1;position:relative}.share-row b{background:linear-gradient(90deg,#4f8cff,#32d3ff);border-radius:999px;height:3px;position:absolute;bottom:0;left:0}.share-row small{color:#9fb0c7;margin-top:3px;display:block}.open-work-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.open-work-grid button{color:#dceaff;cursor:pointer;background:#ffffff0b;border:1px solid #ffffff1a;border-radius:16px;gap:4px;padding:14px 10px;display:grid}.open-work-grid button strong{font-size:24px}.open-work-grid button span{color:#9fb0c7;font-size:12px}.vendor-rank-list .list-row b{color:#7dd3fc;margin-right:6px}@media (width<=980px){.analytics-grid{grid-template-columns:1fr}.analytics-card.wide{grid-column:span 1}}@media (width<=560px){.cashflow-row{grid-template-columns:36px 1fr}.cashflow-row strong{grid-column:2;justify-self:end}.open-work-grid{grid-template-columns:1fr}}.auth-shell{background:radial-gradient(circle at 0 0,#4153b138,#0000 32%),linear-gradient(135deg,#10172a 0%,#111827 52%,#172033 100%);place-items:center;min-height:100vh;padding:24px;display:grid}.auth-card{text-align:left;background:#fffffff5;border:1px solid #ffffffb8;border-radius:28px;gap:16px;width:min(440px,100%);padding:28px;display:grid;box-shadow:0 28px 80px #00000047}.auth-logo{object-fit:contain;border-radius:16px;width:54px;height:54px;box-shadow:0 10px 24px #0f172a1f}.auth-icon{color:#3547c7;background:#eef2ff;border-radius:16px;place-items:center;width:48px;height:48px;display:grid}.auth-card h1{color:#111827;letter-spacing:-.04em;margin:0;font-size:clamp(1.6rem,4vw,2.15rem)}.auth-card p,.auth-card small{color:#64748b;line-height:1.5}.auth-error{color:#b91c1c;background:#fff1f2;border:1px solid #fecaca;border-radius:14px;padding:10px 12px;font-weight:700}.warning-button{color:#fbbf24!important;border-color:#f59e0b8c!important}.inline-toast{width:fit-content;max-width:100%;margin-top:1rem;position:static}.muted{color:var(--muted);font-size:.95rem;line-height:1.5}.check-list{color:var(--muted);gap:.45rem;display:grid}.check-list p{margin:0}@media (display-mode:standalone){.app-shell:before{content:"Installed app mode";z-index:20;color:var(--muted);border:1px solid var(--border);background:#0f172ae0;border-radius:999px;padding:.35rem .6rem;font-size:.72rem;position:fixed;bottom:5.25rem;right:1rem}}.automation-note h2{align-items:center;gap:.5rem;display:flex}.automation-row{align-items:flex-start;gap:1rem}.automation-row em{color:var(--muted);margin-top:.25rem;font-size:.85rem;font-style:normal;display:block}.row-actions{flex-wrap:wrap;justify-content:flex-end;gap:.5rem;display:flex}@media (width<=760px){.automation-row{display:grid}.row-actions{justify-content:stretch}.row-actions button{flex:1}}.sidebar-lock-btn{color:#f8d2d2;background:#ffffff0f;border-color:#ffffff1f;align-items:center;gap:10px;margin-top:18px;display:inline-flex}.lock-action{color:#ffe2e2;border-color:#f8717138}.mobile-lock-btn{color:#ffe2e2!important;background:#f871711a!important;border-color:#f8717138!important}@media (width<=860px){.mobile-nav{grid-template-columns:repeat(8,minmax(72px,1fr))}}.metric-button{text-align:left;border:1px solid var(--border,#94a3b840);cursor:pointer;width:100%}.metric-button:hover,.action-link:hover{transform:translateY(-1px)}.action-panel{border-style:dashed}.info-box{color:var(--text,#e5edf8);background:#38bdf814;border:1px solid #38bdf840;border-radius:14px;margin:.5rem 0 1rem;padding:.8rem 1rem}.month-picker small{opacity:.72;margin-top:.15rem;font-size:.72rem;display:block}.month-picker select{min-width:7rem}.clickable-row{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #ffffff12;align-items:center}.clickable-row:hover{background:#94a3b814;border-radius:12px;padding-left:10px;padding-right:10px}.clickable-row em{color:#7dd3fc;font-size:.78rem;font-style:normal}.bookkeeping-picker{min-width:260px}.month-select-row{grid-template-columns:minmax(140px,1fr) 100px;gap:8px;display:grid}.month-select-row select{min-height:46px}.automation-row .row-actions{flex-wrap:wrap;justify-content:flex-end}@media (width<=700px){main{padding-bottom:116px}.topbar-actions{gap:10px}.bookkeeping-picker{min-width:0}.month-select-row{grid-template-columns:1fr 96px}.mobile-nav{grid-template-columns:repeat(5,minmax(76px,1fr));padding-bottom:10px;overflow-x:auto}.mobile-nav .nav-btn{white-space:nowrap;min-height:44px}.mobile-fab{bottom:92px}.card,.metric,.report-hero{border-radius:20px}.row-actions,.card-actions,.quick-action-buttons{gap:8px}button,.ghost,.primary,input,select,textarea{font-size:16px}}.row-action-group{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:inline-flex}@media (width<=720px){.row-action-group{justify-content:flex-start;width:100%}}.filter-title{flex-wrap:wrap;justify-content:space-between}.filter-title>span{align-items:center;gap:8px;display:inline-flex}.compact{border-radius:12px;min-height:38px;padding:8px 12px}.mobile-mode-notice{background:#38bdf813;border-style:dashed;border-color:#38bdf852}.mobile-mode-notice strong{color:#dff8ff}.mobile-mode-notice p{margin-bottom:0}.backup-check-row span{line-height:1.35}.bookkeeping-native-picker input[type=month]{min-width:180px}.app-shell.tablet main{max-width:1020px}@media (width>=768px) and (width<=1023px){.app-shell{grid-template-columns:220px 1fr}.sidebar{padding:18px}main{padding:22px}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.quick-action-buttons{flex-wrap:wrap;gap:10px;display:flex}}@media (width<=767px){.topbar{gap:12px}.topbar-actions{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.topbar-actions .bookkeeping-picker,.topbar-actions .bookkeeping-native-picker{grid-column:1/-1}.quick-action-buttons{grid-template-columns:1fr;display:grid}.quick-action-buttons .ghost,.quick-action-buttons .primary,.card-actions .ghost,.row-actions .ghost,.row-actions .primary{width:100%}.mobile-nav{scrollbar-width:none;grid-template-columns:repeat(7,minmax(64px,1fr));overflow-x:auto}.mobile-nav::-webkit-scrollbar{display:none}.mobile-nav .nav-btn{text-align:center;min-height:44px;padding:9px 8px;font-size:12px}.form-grid{gap:12px}.receipt-upload-panel{gap:10px;display:grid}.transaction-card-top{display:grid}.list-row,.subtle-row,.clickable-row{gap:8px;display:grid}.clickable-row em,.list-row strong{justify-self:start}}.review-row-main{appearance:none;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;width:100%;padding:0;display:grid}.review-row-main:hover strong:first-child,.review-row-main:focus-visible strong:first-child{text-decoration:underline}.review-row-main em{color:var(--muted);font-size:.78rem;font-style:normal}.numbered-help{color:var(--muted);margin:.75rem 0 0;padding-left:1.25rem;font-size:.9rem}.numbered-help li{margin:.25rem 0}@media (width<=767px){.review-row-main{grid-template-columns:minmax(0,1fr)}}
