/* extracted from cashflow_dashboard.html inline <style> block */

/* ─── THEME VARIABLES ─────────────────────────────── */
:root,[data-theme="light"]{
  --bg:#f7f7fa;--card:#ffffff;--card2:#f3f3f3;
  --hdr:#ffffff;--hdr-border:rgba(0,0,0,0.07);
  --co-bar:#ffffff;--acct-bar:#f7f7fa;
  --txt:#101010;--txt2:#525252;--txt3:#a6a6a6;
  --accent:#101010;--accent-dim:rgba(71,255,157,0.18);
  --mint:#47ff9d;--mint-soft:rgba(71,255,157,0.14);
  --green:#0a8f4e;--red:#dc2626;--amber:#b45309;
  --border:rgba(0,0,0,0.07);--border2:rgba(0,0,0,0.12);
  --shadow:0 1px 2px rgba(0,0,0,0.04),0 1px 3px rgba(0,0,0,0.06);--shadow-lg:0 12px 40px rgba(0,0,0,0.10);
  --input:#f3f3f3;--input-border:rgba(0,0,0,0.08);
  --hover:rgba(0,0,0,0.03);--row-border:rgba(0,0,0,0.06);
  --th:#f7f7fa;--th-txt:#7e7e7e;--modal:#ffffff;
  --setup-bg:rgba(71,255,157,0.10);--setup-border:rgba(71,255,157,0.32);--setup-txt:#0a8f4e;
  --cf-sec:#f3f3f3;--cf-tot:rgba(16,16,16,0.05);--cf-tot-txt:#101010;
  --cf-bal:rgba(71,255,157,0.14);--cf-bal-txt:#0a8f4e;--cf-nil:#d4d4d4;
  --rule-bg:rgba(180,83,9,0.07);--rule-border:rgba(180,83,9,0.22);--rule-txt:#b45309;
  --badge-fc-bg:rgba(71,255,157,0.18);--badge-fc-txt:#0a8f4e;
  --badge-l-bg:rgba(180,83,9,0.1);--badge-l-txt:#b45309;
  --badge-acct-bg:rgba(0,0,0,0.05);--badge-acct-txt:#525252;
  --sav-grad:#ffffff;--sav-border:rgba(71,255,157,0.42);--sav-txt:#0a8f4e;
  --info-bg:rgba(71,255,157,0.10);--info-border:rgba(71,255,157,0.30);--info-txt:#0a8f4e;
}
[data-theme="dark"]{
  --bg:#000000;--card:#0a0a0a;--card2:#141414;
  --hdr:#000000;--hdr-border:rgba(255,255,255,0.05);
  --co-bar:#000000;--acct-bar:#050505;
  --txt:#ffffff;--txt2:#a6a6a6;--txt3:#525252;
  --accent:#47ff9d;--accent-dim:rgba(71,255,157,0.12);
  --mint:#47ff9d;--mint-soft:rgba(71,255,157,0.10);
  --green:#47ff9d;--red:#ff6b6b;--amber:#f5b544;
  --border:rgba(255,255,255,0.06);--border2:rgba(255,255,255,0.1);
  --shadow:0 1px 2px rgba(0,0,0,0.5),0 1px 4px rgba(0,0,0,0.4);--shadow-lg:0 16px 48px rgba(0,0,0,0.7);
  --input:#141414;--input-border:rgba(255,255,255,0.07);
  --hover:rgba(255,255,255,0.03);--row-border:rgba(255,255,255,0.05);
  --th:#000000;--th-txt:#7e7e7e;--modal:#0a0a0a;
  --setup-bg:rgba(71,255,157,0.06);--setup-border:rgba(71,255,157,0.22);--setup-txt:#47ff9d;
  --cf-sec:#080808;--cf-tot:rgba(255,255,255,0.04);--cf-tot-txt:#ffffff;
  --cf-bal:rgba(71,255,157,0.10);--cf-bal-txt:#47ff9d;--cf-nil:#1f1f1f;
  --rule-bg:rgba(245,181,68,0.07);--rule-border:rgba(245,181,68,0.20);--rule-txt:#f5b544;
  --badge-fc-bg:rgba(71,255,157,0.14);--badge-fc-txt:#47ff9d;
  --badge-l-bg:rgba(245,181,68,0.14);--badge-l-txt:#f5b544;
  --badge-acct-bg:rgba(255,255,255,0.06);--badge-acct-txt:#a6a6a6;
  --sav-grad:#0a0a0a;--sav-border:rgba(71,255,157,0.30);--sav-txt:#47ff9d;
  --info-bg:rgba(71,255,157,0.07);--info-border:rgba(71,255,157,0.22);--info-txt:#47ff9d;
}
*{box-sizing:border-box;margin:0;padding:0}
html{transition:background .35s cubic-bezier(0.22,1,0.36,1),color .35s cubic-bezier(0.22,1,0.36,1)}
body{font-family:'Instrument Sans',-apple-system,BlinkMacSystemFont,'Inter','Segoe UI',sans-serif;background:var(--bg);color:var(--txt);min-height:100vh;font-size:14px;letter-spacing:-0.005em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'ss01' 1;padding-left:64px}

/* ─── SIDEBAR ─────────────────────────────────────── */
.sidebar{position:fixed;top:0;left:0;bottom:0;width:64px;background:var(--hdr);border-right:1px solid var(--hdr-border);display:flex;flex-direction:column;align-items:center;padding:14px 0 12px;z-index:200;transition:background-color .2s,border-color .2s}
.sidebar .logo{width:32px;height:32px;border-radius:8px;background:var(--mint)!important;color:#101010;font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-bottom:14px}
.sb-divider{width:28px;height:1px;background:var(--border);margin:8px 0;flex-shrink:0}
.sb-nav,.sb-utils{display:flex;flex-direction:column;gap:4px;align-items:center}
.sb-nav{flex:1;margin-top:4px}
.nav-item{width:40px;height:40px;border-radius:10px;background:transparent;border:none;display:flex;align-items:center;justify-content:center;color:var(--txt2);cursor:pointer;transition:background-color .2s,color .2s;position:relative;padding:0}
.nav-item:hover{background:var(--hover);color:var(--txt)}
.nav-item.active{background:var(--card2);color:var(--txt)}
.nav-item.active::before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:2px;background:var(--mint);border-radius:0 2px 2px 0}
.nav-item svg{width:18px;height:18px;stroke-width:1.75}
.nav-item .nav-badge{position:absolute;top:3px;right:3px;min-width:16px;height:16px;border-radius:60px;background:var(--mint);color:#101010;font-size:9px;font-weight:600;text-align:center;line-height:16px;padding:0 4px;display:inline-block}
.nav-item .nav-badge:empty{display:none!important}
.nav-item .nav-tip{position:absolute;left:52px;top:50%;transform:translateY(-50%);background:var(--card2);color:var(--txt);font-size:12px;padding:6px 10px;border-radius:8px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s;border:1px solid var(--border);box-shadow:var(--shadow);z-index:300}
.nav-item:hover .nav-tip{opacity:1}
.sb-sync{font-size:9px;color:var(--txt3);writing-mode:vertical-rl;transform:rotate(180deg);margin-top:4px;letter-spacing:.05em;display:none}
.sb-sync.visible{display:block}

/* hide the legacy header + horizontal tabs */
.hdr-legacy{display:none!important}
.tabs{display:none!important}

/* page header inside content */
.page-hdr{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.page-title{font-size:26px;font-weight:600;color:var(--txt);letter-spacing:-.025em;line-height:1.15}
.page-meta{font-size:12px;color:var(--txt3);margin-top:4px}
.page-hdr-r{display:flex;align-items:center;gap:8px}

/* ─── FLATPICKR THEME ─────────────────────────────── */
.flatpickr-calendar{background:var(--card)!important;border:1px solid var(--border2)!important;border-radius:14px!important;box-shadow:var(--shadow-lg)!important;font-family:inherit!important;padding:6px;color:var(--txt)!important;overflow:hidden}
.flatpickr-calendar.arrowTop:before,.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowBottom:before,.flatpickr-calendar.arrowBottom:after{display:none!important}
.flatpickr-months{padding:8px 4px 4px}
.flatpickr-month{color:var(--txt)!important;height:auto!important}
.flatpickr-current-month{padding-top:4px;font-size:14px;font-weight:500;letter-spacing:-.01em}
.flatpickr-current-month .cur-month,.flatpickr-current-month input.cur-year{color:var(--txt)!important;font-weight:500!important;font-family:inherit!important}
.flatpickr-current-month input.cur-year{background:transparent!important;border:none!important}
.flatpickr-monthDropdown-months{background:var(--card)!important;color:var(--txt)!important;font-family:inherit!important;font-weight:500!important;border-radius:6px;padding:2px 6px}
.flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background:var(--card)!important;color:var(--txt)!important}
.flatpickr-prev-month,.flatpickr-next-month{fill:var(--txt2)!important;padding:8px!important;border-radius:8px;transition:background-color .2s,color .2s}
.flatpickr-prev-month:hover,.flatpickr-next-month:hover{background:var(--hover)!important;fill:var(--mint)!important}
.flatpickr-prev-month svg,.flatpickr-next-month svg{fill:inherit!important;width:14px;height:14px}
.flatpickr-weekdays{background:transparent!important;height:30px}
.flatpickr-weekday{color:var(--txt3)!important;font-weight:500!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.08em;background:transparent!important}
.flatpickr-days{padding:4px 0}
.dayContainer{padding:0 4px 4px}
.flatpickr-day{color:var(--txt)!important;border:none!important;border-radius:10px!important;height:36px!important;line-height:36px!important;max-width:36px;font-weight:500;transition:background-color .15s,color .15s}
.flatpickr-day:hover,.flatpickr-day:focus{background:var(--hover)!important;color:var(--txt)!important}
.flatpickr-day.today{color:var(--mint)!important;font-weight:600;position:relative}
.flatpickr-day.today:not(.selected):after{content:"";position:absolute;bottom:5px;left:50%;transform:translateX(-50%);width:3px;height:3px;border-radius:50%;background:var(--mint)}
.flatpickr-day.selected,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.endRange{background:var(--mint)!important;color:#101010!important;font-weight:600!important;border-color:var(--mint)!important}
.flatpickr-day.inRange{background:var(--mint-soft)!important;color:var(--txt)!important;box-shadow:none!important}
.flatpickr-day.flatpickr-disabled,.flatpickr-day.prevMonthDay,.flatpickr-day.nextMonthDay{color:var(--txt3)!important;opacity:.4}
.flatpickr-day.flatpickr-disabled:hover{background:transparent!important}
.numInputWrapper:hover,.numInputWrapper input:hover{background:var(--hover)!important}
.numInputWrapper span{border:none!important;background:transparent!important}
.numInputWrapper span:after{border-top-color:var(--txt2)!important;border-bottom-color:var(--txt2)!important}
input.flatpickr-alt-input{display:block}
.amt-pos,.amt-neg,.kpi-val,.sav-value,.cf-tbl td,.pay-amt,.cv-pos,.cv-neg,.cv-fc,.cv-nil{font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1}

/* ─── COMPONENTS ──────────────────────────────────── */
.hdr{background:var(--hdr);border-bottom:1px solid var(--hdr-border);padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:60px;position:sticky;top:0;z-index:100;transition:background .35s cubic-bezier(0.22,1,0.36,1),border-color .35s cubic-bezier(0.22,1,0.36,1);backdrop-filter:saturate(180%) blur(20px)}
.hdr-l{display:flex;align-items:center;gap:12px}
.logo{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#101010;font-weight:700;font-size:11px;background:var(--mint);flex-shrink:0}
.hdr-title{font-size:18px;font-weight:400;color:var(--txt);letter-spacing:-.015em}
.hdr-r{display:flex;align-items:center;gap:8px}
.btn{padding:8px 16px;border-radius:60px;border:none;cursor:pointer;font-size:13px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:background-color .2s,border-color .2s,color .2s;line-height:1;letter-spacing:-.005em;font-family:inherit}
.btn-p{background:var(--mint);color:#101010}.btn-p:hover{background:#3ce98e}
.btn-s{background:transparent;color:var(--txt);border:1px solid var(--border2)}.btn-s:hover{border-color:var(--mint);color:var(--mint);background:var(--mint-soft)}
.btn-d{background:transparent;color:var(--red);border:1px solid rgba(255,107,107,0.28)}.btn-d:hover{background:rgba(255,107,107,0.08);border-color:var(--red)}
.btn-sm{padding:5px 11px;font-size:11px;border-radius:60px}
.co-bar{background:var(--co-bar);border-bottom:1px solid var(--hdr-border);padding:0 28px;display:flex;align-items:stretch;gap:0;height:44px;position:sticky;top:0;z-index:99;transition:background-color .2s,border-color .2s}
.co-btn{padding:0 18px;border:none;border-bottom:2px solid transparent;background:transparent;font-size:13px;font-weight:500;color:var(--txt2);cursor:pointer;transition:color .25s cubic-bezier(0.22,1,0.36,1),border-color .25s cubic-bezier(0.22,1,0.36,1),background .25s cubic-bezier(0.22,1,0.36,1);display:flex;align-items:center;gap:8px;font-family:inherit;letter-spacing:-.005em}
.co-btn.active{color:var(--txt);border-bottom-color:var(--mint)}
.co-btn:hover:not(.active){color:var(--txt);background:var(--hover)}
.co-btn .co-dot{width:6px;height:6px;border-radius:50%;display:inline-block}
.acct-bar{background:var(--acct-bar);border-bottom:1px solid var(--border);padding:10px 24px;display:flex;gap:6px;align-items:center;flex-wrap:wrap;transition:background .35s cubic-bezier(0.22,1,0.36,1)}
.acct-btn{padding:6px 14px;border:1px solid var(--border2);border-radius:60px;font-size:12px;font-weight:600;color:var(--txt);background:transparent;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s;font-family:inherit;letter-spacing:-.005em;display:inline-flex;align-items:center;gap:7px}
.acct-btn .acct-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;display:inline-block}
.acct-btn:hover:not(.active){border-color:var(--mint);color:var(--txt)}
.acct-btn.active{color:#fff;border-color:transparent}
.acct-btn.active .acct-dot{background:#fff!important;opacity:.9}
.acct-btn.acct-group{font-weight:700}
.acct-btn.acct-group:not(:first-child){margin-left:14px}
.acct-btn.acct-sub{font-size:11px;font-weight:500;color:var(--txt2);padding:5px 12px}
.acct-btn.acct-sub:hover:not(.active){color:var(--txt)}
.acct-btn.acct-sub .acct-dot{width:5px;height:5px;opacity:.7}
.setup-banner{background:var(--setup-bg);border-bottom:1px solid var(--setup-border);padding:14px 24px;font-size:13px;color:var(--setup-txt);display:flex;align-items:flex-start;gap:12px}
.setup-banner ol{margin:7px 0 0 18px;line-height:1.8}
.wrap{max-width:1440px;margin:0 auto;padding:28px 24px}
.kpi{animation:kpiIn .5s cubic-bezier(0.22,1,0.36,1) both}
.kpi:nth-child(1){animation-delay:.05s}.kpi:nth-child(2){animation-delay:.10s}.kpi:nth-child(3){animation-delay:.15s}.kpi:nth-child(4){animation-delay:.20s}
@keyframes kpiIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
::selection{background:var(--mint);color:#101010}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border2);border-radius:60px;border:2px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:var(--mint)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}
.kpi{background:var(--card);border-radius:14px;padding:22px 24px;border:1px solid var(--border);transition:background-color .2s,border-color .2s}
.kpi:hover{border-color:var(--border2)}
.kpi-lbl{font-size:11px;font-weight:500;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:10px}
.kpi-val{font-size:32px;font-weight:500;color:var(--txt);letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}
.kpi-sub{font-size:11px;color:var(--txt3);margin-top:6px}
.kpi-green .kpi-val{color:var(--mint)}.kpi-red .kpi-val{color:var(--red)}
.savings-panel{background:var(--sav-grad);border:1px solid var(--sav-border);border-radius:14px;padding:22px 24px;margin-bottom:18px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;position:relative;overflow:hidden}
.savings-panel::before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--mint)}
.sav-hdr{grid-column:1/-1;display:flex;align-items:center;gap:10px;margin-bottom:6px}
.sav-title{font-size:18px;font-weight:400;color:var(--sav-txt);letter-spacing:-.01em}
.sav-rate{background:var(--mint-soft);color:var(--sav-txt);border-radius:60px;padding:3px 10px;font-size:11px;font-weight:500}
.sav-item{display:flex;flex-direction:column;gap:4px}
.sav-label{font-size:11px;color:var(--txt2);font-weight:500;text-transform:uppercase;letter-spacing:.08em}
.sav-value{font-size:26px;font-weight:500;color:var(--sav-txt);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.sav-sub{font-size:11px;color:var(--txt3)}
.sav-alert{background:var(--rule-bg);border:1px solid var(--rule-border);border-radius:10px;padding:10px 14px;font-size:12px;color:var(--amber);margin-top:4px;grid-column:1/-1}
.tabs{display:flex;gap:0;background:transparent;border-radius:0;padding:0;margin-bottom:22px;border-bottom:1px solid var(--border);width:100%}
.tab{padding:11px 20px;border-radius:0;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:13px;font-weight:500;color:var(--txt2);background:transparent;transition:color .2s,background-color .2s,border-color .2s;font-family:inherit;letter-spacing:-.005em}
.tab.active{color:var(--txt);border-bottom-color:var(--mint)}
.tab:hover:not(.active){color:var(--txt);background:var(--hover)}
.tab-content{display:none}.tab-content.active{display:block}
.chart-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-bottom:14px}
.card{background:var(--card);border-radius:14px;padding:22px;border:1px solid var(--border);transition:background-color .2s,border-color .2s}
.card:hover{border-color:var(--border2)}
.card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}
.card-title{font-size:18px;font-weight:400;color:var(--txt);letter-spacing:-.015em}
.ch{position:relative;height:260px}
.ch-sm{position:relative;height:190px}
.up-zone{border:1px dashed var(--border2);border-radius:14px;padding:32px;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s;background:transparent;margin-bottom:18px}
.up-zone:hover{border-color:var(--mint);background:var(--mint-soft)}
.up-icon{width:40px;height:40px;background:var(--mint-soft);border-radius:10px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;color:var(--mint)}
.up-zone p{color:var(--txt2);font-size:14px;font-weight:500}
.up-zone span{color:var(--mint)}
.up-zone small{color:var(--txt3);font-size:12px;margin-top:4px;display:block}
.filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.fi{padding:8px 12px;border:1px solid var(--input-border);border-radius:10px;font-size:12px;color:var(--txt);background:var(--input);outline:none;height:34px;transition:background-color .2s,border-color .2s,box-shadow .2s;font-family:inherit}
.fi:focus{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}
select.fi{cursor:pointer}
.fi option{background:var(--input);color:var(--txt)}
.tx-ct{margin-left:auto;font-size:12px;color:var(--txt3);font-weight:500}
table{width:100%;border-collapse:collapse;font-size:13px}
th{padding:11px 16px;text-align:left;font-weight:500;color:var(--th-txt);font-size:10px;text-transform:uppercase;letter-spacing:.09em;border-bottom:1px solid var(--row-border);background:var(--th);transition:background .35s cubic-bezier(0.22,1,0.36,1)}
td{padding:12px 16px;border-bottom:1px solid var(--row-border);vertical-align:middle;transition:background .25s cubic-bezier(0.22,1,0.36,1)}
tr:hover td{background:var(--hover)}
.tx-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600;letter-spacing:0}
.tx-name{font-weight:500;color:var(--txt);font-size:13px;line-height:1.3;letter-spacing:-.005em}
.tx-meta{font-size:11px;color:var(--txt2);margin-top:3px}
.amt-pos{color:var(--mint);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.amt-neg{color:var(--red);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cat-sel{padding:5px 10px;border:1px solid var(--input-border);border-radius:8px;font-size:12px;background:var(--input);cursor:pointer;outline:none;max-width:215px;color:var(--txt);transition:background-color .2s,border-color .2s,box-shadow .2s;font-family:inherit}
.cat-sel:focus{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}
.cat-sel option{background:var(--input)}
.badge{padding:3px 10px;border-radius:60px;font-size:11px;font-weight:500;white-space:nowrap;display:inline-block;letter-spacing:0}
.badge-fc{background:var(--badge-fc-bg);color:var(--badge-fc-txt)}
.badge-learned{background:var(--badge-l-bg);color:var(--badge-l-txt)}
.badge-acct{background:var(--badge-acct-bg);color:var(--badge-acct-txt);font-size:10px}
.empty{text-align:center;padding:60px 20px;color:var(--txt3)}
.empty h3{font-size:22px;font-weight:400;color:var(--txt2);margin-bottom:8px;letter-spacing:-.02em}
.empty p{font-size:13px}
.fc-form{display:grid;grid-template-columns:1fr 2fr 1fr 2fr 1fr auto;gap:12px;align-items:end}
.fg{display:flex;flex-direction:column;gap:5px}
.fl{font-size:11px;font-weight:500;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em}
.fin{padding:9px 12px;border:1px solid var(--input-border);border-radius:10px;font-size:13px;color:var(--txt);outline:none;height:38px;background:var(--input);transition:background-color .2s,border-color .2s,box-shadow .2s;font-family:inherit}
.fin:focus{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}
.fin option{background:var(--input)}
.rules-grid{display:flex;flex-wrap:wrap;gap:8px;padding:18px}
.rule-chip{background:var(--rule-bg);border:1px solid var(--rule-border);border-radius:60px;padding:6px 14px;font-size:12px;color:var(--rule-txt);display:inline-flex;align-items:center;gap:8px}
.rule-chip button{background:none;border:none;cursor:pointer;color:var(--rule-txt);font-size:14px;line-height:1;padding:0}
.cf-wrap{overflow-x:auto}
.cf-tbl{min-width:900px;font-size:12px;border-collapse:collapse;width:100%}
.cf-tbl th{padding:8px 12px;font-size:10px;text-align:right;white-space:nowrap;background:var(--card2);border-bottom:1px solid var(--border);color:var(--th-txt);letter-spacing:.06em;text-transform:uppercase;transition:background .2s}
.cf-tbl th:first-child{text-align:left;position:sticky;left:0;z-index:2;min-width:180px}
.cf-tbl td{padding:7px 12px;border-bottom:1px solid var(--row-border);text-align:right;white-space:nowrap;color:var(--txt);font-variant-numeric:tabular-nums}
.cf-tbl td:first-child{text-align:left;position:sticky;left:0;background:var(--card);z-index:1;font-weight:500;color:var(--txt);transition:background .2s;min-width:180px;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cf-sec td{background:var(--cf-sec)!important;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--txt3);border-top:1px solid var(--border)}
.cf-sec td:first-child{background:var(--cf-sec)!important}
.cf-tot td{background:var(--cf-tot)!important;font-weight:700;border-top:1px solid var(--border)}
.cf-tot td:first-child{background:var(--cf-tot)!important;color:var(--cf-tot-txt)}
.cf-bal td{background:var(--cf-bal)!important;font-weight:700;font-size:13px;border-top:1px solid var(--sav-border)}
.cf-bal td:first-child{background:var(--cf-bal)!important;color:var(--cf-bal-txt)}
.cv-pos{color:var(--green);font-weight:600}.cv-neg{color:var(--red);font-weight:600}.cv-fc{color:var(--accent);font-weight:600}.cv-nil{color:var(--cf-nil)}
.tog-grp{display:flex;border:1px solid var(--border2);border-radius:60px;overflow:hidden;background:transparent;width:fit-content;margin-bottom:16px;padding:3px}
.tog-btn{padding:6px 16px;border:none;background:transparent;font-size:12px;cursor:pointer;color:var(--txt2);font-weight:500;border-radius:60px;transition:background-color .2s,color .2s;font-family:inherit}
.tog-btn.active{background:var(--mint);color:#101010}
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:200;align-items:center;justify-content:center;backdrop-filter:blur(12px)}
.modal-bg.open{display:flex}
.mbox{background:var(--modal);border-radius:18px;padding:28px;max-width:92vw;box-shadow:var(--shadow-lg);border:1px solid var(--border);transition:background-color .2s}
.mbox-lg{width:560px}.mbox-md{width:420px}
.m-title{font-size:24px;font-weight:400;margin-bottom:22px;color:var(--txt);letter-spacing:-.02em}
.m-tabs{display:flex;gap:0;background:transparent;border-radius:0;padding:0;margin-bottom:18px;border-bottom:1px solid var(--border)}
.m-tab{flex:1;padding:10px 12px;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-size:12px;font-weight:500;cursor:pointer;color:var(--txt2);background:transparent;transition:color .2s,border-color .2s;font-family:inherit;letter-spacing:-.005em}
.m-tab.active{color:var(--txt);border-bottom-color:var(--mint)}
.m-section{display:none}.m-section.active{display:block}
.mfg{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.mfl{font-size:11px;font-weight:500;color:var(--txt2);text-transform:uppercase;letter-spacing:.08em}
.mfi{padding:10px 13px;border:1px solid var(--input-border);border-radius:10px;font-size:13px;color:var(--txt);outline:none;width:100%;background:var(--input);transition:background-color .2s,border-color .2s,box-shadow .2s;font-family:inherit}
.mfi:focus{border-color:var(--mint);box-shadow:0 0 0 3px var(--mint-soft)}
.mfi option{background:var(--input)}
.mfoot{display:flex;gap:8px;justify-content:flex-end;margin-top:22px}
.bal-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.m3-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.acct-pick{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.ap-btn{padding:8px 18px;border:1px solid var(--border2);border-radius:60px;font-size:13px;font-weight:500;color:var(--txt2);background:transparent;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s;font-family:inherit}
.ap-btn:hover:not(.active){border-color:var(--mint);color:var(--txt)}
.ap-btn.active{border-color:var(--mint);background:var(--mint);color:#101010}
.sync-badge{font-size:11px;font-weight:500;padding:4px 10px;border-radius:60px}
.info-strip{background:var(--info-bg);border:1px solid var(--info-border);border-radius:10px;padding:10px 16px;font-size:12px;color:var(--info-txt);margin-bottom:16px;display:flex;align-items:center;gap:8px;font-weight:500}
.dot{width:6px;height:6px;border-radius:50%;display:inline-block;flex-shrink:0}

/* Balance visibility */
.bal-hidden .amt-pos,.bal-hidden .amt-neg,.bal-hidden .kpi-val,.bal-hidden .sav-value,.bal-hidden .cv-pos,.bal-hidden .cv-neg,.bal-hidden .cv-fc,.bal-hidden .cf-bal td{filter:blur(6px);user-select:none;transition:filter .2s}

/* Recurring supplier detection */
.rec-item{display:flex;align-items:center;gap:14px;padding:14px 18px;border-bottom:1px solid var(--row-border);transition:background .25s cubic-bezier(0.22,1,0.36,1);flex-wrap:wrap}
.rec-item:hover{background:var(--hover)}
.rec-item:last-child{border-bottom:none}
.rec-edit{flex:0 0 100%;display:none;padding:12px 18px 16px 58px;border-top:1px solid var(--row-border);margin-top:4px}
.rec-edit-inner{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
.rec-icon{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:13px;font-weight:600}
.rec-body{flex:1;min-width:0}
.rec-name{font-weight:500;color:var(--txt);font-size:13px;margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.005em}
.rec-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--txt2)}
.rec-freq{padding:3px 10px;border-radius:60px;font-size:11px;font-weight:500}
.rec-actions{display:flex;gap:8px;align-items:center;flex-shrink:0;margin-left:8px}

/* Theme toggle button */
.theme-btn{width:34px;height:34px;border-radius:60px;border:1px solid var(--border2);background:transparent;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:background-color .2s,border-color .2s,color .2s;color:var(--txt2)}
.theme-btn:hover{border-color:var(--mint);color:var(--mint)}

/* Payment management */
.ct-row{display:flex;align-items:center;gap:10px;padding:9px 14px;border-bottom:1px solid var(--row-border);font-size:13px}
.ct-row:last-child{border-bottom:none}.ct-row:hover{background:var(--hover)}
.ct-name{font-weight:600;flex:1;min-width:140px}
.ct-iban{font-family:monospace;font-size:11px;color:var(--txt2);flex:2;word-break:break-all}
.ct-meta{font-size:11px;color:var(--txt3);flex:0 0 80px;text-align:right}
.pay-row{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--row-border);flex-wrap:wrap;transition:background .25s cubic-bezier(0.22,1,0.36,1)}
.pay-row:last-child{border-bottom:none}
.pay-row:hover{background:var(--hover)}
.pay-desc{flex:1;min-width:180px;font-weight:500;font-size:13px;letter-spacing:-.005em}
.pay-meta{font-size:11px;color:var(--txt3);margin-top:3px}
.pay-amt{font-variant-numeric:tabular-nums;font-weight:500;white-space:nowrap;min-width:100px;text-align:right;letter-spacing:-.01em}
.pay-actions{display:flex;gap:6px;flex-shrink:0}
.ps-pending{background:rgba(245,181,68,0.18);color:#b45309}
.ps-approved{background:var(--mint-soft);color:var(--sav-txt)}
.ps-standby{background:rgba(82,82,82,0.18);color:#525252}
.ps-nextweek{background:rgba(71,255,157,0.10);color:var(--sav-txt)}
.ps-rejected{background:rgba(255,107,107,0.18);color:#dc2626}
.pay-badge{padding:3px 10px;border-radius:60px;font-size:11px;font-weight:500;white-space:nowrap}

/* Tour */
.tour-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9000;pointer-events:none;backdrop-filter:blur(2px)}
.tour-spotlight{position:fixed;border-radius:12px;box-shadow:0 0 0 2px var(--mint),0 0 0 9999px rgba(0,0,0,.6);z-index:9001;pointer-events:none;transition:top .3s,left .3s,width .3s,height .3s}
.tour-tooltip{position:fixed;z-index:9002;background:var(--card);border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 48px rgba(0,0,0,.45);padding:20px 22px;max-width:320px;min-width:240px}
.tour-tooltip h4{margin:0 0 8px;font-size:18px;font-weight:400;color:var(--txt);letter-spacing:-.015em}
.tour-tooltip p{margin:0 0 16px;font-size:13px;color:var(--txt2);line-height:1.55}
.tour-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tour-progress{font-size:11px;color:var(--txt3)}
.tour-help-btn{background:none;border:1px solid var(--border);border-radius:50%;width:20px;height:20px;font-size:11px;font-weight:500;color:var(--txt2);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0;flex-shrink:0;margin-left:6px;line-height:1;transition:background-color .2s,border-color .2s,color .2s}
.tour-help-btn:hover{background:var(--mint);color:#101010;border-color:var(--mint)}

/* Approval overlay */
.approval-overlay{position:fixed;inset:0;background:var(--bg);z-index:100;overflow-y:auto;padding:32px 24px}
.approval-card{max-width:700px;margin:0 auto}
.approval-row{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--border);border-radius:14px;margin-bottom:10px;background:var(--card);flex-wrap:wrap;transition:background-color .2s,border-color .2s}
.approval-row:hover{border-color:var(--border2)}
.approval-row.is-decided{opacity:.5}
