/* ══════════════════════════════════
   COMPONENTS — Kelda Finance
   ══════════════════════════════════ */

/* ══ BRAND MARK (Tide) — ring + wave, coloured by theme ══ */
.brand-mark{display:block;flex-shrink:0;}
.brand-mark__ring{fill:none;stroke:var(--text);stroke-width:7;}
.brand-mark__wave{fill:var(--primary);}

/* ══ CARDS ══ */
.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--border);padding:var(--sp6);transition:box-shadow .2s;}
.mb{margin-bottom:18px;}
.mb-sm{margin-bottom:8px;}

/* ══ STAT CARDS ══ */
.stat{border-radius:var(--radius);padding:18px 20px;color:#fff;position:relative;overflow:hidden;min-width:0;}
.stat::after{content:'';position:absolute;right:-15px;top:-15px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.08);}
.stat .sl{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8;margin-bottom:5px;}
.stat .sv{font-family:var(--font-display);font-size:1.45rem;font-weight:700;word-break:break-all;}
.stat .ss{font-size:.7rem;opacity:.75;margin-top:2px;}
.stat-pink{background:linear-gradient(135deg,#5a1030 0%,#F0538A 100%);}
.stat-purple{background:linear-gradient(135deg,#1a1848 0%,#818CF8 100%);}
.stat-dark{background:linear-gradient(135deg,var(--n700) 0%,var(--n600) 100%);border:1px solid var(--border);}
.stat-green{background:linear-gradient(135deg,#043d2e 0%,#00C896 100%);}
.stat-amber{background:linear-gradient(135deg,#3d2a00 0%,#F59E0B 100%);}
.stat-rose{background:linear-gradient(135deg,#3d0c1e 0%,#EF4444 100%);}

/* ══ FORMS ══ */
.form-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px;}
.form-grid>*{flex:1 1 150px;min-width:0;}
label.lbl{display:block;font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.06em;}
.lbl-hint{font-size:.7rem;color:var(--muted);}
.field-hint{font-size:.68rem;color:var(--muted);margin-top:3px;}
input:where(:not([type=checkbox],[type=radio])),select,textarea{
  width:100%;padding:11px 13px;background:var(--input-bg);border:1.5px solid var(--input-border);
  border-radius:9px;color:var(--text);font-family:var(--font-body);font-size:16px;
  outline:none;transition:border-color .18s,box-shadow .18s;
  -webkit-appearance:none;appearance:none;
}
input:where(:not([type=checkbox],[type=radio])):focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(232,69,122,.18);}
select{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236278A0'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center;padding-right:28px;
  background-color:var(--input-bg);
}
/* Checkboxes and radios keep their native look, tinted with the theme colour.
   :where() keeps specificity at one element so component classes still win. */
input:where([type=checkbox],[type=radio]){width:18px;height:18px;flex-shrink:0;accent-color:var(--primary);cursor:pointer;}
[data-mode="dark"] input:where([type=checkbox],[type=radio]){color-scheme:dark;}
input:where([type=checkbox],[type=radio]):focus-visible{outline:2px solid var(--primary);outline-offset:2px;}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:3px;background:var(--card3);outline:none;cursor:pointer;}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--primary);border:3px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.4);cursor:pointer;}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--primary);border:3px solid #fff;cursor:pointer;}

/* ══ BUTTONS ══ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;
  padding:12px 22px;border:none;border-radius:var(--radius-pill);
  font-family:var(--font-body);font-size:.88rem;font-weight:600;
  cursor:pointer;transition:all .18s;touch-action:manipulation;
  min-height:44px;white-space:nowrap;letter-spacing:.01em;
}
.btn.btn--pill{border-radius:var(--radius-pill);}
.btn.btn--block{width:100%;}
.btn-primary{background:var(--primary);color:var(--primary-text);}
.btn-primary:hover{background:var(--pink-dark);transform:translateY(-1px);box-shadow:0 4px 14px rgba(232,69,122,.4);}
.btn-ghost{background:transparent;border:1.5px solid var(--border);color:var(--muted);}
.btn-ghost:hover{border-color:var(--primary);color:var(--primary-ink);}
.btn-danger{background:var(--danger-bg);border:1.5px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger-ink);}
.btn-danger:hover{background:var(--danger);color:#fff;}
.btn-sm{padding:8px 13px;font-size:.78rem;border-radius:7px;min-height:36px;}
.del-btn{background:none;border:none;cursor:pointer;color:var(--border);font-size:.95rem;padding:6px;border-radius:6px;transition:color .18s;min-height:36px;min-width:36px;}
.del-btn:hover{color:var(--danger-ink);}

/* ══ BADGES ══ */
.badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:.7rem;font-weight:700;}
/* Badge tints follow the active palette/mode via semantic tokens rather than
   hardcoded hex, so they read correctly in both light and dark. */
.b-income{background:var(--success-bg);color:var(--success-ink);}
.b-expense{background:var(--danger-bg);color:var(--danger-ink);}
.b-paid{background:var(--success-bg);color:var(--success-ink);}
.b-due{background:var(--warn-bg);color:var(--warn-ink);}
.b-overdue{background:var(--danger-bg);color:var(--danger-ink);}

/* ══ PROGRESS BARS ══ */
.prog-wrap{margin-bottom:14px;}
.prog-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;flex-wrap:wrap;gap:4px;}
.prog-lbl{font-weight:600;font-size:.84rem;}
.prog-val{font-size:.74rem;color:var(--muted);}
.prog-track{height:9px;background:#2a2535;border-radius:99px;overflow:hidden;}
.prog-fill{height:100%;border-radius:99px;transition:width .5s ease;background:var(--success);}
.prog-fill.warn{background:var(--warn);}
.prog-fill.danger{background:var(--danger);}
.prog-fill.over{background:var(--danger);}
.prog-track--lg{height:10px;}
.prog-track--xl{height:12px;}
.prog-track--sm{height:8px;}

/* ══ TABLE ══ */
.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
table{width:100%;border-collapse:collapse;font-size:.82rem;}
th{text-align:left;padding:9px 10px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);}
td{padding:10px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
tr:last-child td{border-bottom:none;}
tr:hover td{background:#221e2a;}

/* ══ DETAIL ROWS ══ */
.dr{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);gap:8px;}
.dr:last-child{border-bottom:none;}
.dr-k{font-size:.82rem;color:var(--muted);flex:1;}
.dr-v{font-weight:600;font-size:.86rem;text-align:right;}
.dr.dr--total{border-top:1.5px solid var(--border);margin-top:4px;padding-top:10px;}
.dr.dr--total.dr--total-6{margin-top:6px;}
.dr--total .dr-k{font-weight:700;}
.dr-v.dr-v--bold{font-weight:700;}

/* ══ TILE HEADER (label + nav link) ══ */
.tile-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.tile-link{font-size:.76rem;color:var(--primary-ink);text-decoration:none;font-weight:600;white-space:nowrap;flex-shrink:0;transition:opacity .15s;}
.tile-link:hover{opacity:.75;text-decoration:underline;}
/* Graphs (Insights) page (was inline) */
.ins-tile-hd{margin-bottom:14px;}
.ins-tile-hd--mid{margin-bottom:12px;}
.ins-tile-hd--tight{margin-bottom:10px;}
.ins-hd-l{display:flex;align-items:center;gap:12px;}
.ins-hd-l--wrap{flex-wrap:wrap;}
.ins-period-lbl{font-size:.74rem;color:var(--muted);}
.ins-filter-sel{padding:5px 10px;font-size:.76rem;width:auto;}
.ins-breakdown{margin-top:16px;}
.ins-compare-deltas{margin-top:14px;}
.ins-nw-deltas{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.card.ins-sankey-card{position:relative;overflow:hidden;}
.ins-sankey-tip{position:absolute;background:#1f1c25;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:.8rem;pointer-events:none;z-index:10;min-width:160px;}
.ins-anchor{scroll-margin-top:16px;}
.ins-delta{background:var(--card2);border-radius:9px;padding:8px 13px;text-align:center;flex:1;min-width:80px;}
.ins-delta-lbl{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.ins-delta-val{font-family:var(--font-mono);font-size:.88rem;font-weight:700;}
.ins-delta-pct{font-size:.66rem;}
.empty.empty--sankey{min-height:180px;}
.empty.empty--narrow{min-height:80px;}
.empty--narrow p{font-size:.75rem;color:var(--muted);text-align:center;}
.ins-sankey-path{cursor:pointer;transition:opacity .15s;}
.ins-sankey-node{cursor:pointer;}
.ins-sankey-svg{width:100%;height:auto;display:block;overflow:visible;}
.ins-sankey-note{font-size:.7rem;color:var(--muted);margin-top:8px;text-align:center;}
.ins-cmp-row{display:flex;flex-wrap:wrap;gap:10px;}
.ins-cmp{flex:1 1 120px;background:var(--card2);border-radius:10px;padding:10px 14px;}
.ins-cmp-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:4px;}
.ins-cmp-val{font-family:var(--font-mono);font-size:1.05rem;font-weight:700;}
.ins-cmp-delta{font-size:.74rem;margin-top:3px;font-weight:600;}
.ins-cmp-vs{color:var(--muted);font-weight:400;}
/* Breakdown lists — category rows; --sub is the denser subcategory variant */
.ins-bd-hd{font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:10px;}
.ins-bd-row{padding:7px 0;border-bottom:1px solid var(--border);cursor:pointer;}
.ins-bd-top{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.ins-bd-ico{width:22px;text-align:center;}
.ins-bd-name{flex:1;font-size:.82rem;font-weight:600;}
.ins-bd-pct{font-size:.78rem;color:var(--muted);}
.ins-bd-amt{font-weight:700;font-size:.86rem;}
.ins-bd-arrow{font-size:.7rem;color:var(--muted);}
.ins-bd-track{height:4px;background:var(--card3);border-radius:99px;overflow:hidden;margin-left:30px;}
.ins-bd-fill{height:100%;border-radius:99px;transition:width .4s ease;}
.ins-bd-row--sub{padding:6px 0;}
.ins-bd-row--sub .ins-bd-top{margin-bottom:3px;}
.ins-bd-row--sub .ins-bd-name{font-size:.8rem;}
.ins-bd-row--sub .ins-bd-pct{font-size:.74rem;}
.ins-bd-row--sub .ins-bd-amt{font-size:.84rem;}
.ins-bd-row--sub .ins-bd-track{height:3px;margin-left:0;}

/* ══ CHARTS ══ */
.chart-box{position:relative;height:260px;}

/* ══ TOAST ══ */
#toast{position:fixed;bottom:24px;right:16px;left:16px;max-width:400px;margin:0 auto;
  background:var(--card);color:var(--text);padding:12px 16px;border-radius:var(--radius-sm);
  border:1px solid var(--border);box-shadow:var(--shadow);
  font-size:.84rem;font-weight:600;opacity:0;transform:translateY(8px);
  transition:all .28s;z-index:9999;pointer-events:none;text-align:left;
  display:flex;align-items:center;gap:10px;border-left:3px solid var(--primary);}
#toast.show{opacity:1;transform:translateY(0);}
#toast .toast-ico{font-size:18px;flex-shrink:0;color:var(--primary-ink);}
#toast.toast-success{border-left-color:var(--success);}
#toast.toast-success .toast-ico{color:var(--success-ink);}
#toast.toast-warn{border-left-color:var(--warn);}
#toast.toast-warn .toast-ico{color:var(--warn-ink);}
#toast.toast-danger{border-left-color:var(--danger);}
#toast.toast-danger .toast-ico{color:var(--danger-ink);}
#toast.toast-info{border-left-color:var(--purple);}
#toast.toast-info .toast-ico{color:var(--purple-ink);}

/* ══ DIVIDER / EMPTY STATE ══ */
hr.div{border:none;border-top:1px solid var(--border);margin:18px 0;}
.empty{text-align:center;padding:32px 20px;color:var(--muted);}
.empty .ei{font-size:2rem;margin-bottom:10px;}
.empty--compact{padding:16px 0;}
.empty--tight{padding:14px;}
.empty--chart{min-height:120px;padding:20px;}
.empty--chart p{font-size:.78rem;}
.section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;}
.section-label.section-label--flush{margin:0;}
.section-label.section-label--mb2{margin-bottom:2px;}
.section-label.section-label--mb10{margin-bottom:10px;}
.section-label.section-label--mb14{margin-bottom:14px;}

/* ══ MODAL ══ */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:1000;align-items:center;justify-content:center;padding:16px;}
.modal-overlay.open{display:flex;}
.modal-box{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px;width:100%;max-width:420px;box-shadow:0 20px 60px rgba(0,0,0,.5);}
/* Modal modifiers (replace per-modal inline styles). --scroll's doubled class keeps
   90vh on phones too, matching the old inline value. */
.modal-box.modal-box--scroll{max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.modal-box--md{max-width:560px;}
.modal-box--narrow{max-width:440px;}
.modal-box h3{font-family:var(--font-display);font-size:1.3rem;margin-bottom:18px;}
.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:18px;flex-wrap:wrap;}
/* Quick-amount chips under the Add Transaction amount field */
.amt-chips{display:flex;gap:8px;margin-top:8px;}
.amt-chip{
  flex:1;min-height:44px;border-radius:var(--radius-pill,9999px);border:1px solid var(--border);
  background:var(--card2);color:var(--text);font-family:var(--font-mono);font-size:.85rem;font-weight:500;cursor:pointer;
}
.amt-chip:hover{border-color:var(--primary);color:var(--pink-light);}
.amt-chip:active{transform:scale(.97);}

/* Truncated transaction cells: hover shows the full value via native title tooltip */
.tx-desc-cell[title],.tx-cell-clip[title]{cursor:help;}

/* ══ SUPER CARD ══ */
.super-header{border-radius:11px;padding:13px 16px;margin-bottom:16px;display:flex;align-items:center;gap:12px;}
.super-ass-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);gap:8px;flex-wrap:wrap;}
.super-ass-row:last-child{border-bottom:none;}
.super-ass-row label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;flex:1;min-width:120px;}
.super-ass-row input{width:130px;padding:7px 10px;font-size:.84rem;flex-shrink:0;min-width:0;}
/* Super page (was inline) */
.sp-card-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.super-header.super-header--p1{background:linear-gradient(135deg,#8b1a4a,#e8457a);}
.super-header.super-header--p2{background:linear-gradient(135deg,#3a2060,#7c5cbf);}
.sp-hd-ico{font-size:1.6rem;}
.sp-hd-name{font-weight:700;color:#fff;}
.sp-hd-sub{font-size:.72rem;color:rgba(255,255,255,.75);}
.sp-accts{padding:10px 0 6px;border-bottom:1px solid var(--border);margin-bottom:8px;}
.sp-accts-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;}
.sp-accts-lbl{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);}
.btn.sp-add-btn{font-size:.72rem;}
.sp-add-form{margin-top:10px;padding:10px;background:var(--card2);border-radius:10px;}
.form-grid.sp-form-row{margin-bottom:8px;}
.lbl.lbl--sm{font-size:.7rem;}
.sp-input-16{font-size:16px;}
.sp-form-actions{display:flex;gap:8px;}
.sp-proj-lbl{font-size:.72rem;color:var(--muted);margin-bottom:8px;}
.sp-lbl-hint{font-size:.65rem;color:var(--muted);}
.sp-result{margin-top:14px;}
.section-label.sp-sl-tight{margin-bottom:3px;}
.section-label.sp-sl-12{margin-bottom:12px;}
.sp-desc{font-size:.76rem;color:var(--muted);margin-bottom:14px;}
.sp-combined{margin-top:16px;}
.sp-disclaimer{margin-top:12px;padding:10px 14px;background:var(--pink-dim);border-radius:9px;font-size:.72rem;color:var(--muted);}
.sp-monthly{margin-top:20px;}
/* Super accounts summary table */
.sp-agg-empty{font-size:.8rem;color:var(--muted);text-align:center;padding:12px 0;}
.sp-agg-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.sp-agg-table{width:100%;border-collapse:collapse;min-width:360px;}
.sp-agg-head{border-bottom:2px solid var(--border);}
.sp-agg-th{text-align:left;padding:6px 12px;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.sp-agg-th--first{padding:6px 12px 8px 0;}
.sp-agg-th--num{text-align:right;}
.sp-agg-profile{font-weight:700;vertical-align:top;padding:8px 12px 8px 0;border-bottom:1px solid var(--border);white-space:nowrap;}
.sp-agg-td{padding:6px 12px;font-size:.83rem;color:var(--text);}
.sp-agg-td--muted{color:var(--muted);}
.sp-agg-td--num{font-family:var(--font-mono);text-align:right;}
.sp-agg-sub{border-top:1px solid var(--border);}
.sp-agg-sublbl{padding:6px 12px;font-size:.78rem;font-weight:700;color:var(--muted);}
.sp-agg-subtotal{padding:6px 12px;font-family:var(--font-mono);font-weight:700;font-size:.88rem;text-align:right;border-bottom:2px solid var(--border);}
.sp-agg-combined{background:rgba(240,83,138,.06);}
.sp-agg-comb-lbl{padding:8px 12px 8px 0;font-weight:700;font-size:.88rem;color:var(--text);}
.sp-agg-comb-count{padding:8px 12px;font-size:.78rem;color:var(--muted);}
.sp-agg-comb-val{padding:8px 12px;font-family:var(--font-mono);font-weight:700;font-size:1rem;text-align:right;color:var(--success-ink);}
/* Per-profile account list + inline edit */
.sp-list-empty{font-size:.78rem;color:var(--muted);padding:6px 0;}
.sp-acct-row{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.sp-acct-main{flex:1;min-width:120px;}
.sp-acct-fund{font-weight:700;font-size:.85rem;}
.sp-acct-type{font-size:.72rem;color:var(--muted);}
.sp-acct-bal{font-family:var(--font-mono);font-weight:700;font-size:.9rem;color:var(--primary-ink);}
.sp-acct-actions{display:flex;gap:4px;flex-shrink:0;}
.sp-edit{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;width:100%;padding:4px 0;}
.sp-field{flex:1;min-width:140px;}
.sp-field--sm{min-width:120px;}
.sp-edit-actions{display:flex;gap:6px;flex-shrink:0;}
/* Monthly super balances */
.card.sp-mo-empty{text-align:center;padding:20px;color:var(--muted);font-size:.82rem;}
.sp-mo-desc{font-size:.74rem;color:var(--muted);margin-bottom:14px;}
.sp-mo-none{font-size:.78rem;color:var(--muted);padding:8px 0;}
.sp-mo-card{border:1px solid var(--border);border-radius:12px;padding:14px;margin-bottom:12px;}
.sp-mo-hd{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.sp-mo-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
.sp-mo-main{flex:1;min-width:0;}
.sp-mo-fund{font-weight:700;font-size:.88rem;}
.sp-mo-type{font-size:.7rem;color:var(--muted);}
.sp-mo-cur{font-family:var(--font-mono);font-size:.82rem;color:var(--muted);}
.sp-mo-cur-val{font-weight:700;}
.sp-mo-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap;}
.sp-mo-month{min-width:80px;font-size:.78rem;color:var(--muted);}
.sp-mo-input{flex:1;min-width:100px;font-family:var(--font-mono);font-size:.85rem;background:var(--card2);border:1px solid var(--border);border-radius:6px;padding:4px 8px;color:var(--text);}
.sp-mo-diff{font-size:.72rem;font-weight:700;white-space:nowrap;min-width:70px;text-align:right;}
.sp-mo-diff-empty{min-width:70px;}
.sp-mo-del{background:none;border:none;color:var(--danger-ink);cursor:pointer;padding:4px 8px;min-height:36px;font-size:.85rem;}
.sp-mo-add{display:flex;gap:8px;align-items:flex-end;margin-top:10px;flex-wrap:wrap;}
.sp-mo-lbl{font-size:.68rem;color:var(--muted);display:block;margin-bottom:3px;}
.sp-mo-sel{font-size:.82rem;}
.btn.sp-mo-save{flex-shrink:0;min-height:44px;}

/* ══ INSURANCE CARD ══ */
.ins-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:12px;display:flex;align-items:flex-start;gap:12px;}
.ins-icon{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.ins-body{flex:1;min-width:0;}
.ins-name{font-weight:700;font-size:.9rem;margin-bottom:2px;}
.ins-prov{font-size:.74rem;color:var(--muted);margin-bottom:6px;}
.ins-tags{display:flex;flex-wrap:wrap;gap:5px;}
.ins-tag{font-size:.67rem;padding:2px 8px;border-radius:99px;font-weight:600;}
.ins-amt{font-family:var(--font-display);font-size:1.1rem;font-weight:700;flex-shrink:0;text-align:right;white-space:nowrap;}
.ins-amt small{display:block;font-family:var(--font-body);font-size:.67rem;color:var(--muted);font-weight:400;}
.ins-flag{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:9px;font-size:.82rem;font-weight:600;}
.ins-flag-warn{background:var(--warn-bg);border:1px solid color-mix(in srgb, var(--warn) 40%, transparent);color:var(--warn-ink);}
.ins-flag-ok{background:var(--success-bg);border:1px solid color-mix(in srgb, var(--success) 40%, transparent);color:var(--success-ink);}
/* Insurance page (was inline) — note .ins-* is shared with the Graphs page's older classes */
.ins-page-hd{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:4px;}
.btn.ins-add-btn{flex-shrink:0;margin-top:4px;}
.section-label.ins-sl-14{margin-bottom:14px;}
.section-label.ins-sl-2{margin-bottom:2px;}
.ins-chart-wrap{height:300px;position:relative;margin-bottom:16px;}
.empty.ins-chart-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;}
.ins-renewals-details{margin-bottom:16px;border-bottom:1px solid var(--border);padding-bottom:14px;}
.ins-renewals-sum{cursor:pointer;font-size:.8rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;list-style:none;display:flex;align-items:center;gap:6px;}
.ins-caret{opacity:.5;}
.ins-renewals{margin-top:10px;}
.ins-ren-r{display:flex;gap:12px;align-items:center;}
.ins-ren-yr{font-size:.76rem;color:var(--muted);}
.ins-list-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.ins-list-tools{display:flex;gap:8px;flex-wrap:wrap;}
.ins-policy-filter{padding:7px 10px;font-size:.78rem;width:auto;}
.ins-tag--card2{background:var(--card2);color:var(--muted);}
.ins-tag--card3{background:var(--card3);color:var(--muted);}
.ins-tag--ip{background:var(--card3);color:var(--purple-ink);}
.ins-tag--tpd{background:var(--warn-bg);color:var(--warn-ink);}
.ins-tag a{color:inherit;text-decoration:none;}
.ins-amt-yr{font-size:.68rem;color:var(--muted);text-align:right;margin-top:2px;}
.ins-actions{display:flex;gap:6px;justify-content:flex-end;margin-top:7px;}
.ins-status{font-weight:700;}
.ins-cov-foot{display:flex;justify-content:space-between;margin-top:3px;}
.ins-cov-pct{font-size:.7rem;color:var(--muted);}
.empty.empty--pad12{padding:12px 0;}
.empty.empty--pad10{padding:10px 0;}
.ins-needs-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.ins-needs-desc{font-size:.76rem;color:var(--muted);}
/* Add / edit policy modals */
.modal-box--lg{max-width:600px;}
.modal-box .ins-modal-title{margin-bottom:4px;}  /* must outrank .modal-box h3 */
.ins-modal-sub{font-size:.76rem;color:var(--muted);margin-bottom:18px;}
.ins-form{display:grid;gap:12px;}
.ins-field{display:grid;gap:8px;}
.ins-row2{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.ins-row1{display:grid;grid-template-columns:1fr;gap:8px;}
.ins-row1--gap{margin-top:8px;}
.ins-need-hint{font-size:.68rem;color:var(--success-ink);margin-top:3px;min-height:14px;}
.ins-modal-actions{display:flex;gap:10px;margin-top:4px;}
.ins-modal-actions--add{margin-top:16px;}
.btn.ins-btn-grow{flex:1;}

/* ══ BILL CARD ══ */
.bill-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.bill-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.15rem;flex-shrink:0;}
.bill-info{flex:1;min-width:120px;}
.bill-name{font-weight:700;font-size:.88rem;}
.bill-meta{font-size:.72rem;color:var(--muted);margin-top:2px;}
.bill-amt{font-family:var(--font-display);font-size:1.05rem;font-weight:700;white-space:nowrap;}
.bill-actions{display:flex;gap:6px;align-items:center;margin-left:auto;}

/* ══ GOAL CARD ══ */
.goal-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px;}
.goal-hd{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:8px;}
.goal-name{font-family:var(--font-display);font-size:.98rem;}
.goal-pct{font-family:var(--font-display);font-size:1.2rem;color:var(--primary-ink);flex-shrink:0;}
/* Goals page (was inline) */
.goals-stat{text-align:center;}
.goals-stat-lbl{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px;}
.goals-stat-val{font-size:1.6rem;font-weight:700;}
.goals-stat-val--money{font-size:1.3rem;font-family:var(--font-mono);}
.goals-add{margin-top:16px;}
.g-icon-preview{width:38px;height:38px;border-radius:8px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:1.1rem;color:var(--primary-ink);}
.g-icon-presets{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;}
.g-icon-presets--edit{gap:5px;margin:-6px 0 10px;}
.g-icon-opt{cursor:pointer;font-size:1.15rem;padding:6px;border-radius:6px;background:var(--card2);color:var(--muted);}
.goal-meta{font-size:.74rem;color:var(--muted);margin-top:2px;font-family:var(--font-mono);}
.goal-linked{color:var(--success-ink);font-size:.7rem;}
.goal-actions{display:flex;align-items:center;gap:6px;}
.goal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;flex-wrap:wrap;gap:6px;}
.goal-foot-note{font-size:.75rem;color:var(--muted);}
.goal-edit{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.goal-edit-actions{display:flex;gap:8px;margin-top:4px;}

/* ══ CASH TRACKER ══ */
.acct-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;overflow:hidden;}
.acct-hd{display:flex;align-items:center;gap:12px;padding:14px 18px;}
.acct-ic{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.acct-meta{flex:1;min-width:0;}
.acct-title{font-weight:700;font-size:.9rem;}
.acct-sub{font-size:.7rem;margin-top:1px;opacity:.75;}
.acct-total{font-family:var(--font-display);font-size:1.35rem;font-weight:700;flex-shrink:0;}
/* Cash page (was inline) */
.ct-manage-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.ct-account-count{font-size:.78rem;color:var(--muted);}
.ct-new-hd{margin-bottom:14px;}
.ct-form-row{margin-bottom:10px;}
.ct-form-row--icon{grid-template-columns:56px 1fr;}
.ct-nickname{font-size:16px;}
.ct-form-actions{display:flex;gap:8px;margin-top:4px;}
.ct-chart-hd{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.ct-chart-hd .section-label{margin:0;}
#ct-goal-freq{width:110px;}
#ct-goal-amt{width:160px;}
#ct-goal-start{width:145px;}
#ct-goal-status{flex:1;text-align:right;font-size:.78rem;color:var(--muted);}
.ct-net-wrap{margin-top:18px;}
.ct-acct-del{background:none;border:none;cursor:pointer;padding:4px 6px;color:rgba(255,255,255,.5);font-size:.8rem;line-height:1;flex-shrink:0;}
.lbl.lbl--xs{font-size:.68rem;}
.ct-add-bal{width:140px;}
.ct-add-date{width:145px;}
.ct-add-btn{margin-top:20px;}
.ct-goal-ok{color:var(--success-ink);font-weight:700;}
.ct-goal-gap{color:var(--warn-ink);font-weight:600;}
.ct-diff{font-weight:600;}
.ct-net-r{display:flex;gap:18px;align-items:center;}
.ct-net-diff{min-width:80px;text-align:right;font-size:.76rem;}
.dr.ct-net-total{background:var(--card2);border-radius:8px;padding:8px 10px;margin-top:6px;}
.ct-net-total .dr-k{font-weight:700;}
.ct-net-grand{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--primary-ink);}
.acct-body{padding:0 16px 14px;}
.mo-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--border);flex-wrap:nowrap;}
.mo-row:last-child{border-bottom:none;}
.mo-lbl{font-weight:600;font-size:.8rem;flex:0 0 90px;}
.mo-inp{padding:7px 10px;font-size:.82rem;flex:1;min-width:0;}
.mo-ch{font-size:.74rem;font-weight:700;text-align:right;flex:0 0 70px;}
.mo-ch.up{color:var(--success-ink);}
.mo-ch.dn{color:var(--danger-ink);}
.add-mo-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:12px 0 2px;border-top:1.5px dashed var(--border);margin-top:8px;}
.add-mo-row>div{flex:1 1 130px;min-width:0;}
.add-mo-row select,.add-mo-row input{padding:8px 10px;font-size:.82rem;}

/* ══ MORTGAGE / OFFSET CALCULATOR ══ */
.occ-grid{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:20px;}
.occ-grid>*{flex:1 1 160px;min-width:0;}
.occ-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px;text-align:center;}
.occ-lbl{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:8px;}
.occ-before{font-size:.86rem;color:var(--muted);text-decoration:line-through;margin-bottom:4px;}
.occ-arrow{color:var(--primary-ink);margin:2px 0;font-size:.95rem;}
.occ-after{font-family:var(--font-display);font-size:1.3rem;font-weight:700;color:var(--primary-ink);}
.occ-save{font-size:.7rem;font-weight:700;color:var(--success-ink);margin-top:3px;min-height:16px;}

/* ══ GOAL BAR (cash tracker) ══ */
.goal-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;background:var(--card2);border-radius:10px;margin-bottom:16px;}
.goal-bar>*{min-width:0;}
.goal-bar label{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--muted);white-space:nowrap;flex-shrink:0;}
.goal-bar input,.goal-bar select{padding:7px 10px;font-size:.82rem;flex:1 1 110px;}

/* ══ LIFE INSURANCE ══ */
.li-person-grid{display:flex;flex-wrap:wrap;gap:18px;margin-bottom:18px;}
.li-person-grid>*{flex:1 1 280px;min-width:0;}
.li-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.li-card-hd{padding:13px 16px;display:flex;align-items:center;gap:10px;}
.li-card-body{padding:14px 16px;}
.li-ass-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);gap:8px;flex-wrap:wrap;}
.li-ass-row:last-child{border-bottom:none;}
.li-ass-row label{font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin:0;flex:1;min-width:100px;}
.li-ass-row input,.li-ass-row select{width:120px;padding:7px 10px;font-size:.84rem;flex-shrink:0;}
.li-result-box{border-radius:10px;padding:12px 14px;margin-bottom:12px;text-align:center;}
.li-method-box{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:12px 14px;margin-bottom:10px;}
.li-method-title{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:8px;}
.li-method-amount{font-family:var(--font-display);font-size:1.35rem;font-weight:700;}
.li-dr{display:flex;justify-content:space-between;font-size:.76rem;padding:4px 0;border-bottom:1px solid var(--border);}
.li-dr:last-child{border-bottom:none;}
.li-dr-k{color:var(--muted);}
.li-dr-v{font-weight:600;}
.li-cover-row{margin-bottom:10px;}
.li-cover-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;font-size:.8rem;flex-wrap:wrap;gap:4px;}
.li-cover-lbl{font-weight:600;}
.li-cover-val{color:var(--muted);font-size:.72rem;}
.li-gap-ok{color:var(--success-ink);font-weight:700;font-size:.72rem;}
.li-gap-warn{color:var(--warn-ink);font-weight:700;font-size:.72rem;}
.li-gap-bad{color:var(--danger-ink);font-weight:700;font-size:.72rem;}
/* Life-needs analysis (was inline) */
.li-tabs{display:flex;gap:0;background:var(--card2);border:1px solid var(--border);border-radius:9px;overflow:hidden;}
.li-tab{padding:7px 14px;font-size:.76rem;font-weight:600;border:none;cursor:pointer;background:transparent;color:var(--muted);}
.li-tab.active{background:var(--primary);color:var(--primary-text);}
.li-card-hd.li-card-hd--p1{background:linear-gradient(135deg,#8b1a4a,#e8457a);}
.li-card-hd.li-card-hd--p2{background:linear-gradient(135deg,#3a2060,#7c5cbf);}
.li-hd-ico{font-size:1.3rem;}
.li-hd-name{font-weight:700;color:#fff;}
.li-hd-sub{font-size:.7rem;color:rgba(255,255,255,.75);}
.li-subhd{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:10px 0 6px;border-top:1px solid var(--border);margin-top:8px;}
.li-result{margin-top:14px;}
.li-disclaimer{font-size:.7rem;color:var(--muted);}
.li-method-detail{font-size:.7rem;color:var(--muted);margin-top:3px;}
.li-method-gap{margin-top:6px;font-size:.74rem;font-weight:700;}
.li-method-note{font-size:.7rem;color:var(--muted);margin-top:4px;}
.li-bd{margin-top:8px;}
.li-bd--detail{margin-top:10px;}
.li-bd-sum{font-size:.72rem;color:var(--muted);cursor:pointer;}
.li-bd-sum--md{font-size:.74rem;}
.li-bd-body{margin-top:6px;}
.li-bd-body--8{margin-top:8px;}
.li-cov-foot{display:flex;justify-content:space-between;margin-top:3px;font-size:.7rem;}
.li-bars{margin-top:14px;}

/* ══ DIV 293 ══ */
.d293-wrap{display:flex;flex-wrap:wrap;gap:18px;}
.d293-wrap>*{flex:1 1 280px;min-width:0;}
.d293-person{background:var(--card2);border:1px solid var(--border);border-radius:12px;overflow:hidden;}
.d293-hd{padding:12px 16px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;}
.d293-body{padding:14px 16px;}
.d293-row{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-size:.82rem;gap:8px;}
.d293-row:last-child{border-bottom:none;}
.d293-k{color:var(--muted);flex:1;}
.d293-v{font-weight:700;text-align:right;}
.d293-applies{display:inline-block;padding:3px 9px;border-radius:99px;font-size:.7rem;font-weight:700;background:var(--danger-bg);color:var(--danger-ink);}
.d293-na{display:inline-block;padding:3px 9px;border-radius:99px;font-size:.7rem;font-weight:700;background:var(--success-bg);color:var(--success-ink);}
.d293-callout{background:#2a1030;border-radius:9px;padding:11px 14px;margin-top:12px;font-size:.78rem;line-height:1.7;}
.d293-name{font-weight:700;color:#fff;}
.d293-name--lg{font-size:.92rem;}
.d293-sal{margin-left:10px;font-size:.72rem;color:rgba(255,255,255,.75);}
.d293-body.d293-body--empty{color:var(--muted);font-size:.82rem;}
.d293-cap{color:var(--warn-ink);font-size:.7rem;}
.d293-sep{height:1px;background:var(--border);margin:10px 0;}
/* Super projection result (rendered by showSuperResults in insurance.js) */
.sp-proj{text-align:center;padding:10px;background:var(--primary-bg);border-radius:10px;margin-bottom:10px;}
.sp-proj-age{font-size:.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px;}
.sp-proj-val{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--primary-ink);}
.sp-proj-sub{font-size:.72rem;color:var(--muted);}
.sp-proj-note{font-size:.68rem;color:var(--purple-ink);margin-top:3px;}

/* ══ RATE SENSITIVITY ══ */
.rate-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.rate-table th{text-align:right;padding:8px 10px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);background:transparent;}
.rate-table th:first-child{text-align:left;}
.rate-table td{padding:9px 10px;border-bottom:1px solid var(--border);text-align:right;vertical-align:middle;}
.rate-table td:first-child{text-align:left;font-weight:600;}
.rate-table tr:last-child td{border-bottom:none;}
.rate-table tr.rate-current td{background:#2a1030;}
.rate-table tr.rate-current td:first-child{border-left:3px solid var(--primary);}
.rate-table tr:hover td{background:#221e2a;}
.rate-chip{display:inline-block;padding:2px 8px;border-radius:99px;font-size:.7rem;font-weight:700;}
.rate-up{background:var(--danger-bg);color:var(--danger-ink);}
.rate-dn{background:var(--success-bg);color:var(--success-ink);}
.rate-eq{background:#2a2535;color:var(--muted);}
.rate-delta-pos{color:var(--danger-ink);font-weight:700;}
.rate-delta-neg{color:var(--success-ink);font-weight:700;}
.rate-delta-nil{color:var(--muted);}
.rate-slider-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px;}
.rate-slider-row label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;}
.rate-badge-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:18px;}
.rate-badge{flex:1 1 130px;min-width:0;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;text-align:center;}
.rate-badge .rb-label{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:5px;}
.rate-badge .rb-val{font-family:var(--font-display);font-size:1.25rem;font-weight:700;}
.rate-badge .rb-delta{font-size:.72rem;font-weight:700;margin-top:3px;}
/* Mortgage page (was inline) */
.mg-tabs-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:20px;}
.mg-tabs{display:flex;gap:6px;flex-wrap:wrap;flex:1;}
.mg-prop-tab{position:relative;}
.mg-prop-del{margin-left:6px;font-size:.8rem;opacity:.7;}
.mg-sync-banner{background:#1a1020;border:1px solid #5a2a50;border-radius:9px;padding:10px 14px;font-size:.78rem;margin-bottom:14px;overflow:auto;}
.btn.mg-sync-btn{float:right;padding:4px 10px;font-size:.72rem;margin-left:8px;}
.mg-sync-lbl{color:var(--primary-ink);font-weight:700;}
.mg-sync-text{color:var(--muted);margin-left:5px;}
.mg-autolink-note{background:var(--pink-dim);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:9px;padding:10px 14px;font-size:.76rem;color:var(--pink-light);margin-bottom:14px;}
.mg-liab-block{margin-bottom:14px;}
.mg-liab-select{margin-bottom:8px;}
.mg-liab-hint{font-size:.68rem;color:var(--muted);margin-bottom:6px;}
.mg-liab-banner{padding:8px 12px;background:rgba(0,200,150,.08);border:1px solid rgba(0,200,150,.2);border-radius:8px;font-size:.74rem;color:var(--muted);}
.mg-liab-note{font-size:.68rem;color:var(--muted);margin-top:6px;}
.mg-opt-sep{color:var(--muted);font-size:.78rem;}
.mg-side{display:flex;flex-direction:column;gap:16px;}
.mg-eq-head{text-align:center;padding:12px 0;}
.mg-eq-value{font-family:var(--font-mono);font-size:2.6rem;font-weight:700;color:var(--primary-ink);}
.mg-eq-cap{font-size:.74rem;color:var(--muted);margin-top:3px;}
.mg-scale{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:4px;}
.mg-scale--sim{margin-top:5px;margin-bottom:20px;}
.mg-sim-hd{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:18px;}
.mg-sim-sub{font-size:.78rem;color:var(--muted);}
.mg-readout{background:#2a1030;border-radius:10px;padding:9px 16px;text-align:center;}
.mg-readout--sm{border-radius:9px;padding:8px 16px;min-width:90px;}
.mg-readout-lbl{font-size:.68rem;color:var(--muted);margin-bottom:2px;text-transform:uppercase;letter-spacing:.06em;}
.mg-readout--sm .mg-readout-lbl{font-size:.64rem;margin-bottom:1px;}
.mg-readout-val{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;color:var(--primary-ink);}
.mg-saved-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px;}
.mg-saved-lbl{font-size:.82rem;font-weight:600;}
.mg-saved-val{font-family:var(--font-mono);font-size:1.1rem;color:var(--primary-ink);font-weight:700;}
.prog-fill.mg-save-fill{background:linear-gradient(90deg,var(--primary),var(--pink-dark));}
.card.mg-section{margin-top:18px;}
.mg-pd-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.section-label.mg-pd-title{margin-bottom:2px;}
.mg-pd-sub{font-size:.76rem;color:var(--muted);}
.mg-pd-tools{display:flex;gap:8px;}
.chart-box.mg-pd-chart{height:300px;}
.g3.mg-pd-stats{margin-top:16px;}
.stat.mg-stat{padding:14px 16px;}
.stat.mg-stat .sv{font-size:1.35rem;}
.mg-rate-hd{margin-bottom:16px;}
.section-label.mg-rate-title{margin-bottom:3px;}
.mg-rate-info{margin-top:6px;font-size:.78rem;line-height:1.5;color:var(--muted);}
.mg-rate-slider{flex:1;min-width:180px;}
.mg-table-scroll{overflow-x:auto;}
.rate-table td.mg-td-current{font-weight:700;color:var(--primary-ink);}
.mg-callout{margin-top:16px;border-radius:10px;padding:14px 16px;font-size:.82rem;line-height:1.6;}
.mg-callout--rise{background:var(--danger-bg);border:1px solid var(--danger-border);color:var(--text);}
.mg-callout--cut{background:var(--success-bg);border:1px solid var(--success-border);color:var(--text);}
.mg-callout-title{font-weight:700;margin-bottom:8px;}

/* ══ CSV IMPORT ══ */
.csv-drop{border:2px dashed var(--border);border-radius:12px;padding:28px 20px;text-align:center;cursor:pointer;transition:all .2s;background:var(--input-bg);}
.csv-drop:hover,.csv-drop.drag-over{border-color:var(--primary);background:#2a1030;}
.csv-drop .cd-icon{font-size:2rem;margin-bottom:8px;}
.csv-drop p{color:var(--muted);font-size:.82rem;margin-bottom:4px;}
.csv-drop strong{color:var(--primary-ink);}
.csv-steps{display:flex;align-items:center;gap:0;margin-bottom:16px;overflow-x:auto;padding-bottom:2px;}
.csv-step-item{display:flex;align-items:center;gap:6px;flex-shrink:0;}
.csv-snum{width:26px;height:26px;border-radius:50%;background:var(--card2);color:var(--muted);font-size:.74rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .25s;}
.csv-snum.active{background:var(--primary);color:var(--primary-text);}
.csv-snum.done{background:#3a2060;color:var(--pink-light);}
.csv-slbl{font-size:.76rem;font-weight:600;color:var(--muted);white-space:nowrap;}
.csv-slbl.active{color:var(--primary-ink);}
.csv-conn{flex:1;height:2px;background:var(--border);min-width:12px;}
.csv-panel{display:none;}.csv-panel.show{display:block;}
.map-tbl{width:100%;border-collapse:collapse;font-size:.8rem;margin-bottom:14px;}
.map-tbl th{text-align:left;padding:8px 10px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);}
.map-tbl td{padding:8px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
.map-tbl select{padding:6px 9px;font-size:.78rem;}
.prev-wrap{max-height:250px;overflow-y:auto;-webkit-overflow-scrolling:touch;border:1.5px solid var(--border);border-radius:10px;margin-bottom:14px;}
.prev-tbl{width:100%;border-collapse:collapse;font-size:.76rem;}
.prev-tbl th{position:sticky;top:0;background:#1a1720;padding:7px 10px;text-align:left;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);z-index:1;}
.prev-tbl td{padding:7px 10px;border-bottom:1px solid var(--border);}
.prev-tbl tr.row-dup td{background:#2a2010;}
.prev-tbl tr.row-err td{background:#2a1020;}
.prev-tbl tr.row-skip{opacity:.4;}
.tag-dup{font-size:.65rem;background:var(--warn-bg);color:var(--warn-ink);border-radius:99px;padding:2px 6px;font-weight:700;}
.tag-err{font-size:.65rem;background:var(--danger-bg);color:var(--danger-ink);border-radius:99px;padding:2px 6px;font-weight:700;}
.tag-ok{font-size:.65rem;background:var(--success-bg);color:var(--success-ink);border-radius:99px;padding:2px 6px;font-weight:700;}
.imp-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px;}
.imp-stat{flex:1 1 80px;min-width:0;border-radius:9px;padding:10px 12px;text-align:center;}
.imp-stat .isn{font-family:var(--font-display);font-size:1.4rem;font-weight:700;}
.imp-stat .isl{font-size:.66rem;color:var(--muted);margin-top:2px;text-transform:uppercase;letter-spacing:.06em;}
.imp-hint{background:var(--pink-dim);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);border-radius:9px;padding:11px 14px;font-size:.76rem;color:var(--pink-light);margin-top:14px;line-height:1.5;}
.imp-hint strong{display:block;margin-bottom:3px;}
.imp-hint code{background:var(--card);border-radius:4px;padding:1px 5px;font-size:.74rem;}
/* Upload page / CSV import wizard (was inline) */
.file-input-hidden{display:none;}
.up-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.up-hd-tools{display:flex;gap:8px;}
.up-p2-desc{font-size:.8rem;color:var(--muted);margin-bottom:14px;}
.up-scroll{overflow-x:auto;}
.up-tip{background:#1a2010;border-radius:9px;padding:10px 14px;font-size:.78rem;color:#7ed87e;margin-bottom:14px;}
.up-actions{display:flex;gap:10px;justify-content:flex-end;}
.up-actions--wrap{flex-wrap:wrap;}
.up-legend-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px;}
.up-legend{font-size:.76rem;color:var(--muted);}
.up-dot--dup{color:#eab308;}
.up-dot--err{color:#ef4444;}
.up-skip{display:flex;align-items:center;gap:7px;min-height:44px;font-size:.8rem;cursor:pointer;font-weight:400;color:var(--text);}
.up-skip input{width:22px;height:22px;margin:0;}
.up-skip--p2{margin:6px 0 8px;}
.map-tbl .up-map-col{font-weight:600;}
.map-tbl .up-map-sample{color:var(--muted);font-size:.76rem;}
.up-map-sel{min-width:190px;}

/* ── Balance sync (CSV import) ── */
.up-actions[hidden],.bs-wrap[hidden],.bs-acct[hidden]{display:none;}
.bs-acct{background:var(--card2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:var(--sp3) var(--sp4);margin-bottom:var(--sp4);}
.bs-acct-lbl{display:block;font-size:.85rem;font-weight:600;color:var(--text);margin-bottom:var(--sp2);}
.bs-acct-sel{width:100%;min-height:44px;font-size:16px;}
.bs-acct-hint{font-size:.78rem;color:var(--text);margin-top:var(--sp2);}
.bs-wrap{margin-bottom:var(--sp4);}
.bs-panel{background:var(--card2);border:1px solid var(--border);border-left:4px solid var(--muted);border-radius:var(--radius-sm);padding:var(--sp4);}
.bs-panel--ok{border-left-color:var(--success);}
.bs-panel--review{border-left-color:var(--warn);}
.bs-h{display:flex;align-items:center;gap:var(--sp2);font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text);margin:0 0 var(--sp3);}
.bs-h:focus{outline:none;}
.bs-h:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px;}
.bs-panel--ok .bs-h .ti{color:color-mix(in srgb, var(--success) 70%, var(--text));}
.bs-panel--review .bs-h .ti{color:color-mix(in srgb, var(--warn) 70%, var(--text));}
.bs-h4{font-size:.85rem;font-weight:600;color:var(--text);margin:var(--sp4) 0 var(--sp2);}
.bs-p{font-size:.82rem;color:var(--text);line-height:1.5;margin:0 0 var(--sp2);}
.bs-muted{font-style:italic;}
.bs-sum{display:grid;grid-template-columns:1fr;gap:var(--sp2);margin:0 0 var(--sp3);}
.bs-sum div{display:flex;justify-content:space-between;gap:var(--sp3);font-size:.82rem;}
.bs-sum dt{color:var(--text);font-weight:400;}
.bs-sum dd{margin:0;color:var(--text);font-weight:600;text-align:right;}
.bs-amt{font-family:var(--font-mono);font-weight:500;white-space:nowrap;}
.bs-list{list-style:none;margin:0 0 var(--sp2);padding:0;}
.bs-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--sp2);font-size:.8rem;color:var(--text);padding:6px 0;border-bottom:1px solid var(--border);}
.bs-li-date{color:var(--text);white-space:nowrap;}
.bs-li-name{flex:1;min-width:0;overflow-wrap:anywhere;}
.bs-tag{font-size:.7rem;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);padding:1px 6px;}
.bs-more{font-size:.78rem;color:var(--text);margin:0 0 var(--sp2);}
.bs-ack{display:flex;align-items:center;gap:var(--sp3);min-height:44px;margin:var(--sp3) 0;font-size:.85rem;color:var(--text);cursor:pointer;}
.bs-ack input{width:22px;height:22px;margin:0;}
.bs-panel .up-actions .btn{min-height:44px;}
.bs-panel .btn[disabled]{opacity:.5;cursor:not-allowed;}
.dr-carried{display:block;font-size:.7rem;color:var(--muted);margin-top:2px;}
@media (min-width:760px){
  .bs-sum{grid-template-columns:1fr 1fr;column-gap:var(--sp6);}
}
.up-subcat{font-size:.68rem;background:#2a2535;color:var(--muted);border-radius:99px;padding:1px 6px;}
.prev-tbl .up-td-name{font-size:.8rem;font-weight:600;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.prev-tbl .up-td-cat{font-size:.8rem;}
.prev-tbl .up-td-desc{color:var(--muted);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;}
.prev-tbl .up-td-amt{font-weight:600;}
.imp-stat--total{background:#1a1a2e;}
.imp-stat--ok{background:#1a2a1a;}
.imp-stat--dup{background:#2a2010;}
.imp-stat--err{background:#2a1020;}

/* ══ BUDGET VS ACTUALS ══ */
.bva-header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:20px;}
.bva-view-btn{background:transparent;color:var(--muted);transition:background .18s,color .18s;padding:7px 14px;font-size:.8rem;font-weight:600;border:none;cursor:pointer;}
.bva-view-btn+.bva-view-btn{border-left:1px solid var(--border);}
.bva-view-btn.active{background:var(--primary);color:var(--primary-text);}
/* Budget page (was inline) */
.bva-header .page-sub{margin-bottom:0;}
.bva-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.bva-controls select{padding:6px 10px;font-size:.78rem;width:auto;}
.bva-view-toggle{display:flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;}
.bva-card-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.bva-card-hd .section-label{margin:0;}
.bva-card-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
.bva-showall{display:flex;align-items:center;gap:6px;font-size:.78rem;cursor:pointer;font-weight:400;color:var(--muted);}
.bva-th-progress{min-width:100px;}
.bva-inputs-label{margin-bottom:3px;}
.bva-inputs-note{font-size:.76rem;color:var(--muted);margin-bottom:14px;}
.bva-icon--muted{background:var(--card3);color:var(--muted);}
.bva-annual-note{font-size:.7rem;color:var(--muted);margin-left:4px;}
.dr-k.bva-input-k{display:flex;align-items:center;gap:8px;}
.bva-input-icon{font-size:.9rem;}
.bva-input-v{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.bva-input-v input{width:120px;padding:6px 10px;font-size:.82rem;text-align:right;}
.bva-per{font-size:.74rem;color:var(--muted);}
.bva-table{width:100%;border-collapse:collapse;font-size:.84rem;}
.bva-table th{text-align:left;padding:10px 12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);white-space:nowrap;}
.bva-table th:not(:first-child){text-align:right;}
.bva-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;}
.bva-table td:not(:first-child){text-align:right;font-weight:600;}
.bva-table tr:last-child td{border-bottom:none;}
.bva-table tr:hover td{background:#221e2a;}
.bva-table tr.bva-total td{background:var(--card2);font-weight:700;border-top:2px solid var(--border);}
.bva-cat-cell{display:flex;align-items:center;gap:8px;}
.bva-icon{width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}
.bva-bar-cell{min-width:100px;}
.bva-bar{height:6px;background:#2a2535;border-radius:99px;overflow:hidden;margin-top:4px;}
.bva-bar-fill{height:100%;border-radius:99px;transition:width .4s ease;}
.rem-green{color:var(--success-ink);}
.rem-amber{color:var(--warn-ink);}
.rem-red{color:var(--danger-ink);}
.bva-no-budget{color:var(--muted);font-size:.76rem;font-style:italic;}

/* ══ CATEGORIES ══ */
.cat-grid{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:16px;}
.cat-chip{display:flex;align-items:center;gap:8px;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:9px 12px;min-width:0;}
.cat-chip-icon{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;}
.cat-chip-name{font-weight:600;font-size:.84rem;flex:1;min-width:0;}
.cat-chip-count{font-size:.72rem;color:var(--muted);white-space:nowrap;}
.cat-chip-actions{display:flex;gap:4px;flex-shrink:0;}
.tx-cat-sel{padding:5px 8px;font-size:.76rem;border-radius:7px;background:var(--card2);border:1px solid var(--border);color:var(--text);cursor:pointer;max-width:130px;}
.tx-cat-sel:focus{border-color:var(--primary);outline:none;}

/* ══ BULK SELECT ══ */
.tx-bulk-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 14px;background:#2a1030;border-radius:10px;margin-bottom:12px;animation:fadeUp .2s ease;}
.tx-bulk-count{font-size:.82rem;font-weight:600;color:var(--pink-light);}
.tx-check{width:16px;height:16px;}
/* Transactions page (was inline) */
.tx-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.tx-hist-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;flex-wrap:wrap;gap:8px;}
.tx-hist-hd .section-label{margin:0;}
.tx-hist-tools{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.tx-rescan-result{font-size:.76rem;}
.tx-filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;align-items:center;}
.tx-filters select{padding:6px 10px;font-size:.78rem;width:auto;}
.tx-filters input{padding:6px 10px;font-size:.78rem;flex:1;min-width:160px;max-width:240px;}
.tx-bulk-bar select{padding:7px 10px;font-size:.82rem;width:auto;}
.tx-th-check{width:32px;}
.tx-person-badge{font-size:.68rem;background:var(--pink-dim);color:var(--pink-light);border-radius:99px;padding:2px 7px;font-weight:600;margin-left:5px;}
.tx-cell-name{font-weight:600;font-size:.84rem;}
.tx-desc-cell{color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tx-amt{font-weight:600;}
.tx-amt--income{color:var(--success-ink);}
.tx-amt--expense{color:var(--primary-ink);}
#tx-sentinel td{padding:14px;text-align:center;color:var(--muted);font-size:.76rem;border:none;}
.tx-autocat-pill{align-items:center;gap:6px;margin-top:5px;flex-wrap:wrap;}
.tx-del-btn{margin-right:auto;}

/* ══ AUTO-RULE BANNER ══ */
.rule-banner{padding:14px 16px;background:#1a2a1a;border:1px solid rgba(0,200,150,.25);border-radius:12px;margin-bottom:12px;font-size:.8rem;animation:fadeUp .2s ease;}
.rule-banner strong{color:var(--success-ink);}

/* ══ FORECAST ══ */
.fc-balance-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;background:var(--card2);border:1px solid var(--border);border-radius:12px;margin-bottom:18px;}
.fc-bal-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;}
.fc-bal-value{font-family:var(--font-display);font-size:1.4rem;font-weight:700;color:var(--primary-ink);}
.fc-bal-warn{font-size:.8rem;color:var(--warn-ink);font-weight:600;}
.fc-view-toggle{display:flex;background:var(--card2);border:1px solid var(--border);border-radius:9px;overflow:hidden;}
.fc-toggle-btn{padding:8px 16px;border:none;font-family:var(--font-body);font-size:.8rem;font-weight:600;cursor:pointer;background:transparent;color:var(--muted);transition:all .18s;min-height:36px;}
.fc-toggle-btn.active{background:var(--primary);color:var(--primary-text);}
.fc-range-btn{padding:7px 12px;border:1.5px solid var(--border);border-radius:8px;font-family:var(--font-body);font-size:.78rem;font-weight:600;cursor:pointer;background:transparent;color:var(--muted);transition:all .18s;min-height:36px;}
.fc-range-btn.active{border-color:var(--primary);color:var(--primary-ink);background:var(--pink-dim);}
.fc-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.fc-table th{text-align:left;padding:9px 12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);white-space:nowrap;}
.fc-table th:not(:first-child){text-align:right;}
.fc-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;}
.fc-table td:not(:first-child){text-align:right;font-weight:600;}
.fc-table tr:hover td{background:#221e2a;}
.fc-table tr.fc-neg td:first-child::before{content:'⚠️ ';}
.fc-table tr.fc-neg td{background:rgba(240,64,96,.08)!important;color:var(--danger-ink);}
.fc-table tr.fc-neg td:not(:first-child){color:var(--danger-ink);}
.rec-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.rec-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1rem;flex-shrink:0;}
.rec-info{flex:1;min-width:140px;}
.rec-name{font-weight:700;font-size:.88rem;}
.rec-meta{font-size:.73rem;color:var(--muted);margin-top:2px;}
.rec-amt{font-family:var(--font-display);font-size:1.1rem;font-weight:700;flex-shrink:0;}
.rec-actions{display:flex;gap:6px;align-items:center;flex-shrink:0;}
.rec-pending{border-color:var(--warn);background:#2a2010;}
.rec-pending .rec-name::after{content:' — needs review';font-size:.7rem;color:var(--warn-ink);font-weight:400;}
.upcoming-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.upcoming-row:last-child{border-bottom:none;}
.upcoming-date{font-size:.76rem;font-weight:700;color:var(--muted);flex:0 0 80px;}
.upcoming-name{flex:1;font-weight:600;font-size:.86rem;min-width:100px;}
.upcoming-cat{font-size:.72rem;padding:2px 7px;border-radius:99px;font-weight:600;}
.upcoming-amt-pos{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--success-ink);flex-shrink:0;}
.upcoming-amt-neg{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--danger-ink);flex-shrink:0;}
.insight-card{display:flex;align-items:flex-start;gap:12px;padding:12px 16px;background:var(--card2);border:1px solid var(--border);border-radius:10px;margin-bottom:10px;}
.insight-icon{font-size:1.3rem;flex-shrink:0;margin-top:2px;}
.insight-text{font-size:.84rem;line-height:1.6;color:var(--text);}
.insight-text strong{color:var(--primary-ink);}
.fc-negative-warn{background:var(--danger-bg);border:1px solid color-mix(in srgb, var(--danger) 40%, transparent);border-radius:9px;padding:12px 16px;font-size:.82rem;color:var(--danger-ink);font-weight:600;margin-bottom:14px;display:flex;align-items:center;gap:10px;}
.rec-edit-form{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:10px;}

/* ══ FORECAST v2 (fc2-*) ══ */
.fc2-sync-bar{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 18px!important;}
.fc2-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.fc2-kpi{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;min-width:0;}
.fc2-kpi-label{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:6px;}
.fc2-kpi-val{font-family:var(--font-mono);font-size:1.15rem;font-weight:700;margin-bottom:3px;}
.fc2-kpi-sub{font-size:.72rem;color:var(--muted);}
.fc2-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;-webkit-overflow-scrolling:touch;}
.fc2-month-card{flex:0 0 auto;width:110px;background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:12px 10px;cursor:pointer;text-align:center;transition:all .15s;font-family:var(--font-body);-webkit-tap-highlight-color:transparent;}
.fc2-month-card:hover{border-color:var(--primary);background:rgba(240,83,138,.08);}
.fc2-month-lbl{font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em;}
.fc2-month-net{font-family:var(--font-mono);font-size:.95rem;font-weight:700;margin-bottom:4px;}
.fc2-month-status{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;}
.fc2-month-proxy{font-size:.6rem;color:var(--muted);margin-top:3px;}
.fc2-insight-card{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:10px;margin-bottom:10px;}
.fc2-insight-card:last-child{margin-bottom:0;}
.fc2-insight-icon{font-size:1.3rem;flex-shrink:0;margin-top:2px;}
.fc2-insight-title{font-weight:700;font-size:.88rem;margin-bottom:4px;}
.fc2-insight-body{font-size:.8rem;line-height:1.6;color:color-mix(in srgb, var(--muted) 60%, var(--text));}
.fc2-insight-body strong{color:var(--text);}
.fc2-modal-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);}
.fc2-modal-row:last-child{border-bottom:none;}
.fc2-modal-lbl{font-size:.8rem;color:var(--muted);}
.fc2-badge{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:20px;}
.fc2-badge-grey{background:rgba(98,120,160,.18);color:var(--muted);}
.fc2-badge-green{background:rgba(0,200,150,.15);color:var(--success-ink);}
.fc2-edited-tag{font-size:.66rem;color:var(--warn-ink);font-weight:700;margin-right:6px;vertical-align:middle;}
.fc2-adj-table{width:100%;border-collapse:collapse;font-size:.82rem;}
.fc2-adj-table th{text-align:left;padding:9px 12px;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);white-space:nowrap;}
.fc2-adj-table td{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:middle;}
.fc2-adj-table tr:last-child td{border-bottom:none;}
.fc2-adj-table tr:hover td{background:rgba(255,255,255,.03);}
/* Forecast page (was inline) */
.fc2-bal-wrap{flex:1;min-width:0;}
.fc2-bal-value{font-size:.85rem;color:var(--muted);}
.fc2-sync-time{font-size:.72rem;color:var(--muted);margin-top:2px;}
.fc2-sync-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;align-items:center;}
.btn.fc2-cum-toggle:disabled{opacity:.4;}
.section-label.fc2-sl{margin-bottom:14px;}
.section-label.fc2-sl-2{margin-bottom:2px;}
.chart-box.fc2-chart-box{height:300px;}
.fc2-adj-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.fc2-adj-desc{font-size:.76rem;color:var(--muted);}
.fc2-ongoing{display:flex;align-items:center;gap:8px;padding-top:22px;}
.fc2-ongoing-lbl{font-size:.82rem;color:var(--muted);cursor:pointer;}
.fc2-form-actions{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap;}
.fc2-insight-card--muted{background:var(--card2);}
.fc2-status--actual{color:var(--muted);}
.fc2-status--neg{color:var(--danger-ink);}
.fc2-status--tight{color:var(--warn-ink);}
.fc2-status--fc{color:var(--primary-ink);}
.fc2-mm-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;}
.modal-box .fc2-mm-title{font-family:var(--font-display);font-size:1.2rem;margin:0;}
.fc2-mm-close{background:none;border:none;color:var(--muted);font-size:1.4rem;cursor:pointer;padding:4px 8px;}
.fc2-mm-amt{font-family:var(--font-mono);}
.fc2-mm-src{color:var(--muted);font-size:.8rem;}
.fc2-mm-adjs{margin:14px 0 8px;}
.fc2-mm-none{color:var(--muted);font-size:.82rem;margin:14px 0;}
.fc2-modal-row.fc2-mm-final{border-top:1px solid var(--border);padding-top:12px;margin-top:4px;}
.fc2-mm-final-lbl{font-weight:700;}
.fc2-mm-final-val{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;}
.btn.fc2-mm-add{width:100%;margin-top:14px;}
.empty.empty--pad20{padding:20px 0;}
.fc2-adj-table .fc2-td-muted{font-size:.8rem;color:var(--muted);}
.fc2-adj-table .fc2-td-amt{font-family:var(--font-mono);}
.fc2-adj-table .fc2-td-src{font-size:.78rem;color:var(--muted);}
.fc2-adj-table .fc2-td-actions{white-space:nowrap;}
@media(max-width:680px){
  .fc2-kpi-strip{grid-template-columns:repeat(2,1fr);}
  .fc2-sync-bar{flex-direction:column;align-items:flex-start;}
}

/* ══ EXPORT ══ */
.export-section-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);gap:10px;flex-wrap:wrap;}
.export-section-row:last-child{border-bottom:none;}
.export-section-info{flex:1;min-width:0;}
.export-section-name{font-weight:600;font-size:.88rem;}
.export-section-count{font-size:.74rem;color:var(--muted);margin-top:2px;}
.export-section-btns{display:flex;gap:6px;flex-shrink:0;}
/* Export page (was inline) */
.card.ex-quick{text-align:center;cursor:pointer;}
.ex-quick-ico{font-size:2.2rem;margin-bottom:10px;}
.ex-quick-title{font-weight:700;font-size:.95rem;margin-bottom:4px;}
.ex-quick-desc{font-size:.76rem;color:var(--muted);margin-bottom:14px;}
.ex-restore-desc{font-size:.82rem;color:var(--muted);margin-bottom:16px;line-height:1.6;}
.ex-restore-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.btn.ex-file-btn{cursor:pointer;min-height:44px;}
.ex-restore-status{font-size:.82rem;color:var(--muted);}
.ex-clear-desc{font-size:.78rem;color:var(--muted);margin-bottom:12px;line-height:1.5;}
.ex-clear-btns{display:flex;flex-wrap:wrap;gap:8px;}
/* Quick Start page (was inline) */
.qs-prog-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.qs-prog-count{font-size:1.4rem;font-weight:700;margin-top:4px;}
.qs-prog-pctwrap{text-align:right;}
.qs-prog-pct{font-size:2rem;font-weight:700;color:var(--primary-ink);}
.card.qs-done{border-left:4px solid var(--success);background:rgba(0,200,150,0.08);}
.qs-done-row{display:flex;align-items:center;gap:12px;}
.qs-done-ico{font-size:2rem;}
.qs-done-title{font-weight:700;color:var(--success-ink);}
.qs-done-sub{font-size:.85rem;color:var(--muted);margin-top:4px;}
.card.qs-step{opacity:1;transition:opacity .3s;}
.card.qs-step--done{opacity:.6;}
.qs-step-row{display:flex;gap:12px;margin-bottom:10px;align-items:flex-start;}
.qs-step-ico{font-size:1.8rem;}
.qs-step-body{flex:1;}
.qs-step-hd{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.qs-step-num{font-weight:700;font-size:.9rem;color:var(--muted);}
.qs-done-badge{font-size:.7rem;background:var(--success);color:#000;padding:2px 6px;border-radius:3px;font-weight:700;}
.qs-step-title{font-weight:600;font-size:1rem;}
.qs-step-text{font-size:.85rem;color:var(--muted);margin-top:4px;line-height:1.5;}
.qs-step-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.btn.qs-cta{background:var(--primary);color:var(--primary-text);font-weight:600;padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.8rem;}
.btn.qs-mark{background:var(--card3);color:var(--text);padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.8rem;}
.qs-reset-wrap{margin-top:20px;text-align:center;}
.qs-reset{background:transparent;color:var(--muted);border:none;cursor:pointer;font-size:.85rem;text-decoration:underline;padding:0;min-height:44px;}
/* Net Worth (Assets) page (was inline) */
.as-col{display:flex;flex-direction:column;gap:16px;}
.as-donut{height:220px;}
.as-note{font-size:.72rem;color:var(--muted);text-align:center;padding:4px 0;}
.card.as-eq-card{padding:14px 18px;}
.as-eq-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.as-sub{font-size:.74rem;color:var(--muted);}
.as-hist-hd{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.as-prop{margin-bottom:10px;}
.dr-k.as-prop-name{font-weight:700;margin-bottom:4px;}
.as-liab-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:middle;}
.as-link-wrap{margin-top:10px;}
.as-link{font-size:.8rem;color:var(--primary-ink);text-decoration:none;font-weight:600;}
.as-link-inline{color:var(--primary-ink);}
.as-np-hero{text-align:center;padding:10px 0 16px;}
.as-np-lbl{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;}
.as-np-val{font-family:var(--font-mono);font-size:2.4rem;font-weight:700;}
.as-ratio{margin-top:14px;}
.as-ratio-lbls{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-top:3px;}
.nw-chart{height:240px;position:relative;margin-bottom:24px;}
.nw-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.nw-tbl{width:100%;border-collapse:collapse;min-width:480px;}
.nw-tbl .nw-th{padding:8px 12px;text-align:right;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1.5px solid var(--border);white-space:nowrap;}
.nw-tbl .nw-th--l{text-align:left;}
.nw-tbl .nw-th--nw{color:var(--primary-ink);}
.nw-tbl .nw-td{padding:7px 12px;text-align:right;font-family:var(--font-mono);font-size:.8rem;border-bottom:1px solid var(--border);}
.nw-tbl .nw-td--month{text-align:left;font-weight:600;color:var(--text);}
.nw-tbl .nw-td--bold{font-weight:700;}

/* ══ EQUITIES / RSU ══ */
.rsu-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border);}
.rsu-row:last-child{border-bottom:none;}
.rsu-calculated{font-weight:700;color:var(--primary-ink);font-size:.9rem;min-width:100px;}

/* ══ EQUITIES / SHARES ══ */
.eq-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
.eq-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;}
.eq-ticker{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--primary-ink);min-width:60px;}
.eq-company{font-size:.84rem;font-weight:600;flex:1;}
.eq-type-badge{font-size:.68rem;padding:2px 8px;border-radius:99px;font-weight:700;border:1px solid;}
.eq-type-rsu{background:#2a1030;color:#f07aaa;border-color:#4a1050;}
.eq-type-stock{background:#0a1a30;color:#74b9ff;border-color:#1a3060;}
.eq-type-option{background:#2a2010;color:#f0a040;border-color:#4a3010;}
.eq-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px 16px;font-size:.8rem;}
.eq-lbl{color:var(--muted);}
.eq-val{font-weight:700;text-align:right;}
.eq-gain-pos{color:var(--success-ink);}
.eq-gain-neg{color:var(--danger-ink);}
.eq-sales-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--border);font-size:.78rem;flex-wrap:wrap;}

/* ══ RULES ══ */
.rule-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;transition:border-color .15s;}
.rule-card:hover{border-color:#3a2060;}
/* Categories page (was inline) */
.cg-icon-block{margin-bottom:12px;}
.lbl.cg-icon-lbl{margin-bottom:8px;}
.cg-icon-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;}
.cg-icon-preview{width:40px;height:40px;border-radius:8px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--primary-ink);}
.cg-icon-picker{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px;}
.cg-icon-opt{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;background:var(--card);color:var(--muted);border:1.5px solid var(--border);transition:all .15s;}
.cg-icon-opt.is-active{background:var(--primary);color:var(--primary-text);border-color:var(--primary);}
.cg-add-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.cg-f-name{flex:1 1 160px;}
.cg-f-color{flex:0 0 90px;}
.cg-color-input{height:44px;padding:3px 6px;cursor:pointer;width:100%;}
.cg-type-sel{height:44px;}
.btn.cg-add-btn{align-self:flex-end;}
.cg-io-row{display:flex;gap:10px;flex-wrap:wrap;}
.btn.cg-file-btn{cursor:pointer;}
.cg-file-input{display:none;}
.cg-io-note{font-size:.72rem;color:var(--muted);margin-top:8px;}
.cg-list-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;flex-wrap:wrap;gap:8px;}
.cg-filters{display:flex;gap:8px;}
.btn.cat-filter.is-active{background:rgba(232,69,122,.15);border-color:var(--primary);color:var(--primary-ink);}
.cg-card{background:var(--card2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
.cg-card-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;}
.cg-card-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0;}
.cg-card-body{flex:1;min-width:0;}
.cg-card-name{font-weight:700;font-size:.9rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.cg-type-badge{font-size:.66rem;padding:2px 7px;border-radius:99px;}
.cg-type-badge--income{background:var(--success-bg);color:var(--success-ink);}
.cg-type-badge--both{background:var(--purple-bg);color:var(--purple-ink);}
.cg-type-badge--expense{background:var(--pink-dim);color:var(--pink-light);}
.cg-count{font-size:.7rem;color:var(--muted);}
.cg-subcats{margin-top:8px;line-height:1.8;}
.subcat-chip{display:inline-block;font-size:.68rem;background:var(--card2);color:var(--muted);border-radius:99px;padding:2px 8px;margin:2px 3px 2px 0;cursor:pointer;border:1px solid var(--border);}
.subcat-chip--add{background:transparent;color:var(--primary-ink);border:1px dashed var(--primary);margin:0 0 0 2px;}
.cg-card-actions{display:flex;gap:6px;flex-shrink:0;}
.del-btn.cg-rename{font-size:.9rem;}
.card.cg-shortcut{display:flex;align-items:center;gap:14px;cursor:pointer;}
.cg-shortcut-ico{width:40px;height:40px;border-radius:10px;background:rgba(240,83,138,.15);display:flex;align-items:center;justify-content:center;font-size:1.3rem;flex-shrink:0;}
.cg-shortcut-body{flex:1;min-width:0;}
.cg-shortcut-title{font-weight:700;font-size:.9rem;margin-bottom:2px;}
.cg-shortcut-desc{font-size:.75rem;color:var(--muted);}
.cg-shortcut-arrow{color:var(--muted);font-size:1.1rem;}
.cg-bank-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;cursor:pointer;}
.cg-bank-desc{font-size:.76rem;color:var(--muted);margin:4px 0 0;}
.cg-bank-chevron{font-size:1.1rem;color:var(--muted);transition:transform .2s;}
.cg-bank-body{margin-top:16px;}
.cg-bank-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px;}
.bank-filter-pill{font-size:.72rem;padding:4px 12px;border-radius:99px;border:1px solid var(--border);background:var(--card2);color:var(--muted);cursor:pointer;font-weight:600;white-space:nowrap;}
.bank-filter-pill.is-active{border-color:var(--primary);background:var(--primary);color:var(--primary-text);}
.cg-bank-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.cg-bank-note{font-size:.68rem;color:var(--muted);margin-top:12px;}
.cg-btable{width:100%;border-collapse:collapse;}
.cg-bth{text-align:left;padding:8px 12px 8px 0;font-size:.72rem;color:var(--muted);font-weight:700;white-space:nowrap;}
.cg-bth-bank{text-align:left;padding:8px 10px;font-size:.72rem;font-weight:700;border-radius:6px 6px 0 0;white-space:nowrap;}
.cg-btd-cat{padding:7px 12px 7px 0;font-size:.8rem;font-weight:600;white-space:nowrap;color:var(--text);}
.cg-btable .cg-btd{padding:7px 10px;font-size:.78rem;border-bottom:1px solid var(--border);}  /* keeps the last row's border: outranks tr:last-child td */
.cg-fix{border-top:1px solid var(--border);padding-top:12px;}
.cg-fix-title{font-size:.8rem;font-weight:600;margin-bottom:4px;}
.cg-fix-desc{font-size:.74rem;color:var(--muted);margin-bottom:10px;}
/* Smart Rules page + rule cards (was inline) */
.card.sr-intro{background:linear-gradient(135deg,rgba(240,83,138,.08) 0%,rgba(129,140,248,.08) 100%);border-color:rgba(240,83,138,.2);}
.sr-intro-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.sr-intro-item{display:flex;gap:12px;align-items:flex-start;}
.sr-intro-ico{font-size:1.4rem;flex-shrink:0;margin-top:2px;}
.sr-intro-title{font-weight:700;font-size:.85rem;margin-bottom:3px;}
.sr-intro-text{font-size:.75rem;color:var(--muted);line-height:1.5;}
/* Bulk Auto-Categorise block (shared by Smart Rules and Categories) */
.card.acat-card{margin-top:16px;}
.section-label.acat-sl{margin-bottom:3px;}
.acat-desc{font-size:.76rem;color:var(--muted);margin-bottom:14px;}
.acat-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.acat-row--gap{margin-bottom:14px;}
.acat-progress{width:160px;height:8px;}
.acat-result{font-size:.8rem;}
/* Auto-categorise (was inline) */
.acat-result .acat-undo-btn{margin-left:8px;}
.tx-autocat-pill .acat-sugg-lbl{color:var(--muted);font-size:.72rem;}
.tx-autocat-pill .acat-sugg-apply{font-size:.78rem;padding:3px 10px;}
.tx-autocat-pill .acat-sugg-apply--high{color:var(--success-ink);border-color:var(--success);}
.tx-autocat-pill .acat-sugg-apply--low{color:var(--warn-ink);border-color:var(--warn);}
.tx-autocat-pill .acat-sugg-x{font-size:.72rem;padding:2px 8px;color:var(--muted);}
.acat-gen-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px 16px;z-index:9999;max-width:340px;width:90%;box-shadow:0 4px 20px rgba(0,0,0,.4);}
.acat-gen-label{font-size:.82rem;font-weight:600;margin-bottom:10px;}
.acat-gen-btns{display:flex;gap:8px;}
.acat-gen-btns .acat-gen-btn{flex:1;}
.acat-gen-btns .acat-gen-x{padding:0 10px;}
.rules-toolbar{display:flex;gap:12px;margin-bottom:16px;align-items:center;flex-wrap:wrap;}
.rules-search{flex:1;min-width:200px;padding:8px 12px;border:1px solid var(--border);border-radius:8px;background:var(--card);color:var(--text);font-size:.85rem;}
.btn.rules-new-btn{white-space:nowrap;gap:6px;}
.rules-count{font-size:.75rem;color:var(--muted);margin-bottom:10px;}
.rules-pager{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:20px;}
.rules-page-lbl{font-size:.8rem;color:var(--muted);}
.rc-badge{font-size:.65rem;border-radius:99px;padding:2px 8px;font-weight:700;letter-spacing:.04em;}
.rc-badge--rule{background:var(--pink-dim);color:var(--pink-light);}
.rc-badge--learned{background:var(--success-bg);color:var(--success-ink);}
.rc-badge--pattern{background:var(--purple-bg);color:var(--purple-ink);font-weight:600;letter-spacing:.03em;}
.rc-badge--overlap{background:rgba(245,158,11,.15);color:var(--warn-ink);letter-spacing:.03em;}
.rc-meta{font-size:.7rem;}
.btn.rc-promote{color:var(--primary-ink);}
.rc-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.rc-main{flex:1;min-width:140px;}
.rc-head{display:flex;align-items:center;gap:7px;margin-bottom:4px;flex-wrap:wrap;}
.rc-merchant{font-weight:700;font-size:.88rem;}
.rc-map{display:flex;align-items:center;gap:12px;flex:2;min-width:200px;flex-wrap:wrap;}
.rc-map-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:3px;}
.rc-cat{font-weight:700;}
.rc-arrow{color:var(--muted);}
.rc-subcat{background:var(--card3);color:var(--text);border-radius:6px;padding:2px 9px;font-size:.8rem;font-weight:600;}
.rc-none{font-size:.78rem;color:var(--muted);font-style:italic;}
.rc-actions{display:flex;gap:6px;flex-shrink:0;align-items:center;flex-wrap:wrap;}
.rule-edit-inline{margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.rc-edit-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;}
.rc-edit-f{flex:1;min-width:150px;}
.rc-edit-actions{display:flex;gap:6px;}
/* Create Rule modal */
.modal-box--500{max-width:500px;}
.cr-form{display:grid;gap:14px;}
.cr-hint{font-weight:400;color:var(--muted);}
.cr-opts{display:grid;gap:8px;margin-top:4px;}
.rule-pattern-opt{display:flex;align-items:flex-start;gap:10px;cursor:pointer;padding:11px 14px;border:2px solid var(--border);border-radius:10px;background:var(--card2);overflow:hidden;transition:all .15s;}
.rule-pattern-opt.is-active{border-color:var(--primary);background:rgba(240,83,138,.1);}
.cr-radio{margin-top:3px;}
.cr-opt-body{min-width:0;}
.rule-pattern-title{font-weight:700;font-size:.85rem;color:var(--muted);}
.rule-pattern-opt.is-active .rule-pattern-title{color:var(--primary-ink);}
.cr-opt-desc{font-size:.72rem;color:var(--muted);margin-top:2px;}
.cr-apply{display:flex;align-items:center;gap:9px;cursor:pointer;font-size:.82rem;line-height:1.3;padding:2px 0;}
.cr-actions{display:flex;gap:10px;margin-top:4px;}
.btn.btn--grow{flex:1;}
.cr-preview{font-size:.78rem;color:var(--muted);background:var(--card2);border:1px solid var(--border);border-radius:8px;padding:9px 11px;margin-top:2px;}
.cr-kept{margin-top:4px;color:var(--warn-ink);}
.cr-dup{font-size:.78rem;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35);border-radius:8px;padding:9px 11px;margin-top:8px;color:var(--text);}
.cr-ov{margin-top:8px;border:1px solid rgba(245,158,11,.35);border-radius:8px;overflow:hidden;}
.cr-ov-hd{font-size:.74rem;font-weight:700;color:var(--warn-ink);background:rgba(245,158,11,.1);padding:8px 11px;}
.cr-ov-body{padding:6px 11px 9px;}
.cr-ov-item{display:flex;align-items:flex-start;gap:8px;padding:6px 0;cursor:pointer;font-size:.78rem;line-height:1.35;}
.cr-ov-cb{margin-top:3px;accent-color:var(--danger);}
.cr-ov-note{color:var(--muted);font-size:.72rem;}

/* ══ DASHBOARD COMPONENTS ══ */
.dash-period-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 18px;background:var(--card2);border:1px solid var(--border);border-radius:12px;margin-bottom:20px;}
.dash-mode-toggle{display:flex;background:var(--card);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.dash-mode-btn{padding:7px 16px;border:none;font-family:var(--font-body);font-size:.8rem;font-weight:600;cursor:pointer;background:transparent;color:var(--muted);min-height:36px;transition:all .18s;}
.dash-mode-btn.active{background:var(--primary);color:var(--primary-text);}
.dash-nav{display:flex;align-items:center;gap:8px;}
.dash-nav-btn{background:none;border:1.5px solid var(--border);border-radius:7px;color:var(--muted);cursor:pointer;font-size:1rem;padding:4px 10px;min-height:36px;transition:all .18s;line-height:1;}
.dash-nav-btn:hover{border-color:var(--primary);color:var(--primary-ink);}
.dash-period-lbl{font-family:var(--font-display);font-weight:700;font-size:1rem;color:var(--text);min-width:140px;text-align:center;}
.dash-today-btn{padding:6px 12px;font-size:.76rem;font-weight:600;border:1.5px solid var(--border);border-radius:7px;background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font-body);min-height:36px;transition:all .18s;}
.dash-today-btn:hover{border-color:var(--primary);color:var(--primary-ink);}
.dash-stats-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px;}
.dash-stat{flex:1 1 150px;min-width:0;border-radius:12px;padding:16px;position:relative;overflow:hidden;color:#fff;}
.dash-stat::after{content:'';position:absolute;right:-12px;top:-12px;width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.08);}
.dash-stat .ds-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;opacity:.8;margin-bottom:5px;}
.dash-stat .ds-val{font-family:var(--font-display);font-size:1.35rem;font-weight:700;line-height:1.2;word-break:break-all;}
.dash-stat .ds-sub{font-size:.7rem;opacity:.75;margin-top:4px;line-height:1.4;}
.ds-income{background:linear-gradient(135deg,#1a4a20,#2e8040);}
.ds-expense{background:linear-gradient(135deg,#4a1a1a,#c4326a);}
.ds-net{background:linear-gradient(135deg,#1a1a4a,#5a3ab0);}
.ds-mom{background:linear-gradient(135deg,#3a2010,#a05020);}
.ds-daily{background:linear-gradient(135deg,#1a3a4a,#2a7090);}
.acct-strip{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:4px;}
.acct-strip-item{flex:1 1 130px;min-width:0;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;}
.acct-strip-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:4px;}
.acct-strip-val{font-family:var(--font-display);font-size:1.15rem;font-weight:700;}
.acct-strip-total{background:linear-gradient(135deg,#2a1030,#4a1050);border-color:#5a2060;}
.nw-hero{text-align:center;padding:20px 16px;}
.nw-val{font-family:var(--font-display);font-size:2.6rem;font-weight:700;color:var(--primary-ink);}
.nw-sub{font-size:.78rem;color:var(--muted);margin-top:4px;}
.nw-breakdown{display:flex;flex-wrap:wrap;gap:12px;margin-top:16px;justify-content:center;}
.nw-item{text-align:center;padding:8px 14px;background:var(--card2);border-radius:8px;border:1px solid var(--border);flex:1 1 100px;}
.nw-item-lbl{font-size:.68rem;color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;}
.nw-item-val{font-weight:700;font-size:.9rem;}
.top5-tbl{width:100%;border-collapse:collapse;font-size:.8rem;}
.top5-tbl th{text-align:left;padding:8px 10px;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);border-bottom:1.5px solid var(--border);}
.top5-tbl td{padding:9px 10px;border-bottom:1px solid var(--border);vertical-align:middle;}
.top5-tbl tr:last-child td{border-bottom:none;}
.top5-tbl tr:hover td{background:#221e2a;}
.top5-tbl td:last-child{font-weight:700;color:var(--primary-ink);text-align:right;white-space:nowrap;}
.upcoming-bill-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);flex-wrap:wrap;}
.upcoming-bill-row:last-child{border-bottom:none;}
.bill-days-pill{font-size:.7rem;font-weight:700;padding:2px 8px;border-radius:99px;flex-shrink:0;}
.days-today{background:var(--danger-bg);color:var(--danger-ink);}
.days-soon{background:var(--warn-bg);color:var(--warn-ink);}
.days-ok{background:var(--success-bg);color:var(--success-ink);}
.mort-snap{display:flex;flex-wrap:wrap;gap:0;}
.mort-snap-item{flex:1 1 120px;padding:12px 14px;text-align:center;border-right:1px solid var(--border);}
.mort-snap-item:last-child{border-right:none;}
.mort-snap-lbl{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:5px;}
.mort-snap-val{font-family:var(--font-display);font-size:1.1rem;font-weight:700;}
.super-strip{display:flex;flex-wrap:wrap;gap:12px;}
.super-strip-item{flex:1 1 140px;border-radius:10px;padding:14px 16px;color:#fff;}
.super-strip-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.8;margin-bottom:5px;}
.super-strip-val{font-family:var(--font-display);font-size:1.3rem;font-weight:700;}
.db-charts-row{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:16px;}
.db-charts-row>.chart-panel{flex:1;min-width:280px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px;}
.chart-panel-title{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:12px;}
.sankey-svg{width:100%;overflow:visible;}
.sankey-label{font-family:Inter,sans-serif;fill:var(--text);pointer-events:none;}

/* ══ APPEARANCE: LIGHT/DARK MODE TOGGLE ══ */
.mode-toggle{display:inline-flex;gap:4px;background:var(--card2);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px;}
.mode-toggle-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 14px;border:none;background:transparent;color:var(--muted);font-family:var(--font-body);font-size:.82rem;font-weight:600;border-radius:var(--radius-pill);cursor:pointer;transition:all .18s;}
.mode-toggle-btn:hover{color:var(--text);}
.mode-toggle-btn.active{background:var(--primary);color:var(--primary-text);}

/* ══ SETTINGS PAGE ══ */
.settings-row{display:flex;flex-direction:column;gap:4px;}
.settings-danger-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:12px 14px;background:var(--card2);border-radius:var(--radius-sm);}

/* ══ EQUITY HOLDINGS ══ */
.eq-group-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--border);}
.eq-row{border-radius:var(--radius-sm);border:1px solid var(--border);margin-bottom:8px;overflow:hidden;}
.eq-row-main{display:flex;align-items:flex-start;gap:10px;padding:12px;cursor:pointer;transition:background .15s;}
.eq-row-main:hover{background:var(--card2);}
.eq-row-icon{font-size:1.4rem;flex-shrink:0;line-height:1.2;}
.eq-row-info{flex:1;min-width:0;}
.eq-row-name{font-size:.88rem;font-weight:600;margin-bottom:2px;}
.eq-row-sub{font-size:.72rem;color:var(--muted);}
.eq-row-values{text-align:right;flex-shrink:0;}
.eq-row-actions{display:flex;gap:4px;flex-shrink:0;align-items:flex-start;}
.eq-vest-bar-wrap{height:5px;background:var(--border);border-radius:3px;overflow:hidden;margin-top:6px;}
.eq-vest-bar{height:100%;border-radius:3px;transition:width .3s;}
.eq-badge{display:inline-block;padding:2px 7px;border-radius:99px;font-size:.65rem;font-weight:700;margin-left:4px;}
.eq-badge-exch{background:var(--card2);color:var(--muted);}
.eq-badge-private{background:var(--pink-dim-strong);color:var(--primary-ink);}
.eq-row-detail{border-top:1px solid var(--border);background:var(--card2);}
.eq-detail-inner{padding:14px 16px;}
.eq-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px 16px;font-size:.78rem;}
.eq-lbl{color:var(--muted);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;}
.eq-val{font-weight:600;font-family:var(--font-mono);font-size:.78rem;}
.eq-schedule-toggle{font-size:.76rem;color:var(--primary-ink);cursor:pointer;padding:4px 0;}
.eq-sched-table{width:100%;border-collapse:collapse;font-size:.75rem;}
.eq-sched-table th{text-align:left;padding:6px 8px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);border-bottom:1.5px solid var(--border);}
.eq-sched-table td{padding:6px 8px;border-bottom:1px solid var(--border);}
.eq-sched-past td{opacity:.55;}
.eq-sales-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:6px 0;border-bottom:1px solid var(--border);font-size:.76rem;}
.eq-sales-row:last-child{border-bottom:none;}
.eq-code{font-weight:700;}
.eq-muted{color:var(--muted);}
.eq-up{color:var(--success-ink);}
.eq-down{color:var(--danger-ink);}
.eq-hero-lbl{font-size:.7rem;color:var(--muted);}
.eq-hero-val{font-family:var(--font-mono);font-weight:700;font-size:.9rem;}
.eq-code-input{text-transform:uppercase;}
.eq-gain-pos{color:var(--success-ink);font-weight:700;}
.eq-gain-neg{color:var(--danger-ink);font-weight:700;}
.eq-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:none;align-items:center;justify-content:center;z-index:1000;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px));}
.eq-modal-overlay.open{display:flex;}
.eq-modal-box{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px 22px;width:100%;max-width:580px;max-height:90vh;max-height:90dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.eq-modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.eq-modal-head--tight{margin-bottom:8px;}
.eq-modal-title{margin:0;}
.eq-modal-actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap;}
.eq-modal-actions--snug{margin-top:16px;}
.eq-sale-preview{margin-top:10px;font-size:.78rem;color:var(--muted);}
.eq-detail-actions{margin-top:14px;padding-top:10px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap;}
/* 44×44 touch targets on phones and touch devices; desktop keeps the compact buttons.
   min-width covers the icon-only close buttons. */
@media (max-width:759px), (pointer:coarse){
  .eq-modal-box .btn-sm,.eq-trade-del{min-height:44px;min-width:44px;}
  .eq-detail-actions .btn-sm{min-height:44px;}
}
.eq-field-hint{font-size:.68rem;color:var(--muted);margin-top:3px;}
.eq-stale-note{display:flex;align-items:center;gap:6px;margin-top:14px;font-size:.78rem;color:var(--warn-ink);}
.eq-px-age--stale{color:var(--warn-ink);}

/* Update prices sheet — rows stack on phones; price box beside the details from 760px */
.eq-px-help{font-size:.76rem;color:var(--muted);margin:0 0 12px;}
.eq-px-paste{margin-bottom:12px;}
.eq-px-paste summary{cursor:pointer;color:var(--primary-ink);font-size:.82rem;font-weight:600;min-height:44px;display:flex;align-items:center;gap:6px;}
.eq-px-paste textarea{width:100%;box-sizing:border-box;font-family:var(--font-mono);margin-bottom:8px;}
.eq-px-note{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--warn-bg);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:var(--radius-sm);padding:10px 12px;font-size:.78rem;margin-bottom:10px;}
.eq-px-row{display:flex;flex-direction:column;gap:8px;padding:12px 0;border-bottom:1px solid var(--border);}
.eq-px-row--focus{background:var(--card2);border-radius:var(--radius-sm);padding-left:10px;padding-right:10px;}
.eq-px-info{min-width:0;}
.eq-px-name{font-size:.88rem;}
.eq-px-co{color:var(--muted);font-size:.78rem;}
.eq-px-sub{font-size:.72rem;color:var(--muted);margin-top:2px;}
.eq-px-warn{font-size:.72rem;color:var(--warn-ink);margin-top:4px;}
.eq-px-entry input{width:100%;box-sizing:border-box;min-height:44px;}
.eq-px-field{display:flex;gap:6px;}
.eq-px-field input{flex:1;min-width:0;}
.eq-px-ccy{flex:0 0 76px;min-height:44px;}
.eq-px-delta{font-size:.72rem;margin-top:4px;min-height:1em;}
.eq-px-delta--up{color:var(--success-ink);}
.eq-px-delta--down{color:var(--danger-ink);}
.eq-px-delta--warn{color:var(--warn-ink);}
.eq-px-note-text{flex:1;min-width:180px;}
.eq-px-fx{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;background:var(--card2);border-radius:var(--radius-sm);padding:10px 12px;margin-bottom:12px;}
.eq-px-fx[hidden]{display:none;}
.eq-px-fx label{font-size:.8rem;font-weight:600;}
.eq-px-fx input{flex:0 0 140px;min-height:44px;box-sizing:border-box;}
.eq-px-fx .eq-px-sub,.eq-px-fx .eq-px-warn{flex-basis:100%;margin-top:0;}
@media (min-width:760px) and (pointer:fine), (min-width:760px) and (min-height:501px){
  .eq-px-row{flex-direction:row;align-items:flex-start;gap:14px;}
  .eq-px-info{flex:1;}
  .eq-px-entry{flex:0 0 220px;}
  .eq-px-delta{text-align:right;}
}

/* Holdings list: one row per security, opening to its holdings and sales. On phones a row's value
   and gain drop to a line of their own, so the name keeps the width; in the desktop layout they sit on the right. */
.eq-row-main{flex-wrap:wrap;}
.eq-row-values{order:3;flex-basis:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding-left:34px;text-align:left;}
.eq-row-actions,.eq-sec-chev{order:2;}
@media (min-width:760px) and (pointer:fine), (min-width:760px) and (min-height:501px){
  .eq-row-main{flex-wrap:nowrap;}
  .eq-row-values{order:0;flex-basis:auto;display:block;padding-left:0;text-align:right;}
  .eq-row-actions,.eq-sec-chev{order:0;}
}
.eq-sec-value{font-family:var(--font-mono);font-weight:700;font-size:.95rem;}
.eq-sec-gain{font-family:var(--font-mono);font-size:.78rem;}
.eq-sec-chev{flex-shrink:0;align-self:center;color:var(--muted);}
.eq-sec-body{padding:12px;}
.eq-sec-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.eq-sec-actions .btn{min-height:44px;}
.eq-sec-sold summary{cursor:pointer;color:var(--muted);font-size:.78rem;min-height:44px;display:flex;align-items:center;}
.eq-sec-trades{margin-top:12px;padding-top:10px;border-top:1px solid var(--border);}
.eq-trade{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.78rem;}
.eq-trade:last-child{border-bottom:none;}
.eq-trade-del{margin-left:auto;}
.eq-badge-12m{background:var(--success-bg);color:var(--success-ink);margin-left:0;}

/* Sell sheet */
.eq-sell-lots-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:4px;}
.eq-sell-choose{display:flex;align-items:center;gap:8px;font-size:.8rem;min-height:44px;cursor:pointer;}
.eq-sell-choose input{width:20px;height:20px;}
.eq-lot{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);font-size:.82rem;}
.eq-lot-info{flex:1;min-width:0;}
.eq-lot-in{flex:0 0 110px;min-height:44px;box-sizing:border-box;}
.eq-lot-take{flex-shrink:0;font-size:.8rem;color:var(--primary-ink);}
.eq-sell-summary{margin-top:12px;background:var(--card2);border-radius:var(--radius-sm);padding:12px;font-size:.82rem;}
.eq-sell-summary:empty{display:none;}
.eq-sell-row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;}
.eq-sell-summary .eq-px-warn{margin:0;}
.eq-sell-summary .eq-sell-fxline{margin:0 0 6px;}

/* Equities page (was inline) */
.eq-chart--260{height:260px;}
.eq-chart--220{height:220px;}
.eq-chart--200{height:200px;}
.eq-hold-hd{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:4px;}
.eq-hold-btns{display:flex;gap:8px;flex-wrap:wrap;}
.eq-vs-stats{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:16px;}
.eq-vs-col{border-left:1px solid var(--border);padding-left:24px;}
.eq-vs-lbl{font-size:.7rem;color:var(--muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.05em;}
.eq-vs-val{font-family:var(--font-mono);font-size:1.4rem;font-weight:700;}
.eq-vs-sub{font-size:.72rem;color:var(--muted);margin-top:2px;}
.eq-vs-track{background:var(--card2);border-radius:6px;height:10px;overflow:hidden;}
.eq-vs-fill{height:100%;border-radius:6px;}
.eq-vs-foot{display:flex;justify-content:space-between;margin-top:6px;font-size:.72rem;color:var(--muted);}
.eq-vs-pct{font-weight:600;}
.eq-yr-tag{font-size:.65rem;background:var(--card2);color:var(--muted);padding:1px 6px;border-radius:20px;margin-left:6px;}
.eq-yr-tag--cur{background:var(--success-bg);color:var(--success-ink);}
.eq-yr-wrap{overflow-x:auto;}
.eq-yr-tbl{width:100%;border-collapse:collapse;font-size:.82rem;}
.eq-yr-tbl .eq-yr-row{border-bottom:1px solid var(--border);}
.eq-yr-tbl .eq-yr-hrow{border-bottom:1.5px solid var(--border);}
.eq-yr-tbl .eq-yr-total{border-top:2px solid var(--border);}
.eq-yr-tbl .eq-yr-th{padding:0 8px 8px;text-align:right;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;}
.eq-yr-tbl .eq-yr-th--yr{padding:0 12px 8px 0;text-align:left;color:var(--muted);}
.eq-yr-tbl .eq-yr-th.eq-yr-last{padding:0 0 8px 8px;}
.eq-yr-tbl .eq-yr-grp{padding:2px 8px 6px;text-align:center;font-size:.68rem;font-weight:600;}
.eq-yr-tbl .eq-yr-grp.eq-yr-last{padding:2px 0 6px 8px;}
.eq-yr-tbl .eq-yr-td{padding:7px 8px;}
.eq-yr-tbl .eq-yr-td--yr{padding:7px 12px 7px 0;font-weight:600;white-space:nowrap;}
.eq-yr-tbl .eq-yr-td.eq-yr-last{padding:7px 0 7px 8px;}
.eq-yr-tbl .eq-yr-num{font-family:var(--font-mono);font-size:.82rem;text-align:right;}
.eq-yr-tbl .eq-yr-tt{padding:8px 8px 4px;font-weight:700;font-size:.82rem;}
.eq-yr-tbl .eq-yr-tt--lbl{padding:8px 12px 4px 0;}
.eq-yr-tbl .eq-yr-tt.eq-yr-last{padding:8px 0 4px 8px;}
.eq-hero-row{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:16px;}
.eq-hero-main-lbl{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
.eq-hero-main-val{font-family:var(--font-mono);font-size:2.2rem;font-weight:700;line-height:1;}
.eq-hero-stats{margin-top:10px;display:flex;gap:20px;flex-wrap:wrap;}
.eq-hero-slbl{font-size:.7rem;color:var(--muted);}
.eq-hero-sval{font-family:var(--font-mono);font-weight:600;font-size:.9rem;}
.eq-hero-sval--bold{font-weight:700;}
.eq-hero-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-start;}
.eq-vest-note{font-size:.68rem;color:var(--muted);margin-top:2px;}
.eq-expiry{font-size:.7rem;font-weight:700;margin-top:3px;}
.eq-row-vest{margin-top:6px;}
.eq-row-val{font-family:var(--font-mono);font-weight:700;font-size:.95rem;}
.eq-row-gain{font-family:var(--font-mono);font-size:.78rem;}
.eq-row-hint{font-size:.7rem;color:var(--muted);}
.eq-row-actions .eq-act-btn{padding:8px 10px;}
.eq-sched{margin-top:14px;}
.eq-sched-wrap{margin-top:8px;overflow-x:auto;}
.eq-sched-table .eq-sched-mono{font-family:var(--font-mono);}
.eq-modal-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;}
.eq-modal-hd .eq-modal-x{padding:6px 10px;}
.form-grid.eq-form-top{margin-bottom:14px;}
.eq-modal-actions--wrap{flex-wrap:wrap;}
.eq-vest-prev{background:var(--card2);border-radius:var(--radius-sm);padding:10px 14px;font-size:.8rem;color:var(--muted);margin-bottom:4px;}
.eq-mo-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;flex-wrap:wrap;gap:8px;}

/* Liabilities page (was inline) */
.liab-sec{margin-top:20px;}
.liab-sec-lbl{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.liab-sec-lbl--mb{margin-bottom:10px;}
.liab-sec-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:12px;flex-wrap:wrap;}
.btn.liab-add-btn{border-radius:9999px;padding:10px 20px;min-height:48px;font-size:.82rem;}
.liab-sort{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap;}
.liab-mono{font-family:var(--font-mono);}
.liab-strong{font-weight:600;}
.liab-kpis{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:4px;}
.liab-kpi-lbl{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;}
.liab-kpi-val{font-family:var(--font-mono);font-size:2rem;font-weight:700;}
.liab-kpi-unit{font-size:1rem;color:var(--muted);}
.liab-tot-int{font-size:.76rem;color:var(--muted);margin-top:6px;}
.liab-dti{display:flex;align-items:center;gap:8px;margin-top:12px;padding:10px 14px;background:var(--card2);border-radius:10px;flex-wrap:wrap;}
.liab-sum-lbl{font-size:.78rem;color:var(--muted);}
.liab-dti-val{font-family:var(--font-mono);font-weight:700;margin-left:auto;}
.liab-dti-badge{font-size:.72rem;padding:2px 8px;border-radius:12px;}
hr.liab-hr{border:none;border-top:1px solid rgba(255,255,255,.07);margin:16px 0;}
.liab-grp{margin-bottom:10px;}
.liab-grp-hd{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:4px;}
.prog-track.liab-track-6{height:6px;}
.prog-track.liab-track-5{height:5px;}
.liab-hi{display:flex;align-items:center;gap:8px;padding:10px 14px;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.25);border-radius:10px;margin-top:10px;flex-wrap:wrap;}
.liab-hi-ico{font-size:1rem;}
.liab-hi-lender{font-size:.78rem;color:var(--text);}
.liab-hint{margin-top:12px;padding:10px 14px;background:rgba(129,140,248,.08);border:1px solid rgba(129,140,248,.2);border-radius:10px;font-size:.78rem;color:var(--muted);}
.card.liab-card{margin-bottom:12px;border-left:3px solid var(--n300);}
.card.liab-card--amber{border-left-color:var(--warn);}
.card.liab-card--green{border-left-color:var(--success);}
.card.liab-card--danger{border-left-color:var(--danger);}
.card.liab-card--purple{border-left-color:var(--purple);}
.liab-mg-hd{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.liab-pill{padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;}
.liab-pill--mg{background:rgba(98,120,160,.15);color:var(--n300);}
.liab-tone-slate{color:var(--n300);}
.liab-ro{font-size:.7rem;color:var(--muted);margin-left:auto;}
.liab-lender{font-size:1rem;font-weight:600;margin-bottom:10px;}
.liab-lender--12{margin-bottom:12px;}
.liab-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.liab-stat-lbl{font-size:.68rem;color:var(--muted);margin-bottom:2px;}
.liab-stat-val{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;}
.liab-stat-pay{font-family:var(--font-mono);font-size:1rem;font-weight:600;}
.liab-stat-txt{font-size:.9rem;font-weight:600;}
.liab-prog{margin-top:10px;}
.liab-prog--12{margin-top:12px;}
.liab-prog-hd{display:flex;justify-content:space-between;font-size:.7rem;color:var(--muted);margin-bottom:4px;}
.empty.liab-empty{padding:32px 0;text-align:center;}
.liab-empty .liab-empty-p{color:var(--muted);}
.liab-util{margin-top:10px;padding:8px 12px;background:var(--card2);border-radius:8px;}
.liab-util-hd{display:flex;justify-content:space-between;font-size:.72rem;margin-bottom:4px;}
.liab-util-fill{height:100%;border-radius:3px;}
.liab-fixed-warn{margin-top:8px;padding:7px 12px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);border-radius:8px;font-size:.74rem;color:var(--warn-ink);}
.liab-note{font-size:.7rem;color:var(--muted);margin-top:4px;}
.liab-hecs{margin-top:8px;padding:8px 12px;background:rgba(129,140,248,.07);border:1px solid rgba(129,140,248,.2);border-radius:8px;font-size:.74rem;color:var(--muted);}
.liab-sync{margin-top:8px;padding:8px 12px;background:rgba(0,200,150,.07);border:1px solid rgba(0,200,150,.2);border-radius:8px;font-size:.74rem;color:var(--muted);}
.liab-sched{margin-top:12px;border-top:1px solid rgba(255,255,255,.06);padding-top:10px;}
.liab-sched-warn{font-size:.76rem;}
.liab-sched-warn--neg{font-weight:600;}
.liab-sched-sum{display:flex;gap:16px;flex-wrap:wrap;font-size:.75rem;}
.liab-sched .liab-sched-btn{margin-top:8px;background:none;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:var(--muted);font-size:.74rem;padding:5px 14px;cursor:pointer;min-height:36px;}
.liab-sch-wrap{overflow-x:auto;margin-top:10px;max-height:300px;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.liab-sch-tbl{width:100%;font-size:.72rem;border-collapse:collapse;min-width:380px;}
.liab-sch-tbl .liab-sch-hrow{background:var(--card2);}
.liab-sch-tbl .liab-sch-alt{background:rgba(255,255,255,.02);}
.liab-sch-tbl .liab-sch-th{padding:6px 8px;text-align:left;font-weight:600;color:var(--muted);}
.liab-sch-tbl .liab-sch-th--mo{white-space:nowrap;}
.liab-sch-tbl .liab-sch-td{padding:5px 8px;}
.liab-sch-tbl .liab-sch-num{text-align:right;font-family:var(--font-mono);}
.liab-sch-tbl .liab-sch-mo{color:var(--muted);white-space:nowrap;}
.liab-badges{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.liab-badge{padding:2px 8px;border-radius:12px;font-size:.68rem;}
.liab-badge--fixed{background:rgba(240,83,138,.12);color:var(--primary-ink);}
.liab-badge--var{background:rgba(98,120,160,.12);color:var(--n300);}
.liab-badge--link{background:rgba(0,200,150,.12);color:var(--success-ink);display:inline-flex;align-items:center;gap:4px;}
.liab-card-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;gap:8px;}
.liab-acts{display:flex;gap:4px;flex-shrink:0;}
.liab-acts .liab-act{background:none;border:none;font-size:.8rem;cursor:pointer;padding:6px 8px;min-height:44px;min-width:44px;border-radius:8px;}
.liab-notes{margin-top:10px;font-size:.75rem;color:var(--muted);border-top:1px solid rgba(255,255,255,.06);padding-top:8px;}
.section-label.liab-mo-title{margin-bottom:12px;}
.liab-mo-ico{font-size:1.1rem;}
.liab-mo-note{font-size:.68rem;color:var(--muted);margin-top:1px;}
.modal-box.liab-modal-box{max-width:480px;}
.liab-fld{margin-bottom:14px;}
.liab-modal-box .liab-in16{font-size:16px;}
.liab-fld-hint{font-size:.72rem;color:var(--muted);margin-top:4px;}
.liab-m-note{background:rgba(129,140,248,.07);border:1px solid rgba(129,140,248,.2);border-radius:10px;padding:10px 14px;font-size:.76rem;color:var(--muted);margin-bottom:14px;}
.liab-m-bills{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding:10px 14px;background:var(--card2);border-radius:10px;}
.liab-m-bills .liab-m-bills-lbl{font-size:.82rem;color:var(--text);cursor:pointer;}

/* Transfers page (was inline). The page also injects its own <style> (.tr-btn,
   .tr-toggle-*) after this file, so elements carrying those classes use doubled selectors. */
.tr-hdr{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:16px;}
.page-title.tr-title{margin-bottom:2px;}
.tr-sub{font-size:.76rem;color:var(--muted);}
.tr-hdr-btns{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.tr-hbtn{border-radius:999px;padding:9px 16px;min-height:44px;font-size:.78rem;font-weight:600;cursor:pointer;font-family:var(--font-body);}
.tr-hbtn--rerun{background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.3);color:var(--warn-ink);}
.tr-hbtn--ghost{background:transparent;border:1px solid var(--border);color:var(--muted);}
.tr-hbtn--primary{background:var(--primary);color:var(--primary-text);border:none;font-weight:700;}
.tr-pv{background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.2);border-radius:10px;padding:12px 16px;margin-bottom:14px;align-items:center;gap:12px;flex-wrap:wrap;}
.tr-pv-msg{flex:1;font-size:.82rem;color:var(--warn-ink);}
.tr-pv-btn{border-radius:999px;padding:8px 16px;font-size:.78rem;cursor:pointer;min-height:44px;}
.tr-pv-btn--go{background:var(--warn);color:#111;border:none;font-weight:700;}
.tr-pv-btn--cancel{background:transparent;border:1px solid var(--border);color:var(--muted);}
.tr-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px;}
.tr-kpi{background:var(--card);border-radius:14px;border:1px solid var(--border);padding:14px 16px;}
.tr-kpi-lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:6px;}
.tr-kpi-val{font-size:1.4rem;font-weight:700;font-family:var(--font-mono);}
.tr-kpi-dim{color:var(--muted);}
.tr-kpi-sub{font-size:.68rem;color:var(--muted);margin-top:2px;font-family:var(--font-mono);}
.card.tr-card{margin-bottom:16px;}
.tr-card-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.tr-card-title--mb2{margin-bottom:2px;}
.tr-chart-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;flex-wrap:wrap;gap:8px;}
.tr-flex4{display:flex;gap:4px;}
.tr-period{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-size:.7rem;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-period--on{background:var(--pink-dim);color:var(--pink-light);border-color:rgba(240,83,138,.3);}
.tr-chart-body{display:flex;gap:16px;flex-wrap:wrap;}
.tr-chart-main{flex:1;min-width:0;}
.tr-chart-box{position:relative;height:180px;}
.tr-legend{display:flex;gap:16px;margin-top:8px;}
.tr-sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;}
.tr-sw--sent{background:rgba(239,68,68,0.65);}
.tr-sw--recv{background:rgba(0,200,150,0.65);}
.tr-sw--unm{background:rgba(245,158,11,0.75);}
.tr-legend-lbl{font-size:.7rem;color:var(--muted);}
.tr-chart-side{width:210px;flex-shrink:0;}
.tr-side-title{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;}
.tr-out{padding:8px 10px;border-radius:8px;}
.tr-out--warn{margin-bottom:8px;background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.15);}
.tr-out--ok{background:rgba(0,200,150,.06);border:1px solid rgba(0,200,150,.15);}
.tr-out-title{font-size:.72rem;font-weight:600;}
.tr-out-sub{font-size:.65rem;color:var(--muted);margin-top:2px;}
.tr-af{margin-top:12px;}
.tr-af-btn{background:none;border:none;color:var(--muted);font-size:.72rem;cursor:pointer;padding:0;min-height:44px;font-family:var(--font-body);}
.tr-af-body{margin-top:8px;}
.tr-af-empty{font-size:.72rem;color:var(--muted);}
.tr-af-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;flex-wrap:wrap;}
.tr-af-acct{background:var(--card2);border-radius:6px;padding:2px 8px;font-size:.68rem;color:var(--muted);}
.tr-af-arrow{color:var(--muted);font-size:.7rem;}
.tr-af-amt{font-size:.7rem;color:var(--muted);font-family:var(--font-mono);}
.tr-cfg-hd{display:flex;align-items:center;justify-content:space-between;}
.tr-cfg-sum{font-size:.74rem;color:var(--muted);}
.tr-cfg-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:6px 14px;font-size:.72rem;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-cfg-body{margin-top:16px;}
.tr-cfg-th{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.tr-cfg-th-lbl{font-size:.78rem;font-weight:600;margin-bottom:4px;}
.tr-cfg-th .tr-cfg-th-in{width:60px;padding:4px 8px;font-size:.78rem;background:var(--card2);border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:var(--font-mono);text-align:center;}
.tr-cfg-sub{font-size:.7rem;color:var(--muted);}
.tr-cfg-last{font-size:.68rem;color:var(--muted);margin-top:10px;}
.tr-cfg-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);}
.tr-cfg-row-main{flex:1;}
.tr-cfg-row-lbl{font-size:.8rem;font-weight:600;}
.tr-btn.tr-switch{background:none;border:none;padding:0;display:flex;align-items:center;}
.tr-switch .tr-toggle-pill{background:var(--card3);}
.tr-switch .tr-toggle-pill--on{background:var(--primary);}
.tr-switch .tr-toggle-thumb{left:2px;}
.tr-switch .tr-toggle-pill--on .tr-toggle-thumb{left:16px;}
.tr-tabs{display:flex;border-bottom:1px solid var(--border);margin-bottom:16px;gap:0;overflow-x:auto;scrollbar-width:none;}
.tr-badge{display:inline-block;border-radius:999px;padding:1px 7px;font-size:.65rem;font-weight:700;margin-left:5px;}
.tr-badge--green{background:rgba(0,200,150,.15);color:var(--success-ink);}
.tr-badge--amber{background:rgba(245,158,11,.15);color:var(--warn-ink);}
.tr-badge--danger{background:rgba(239,68,68,.15);color:var(--danger-ink);}
.tr-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px;align-items:center;}
.tr-fpill{background:transparent;color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:6px 14px;font-size:.72rem;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-fpill--on{background:rgba(240,83,138,.12);color:var(--primary-ink);border-color:rgba(240,83,138,.3);}
.tr-filters .tr-fsel{padding:6px 10px;font-size:.72rem;background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:8px;min-height:44px;}
.tr-empty{text-align:center;padding:32px;color:var(--muted);}
.tr-empty--40{padding:40px;}
.tr-empty-ico{font-size:2rem;margin-bottom:8px;}
.tr-empty-title{font-size:.9rem;font-weight:600;margin-bottom:4px;}
.tr-empty-sub{font-size:.76rem;}
.tr-empty-lead{font-size:.9rem;}
.tr-tbl-wrap{overflow-x:auto;}
.tr-tbl{width:100%;border-collapse:collapse;font-size:.78rem;}
.tr-tbl--fixed{table-layout:fixed;}
.tr-tbl .tr-row{border-bottom:1px solid var(--border);}
.tr-tbl .tr-th{padding:8px 10px;text-align:left;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);}
.tr-tbl .tr-th--r{text-align:right;}
.tr-tbl .tr-th--c{text-align:center;}
.tr-tbl .tr-w70{width:70px;}
.tr-tbl .tr-w20p{width:20%;}
.tr-tbl .tr-w80{width:80px;}
.tr-tbl .tr-w90{width:90px;}
.tr-tbl .tr-w110{width:110px;}
.tr-tbl .tr-w130{width:130px;}
.tr-tbl .tr-th-arrow{width:28px;text-align:center;color:var(--muted);}
.tr-tbl .tr-th-arrow--tight{padding:8px 4px;}
.tr-tbl .tr-th-cb{width:28px;padding:8px 10px;}
.tr-tbl .tr-td{padding:10px;}
.tr-tbl .tr-td-date{color:var(--muted);font-size:.72rem;}
.tr-tbl .tr-td-arrow{padding:4px;text-align:center;color:var(--muted);}
.tr-tbl .tr-ellip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-tbl .tr-fs74{font-size:.74rem;}
.tr-tbl .tr-fs76{font-size:.76rem;}
.tr-tbl .tr-td-amt{text-align:right;font-family:var(--font-mono);font-weight:700;}
.tr-tbl .tr-td-reason{font-size:.72rem;color:var(--muted);}
.tr-tbl .tr-td-c{text-align:center;}
.tr-acct{font-weight:600;font-size:.76rem;}
.tr-acct-desc{font-size:.68rem;color:var(--muted);}
.tr-conf{display:flex;align-items:center;gap:5px;margin-bottom:3px;}
.tr-conf--4{gap:4px;}
.tr-conf-dot{width:7px;height:7px;border-radius:50%;display:inline-block;}
.tr-conf-dot--ns{flex-shrink:0;}
.tr-conf-lbl{font-size:.7rem;}
.tr-meter{width:60px;height:5px;background:var(--card3);border-radius:3px;}
.tr-meter-fill{height:100%;border-radius:3px;}
.tr-src{border-radius:999px;padding:2px 7px;font-size:.65rem;font-weight:700;}
.tr-src--manual{background:var(--pink-dim);color:var(--pink-light);}
.tr-src--auto{background:var(--purple-bg);color:var(--purple-ink);}
.tr-acts{display:flex;gap:4px;justify-content:center;}
.tr-btn.tr-act{border-radius:6px;min-height:44px;padding:10px 10px;font-size:.72rem;}
.tr-btn.tr-act--danger{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:var(--danger-ink);}
.tr-btn.tr-act--green{background:rgba(0,200,150,.1);border:1px solid rgba(0,200,150,.2);color:var(--success-ink);}
.tr-btn.tr-act--pink{background:rgba(240,83,138,.1);border:1px solid rgba(240,83,138,.2);color:var(--primary-ink);}
.tr-btn.tr-act--unlink{min-width:60px;padding:10px 12px;}
.tr-pend-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:12px;}
.tr-pend-count{font-size:.8rem;color:var(--muted);}
.tr-pend-tools{display:flex;gap:8px;align-items:center;}
.tr-pend-tools .tr-cb,.tr-tbl .tr-cb{width:16px;height:16px;}
.tr-pend-tools .tr-sa-lbl{font-size:.75rem;color:var(--muted);}
.tr-pend-hc{background:rgba(0,200,150,.1);border:1px solid rgba(0,200,150,.2);color:var(--success-ink);border-radius:999px;padding:8px 14px;font-size:.72rem;font-weight:600;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-bulk{align-items:center;gap:10px;flex-wrap:wrap;background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:10px 14px;margin-bottom:12px;position:sticky;top:0;z-index:10;}
.tr-bulk-n{flex:1;font-size:.8rem;font-weight:600;}
.tr-bb{border-radius:6px;padding:8px 14px;font-size:.75rem;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-bb--green{background:rgba(0,200,150,.1);border:1px solid rgba(0,200,150,.2);color:var(--success-ink);font-weight:600;}
.tr-bb--danger{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.2);color:var(--danger-ink);font-weight:600;}
.tr-bb--ghost{background:transparent;border:1px solid var(--border);color:var(--muted);}
.tr-pag{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.tr-pag-info{font-size:.75rem;color:var(--muted);}
.tr-pg{min-height:44px;min-width:36px;background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;cursor:pointer;font-size:.75rem;}
.tr-pg--on{background:var(--pink-dim);border-color:rgba(240,83,138,.3);color:var(--pink-light);}
.tr-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.6);z-index:10000;align-items:center;justify-content:center;padding:16px;}
.tr-modal-box{background:var(--card);border-radius:14px;border:1px solid var(--border);max-width:480px;width:100%;max-height:88vh;overflow-y:auto;padding:20px;}
.tr-modal-box .tr-modal-h{margin:0 0 6px;font-size:1rem;font-weight:700;}
.tr-modal-box .tr-modal-p{font-size:.78rem;color:var(--muted);margin-bottom:14px;}
.tr-modal-tools{display:flex;gap:8px;margin-bottom:10px;flex-wrap:wrap;}
.tr-modal-tools .tr-modal-q{flex:1;min-width:140px;padding:8px 10px;font-size:.8rem;background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:8px;}
.tr-modal-tools .tr-modal-sel{padding:8px 10px;font-size:.78rem;background:var(--card2);border:1px solid var(--border);color:var(--text);border-radius:8px;}
.tr-modal-list{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:10px;padding:4px;}
.tr-modal-status{font-size:.78rem;color:var(--muted);margin:10px 0;min-height:18px;}
.tr-modal-acts{display:flex;gap:8px;justify-content:flex-end;margin-top:4px;}
.tr-mbtn{border-radius:8px;padding:10px 16px;font-size:.8rem;cursor:pointer;min-height:44px;font-family:var(--font-body);}
.tr-mbtn--ghost{background:transparent;border:1px solid var(--border);color:var(--muted);}
.tr-mbtn--primary{background:var(--primary);color:var(--primary-text);border:none;padding:10px 18px;font-weight:700;}
.tr-ml-empty{padding:16px;text-align:center;color:var(--muted);font-size:.8rem;}
.tr-ml-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;cursor:pointer;min-height:44px;border:1.5px solid transparent;background:transparent;margin-bottom:3px;}
.tr-ml-row--sel{border-color:var(--primary);background:rgba(240,83,138,.06);}
.tr-ml-date{flex:0 0 65px;font-size:.73rem;color:var(--muted);}
.tr-ml-name{flex:1;min-width:0;font-size:.8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.tr-ml-cat{font-size:.75rem;color:var(--muted);flex-shrink:0;margin-right:4px;}
.tr-ml-amt{font-weight:700;flex-shrink:0;font-family:var(--font-mono);font-size:.82rem;}
.tr-iconfirm{position:fixed;bottom:80px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px 16px;display:flex;align-items:center;gap:12px;font-size:.82rem;font-family:var(--font-body);color:var(--text);box-shadow:0 8px 32px rgba(0,0,0,.45);z-index:9998;white-space:nowrap;}
.tr-iconfirm .tr-ic-btn{border-radius:999px;padding:6px 14px;font-size:.78rem;font-weight:600;cursor:pointer;min-height:44px;}
.tr-iconfirm .tr-ic-btn--ok{background:var(--danger);color:#fff;border:none;}
.tr-iconfirm .tr-ic-btn--cancel{background:var(--card3);color:var(--text);border:1px solid var(--border);}

/* Settings + Dashboard Layout pages (was inline) */
.section-label.sett-sl--18{margin-bottom:18px;}
.section-label.sett-sl--danger{margin-bottom:12px;color:var(--danger-ink);}
.sett-in16{font-size:16px;}
.sett-w100{width:100%;}
.settings-row.sett-row--mt10{margin-top:10px;}
.btn.sett-save-id{margin-top:14px;}
.sett-gap12{height:12px;}
.sett-foot{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);}
.sett-acct-hd{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px;}
.sett-desc{font-size:.8rem;color:var(--muted);margin-bottom:14px;}
.sett-desc--16{margin-bottom:16px;}
.field-row.sett-theme-row{display:flex;gap:16px;flex-wrap:wrap;align-items:flex-end;}
.sett-theme-pal{flex:1;min-width:180px;}
.sett-theme-lbl{display:block;font-size:.78rem;color:var(--muted);margin-bottom:6px;}
.card.sett-danger-card{border:1px solid rgba(239,68,68,.35);}
.sett-stack{display:flex;flex-direction:column;gap:10px;}
.sett-danger-title{font-weight:600;font-size:.88rem;margin-bottom:2px;}
.sett-danger-sub{font-size:.74rem;color:var(--muted);}
.btn.sett-dz-btn{flex-shrink:0;white-space:nowrap;}
.btn.sett-dz-btn--warn{background:var(--warn);color:#000;}
.btn.sett-dz-btn--danger{background:var(--danger-bg);border:1.5px solid color-mix(in srgb, var(--danger) 40%, transparent);color:var(--danger-ink);}
.sett-ver-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;}
.sett-ver-app{font-weight:600;font-size:.9rem;}
.sett-ver-num{font-family:var(--font-mono);font-size:.82rem;color:var(--primary-ink);}
.sett-ver-hint{font-size:.76rem;color:var(--muted);margin-bottom:16px;}
.sett-ver-none{font-size:.78rem;color:var(--muted);}
.sett-rel-list{display:flex;flex-direction:column;gap:14px;}
.sett-rel-hd{display:flex;align-items:baseline;gap:10px;margin-bottom:4px;}
.sett-rel-ver{font-family:var(--font-mono);font-size:.8rem;font-weight:500;color:var(--primary-ink);}
.sett-rel-title{font-size:.82rem;font-weight:600;}
.sett-rel-date{font-size:.72rem;color:var(--muted);margin-left:auto;}
.sett-rel-notes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px;}
.sett-rel-note{font-size:.76rem;color:var(--muted);}
.sett-prof{background:var(--card2);border-radius:12px;padding:14px 16px;}
.sett-prof-grid{display:grid;grid-template-columns:56px 1fr;gap:10px;align-items:start;}
.lbl.sett-prof-lbl{font-size:.68rem;margin-bottom:4px;}
.sett-prof-icon{font-size:1.4rem;text-align:center;padding:8px 4px;width:100%;}
.sett-pin-row{display:flex;align-items:center;gap:10px;margin-top:12px;}
.sett-pin{font-size:.76rem;font-weight:600;}
.sett-bank-sel{width:100%;box-sizing:border-box;}
.sett-acct-none{color:var(--muted);font-size:.82rem;}
.sett-acct-custom{color:var(--muted);font-size:.68rem;}
.btn.sett-acct-del{background:var(--danger-bg);color:var(--danger-ink);border:1px solid var(--danger);}
.sett-ip-prev{width:44px;height:44px;border-radius:8px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--primary-ink);cursor:default;}
.sett-ip-grid{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px;max-width:220px;}
.sett-ip-opt{cursor:pointer;font-size:1.05rem;padding:5px;border-radius:5px;background:var(--card2);color:var(--muted);}
.sett-acct-form-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--primary-ink);margin-bottom:12px;}
.form-grid.sett-fg-icon{grid-template-columns:56px 1fr;}
.form-grid.sett-fg-mt8{margin-top:8px;}
.sett-form-acts{display:flex;gap:8px;margin-top:4px;}
.sett-acct-form.sett-acct-form--full{width:100%;}
/* Dashboard Layout profile cards: each profile's accent colour */
.sett-dp--starter{--sett-acc:var(--success);}
.sett-dp--household{--sett-acc:var(--primary);}
.sett-dp--full{--sett-acc:var(--warn);}
.sett-dp{cursor:pointer;border:1.5px solid var(--border);background:var(--card2);border-radius:12px;padding:14px 16px;transition:border-color .15s,background .15s;}
.sett-dp.sett-dp--sel{border-color:var(--sett-acc);background:color-mix(in srgb,var(--sett-acc) 8%, var(--card2));}
.sett-dp-row{display:flex;align-items:flex-start;gap:14px;}
.sett-dp-ico{width:40px;height:40px;flex-shrink:0;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.2rem;background:color-mix(in srgb,var(--sett-acc) 14%, transparent);color:var(--sett-acc);}
.sett-dp-main{flex:1;min-width:0;}
.sett-dp-head{font-family:var(--font-head,inherit);font-weight:600;font-size:.95rem;color:var(--text);margin-bottom:2px;}
.sett-dp-sub{font-size:.78rem;color:var(--muted);line-height:1.45;}
.sett-dp-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;}
.sett-dp-pill{font-size:.68rem;color:var(--muted);background:var(--card3,var(--card2));border:1px solid var(--border);border-radius:6px;padding:2px 8px;font-weight:500;}
.sett-dp-check{width:22px;height:22px;flex-shrink:0;border-radius:50%;border:1.5px solid var(--border);background:transparent;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.72rem;}
.sett-dp--sel .sett-dp-check{border-color:var(--sett-acc);background:var(--sett-acc);}
.sett-dp-assets{margin-top:16px;padding-top:16px;border-top:1px solid var(--border);}
.sett-dp-assets-title{font-size:.8rem;font-weight:600;color:var(--text);margin-bottom:4px;}
.sett-dp-assets-desc{font-size:.74rem;color:var(--muted);margin-bottom:12px;}
.sett-chips{display:flex;flex-wrap:wrap;gap:8px;}
.sett-asset-chip{cursor:pointer;display:inline-flex;align-items:center;gap:7px;border:1.5px solid var(--border);background:var(--card2);color:var(--muted);border-radius:9px;padding:8px 12px;font-size:.78rem;font-weight:500;transition:border-color .15s,background .15s;}
.sett-asset-chip.sett-asset-chip--on{border-color:var(--warn);background:color-mix(in srgb,var(--warn) 12%, transparent);color:var(--text);}
.sett-dp-note{margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
.sett-dp-note-p{font-size:.74rem;color:var(--muted);line-height:1.5;}
.sett-link{color:var(--primary-ink);cursor:pointer;}

/* Borrowing page (was inline). css/borrowing.css scopes every rule under
   #page-borrowing and loads after this file, so these repeat that scope and
   the element's base class to keep winning. */
#page-borrowing .bc-r,#page-borrowing .bc-dt .bc-r{text-align:right;}
#page-borrowing .bc-dt.bc-dt--narrow{max-width:420px;}
#page-borrowing .bc-btn.bc-mt10{margin-top:10px;}
#page-borrowing .bc-helper.bc-mt8{margin-top:8px;}
#page-borrowing .bc-chip.bc-mt5{margin-top:5px;}
#page-borrowing .bc-src-badge.bc-ml6{margin-left:6px;}
#page-borrowing .bc-btn-row.bc-mb16{margin-bottom:16px;}
#page-borrowing .bc-mono.bc-fw600{font-weight:600;}
#page-borrowing .bc-mono.bc-mono--22{font-size:22px;font-weight:500;}
#page-borrowing .bc-mono.bc-mono--17{font-size:17px;}

/* App shell, onboarding and shared modals (was inline). Onboarding rules live in
   index.html's <style id="ob-css">, which comes after this file, and .mob-menu-item
   is in layout.css, so those get doubled selectors. */
.ob-preview-bar-label.ob-pv-lbl--mb3{margin-bottom:3px;}
.ob-preview-bar-label.ob-pv-lbl--mt4{margin-top:4px;}
.ob-pv-equity{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--green) 38%,var(--n600) 38%);margin-bottom:10px;}
.ob-preview-amount.ob-pv-amt--sm{font-size:15px;}
.ob-pv-ring{width:44px;height:44px;border-radius:50%;border:4px solid var(--amber);margin:8px auto 8px;position:relative;}
.ob-pv-ring-half{position:absolute;inset:4px;border-radius:50%;border:4px solid var(--green);clip-path:polygon(0 0,50% 0,50% 100%,0 100%);}
.ob-preview-tx.ob-pv-tx--mt8{margin-top:8px;}
.ob-sub.ob-sub--mt10{margin-top:10px;}
.ob-file-input{display:none;}
.ob-profile-card.ob-pc--starter{--card-accent:#00C896;--card-glow:rgba(0,200,150,0.12);--card-icon-bg:rgba(0,200,150,0.12);}
.ob-profile-card.ob-pc--household{--card-accent:#F0538A;--card-glow:rgba(240,83,138,0.12);--card-icon-bg:rgba(240,83,138,0.12);}
.ob-profile-card.ob-pc--full{--card-accent:#F59E0B;--card-glow:rgba(245,158,11,0.12);--card-icon-bg:rgba(245,158,11,0.12);}
.ob-helper.ob-mb14,.ob-field.ob-mb14{margin-bottom:14px;}
.ob-field.ob-mb0{margin-bottom:0;}
.ob-field.ob-mb10{margin-bottom:10px;}
.ob-field.ob-mt4{margin-top:4px;}
.ob-link.ob-link--left{text-align:left;}
.ob-link.ob-mt6{margin-top:6px;}
.ob-btn-primary.ob-mt0{margin-top:0;}
.ob-btn-primary.ob-mt16{margin-top:16px;}
.ob-btn-primary.ob-mt20{margin-top:20px;}
.ob-asset-grid.ob-asset-grid--5{grid-template-columns:repeat(5,1fr);}
.ob-divider.ob-divider--tight{margin:20px 0 16px;}
.mob-menu-themes.mob-themes-wrap{flex-wrap:wrap;gap:10px;}
.palette-select.mob-pal-sel{flex:1;min-width:140px;}
.mob-menu-item.mob-menu-item--wide{grid-column:1/-1;width:100%;justify-content:center;gap:8px;}
.mob-panel{grid-column:1/-1;background:var(--card2);border-radius:14px;padding:16px;margin-top:4px;}
.mob-panel.mob-panel--14{padding:14px;}
.mob-p-head{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:12px;}
.mob-p-head--mb10{margin-bottom:10px;}
.mob-p-grid{display:grid;grid-template-columns:56px 1fr;gap:8px;margin-bottom:14px;}
.mob-p-grid--mb18{margin-bottom:18px;}
.mob-p-lbl{font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:4px;}
.mob-p-icon{font-size:1.4rem;text-align:center;padding:8px 4px;}
.mob-in16{font-size:16px;}
.mob-mb10{margin-bottom:10px;}
.mob-mb12{margin-bottom:12px;}
.mob-p-accts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;}
.mob-p-alb{font-size:.7rem;color:var(--muted);display:block;margin-bottom:3px;}
.mob-p-acts{display:flex;gap:8px;}
.btn.mob-flex1{flex:1;}
.mob-r-lbl{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);display:block;margin-bottom:6px;}
.modal-box.mdl-w720{max-width:720px;width:100%;}
.mdl-close-row{display:flex;justify-content:flex-end;margin-bottom:2px;}
.modal-box.mdl-search{max-width:560px;width:100%;max-height:80vh;display:flex;flex-direction:column;}
.modal-box.mdl-85{max-height:85vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.modal-box.mdl-w520{max-width:520px;width:100%;}
.modal-box.mdl-w420{max-width:420px;width:100%;}
.mdl-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.mdl-hd--mb6{margin-bottom:6px;}
.mdl-desc{font-size:.78rem;color:var(--muted);margin-bottom:14px;}
.modal-box.mdl-fc2{max-width:440px;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.goal-fld{margin-bottom:14px;}

/* Setup wizard, How-to card, global search and undo toast (was inline).
   .wz-* rules are in layout.css, which loads after this file. */
.wz-label.wz-mt14{margin-top:14px;}
.wz-label.wz-mt18{margin-top:18px;}
.wz-label.wz-mt22{margin-top:22px;}
.wz-heading.wz-mt20{margin-top:20px;}
.how-to-hd-main{display:flex;align-items:center;gap:10px;}
.how-to-book{font-size:1.1rem;}
.how-to-name{font-weight:700;font-size:.88rem;color:var(--text);}
.how-to-tap{font-size:.72rem;color:var(--muted);}
.how-to-chev{font-size:.9rem;color:var(--muted);transition:transform .2s;}
.how-to-card .how-to-body{grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);}
.undo-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--card2);border:1px solid var(--border);border-radius:10px;padding:12px 18px;display:flex;align-items:center;gap:14px;font-size:.82rem;font-family:var(--font-body);color:var(--text);box-shadow:0 8px 32px rgba(0,0,0,.45);z-index:9999;white-space:nowrap;}
.undo-toast .undo-toast-btn{background:var(--primary);color:var(--primary-text);border:none;border-radius:999px;padding:6px 14px;font-size:.78rem;font-weight:600;cursor:pointer;min-height:44px;font-family:var(--font-body);}

/* ── GAMIFICATION STYLES ── */

/* Health Score Ring */
.health-score-widget{display:flex;flex-direction:column;align-items:center;gap:4px;flex-shrink:0;position:relative;}
.score-ring-wrap{position:relative;width:90px;height:90px;cursor:pointer;transition:transform .2s;}
.score-ring-wrap:hover{transform:scale(1.05);}
.score-ring-svg{width:90px;height:90px;transform:rotate(-90deg);}
.score-ring-bg{fill:none;stroke:rgba(98,120,160,0.2);stroke-width:7;}
.score-ring-fill{fill:none;stroke-width:7;stroke-linecap:round;stroke-dasharray:226;stroke-dashoffset:226;transition:stroke-dashoffset 1.4s cubic-bezier(0.34,1.56,0.64,1);}
.score-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.score-number{font-family:var(--font-mono);font-size:22px;line-height:1;}
.score-grade-label{font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.05em;}
.health-score-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);}
.health-score-sub{font-size:10px;text-align:center;font-weight:500;}
.score-tooltip{position:absolute;top:0;right:0;background:var(--card2);border:1px solid rgba(98,120,160,0.2);border-radius:14px;padding:14px 16px;width:210px;z-index:10;opacity:0;transform:translateY(-8px);pointer-events:none;transition:all .25s ease;}
.score-tooltip.visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.score-tooltip-title{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;}
.score-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid rgba(98,120,160,0.08);}
.score-row:last-child{border-bottom:none;}
.score-row-label{font-size:12px;color:var(--text);}
.score-row-val{font-family:var(--font-mono);font-size:12px;font-weight:500;}
.nw-health-wrap{display:flex;align-items:flex-start;gap:20px;flex-wrap:wrap;}
.nw-health-wrap>:first-child{flex:1;min-width:200px;}

/* Celebration Toast */
.celebration-overlay{position:fixed;inset:0;z-index:200;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;padding-bottom:90px;}
.celebration-toast{background:var(--card);border:1px solid var(--success);border-radius:20px;padding:14px 24px;display:flex;align-items:center;gap:10px;box-shadow:0 8px 40px rgba(0,200,150,0.3);opacity:0;transform:translateY(20px) scale(0.95);transition:all .4s cubic-bezier(0.34,1.56,0.64,1);pointer-events:none;}
.celebration-toast.show{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;}
.toast-icon{font-size:28px;}
.toast-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--success-ink);}
.toast-sub{font-size:12px;color:var(--muted);}
.confetti-piece{position:fixed;pointer-events:none;border-radius:2px;opacity:0;}

/* ── FINANCIAL HEALTH PAGE ── */
.fh-factor-card{margin-bottom:12px;padding:16px 18px;}
.fh-factor-hd{display:flex;align-items:flex-start;gap:12px;margin-bottom:10px;}
.fh-factor-icon{font-size:22px;flex-shrink:0;margin-top:2px;}
.fh-factor-meta{flex:1;min-width:0;}
.fh-factor-name{font-size:.9rem;font-weight:700;color:var(--text);margin-bottom:3px;}
.fh-factor-wt{font-size:.68rem;font-weight:600;color:var(--muted);margin-left:6px;text-transform:uppercase;letter-spacing:.05em;}
.fh-factor-explain{font-size:.76rem;color:var(--muted);line-height:1.45;}
.fh-factor-score{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;flex-shrink:0;line-height:1;margin-top:2px;}
.fh-bar-track{height:5px;background:var(--card3);border-radius:3px;margin-bottom:6px;}
.fh-bar-fill{height:100%;border-radius:3px;transition:width .6s ease;}
.fh-factor-status{font-size:.72rem;font-weight:600;margin-bottom:10px;}
.fh-actions-hd{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:6px;}
.fh-actions-list{padding-left:16px;margin:0;}
.fh-action-item{font-size:.78rem;color:var(--text);margin-bottom:6px;line-height:1.4;}
.fh-action-item:last-child{margin-bottom:0;}
.fh-on-track{font-size:.78rem;color:var(--success-ink);font-weight:600;}

/* ── SETTINGS: ACCOUNT MANAGEMENT ── */
.sett-privacy-notice{display:flex;align-items:flex-start;gap:12px;background:var(--green-dim);border:1px solid color-mix(in srgb, var(--success) 20%, transparent);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:16px;}
.sett-privacy-icon{font-size:20px;flex-shrink:0;margin-top:1px;}
.sett-privacy-title{font-size:.78rem;font-weight:700;color:var(--success-ink);margin-bottom:3px;}
.sett-privacy-body{font-size:.74rem;color:var(--muted);line-height:1.45;}
.sett-acct-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);}
.sett-acct-row:last-child{border-bottom:none;}
.sett-acct-icon{font-size:22px;flex-shrink:0;width:36px;text-align:center;}
.sett-acct-info{flex:1;min-width:0;}
.sett-acct-name{font-size:.88rem;font-weight:600;color:var(--text);}
.sett-acct-meta{font-size:.72rem;color:var(--muted);margin-top:2px;}
.sett-acct-actions{display:flex;gap:6px;flex-shrink:0;}
.sett-acct-form{background:var(--card2);border-radius:var(--radius-sm);padding:14px;margin:4px 0;border:1px solid var(--border);}

/* ── CASH TRACKER EXPLAINER + ENTRY DATE ── */
.ct-explainer{cursor:default;}
.ct-exp-hd{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:2px 0;}
.ct-exp-title-row{display:flex;align-items:center;gap:10px;}
.ct-exp-book{font-size:1.2rem;}
.ct-exp-hd-title{font-weight:700;font-size:.9rem;color:var(--text);}
.ct-exp-sub{font-size:.74rem;color:var(--muted);}
.ct-exp-chevron{font-size:1rem;color:var(--muted);transition:transform .2s;}
.ct-exp-body{margin-top:14px;border-top:1px solid var(--border);padding-top:14px;}
.ct-exp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.ct-exp-item{display:flex;align-items:flex-start;gap:10px;}
.ct-exp-icon{font-size:1.3rem;flex-shrink:0;margin-top:1px;}
.ct-exp-title{font-size:.8rem;font-weight:700;color:var(--text);margin-bottom:3px;}
.ct-exp-text{font-size:.74rem;color:var(--muted);line-height:1.5;}
.ct-exp-text strong{color:var(--text);}
.mo-entry-date{display:block;font-size:.65rem;color:var(--muted);font-weight:400;margin-top:2px;}
@media(max-width:600px){.ct-exp-grid{grid-template-columns:1fr;}}

/* ── HOW-TO GUIDE CARDS ── */
.how-to-card{padding:14px 16px;}
.how-to-hd{display:flex;justify-content:space-between;align-items:center;cursor:pointer;}
.how-to-body{display:none;}
.how-to-item{display:flex;align-items:flex-start;gap:10px;}
.how-to-icon{font-size:1.2rem;flex-shrink:0;margin-top:2px;}
.how-to-title{font-size:.8rem;font-weight:700;color:var(--text);margin-bottom:3px;}
.how-to-text{font-size:.73rem;color:var(--muted);line-height:1.5;}
@media(max-width:600px){.how-to-body{grid-template-columns:1fr!important;}}

/* ── CONFETTI ANIMATION ── */
@keyframes confetti-fall{
  0%{transform:translateY(-100vh) rotate(0deg);opacity:1;}
  100%{transform:translateY(100vh) rotate(360deg);opacity:0;}
}

/* ══════════════════════════════════════════════════════════════
   BILLS — forecast & insights redesign
   ══════════════════════════════════════════════════════════════ */
.bl-page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:4px;}
.bl-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}

.review-btn{position:relative;display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:var(--radius-pill);border:1.5px solid rgba(245,158,11,.4);background:rgba(245,158,11,.08);color:var(--warn-ink);font-size:.78rem;font-weight:600;cursor:pointer;white-space:nowrap;min-height:36px;}
.review-btn:hover{background:rgba(245,158,11,.15);}
.notif-dot{position:absolute;top:-4px;right:-4px;width:16px;height:16px;border-radius:50%;background:var(--warn);border:2.5px solid var(--card);font-size:.6rem;font-weight:700;color:#000;display:flex;align-items:center;justify-content:center;}
.notif-pulse{animation:bl-pulse 2s infinite;}
@keyframes bl-pulse{0%,100%{box-shadow:0 0 0 0 rgba(245,158,11,.5)}50%{box-shadow:0 0 0 6px rgba(245,158,11,0)}}

.kpi-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px;}
.kpi-row.kpi-row--3{grid-template-columns:repeat(3,1fr);}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;}
.kpi-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:4px;}
.kpi-value{font-size:1.15rem;font-weight:700;}
.kpi-sub{font-size:.66rem;color:var(--muted);margin-top:2px;}
@media(max-width:600px){.kpi-row{grid-template-columns:1fr;}}

.chart-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px 16px 12px;margin-bottom:12px;}
.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:6px;}
.chart-legend{display:flex;gap:14px;margin-top:9px;flex-wrap:wrap;}
.legend-item{display:flex;align-items:center;gap:5px;font-size:.64rem;color:var(--muted);}
.legend-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}

.graph-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;}
.tile{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;}
.tile-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px;}
@media(max-width:700px){.graph-tiles{grid-template-columns:1fr;}}

.yoy-deltas{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;}
.yoy-chip{flex:1 1 60px;background:var(--card2);border-radius:6px;padding:5px 7px;}
.yoy-chip-lbl{font-size:.58rem;color:var(--muted);}
.yoy-chip-val{font-family:var(--font-mono);font-size:.66rem;font-weight:600;}

.filters{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center;}
.filters.filters--flush{margin:0;}
.filter-group{display:flex;gap:4px;flex-wrap:wrap;}
.filter-btn{padding:7px 12px;border-radius:99px;border:1.5px solid var(--border);background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;cursor:pointer;white-space:nowrap;min-height:32px;}
.filter-btn.active{background:var(--primary);border-color:var(--primary);color:var(--primary-text);}
.filter-sep{width:1px;background:var(--border);align-self:stretch;margin:0 4px;}

.btype-bill{background:rgba(0,200,150,.15);color:var(--success-ink);}
.btype-sub{background:rgba(129,140,248,.15);color:var(--purple-ink);}
.btype-dd{background:rgba(98,120,160,.2);color:var(--muted);}
.b-annual{background:var(--purple-bg);color:var(--purple-ink);}
.b-soon{background:var(--warn-bg);color:var(--warn-ink);}

.btype-btn{border:none;border-radius:99px;font-size:.66rem;font-weight:700;cursor:pointer;padding:4px 9px;display:inline-flex;align-items:center;gap:4px;position:relative;min-height:24px;}
.btype-btn::after{content:'▾';font-size:.55rem;opacity:.7;}
.type-dropdown{display:none;position:absolute;top:calc(100% + 4px);left:0;z-index:100;background:var(--card2);border:1px solid var(--border);border-radius:9px;padding:4px;min-width:140px;box-shadow:0 8px 24px rgba(0,0,0,.5);}
.type-dropdown.open{display:block;}
.type-option{display:block;width:100%;text-align:left;background:transparent;border:none;padding:8px 10px;border-radius:6px;font-size:.76rem;font-weight:600;cursor:pointer;color:var(--text);min-height:32px;}
.type-option:hover{background:var(--card3);}

tr.row-pending{background:transparent;}

.annual-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);}
.annual-item:last-child{border-bottom:none;}
.buffer-bar{height:5px;background:var(--card3);border-radius:99px;overflow:hidden;margin-top:4px;}
.buffer-fill{height:100%;background:var(--purple);border-radius:99px;}

.modal-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:6px;}
.modal-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;}
.modal-close{background:transparent;border:none;color:var(--muted);font-size:1.3rem;cursor:pointer;line-height:1;padding:2px 6px;min-height:32px;min-width:32px;}
.modal-sub{font-size:.76rem;color:var(--muted);margin-bottom:18px;}

.review-row{display:flex;align-items:center;gap:12px;padding:13px;background:var(--card2);border-radius:var(--radius-sm);margin-bottom:8px;flex-wrap:wrap;}
.review-row:last-child{margin-bottom:0;}
.review-icon{width:34px;height:34px;border-radius:8px;background:var(--card3);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;}
.review-main{flex:1;min-width:180px;}
.review-name{font-weight:600;font-size:.84rem;}
.review-meta{font-size:.7rem;color:var(--muted);margin-top:2px;}
.review-actions{display:flex;gap:6px;flex-shrink:0;}
.btn-danger-ghost{background:transparent;border:1.5px solid rgba(239,68,68,.3);color:var(--danger-ink);font-size:.76rem;font-weight:600;padding:8px 13px;border-radius:7px;min-height:36px;cursor:pointer;}

.dismiss-confirm{display:none;gap:5px;flex-direction:column;align-items:flex-end;}
.review-kind{display:inline-flex;align-items:center;gap:4px;font-size:.64rem;font-weight:700;padding:1px 7px;border-radius:99px;margin-bottom:4px;}
.review-kind-new{background:rgba(0,200,150,.12);color:var(--success-ink);}
.review-kind-price{background:rgba(245,158,11,.12);color:var(--warn-ink);}

.bill-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);}
.bill-row:last-child{border-bottom:none;}
.bill-main{flex:1;min-width:0;}

/* Recurring-payments table — row actions + hover (edit/delete) */
#bl-table-body tr{transition:background .12s;}
#bl-table-body tr:hover{background:var(--card2);}
.bl-row-actions{display:inline-flex;gap:6px;align-items:center;}
.bl-icon-btn{width:40px;height:40px;border-radius:8px;border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.95rem;transition:background .15s,color .15s,border-color .15s;}
.bl-icon-btn:hover{background:var(--card3);color:var(--text);}
.bl-icon-btn.danger:hover{background:rgba(239,68,68,.12);color:var(--danger-ink);border-color:rgba(239,68,68,.35);}

/* Bill Category Flow — full-width tile */
.bl-flow-tile #bl-sankey{min-height:140px;}

/* Edit-bill delete confirmation bar */
.modal-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:10px;padding:12px 14px;margin-top:18px;}

/* ══════════════════════════════════════════════════════════
   BILLS — tabs, table, calendar, drawer, subscriptions, a11y
   ══════════════════════════════════════════════════════════ */
/* Theme-aware contrast lift for small secondary labels (WCAG). Falls back to
   plain --muted where color-mix is unsupported. */
.bl-muted{color:var(--muted);}
@supports (color:color-mix(in srgb,#000,#fff)){ .bl-muted{color:color-mix(in srgb,var(--muted) 55%,var(--text));} }

/* Header icon action (bell) */
.bl-icon-action{width:44px;height:44px;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;transition:background .15s,color .15s;}
.bl-icon-action:hover{background:var(--card2);color:var(--text);}

/* Sub-tabs */
.bl-tabs{display:flex;gap:4px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px;margin-bottom:16px;overflow-x:auto;}
.bl-tab{flex:1;min-height:44px;white-space:nowrap;border:none;background:transparent;color:var(--muted);font-family:var(--font-body);font-size:.82rem;font-weight:600;cursor:pointer;border-radius:var(--radius-pill);padding:0 14px;transition:background .15s,color .15s;}
.bl-tab:hover{color:var(--text);}
.bl-tab.active{background:var(--primary);color:var(--primary-text,#fff);}

/* KPI row — 4 columns on wide */
.kpi-row-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:900px){.kpi-row-4{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.kpi-row-4{grid-template-columns:1fr;}}
.kpi-cta{margin-top:6px;font-size:.66rem;font-weight:700;color:var(--primary-ink);background:none;border:none;padding:0;cursor:pointer;display:inline-flex;align-items:center;gap:3px;}
.kpi-cta:hover{text-decoration:underline;}

/* Forecast-horizon caption */
.filter-caption{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);align-self:center;margin-right:2px;}

/* Chart period dropdowns (month / year) */
.bl-period-select{width:auto;flex:0 0 auto;min-width:118px;max-width:160px;background:var(--card2);border:1.5px solid var(--border);border-radius:var(--radius-pill);color:var(--text);font-size:.75rem;font-weight:600;font-family:var(--font-body);padding:0 12px;min-height:44px;cursor:pointer;outline:none;}
.bl-period-select:focus{border-color:var(--primary);}
.bl-period-select.on{border-color:var(--primary);color:var(--primary-ink);}

/* Trends section — period-scoped charts grouped under one heading */
.bl-trends-hd{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;}
.bl-trends-hd .filters{flex-wrap:wrap;margin:0;}
#bl-trends .chart-card,#bl-trends .tile{background:var(--card2);}
.bl-trend-card{margin-bottom:12px;}
.bl-trend-card:last-child{margin-bottom:0;}
.bl-clear-period{color:var(--primary-ink);border-color:rgba(240,83,138,.4);}

/* Paid-by legend under the bills table */
.bl-paidby-legend{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 18px;border-top:1px solid var(--border);font-size:.7rem;color:var(--muted);}
.bl-paidby-legend:empty{display:none;}

/* Calendar — selected day */
.bl-cal-cell.selected{outline:2px solid var(--primary);outline-offset:-1px;background:var(--card3);}

/* Mobile — bills table collapses into stacked cards */
@media(max-width:600px){
  .bl-table thead{display:none;}
  .bl-table,.bl-table tbody{display:block;width:100%;}
  .bl-table tr{display:block;border:1px solid var(--border);border-radius:12px;margin:10px 8px;background:var(--card);}
  #bl-table-body tr:hover{background:var(--card);}
  .bl-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 14px;text-align:right;border:none;}
  .bl-table td[data-label]::before{content:attr(data-label);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);text-align:left;flex:0 0 auto;}
  .bl-table td.bl-td-first{display:block;padding:12px 14px 8px;border-left:none;}
  .bl-table td.bl-td-first::before{display:none;}
  .bl-table td.bl-th-actions{justify-content:flex-end;}
  .bl-table td.bl-th-actions::before{display:none;}
  .bl-table tr.bl-row-pending{border-color:var(--warn);}
}

/* Card header row (title + action) */
.bl-card-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;}

/* Bills table (classes replace inline styles) */
.bl-table-hd{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 12px;flex-wrap:wrap;gap:10px;}
.bl-search-input{background:var(--card2);border:1.5px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-size:.8rem;font-family:var(--font-body);width:170px;min-height:40px;outline:none;}
.bl-search-input:focus{border-color:var(--primary);}
.bl-table{width:100%;border-collapse:collapse;font-size:.8rem;}
.bl-table thead tr{border-bottom:1.5px solid var(--border);}
.bl-th{padding:9px 12px;text-align:left;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);white-space:nowrap;}
.bl-th:first-child{padding-left:18px;}
.bl-th-right{text-align:right;}
.bl-th-center{text-align:center;}
.bl-th-actions{padding-right:18px;}
.bl-td{padding:12px;vertical-align:middle;}
.bl-td-first{padding:12px 12px 12px 18px;}
.bl-pagination{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-top:1px solid var(--border);flex-wrap:wrap;gap:10px;}
.bl-page-btn{min-width:40px;height:40px;border-radius:8px;border:1.5px solid var(--border);background:transparent;color:var(--muted);cursor:pointer;font-family:var(--font-body);font-weight:600;}
.bl-page-btn.active{border-color:var(--primary);background:var(--primary);color:var(--primary-text,#fff);}
.bl-page-btn:disabled{opacity:.4;cursor:default;}
.bl-biller-cell{display:flex;align-items:center;gap:10px;}
.bl-biller-ico{width:32px;height:32px;border-radius:8px;background:var(--card2);display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0;}
.bl-clickable{cursor:pointer;}

/* Paid-by avatar chip */
.bl-paidby{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 5px;border-radius:99px;font-size:.6rem;font-weight:700;background:var(--card3);color:var(--muted);margin-left:6px;vertical-align:middle;}
.bl-paidby.p1{background:rgba(240,83,138,.18);color:var(--pink-light,#F56CA0);}
.bl-paidby.p2{background:rgba(129,140,248,.18);color:var(--purple-ink);}
.bl-paidby.joint{background:rgba(0,200,150,.16);color:var(--success-ink);}

/* Due-soon banner + timeline soon badge */
.bl-duesoon{display:flex;align-items:flex-start;gap:10px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.28);border-radius:12px;padding:12px 14px;margin-bottom:14px;}
.bl-duesoon .ti{color:var(--warn-ink);font-size:1.05rem;margin-top:1px;}
.bl-duesoon-x{margin-left:auto;background:none;border:none;color:var(--muted);cursor:pointer;font-size:1rem;min-height:32px;min-width:32px;}

/* Dismissed billers manager */
.bl-dismissed-bar{margin-top:2px;}
.bl-dismissed-inner{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;}
.bl-chip{display:inline-flex;align-items:center;gap:6px;background:var(--card2);border:1px solid var(--border);border-radius:99px;padding:5px 6px 5px 11px;font-size:.74rem;color:var(--text);margin:4px 6px 0 0;}
.bl-chip button{width:24px;height:24px;border-radius:99px;border:none;background:var(--card3);color:var(--muted);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;}
.bl-chip button:hover{background:var(--primary);color:var(--primary-text);}

/* Calendar */
.bl-cal-nav{display:flex;align-items:center;gap:8px;}
.bl-cal-weekdays,.bl-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.bl-cal-weekdays{margin-bottom:6px;}
.bl-cal-wd{text-align:center;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);}
.bl-cal-cell{min-height:64px;border:1px solid var(--border);border-radius:10px;padding:6px;background:var(--card2);display:flex;flex-direction:column;gap:3px;cursor:default;}
.bl-cal-cell.empty{background:transparent;border-color:transparent;}
.bl-cal-cell.has-bills{cursor:pointer;border-color:rgba(240,83,138,.35);}
.bl-cal-cell.has-bills:hover{background:var(--card3);}
.bl-cal-cell.today{outline:2px solid var(--primary);outline-offset:-1px;}
.bl-cal-daynum{font-size:.72rem;font-weight:600;color:var(--muted);}
.bl-cal-cell.today .bl-cal-daynum{color:var(--primary-ink);}
.bl-cal-dot{display:flex;flex-wrap:wrap;gap:3px;}
.bl-cal-dot span{width:6px;height:6px;border-radius:99px;background:var(--primary);}
.bl-cal-amt{font-family:var(--font-mono);font-size:.6rem;font-weight:600;color:var(--text);margin-top:auto;}
@media(max-width:620px){.bl-cal-cell{min-height:48px;}.bl-cal-amt{display:none;}}

/* Bill detail drawer (slides from right) */
.bl-drawer-overlay{justify-content:flex-end;padding:0;}
.bl-drawer{background:var(--card);width:min(440px,100%);height:100%;max-height:100%;border-radius:0;padding:22px;overflow-y:auto;box-shadow:-16px 0 40px rgba(0,0,0,.4);transform:translateX(20px);transition:transform .2s ease;}
.modal-overlay.open .bl-drawer{transform:translateX(0);}
.bl-spark{display:block;width:100%;height:52px;}
.bl-detail-stat{background:var(--card2);border-radius:10px;padding:10px 12px;}
.bl-detail-stat .l{font-size:.62rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:700;}
.bl-detail-stat .v{font-family:var(--font-mono);font-weight:700;font-size:1rem;margin-top:2px;}
.bl-txrow{display:flex;justify-content:space-between;align-items:center;padding:9px 0;border-bottom:1px solid var(--border);font-size:.78rem;}
.bl-txrow:last-child{border-bottom:none;}
/* Bills page (was inline) */
.card.bl-trends{padding:16px 16px 18px;}
.bl-muted.bl-trends-note{font-size:.68rem;margin:2px 0 14px;}
.bl-chart-sub{font-size:.66rem;color:var(--muted);}
.bl-cash-chart-box{height:170px;}
.bl-yoy-chart-box{height:260px;}
.tile.bl-flow-tile{margin-bottom:12px;}
.bl-flow-tile .tile-hd{margin-bottom:8px;}
.tile.bl-yoy-card{margin-bottom:0;}
.bl-yoy-card .tile-hd{margin-bottom:10px;}
.bl-trend-card .tile-label{margin-bottom:0;}
.card.bl-table-card{padding:0;overflow:hidden;margin-bottom:14px;}
.section-label.bl-table-title{margin:0 0 2px;}
.bl-table-meta{font-size:.7rem;color:var(--muted);}
.bl-table-tools{display:flex;gap:8px;align-items:center;}
.bl-table-scroll{overflow-x:auto;}
.section-label.bl-cal-title{margin:0;min-width:150px;text-align:center;}
.card.bl-empty-card{text-align:center;padding:40px 22px;}
.bl-empty-ico{font-size:2rem;margin-bottom:10px;color:var(--muted);}
.bl-empty-title{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin-bottom:6px;}
.bl-muted.bl-empty-text{font-size:.82rem;max-width:440px;margin:0 auto 18px;line-height:1.5;}
.bl-kpi-unit{font-size:.68rem;font-weight:400;}
.bl-leg-regular{background:var(--card3);}
.bl-leg-annual{background:var(--purple);}
.bl-leg-heavy{background:var(--warn);}
.bl-sankey-back{font-size:.7rem;color:var(--primary-ink);cursor:pointer;margin-bottom:8px;font-weight:600;}
.bl-sankey-hint{font-size:.6rem;color:var(--muted);margin-top:10px;}
.bl-sankey-link{cursor:pointer;}
.bl-sankey-svg{width:100%;height:auto;display:block;}
.bl-match{display:inline-flex;flex-direction:column;align-items:center;gap:3px;}
.bl-match-track{width:48px;height:5px;background:var(--card3);border-radius:99px;overflow:hidden;}
.bl-match-fill{height:100%;background:var(--warn);border-radius:99px;}
.bl-match-pct{font-size:.62rem;color:var(--warn-ink);font-weight:600;}
.bl-muted.bl-match-manual{font-size:.68rem;}
.bl-muted.bl-match-auto{font-size:.9rem;}
.btn.bl-review-cta{white-space:nowrap;font-size:.68rem;padding:7px 11px;}
.bl-price-pill{font-size:.68rem;color:var(--warn-ink);font-weight:600;background:rgba(245,158,11,.1);padding:7px 8px;border-radius:99px;white-space:nowrap;cursor:pointer;}
.bl-td-first.bl-td-first--pending{border-left:3px solid var(--warn);}
.bl-biller-name{font-weight:600;}
.bl-muted.bl-freq{font-size:.68rem;}
.bl-td.bl-td--type{position:relative;}
.bl-muted.bl-subcat{font-size:.7rem;margin-top:3px;}
.bl-td.bl-td--account{font-size:.76rem;}
.bl-td.bl-td--amt{text-align:right;font-weight:600;}
.bl-td.bl-td--due{font-size:.76rem;}
.bl-td.bl-td--match{text-align:center;}
.bl-muted.bl-pag-info{font-size:.72rem;}
.bl-pag-btns{display:flex;gap:6px;flex-wrap:wrap;}
.bl-muted.bl-legend-lbl{font-weight:700;letter-spacing:.04em;}
.dismiss-default{display:flex;gap:5px;}
.bl-dismiss-q{font-size:.7rem;color:var(--danger-ink);font-weight:600;white-space:nowrap;}
.bl-btn-row{display:flex;gap:5px;}
.bl-btn-row--8{gap:8px;}
.badge.bl-badge-price{background:var(--warn-bg);color:var(--warn-ink);cursor:pointer;}
.bl-annual-main{flex:1;}
.bl-annual-name{font-weight:600;font-size:.84rem;}
.bl-annual-sub{font-size:.7rem;color:var(--muted);}
.buffer-bar.bl-annual-bar{width:160px;margin-top:5px;}
.bl-annual-amt{font-size:.86rem;font-weight:600;margin-left:12px;}
.badge.bl-badge-gap{margin-left:5px;}
.badge.bl-badge-gap-sm{margin-left:3px;}
.modal-title.bl-detail-title{display:flex;align-items:center;gap:10px;}
.bl-detail-badges{margin-bottom:14px;}
.bl-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px;}
.bl-detail-stat .v.v--md{font-size:.86rem;}
.bl-detail-stat .v.v--sm{font-size:.82rem;}
.section-label.bl-detail-sl{margin-bottom:6px;}
.section-label.bl-detail-sl--gap{margin:16px 0 6px;}
.bl-muted.bl-detail-note{font-size:.68rem;margin:4px 0 14px;}
.bl-occ-row{display:flex;gap:8px;align-items:center;margin-bottom:16px;}
.bl-search-input.bl-occ-input{flex:1;width:auto;}
.bl-txrow-amt{font-weight:600;}
.modal-actions.bl-detail-actions{margin-top:18px;}
.bl-detail-del{margin-right:auto;}
.bl-cal-daypanel{margin-top:16px;padding-top:14px;border-top:1px solid var(--border);}
.section-label.bl-daypanel-sl{margin-bottom:10px;}
.bl-dayrow-main{display:flex;align-items:center;gap:9px;}
.bl-sub-main{flex:1;min-width:0;}
.bl-muted.bl-sub-meta{font-size:.72rem;}
.bl-subs-list{margin-top:4px;}
.bl-duesoon-main{flex:1;}
.bl-duesoon-title{font-weight:600;font-size:.86rem;}
.bl-muted.bl-dismissed-hd{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;}
.bl-del-q{font-size:.78rem;color:var(--danger-ink);font-weight:600;}
.bl-del-note{font-size:.68rem;color:var(--muted);margin-top:2px;}
.bl-review-foot{margin-top:18px;padding-top:14px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;}
.bl-setting-title{font-weight:600;font-size:.86rem;}
.bl-setting-desc{font-size:.72rem;color:var(--muted);}
.form-grid.bl-remind-days{margin-top:6px;}
.bl-remind-status{font-size:.72rem;color:var(--muted);margin-top:4px;}

/* Subscriptions audit */
.bl-sub-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.bl-sub-flag{font-size:.64rem;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap;}
.bl-flag-creep{background:rgba(239,68,68,.14);color:var(--danger-ink);}
.bl-flag-dormant{background:rgba(245,158,11,.14);color:var(--warn-ink);}
.bl-flag-ok{background:rgba(0,200,150,.14);color:var(--success-ink);}

/* Toggle switch */
.bl-switch{position:relative;display:inline-block;width:46px;height:26px;flex-shrink:0;}
.bl-switch input{opacity:0;width:0;height:0;}
.bl-switch-slider{position:absolute;inset:0;background:var(--card3);border-radius:99px;transition:.2s;cursor:pointer;}
.bl-switch-slider::before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;}
.bl-switch input:checked + .bl-switch-slider{background:var(--primary);}
.bl-switch input:checked + .bl-switch-slider::before{transform:translateX(20px);}
.bl-setting-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--border);}

/* A11y — lift touch targets to spec (44px) on primary controls */
.filters .filter-btn{min-height:44px;}
.type-option{min-height:44px;}
/* Bill-type badge reads as an interactive control (chevron always shown + hover) */
.btype-btn{min-height:32px;padding:6px 11px;transition:box-shadow .15s,filter .15s;}
.btype-btn:hover{filter:brightness(1.12);box-shadow:0 0 0 1.5px var(--border);}
.btype-btn::after{opacity:.85;margin-left:1px;}
.confetti{position:fixed;pointer-events:none;font-size:2rem;animation:confetti-fall 3s ease-in forwards;}
