:root{--bg:#0f0f1a;--surface:#1a1a2e;--surface-2:#1e1e2e;--hover:#2a2a3e;--border:#2d2d44;--text:#e8e8f2;--muted:#8d8daa;--accent:#4cc9f0;--accent-ink:#0f0f1a;--danger:#e63946;--success:#4caf50;--warning:#ffc107;--violet:#a78bfa;--info:#7cc4e4;--chart:#269cc8;--font-sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Roboto Mono", ui-monospace, monospace;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3{margin:0;font-weight:600}button,input{font:inherit;color:inherit}a{color:inherit;text-decoration:none}.muted{color:var(--muted)}.splash{height:100%;color:var(--muted);place-items:center;display:grid}.brand{font-family:var(--font-mono);align-items:baseline;gap:8px;display:flex}.brand-mark{letter-spacing:.12em;color:var(--accent);font-weight:700}.brand-sub{color:var(--muted);font-size:.85em}.brand-lg{font-size:22px}.shell{grid-template-columns:232px 1fr;min-height:100%;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:24px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.sidebar .brand{padding:0 10px}.nav{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--muted);white-space:nowrap;border-radius:8px;align-items:center;gap:12px;padding:9px 10px;display:flex}.nav-item:hover{background:var(--hover);color:var(--text)}.nav-item.active{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--accent)}.sidebar-foot{border-top:1px solid var(--border);flex-direction:column;gap:8px;margin-top:auto;padding:12px 10px 0;display:flex}.user-email{text-overflow:ellipsis;color:var(--muted);font-size:13px;overflow:hidden}.content{min-width:0;padding:36px 40px}.page{flex-direction:column;gap:32px;max-width:1100px;display:flex}.page-head h1{font-size:28px}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:12px}.section-title{font-size:13px;font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.module-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;display:grid}.module-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:18px;transition:border-color .15s,transform .15s;display:flex}.module-card:hover{border-color:var(--accent);transform:translateY(-1px)}.module-card h3{font-size:16px}.module-card p{color:var(--muted);margin:0;font-size:14px}.module-card-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.module-icon{background:var(--surface-2);border:1px solid var(--border);width:38px;height:38px;color:var(--accent);border-radius:9px;place-items:center;display:inline-grid}.badge{border:1px solid var(--border);font-family:var(--font-mono);color:var(--violet);border-radius:999px;padding:2px 8px;font-size:11px}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius);flex-direction:column;align-items:flex-start;gap:10px;max-width:560px;padding:28px;display:flex}.empty-state p{margin:0}.login-page{background:radial-gradient(ellipse at top, #1a1a2e 0%, var(--bg) 60%);place-items:center;min-height:100%;padding:24px 16px;display:grid}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:16px;width:100%;max-width:380px;padding:32px 28px;display:flex;box-shadow:0 24px 60px #00000059}.login-hint{color:var(--muted);margin:-6px 0 4px;font-size:14px}.field{color:var(--muted);flex-direction:column;gap:6px;font-size:13px;display:flex}.field input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:15px}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}.code-input{font-family:var(--font-mono);letter-spacing:.4em}.form-error{background:color-mix(in srgb, var(--danger) 14%, transparent);color:#ff8a93;border-radius:8px;margin:0;padding:8px 12px;font-size:14px}.btn-primary{background:var(--accent);color:var(--accent-ink);cursor:pointer;border:none;border-radius:8px;margin-top:4px;padding:11px 14px;font-weight:600}.btn-primary:hover:not(:disabled){filter:brightness(1.08)}.btn-primary:disabled,.btn-ghost:disabled{opacity:.6;cursor:default}.btn-ghost{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 0;font-size:13px;display:inline-flex}.btn-ghost:hover:not(:disabled){color:var(--danger)}@media (width<=760px){.shell{grid-template-columns:1fr}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:12px;height:auto;padding:12px 16px;position:static;overflow-x:auto}.sidebar .brand{padding:0}.nav{flex-direction:row}.nav-item span{display:none}.sidebar-foot{border:none;margin:0 0 0 auto;padding:0}.user-email,.sidebar-foot .btn-ghost span{display:none}.content{padding:24px 16px}}.btn-secondary{border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;white-space:nowrap;border-radius:8px;align-items:center;padding:8px 14px;font-size:14px;font-weight:500;display:inline-flex}.btn-secondary:hover:not(:disabled):not(.is-disabled){border-color:var(--accent);color:var(--accent)}.btn-secondary:disabled,.btn-secondary.is-disabled{opacity:.5;cursor:default}.chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:999px;align-items:center;gap:2px;padding:0;font-size:13px;display:inline-flex}button.chip{padding:6px 14px}.chip.active{border-color:var(--accent);color:var(--text);background:color-mix(in srgb, var(--accent) 10%, var(--surface))}.chip-main{min-width:0;color:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:6px 4px 6px 12px;display:inline-flex}.chip-email{text-overflow:ellipsis;white-space:nowrap;max-width:220px;overflow:hidden}.count{background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);border-radius:999px;padding:0 7px;font-size:11px;font-weight:700}.chip-warn{background:color-mix(in srgb, var(--warning) 18%, transparent);color:var(--warning);border-radius:999px;padding:1px 8px;font-size:12px}.chip-x{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px 10px 4px 4px;font-size:16px;line-height:1}.chip-x:hover{color:var(--danger)}.acct-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.acct-dot.google{background:var(--danger)}.acct-dot.microsoft{background:var(--accent)}.banner{border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;font-size:14px;display:flex}.banner-ok{background:color-mix(in srgb, var(--success) 14%, transparent);color:#9be29e}.banner-error{background:color-mix(in srgb, var(--danger) 14%, transparent);color:#ff8a93}.banner-close{color:inherit;cursor:pointer;background:0 0;border:none;font-size:18px;line-height:1}.small{font-size:13px}.page-wide{max-width:none}.mail-page{gap:16px;height:calc(100vh - 72px)}.mail-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.mail-head h1{font-size:28px}.mail-actions{flex-wrap:wrap;gap:8px;display:flex}.accounts-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.sync-note{margin-left:auto;font-size:12px}.mail-split{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex:1;grid-template-columns:minmax(300px,420px) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.mail-list-pane{border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.mail-toolbar{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:10px;display:flex}.search-input{border:1px solid var(--border);background:var(--bg);min-width:0;color:var(--text);border-radius:8px;flex:1;padding:8px 10px;font-size:14px}.search-input:focus{border-color:var(--accent);outline:none}.toggle{color:var(--muted);white-space:nowrap;cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.toggle input{accent-color:var(--accent)}.mail-list{flex:1;margin:0;padding:0;list-style:none;overflow-y:auto}.list-note{padding:16px}.mail-item{border:none;border-bottom:1px solid var(--border);width:100%;color:var(--muted);text-align:left;cursor:pointer;background:0 0;gap:10px;padding:12px 14px;display:flex}.mail-item .acct-dot{margin-top:6px}.mail-item:hover{background:var(--hover)}.mail-item.selected{background:color-mix(in srgb, var(--accent) 12%, var(--surface))}.mail-item-main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.mail-item-top{justify-content:space-between;gap:8px;display:flex}.mail-from,.mail-subject,.mail-snippet{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.mail-from{color:var(--text)}.mail-item time{font-family:var(--font-mono);flex:none;font-size:12px}.mail-subject{font-size:14px}.mail-snippet{opacity:.8;font-size:13px}.mail-item.unread .mail-from,.mail-item.unread .mail-subject{color:var(--text);font-weight:600}.mail-item.unread time{color:var(--accent)}.load-more{justify-content:center;padding:12px}.mail-view-pane{min-height:0;overflow-y:auto}.mail-view-empty{place-items:center;height:100%;display:grid}.mail-view{flex-direction:column;min-height:100%;display:flex}.mail-view-head{flex-direction:column;gap:4px;padding:20px 24px 16px;display:flex}.mail-view-head h2{margin-bottom:6px;font-size:20px}.mail-view-head p{margin:0;font-size:14px}.mail-view .form-error{margin:20px 24px}.mail-frame{background:#fff;border:none;flex:1;width:100%;min-height:480px}.back-btn{padding:12px 24px 0;display:none}@media (width<=900px){.mail-page{height:auto}.mail-split{grid-template-columns:minmax(0,1fr)}.mail-list-pane{border-right:none}.mail-list{overflow:visible}.mail-split.has-selection .mail-list-pane,.mail-split:not(.has-selection) .mail-view-pane{display:none}.back-btn{display:inline-flex}.mail-frame{min-height:70vh}.sync-note{width:100%;margin-left:0}}.spending-page{gap:20px;transition:opacity .15s}.spending-page.is-refetching{opacity:.6}.spending-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.spending-head h1{font-size:28px}.spending-filters,.month-picker{align-items:center;gap:8px;display:flex}.month-label{text-align:center;min-width:150px;font-weight:600}.import-notes{flex-direction:column;gap:8px;display:flex}.banner-info{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--info)}.banner-warn{background:color-mix(in srgb, var(--warning) 12%, transparent);color:var(--warning)}.banner code{font-family:var(--font-mono);font-size:13px}.link-btn{color:var(--accent);font-size:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.error-list{border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:6px;margin:0;padding:12px 16px;font-size:13px;list-style:none;display:flex}.error-list li{justify-content:space-between;gap:12px;display:flex}.kpi-row{grid-template-columns:1.4fr repeat(3,1fr);gap:12px;display:grid}.kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:4px;padding:16px 18px;display:flex}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{font-size:24px;font-weight:600}.kpi-hero .kpi-value{font-size:48px;line-height:1.1}.kpi-sub{font-size:12px}.kpi-value.is-up{color:#ff8a93}.kpi-value.is-down{color:#9be29e}.spending-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:12px;display:grid}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.span-2{grid-column:span 2}.card-title{align-items:center;gap:10px;margin-bottom:14px;font-size:15px;font-weight:600;display:flex}.chart-empty{margin:0}.bar-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.bar-row{width:100%;color:var(--text);text-align:left;background:0 0;border:none;border-radius:6px;grid-template-columns:1fr auto;gap:6px 12px;padding:6px 8px;font-size:14px;display:grid}.bar-row.is-button{cursor:pointer}.bar-row.is-button:hover{background:var(--hover)}.bar-row.active{background:color-mix(in srgb, var(--accent) 12%, transparent)}.bar-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bar-value{font-variant-numeric:tabular-nums}.bar-track{grid-column:span 2;height:8px;display:block}.bar-fill{background:var(--chart);border-radius:0 4px 4px 0;min-width:2px;height:100%;display:block}.columns-chart{grid-template-columns:auto 1fr;gap:8px;display:grid}.columns-axis{height:calc(180px + 1em);line-height:1em;font-family:var(--font-mono);color:var(--muted);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;margin-top:-.5em;font-size:11px;display:flex}.columns-plot{min-width:0;position:relative}.columns-grid{pointer-events:none;flex-direction:column;justify-content:space-between;height:180px;display:flex;position:absolute;top:0;left:0;right:0}.columns-grid span{border-top:1px solid var(--border)}.columns-bars{align-items:flex-end;gap:2px;height:180px;display:flex;position:relative}.column-slot{cursor:default;background:0 0;border:none;flex:1;justify-content:center;align-items:flex-end;height:100%;padding:0;display:flex;position:relative}.column-slot:focus-visible{outline:1px solid var(--accent);outline-offset:1px}.column-bar{background:var(--chart);border-radius:4px 4px 0 0;width:100%;max-width:24px}.column-slot.hovered .column-bar{filter:brightness(1.25)}.chart-tooltip{z-index:2;border:1px solid var(--border);background:var(--bg);color:var(--muted);white-space:nowrap;pointer-events:none;text-align:left;border-radius:6px;flex-direction:column;padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.chart-tooltip.align-end{left:auto;right:0;transform:none}.chart-tooltip strong{color:var(--text);font-size:14px}.columns-x{font-family:var(--font-mono);color:var(--muted);gap:2px;margin-top:6px;font-size:11px;display:flex}.columns-x span{text-align:center;flex:1}.table-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.table-head .card-title{margin:0}.table-tools{align-items:center;gap:12px;display:flex}.filter-chip{border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;border-radius:999px;padding:2px 10px;font-size:12px;font-weight:500}.table-wrap{overflow-x:auto}.tx-table{border-collapse:collapse;width:100%;font-size:14px}.tx-table th{border-bottom:1px solid var(--border);color:var(--muted);text-align:left;padding:8px 10px;font-size:12px;font-weight:500}.tx-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:8px 10px}.tx-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tx-table .nowrap{white-space:nowrap}.tx-table tr.is-excluded td{color:var(--muted)}.merchant{margin-right:6px}.tag{border:1px solid var(--border);color:var(--muted);border-radius:999px;margin-right:4px;padding:0 7px;font-size:11px;display:inline-block}.cat-select{border:1px solid var(--border);background:var(--bg);max-width:190px;color:var(--text);border-radius:6px;padding:4px 6px;font-size:13px}@media (width<=900px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}.kpi-hero{grid-column:span 2}.spending-grid{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}.month-label{min-width:0}.table-tools{width:100%}}.filter-select{border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:8px;padding:8px 10px;font-size:14px}.filter-select:focus{border-color:var(--accent);outline:none}.spending-filters{flex-wrap:wrap}.cards-page{gap:20px}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(420px,1fr));align-items:start;gap:12px;display:grid}.account-card{flex-direction:column;gap:16px;display:flex}.account-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.account-head h2{align-items:baseline;gap:6px;font-size:18px;display:flex}.account-figures{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.figure{flex-direction:column;gap:2px;display:flex}.figure-value{font-size:22px;font-weight:600}.due-soon{color:var(--warning)}.meter-block{flex-direction:column;gap:6px;display:flex}.meter-labels{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.meter{background:color-mix(in srgb, var(--chart) 22%, transparent);border-radius:4px;height:8px;display:block;overflow:hidden}.meter-fill{background:var(--chart);border-radius:4px;height:100%;display:block}.meter-fill.is-mid{background:var(--warning)}.meter-fill.is-high{background:var(--danger)}.account-line{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;font-size:14px;display:flex}.warn-text{color:var(--warning)}.history summary{cursor:pointer;color:var(--muted);font-size:13px}.history[open] summary{margin-bottom:8px}.reconcile-note{margin:-6px 0 12px}.tag-pending{border-color:color-mix(in srgb, var(--accent) 45%, transparent);color:var(--info)}@media (width<=900px){.cards-grid{grid-template-columns:minmax(0,1fr)}.account-figures{grid-template-columns:repeat(2,minmax(0,1fr))}}
