/* Money in Lifestyle — Trips/Desk dark chrome family */
:root {
  --paper:#ffffff; --desk:#f3f1ec; --ink:#2c2620; --ink-soft:#5c564e; --muted:#8a847a;
  --date-red:#c45c4a; --gold:#e6c36a; --green:#00ba7c; --amber:#f5a524; --red:#f4212e;
  --sans:"Nunito",system-ui,-apple-system,sans-serif; --tap:48px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--desk);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.45;-webkit-text-size-adjust:100%}
body{min-height:100vh;background:#0b0c0e;padding-bottom:calc(64px + env(safe-area-inset-bottom,0px))}
.desk{max-width:720px;margin:0 auto;padding:28px 14px 72px}
.store-back{margin:0 0 10px 8px;font-size:.92rem}
.store-back a{color:var(--ink-soft);font-weight:800;text-decoration:none;border-bottom:2px solid var(--gold)}
.notebook{position:relative;background:#121416;border-radius:12px;padding:36px 22px 28px 36px;box-shadow:inset 0 0 0 1px #2f3336;overflow:hidden;color:#e7e9ea}
.binding{position:absolute;left:0;top:0;bottom:0;width:18px;background:repeating-linear-gradient(180deg,#1a1d21 0 12px,#121416 12px 16px,#2f3336 16px 17px)}
.washi{display:none!important}
.brand{display:flex;align-items:center;gap:14px;min-width:0}
.brand-sticker{width:96px;height:64px;object-fit:contain;flex-shrink:0;background:#16181c;border:1.5px solid #2f3336;border-radius:14px}
.spread-header{display:grid;grid-template-columns:1fr auto;gap:16px 20px;align-items:start;padding:8px 8px 4px 10px;border-bottom:2px solid #2f3336}
.eyebrow{margin:0;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#8b929a;font-weight:700}
h1{margin:0;font-size:clamp(2.4rem,7vw,3.4rem);font-weight:800;line-height:.95;letter-spacing:-.03em;color:#e7e9ea}
.place{margin:4px 0 0;font-size:1.05rem;color:#8b929a}
.date-block{text-align:center;min-width:110px;padding:6px 10px 10px;border:1.5px solid #2f3336;background:#16181c}
.date-block .dow,.date-block .moy{display:block;font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:#8b929a}
.date-block .dom{display:block;font-size:3.2rem;line-height:1;color:#e7e9ea;font-weight:700}
.zone-line,.page-hint,.colophon{margin:10px 8px 0;font-size:.86rem;color:#8b929a}
.page-hint{margin:12px 8px 8px;font-size:.88rem;color:#b8bec6}
.colophon{margin-top:22px;padding:12px 12px 0;border-top:1px dashed #2f3336}
.life-auth{margin:12px 8px 0}
.build-chip{font-weight:800;color:#b8bec6}
.panel-title{margin:8px 8px 0;font-size:1.45rem;font-weight:800;letter-spacing:-.02em}
[hidden]{display:none!important}

.coach-strip{position:sticky;top:0;z-index:5;margin:14px 0 10px;padding:14px 16px;background:#16181c;border:1px solid #2f3336;border-left:4px solid #e84d3d;border-radius:10px;color:#e7e9ea;font-weight:700;font-size:1.02rem;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.progress-strip{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:0 0 14px;padding:12px 14px;background:#16181c;border:1px solid #2f3336;border-radius:10px;color:#b8bec6;font-size:.92rem;font-weight:700}
.progress-strip strong{color:#e7e9ea;font-size:1.15rem}
.progress-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;background:#1c1f24;border:1px solid #2f3336}

.task-list,.budget-cats,.balances-list{display:grid;gap:14px;margin:0 0 8px}
.task-card,.budget-card,.balance-card,.nw-card{background:#16181c;border:1px solid #2f3336;border-radius:14px;padding:16px 16px 14px;color:#e7e9ea}
.task-card.is-done{opacity:.72}
.task-card-head,.budget-card-top,.balance-card-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.task-card h3,.budget-card h3,.balance-card h3{margin:0;font-size:1.2rem;font-weight:800;line-height:1.2;letter-spacing:-.02em}
.task-impact{flex-shrink:0;font-weight:800;font-size:.95rem;color:#8fd4a4;padding:4px 10px;border-radius:999px;background:#15231c;border:1px solid #1e3a2a}
.task-why{margin:10px 0 0;color:#b8bec6;font-size:.95rem}
.status-row,.cta-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.status-btn{min-height:40px;padding:0 12px;border:1px solid #2f3336;border-radius:999px;background:#121416;color:#8b929a;font:inherit;font-weight:800;font-size:.82rem;cursor:pointer;touch-action:manipulation;text-transform:lowercase}
.status-btn.is-on{color:#e7e9ea}
.status-btn[data-status="in_progress"].is-on{background:#152238;color:#1d9bf0;border-color:#1d9bf0}
.status-btn[data-status="done"].is-on{background:#15231c;color:#00ba7c;border-color:#00ba7c}
.status-btn[data-status="parked"].is-on{background:#2a2418;color:#f5a524;border-color:#f5a524}
.cta-btn{min-height:var(--tap);padding:0 16px;border:0;border-radius:999px;font:inherit;font-weight:800;cursor:pointer;touch-action:manipulation;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff7ea;color:#2c2620;box-shadow:2px 3px 0 #e84d3d}
.cta-btn img{width:22px;height:22px}
.cta-btn svg.lucide, .cta-btn .lucide-ico{
  width:20px;height:20px;stroke:currentColor;stroke-width:1.75;flex-shrink:0;
}
.cta-btn:not(.cta-btn-ghost):not(.is-placeholder) svg.lucide{stroke:#2c2620}
.cta-btn-ghost{background:#121416;color:#e7e9ea;box-shadow:none;border:1px solid #2f3336}
.cta-btn.is-placeholder{opacity:.85;border:1px dashed #f5a524;box-shadow:none;background:#2a2418;color:#f5a524}
.coach-details{margin-top:12px;border-top:1px dashed #2f3336;padding-top:8px}
.coach-details summary{cursor:pointer;font-weight:800;color:#1d9bf0;min-height:40px;display:flex;align-items:center;gap:8px;list-style:none}
.coach-details summary::-webkit-details-marker{display:none}
.coach-details p{margin:8px 0 0;color:#b8bec6;font-size:.92rem}
.toast{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:90;padding:12px 18px;border-radius:999px;background:#00ba7c;color:#04140e;font-weight:800;box-shadow:0 8px 24px rgba(0,0,0,.4)}

.budget-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start;margin:0 8px}
.budget-title{margin:4px 0 0;font-size:1.6rem;font-weight:800;letter-spacing:-.02em}
.pace-chips,.budget-drill{display:flex;flex-wrap:wrap;gap:8px;margin:10px 8px}
.pace-chip,.drill-chip{min-height:40px;padding:0 12px;border-radius:999px;border:1px solid #2f3336;background:#121416;color:#b8bec6;font:inherit;font-weight:800;font-size:.82rem;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.drill-chip{padding:6px 10px}
.drill-chip.is-on{border-color:#1d9bf0;color:#e7e9ea;background:#152238}
.pace-dot,.track-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:#8b929a;display:inline-block}
.pace-chip.is-green .pace-dot,.track-dot.is-green{background:var(--green)}
.pace-chip.is-red .pace-dot,.track-dot.is-red{background:var(--red)}
.pace-chip.is-amber .pace-dot,.track-dot.is-amber{background:var(--amber)}
.pace-chip.is-tbd .pace-dot,.track-dot.is-tbd{background:#8b929a}
.pace-chip.is-green{border-color:#1e3a2a;color:#8fd4a4}
.pace-chip.is-red{border-color:#3a1a1e;color:#ff8a92}
.pace-chip.is-amber{border-color:#3a3018;color:#f5c56a}
.pace-chip img,.status-ico{width:22px;height:22px}
.budget-card h3{display:flex;align-items:center;gap:8px}
.budget-card h3 img{width:28px;height:28px}
.budget-remain{font-weight:800;font-size:.95rem;color:#8fd4a4}
.budget-remain.is-over{color:#ff8a92}
.budget-fields{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-top:12px}
.budget-fields label{display:flex;flex-direction:column;gap:4px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#8b929a;font-weight:800}
.budget-fields input{width:100%;min-height:44px;padding:8px 10px;border:1px solid #2f3336;border-radius:10px;background:#0b0c0e;color:#e7e9ea;font:inherit;font-weight:700;font-size:1.05rem}
.budget-fields input:focus{outline:2px solid #1d9bf0;outline-offset:1px}
.budget-fields .ro{min-height:44px;display:flex;align-items:center;padding:8px 10px;border-radius:10px;background:#121416;border:1px solid #2f3336;color:#e7e9ea;font-weight:800;font-size:1.05rem}
.budget-note,.budget-pace-line{margin:8px 0 0;font-size:.85rem;color:#8b929a}
.budget-pace-line{color:#b8bec6;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center}
.tbd-tag{display:inline-block;padding:2px 8px;border-radius:999px;background:#2a2418;color:#f5a524;font-size:.72rem;font-weight:800;letter-spacing:.06em}

.balance-amt{font-weight:800;font-size:1.15rem;color:#e7e9ea}
.balance-amt.is-tbd{color:#f5a524}
.balance-meta{margin:6px 0 0;font-size:.85rem;color:#8b929a}
.nw-card{margin-top:8px}
.nw-card h3{margin:0 0 8px;font-size:1.15rem}
.nw-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.nw-grid div{background:#121416;border:1px solid #2f3336;border-radius:10px;padding:10px}
.nw-grid span{display:block;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#8b929a;font-weight:800}
.nw-grid strong{display:block;margin-top:4px;font-size:1.05rem}

/* Trips-matched bottom rail — icon only */
.money-bottom-rail{
  position:fixed;left:0;right:0;bottom:0;z-index:80;
  display:flex;justify-content:space-around;align-items:stretch;
  min-height:calc(56px + env(safe-area-inset-bottom,0px));
  padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));
  background:rgba(0,0,0,.92);border-top:1px solid rgba(255,255,255,.12);
  backdrop-filter:blur(10px);
}
.rail-btn{
  flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  border:0;background:transparent;color:rgba(255,255,255,.55);
  cursor:pointer;padding:6px 8px;border-radius:12px;min-height:44px;
}
.rail-btn.is-on{color:#fff;background:rgba(255,255,255,.06)}
.rail-btn .rail-ico, .rail-btn svg.lucide{
  width:26px;height:26px;stroke:currentColor;stroke-width:1.75;opacity:.55;
}
.rail-btn.is-on .rail-ico, .rail-btn.is-on svg.lucide{opacity:1}

/* intrinsic: field grids wrap from their own minimum, no viewport cutoffs */
.budget-fields,.nw-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}


/* Lucide stroke icons — dark Lifestyle cream/white */
svg.lucide, i[data-lucide] {
  display: inline-block;
  width: 22px; height: 22px;
  stroke: #e7e9ea;
  stroke-width: 1.75;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
  vertical-align: middle;
  flex-shrink: 0;
}
.drill-chip svg.lucide { width: 22px; height: 22px; stroke: currentColor; }
.pace-chip svg.lucide, .status-ico.svg.lucide, img.status-ico + svg,
.pace-chip .lucide, .budget-card h3 svg.lucide {
  width: 20px; height: 20px; stroke: currentColor;
}
.pace-chip.is-green svg.lucide { stroke: #00ba7c; }
.pace-chip.is-red svg.lucide { stroke: #f4212e; }
.pace-chip.is-amber svg.lucide { stroke: #f5a524; }
.pace-chip.is-tbd svg.lucide { stroke: #8b929a; }
.budget-card h3 svg.lucide { stroke: #e7e9ea; width: 24px; height: 24px; }
.coach-details summary svg.lucide { stroke: #1d9bf0; width: 20px; height: 20px; }
.status-btn .lucide { width: 14px; height: 14px; margin-right: 4px; stroke: currentColor; }


/* Balance green/red — assets vs liabilities */
.balance-card.is-asset { border-color: #1e3a2a; }
.balance-card.is-liability { border-color: #3a1a1e; }
.balance-card.is-asset .bal-tone-ico,
.balance-amt.is-asset,
.nw-cell.is-asset strong.is-asset { color: #00ba7c; stroke: #00ba7c; }
.balance-card.is-liability .bal-tone-ico,
.balance-amt.is-liability,
.nw-cell.is-liability strong.is-liability { color: #f4212e; stroke: #f4212e; }
.balance-amt.is-tbd { color: #f5a524 !important; }
.balance-card h3 { display: flex; align-items: center; gap: 8px; }
.balance-card h3 .bal-tone-ico,
.nw-cell span .bal-tone-ico { width: 18px; height: 18px; flex-shrink: 0; }
.nw-cell.is-asset { border-color: #1e3a2a; }
.nw-cell.is-liability { border-color: #3a1a1e; }
.nw-cell span { display: flex; align-items: center; gap: 6px; }
.nw-cell.is-asset .bal-tone-ico { stroke: #00ba7c; }
.nw-cell.is-liability .bal-tone-ico { stroke: #f4212e; }

/* ---- Every-dollar plan (zb) ---- */
.zb-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:10px}
.zb-left{text-align:right;display:flex;flex-direction:column}
.zb-left-n{font-size:1.7rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.zb-left-n.is-zero{color:var(--green)}.zb-left-n.is-pos{color:var(--amber)}.zb-left-n.is-neg{color:var(--red)}
.zb-left-l{font-size:.78rem;color:var(--muted)}
.zb-card{background:#16181c;border:1px solid #2f3336;border-radius:14px;padding:12px 14px;margin:0 0 12px}
.zb-card:empty{display:none}
.zb-row{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:30px;font-variant-numeric:tabular-nums}
.zb-row-h{font-weight:800;font-size:1.02rem;min-height:36px}
.zb-row-h > span:first-child{display:inline-flex;align-items:center;gap:8px}
.zb-row svg.lucide{width:18px;height:18px;opacity:.85}
.zb-row em,.zb-big em{font-style:normal;font-weight:600;font-size:.78rem;color:var(--muted)}
.zb-muted{color:var(--muted);font-size:.85rem}
.zb-empty{margin:6px 0 0}
.zb-pos{color:var(--green)}.zb-neg{color:var(--red)}
.zb-trio{display:grid;grid-template-columns:repeat(3,4.6em);text-align:right;gap:4px;font-size:.92rem}
.zb-legend{min-height:18px;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}
.zb-legend .zb-trio{font-size:.68rem}
.zb-item{padding:4px 0 6px;border-top:1px solid #23262a}
.zb-bar{height:6px;border-radius:99px;background:#23262a;overflow:hidden;margin:2px 0 6px}
.zb-bar span{display:block;height:100%;background:var(--green);border-radius:inherit;transition:width .5s cubic-bezier(.2,.8,.2,1)}
.zb-bar.is-hot span{background:var(--red)}
.zb-flags .zb-flag{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid #23262a;font-size:.92rem}
.zb-flag svg.lucide{width:16px;height:16px;flex:none}
.zb-flag.sev-warn svg.lucide,.zb-flag.sev-high svg.lucide{color:var(--amber)}
.zb-flag span{flex:1}
.zb-x{background:none;border:0;color:var(--muted);min-width:36px;min-height:36px;cursor:pointer}
.zb-big{display:flex;flex-direction:column;align-items:flex-start;padding:8px 0}
.zb-big span{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.zb-big b{font-size:1.6rem;color:#fff;font-variant-numeric:tabular-nums}
.zb-h3{font-size:1rem;margin:16px 0 8px}
.zb-txrow{border-bottom:1px solid #23262a}
.zb-txbtn{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;width:100%;gap:10px;padding:10px 2px;min-height:var(--tap);cursor:pointer}
.zb-txm,.zb-txr{display:flex;flex-direction:column;min-width:0}
.zb-txm em{font-style:normal;color:var(--muted);font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zb-txr{align-items:flex-end;font-variant-numeric:tabular-nums}
.zb-chip{font-size:.72rem;padding:2px 8px;border-radius:99px;background:#23262a;color:var(--ink-soft);margin-top:2px}
.zb-picker{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 12px}
.zb-pick{border:1px solid #2f3336;background:#121416;color:var(--ink);border-radius:99px;padding:0 12px;min-height:36px;font:inherit;font-size:.85rem;font-weight:700;cursor:pointer}
.zb-pick.is-on{background:var(--green);color:#06140e;border-color:var(--green)}
@media (prefers-reduced-motion:reduce){.zb-bar span{transition:none}}
.zb-insights{display:flex;flex-direction:column;gap:8px;margin:0 0 12px}
.zb-insights:empty{display:none}
.zb-ins{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:#16181c;border:1px solid #2f3336;border-left:3px solid var(--sky,#1d9bf0);font-size:.92rem;transition:opacity .25s,transform .25s}
.zb-card .zb-ins{margin:6px 0;padding:8px 10px;background:#121416}
.zb-ins.sev-warn{border-left-color:var(--amber)}.zb-ins.sev-good{border-left-color:var(--green)}
.zb-ins svg.lucide{width:16px;height:16px;flex:none;opacity:.9}
.zb-ins span{flex:1}
.zb-ins.is-gone{opacity:0;transform:translateX(12px)}
.zb-got{border:1px solid #2f3336;background:none;color:var(--ink);border-radius:99px;min-height:34px;padding:0 12px;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer;flex:none}
.zb-recgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-bottom:12px}
.zb-rec{background:#16181c;border:1px solid #2f3336;border-radius:14px;padding:10px 12px}
.zb-rec.st-killed{opacity:.55}.zb-rec.st-killed b{text-decoration:line-through}
.zb-rec.st-kill{border-color:var(--red)}.zb-rec.st-review{border-color:var(--amber)}
.zb-seg{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:8px}
.zb-segb{min-height:36px;border:1px solid #2f3336;background:#121416;color:var(--ink-soft);border-radius:10px;font:inherit;font-size:.8rem;font-weight:800;cursor:pointer}
.zb-segb.is-on[data-st=keep]{background:var(--green);color:#06140e;border-color:var(--green)}
.zb-segb.is-on[data-st=review]{background:var(--amber);color:#1a1200;border-color:var(--amber)}
.zb-segb.is-on[data-st=kill],.zb-segb.is-on[data-st=killed]{background:var(--red);color:#fff;border-color:var(--red)}

/* ── Plan tab v2 (Remmy-approved layout, Kevin Powell flow) ── */
:root{--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--line:#23262a;--mute2:#8b929a}
.flow>*+*{margin-top:var(--flow-space,var(--s5))}
#panel-plan{--flow-space:var(--s6);max-width:640px;margin-inline:auto}
#panel-plan .zb-sec{--flow-space:var(--s2)}
#panel-plan .zb-sec>*+*{margin-top:var(--s2)}
body .spread-header .brand,body .date-block,body .coach-strip,body .progress-strip,body .colophon,body .washi,body .binding,body .zone-line{display:none}
body .spread-header{position:absolute;top:var(--s5);right:var(--s5);margin:0;padding:0;border:0}
body .store-back{margin:0;min-height:32px;display:flex;align-items:center;font-size:.88rem}
body .notebook{padding:var(--s5);max-width:none;background:none;box-shadow:none}
body .desk{padding:0 0 96px}
body .notebook{border-radius:0;box-shadow:none;background:#0b0c0e;padding:clamp(var(--s5),3vw,var(--s7)) max(var(--gutter,clamp(16px,5vw,32px)),env(safe-area-inset-left,0px)) clamp(var(--s5),4vw,var(--s7))}
#panel-plan .zb-hero{padding-block:var(--s7) 0}
#panel-plan .zb-hero .eyebrow{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute2);margin:0}
#panel-plan .zb-left{display:block;text-align:left;margin-block:var(--s2) 0}
#panel-plan .zb-left-n{display:block;font-size:clamp(3rem,12vw,4.5rem);line-height:1;font-weight:800;letter-spacing:-.03em}
#panel-plan .zb-left-n.is-pos{color:var(--amber)}#panel-plan .zb-left-n.is-zero{color:var(--green)}#panel-plan .zb-left-n.is-neg{color:var(--red)}
#panel-plan .zb-left-l{display:block;font-size:1rem;color:var(--mute2);margin-top:var(--s2)}
#panel-plan #zb-summary{margin-top:var(--s5)}
#panel-plan #zb-summary .zb-bar{margin:0}
.zb-meta{display:flex;justify-content:space-between;gap:var(--s2);flex-wrap:wrap;font-size:.88rem;color:var(--mute2);margin-top:var(--s2);font-variant-numeric:tabular-nums}
.zb-status:empty,.zb-insights:empty{display:none}
.zb-status{font-size:.88rem;color:var(--mute2)}
#panel-plan .zb-insights{margin-bottom:0;display:block}
.zb-nudge{all:unset;box-sizing:border-box;display:flex;gap:var(--s3);align-items:baseline;font-size:.95rem;color:#b8bec6;cursor:pointer;width:100%}
.zb-nudge em{font-style:normal;color:var(--mute2);font-size:.88rem}
.zb-dot{color:var(--sky,#1d9bf0);flex:none;font-size:.8em}
.sev-warn .zb-dot,.sev-high .zb-dot{color:var(--amber)}.sev-good .zb-dot{color:var(--green)}
.zb-label{font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mute2);margin:0}
.zb-g{border-bottom:1px solid var(--line)}
.zb-g summary{list-style:none;display:flex;justify-content:space-between;align-items:baseline;gap:var(--s3);padding-block:var(--s3);cursor:pointer;min-height:44px}
.zb-g summary::-webkit-details-marker{display:none}
.zb-gl{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--s2)}
.zb-gl em,.zb-item em{font-style:normal;font-weight:400;color:var(--mute2);font-size:.88rem}
.zb-amt{font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.zb-items{padding-bottom:var(--s3)}
.zb-items .zb-item{border-top:0;padding:var(--s1) 0}
.zb-items .zb-row{min-height:0;font-size:.95rem}
.zb-items .zb-row span{min-width:0}
.zb-more{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;gap:var(--s3);width:100%;padding-block:var(--s4);color:var(--mute2);border-bottom:1px solid var(--line);cursor:pointer}
.zb-more:focus-visible,.zb-nudge:focus-visible,.zb-g summary:focus-visible{outline:2px solid var(--sky,#1d9bf0);outline-offset:2px}
.zb-sheet{border:0;padding:var(--s5);margin:auto auto 0;width:100%;max-width:640px;max-height:88vh;border-radius:16px 16px 0 0;background:#121416;color:var(--ink,#e7e9ea);overflow:auto}
.zb-sheet::backdrop{background:rgba(0,0,0,.6)}
.zb-sheet-top{display:flex;justify-content:space-between;align-items:center}
.zb-close{background:none;border:0;color:var(--mute2);min-width:44px;min-height:44px;font-size:1.1rem;cursor:pointer}
#zb-sheet-body{--flow-space:var(--s2);margin-top:var(--s4)}
#zb-sheet-body .zb-ins{background:none;border:0;padding:var(--s2) 0;border-bottom:1px solid var(--line);border-radius:0;align-items:baseline}
.zb-hero-sm .eyebrow{margin:0}.zb-mid{display:block;font-size:2.25rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.zb-recsum{padding-top:var(--s3)}
.zb-sheet .zb-recgrid{grid-template-columns:1fr}

/* Plan v2 review fixes (Remmy) */
:root{--space-32:32px;--tabbar-h:calc(56px + 12px)}
#panel-plan .zb-sec>.zb-label{margin-block:var(--space-32) var(--s3)}
#panel-plan .zb-sec>.zb-label+*{margin-top:0}
.zb-nudge .zb-moreln{color:var(--mute2);font-size:.88rem;white-space:nowrap;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line)}
body .desk{padding-bottom:calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom,0px))}
body .store-back a{color:var(--mute2);font-weight:400;border:0;text-decoration:none}
.user-badge.is-initials{font-size:.8rem;font-weight:800;letter-spacing:.02em;color:var(--ink,#e7e9ea);background:#1c1f24}

/* ── Money v3: Plan v2 standard on every tab (tokens.css) ── */
.coach-strip,.progress-strip,.spread-header .brand,.date-block,.colophon,.binding,.washi,.zone-line,.panel-title,.page-hint{display:none!important}
.money-panel{max-width:var(--measure,640px);margin-inline:auto}
.m-panel{--flow-space:var(--space-6)}
.m-panel>.m-hero{padding-block:var(--space-7) 0}
.m-hero .eyebrow{margin:0}
.m-hero-n{font-size:var(--step-4);font-weight:800;letter-spacing:-.03em;line-height:1;margin-top:var(--space-2);font-variant-numeric:tabular-nums;color:var(--ink)}
.m-split{display:flex;gap:var(--space-6);margin-top:var(--space-4)}
.m-split div{display:flex;flex-direction:column}
.m-split .meta{font-size:var(--step--1);color:var(--ink-3)}
.is-ok{color:var(--ok)}.is-bad{color:var(--bad)}
.m-label{font-size:var(--step--1);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin:0 0 var(--space-3)}
.m-sec>.m-label+*{margin-top:0}
.m-groups{--flow-space:var(--space-6)}
.m-row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-block:var(--space-3);border-bottom:1px solid var(--line);min-height:var(--tap,44px);font-variant-numeric:tabular-nums}
.m-rowbtn{all:unset;box-sizing:border-box;display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);width:100%;padding-block:var(--space-3);border-bottom:1px solid var(--line);min-height:var(--tap,44px);cursor:pointer;color:var(--ink)}
.m-rowbtn:focus-visible,.status-pill:focus-visible,.m-more:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.m-row-l{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-2)}
.m-row-l em,.task-row-l em{font-style:normal;font-weight:400;font-size:var(--step--1);color:var(--ink-3)}
.m-amt{white-space:nowrap;text-align:right;font-weight:700}
.m-collapse>summary{list-style:none;cursor:pointer}
.m-collapse>summary::-webkit-details-marker{display:none}
.m-more{color:var(--ink-3)}.m-more b{font-weight:400}
.m-collapse[open]>summary.m-more b{opacity:.6}
.m-citi:empty{display:none}
.m-citi .zb-row{padding-block:var(--space-3);border-bottom:1px solid var(--line);min-height:0}
.m-citi .zb-muted{margin:var(--space-3) 0 0;font-size:var(--step--1)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none;align-self:center;margin-right:var(--space-1)}
.dot.is-green,.is-green>.m-row .dot,.trend-status.is-green .dot{background:var(--ok)}
.dot.is-amber,.is-amber>.m-row .dot,.trend-status.is-amber .dot{background:var(--warn)}
.dot.is-red,.is-red>.m-row .dot,.trend-status.is-red .dot{background:var(--bad)}
.trend-status{display:flex;align-items:center;gap:var(--space-2);font-size:var(--step-1);font-weight:700;margin:var(--space-2) 0 0}
.m-hero-sm{padding-block:var(--space-6) 0!important}
.m-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-1);padding:var(--space-1);border-radius:99px;background:#16181c;margin:0}
.m-seg .drill-chip{all:unset;box-sizing:border-box;text-align:center;min-height:40px;line-height:40px;border-radius:99px;font-weight:700;font-size:var(--step--1);color:var(--ink-3);cursor:pointer}
.m-seg .drill-chip.is-on{background:#2a2e34;color:var(--ink)}
.trend-row{border-bottom:1px solid var(--line);padding-bottom:var(--space-3)}
.trend-row .m-row{border:0;padding-bottom:var(--space-2);min-height:0}
.trend-row .zb-bar{margin:0;height:4px}
.task-hero .eyebrow{margin:0 0 var(--space-3)}
.task-card{background:none;border:0;border-radius:0;padding:0;color:var(--ink)}
.task-card.is-hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-5)}
.task-card.is-hero .task-card-head h3{font-size:var(--step-1);margin:0}
.task-card .task-why{color:var(--ink-2);margin:var(--space-2) 0 0}
.task-card .status-row{margin-top:var(--space-4);display:flex}
.task-card .cta-row{margin-top:var(--space-4);display:flex;flex-wrap:wrap;gap:var(--space-2)}
.task-inline{padding-bottom:var(--space-4)}
.task-row{border-bottom:1px solid var(--line)}
.task-row>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-block:var(--space-3);min-height:var(--tap,44px);cursor:pointer}
.task-row>summary::-webkit-details-marker{display:none}
.task-row-l{min-width:0;display:flex;flex-direction:column}
.task-row.is-done .task-row-l b{text-decoration:line-through;color:var(--ink-3)}
.task-inline .status-row{display:none}
.status-pill{all:unset;box-sizing:border-box;flex:none;min-height:32px;padding:0 var(--space-3);border-radius:99px;border:1px solid var(--line);font-size:var(--step--1);font-weight:700;color:var(--ink-2);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2)}
.status-pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.status-pill.st-in_progress::before{background:var(--warn)}.status-pill.st-done::before{background:var(--ok)}.status-pill.st-parked::before{background:transparent;border:1px solid var(--ink-3)}
.status-pill.st-todo::before{background:var(--accent)}
#panel-tasks .zb-recgrid{display:block}
#panel-tasks .zb-rec{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:var(--space-3) 0}
#panel-tasks .zb-recsum{padding-top:var(--space-3)}
.m-budget-rows .budget-card{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:var(--space-3) 0}
.m-budget-rows .budget-card-top{display:flex;align-items:center;gap:var(--space-2)}
.m-budget-rows .budget-card-top h3{flex:1;margin:0;font-size:var(--step-0)}
.m-budget-rows .budget-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2);margin-top:var(--space-2)}
.m-budget-rows .budget-fields input,.m-budget-rows .budget-fields .ro{width:100%;min-width:0}
.m-budget-rows .budget-pace-line,.m-budget-rows .budget-note{font-size:var(--step--1);color:var(--ink-3);margin:var(--space-2) 0 0}
.m-field{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--step--1);color:var(--ink-3)}
.m-field input{min-height:var(--tap,44px);font:inherit;font-size:var(--step-1);background:#16181c;border:1px solid var(--line);border-radius:12px;color:var(--ink);padding:0 var(--space-3)}
.m-btn{min-height:var(--tap,44px);border:0;border-radius:99px;background:var(--ink);color:#0b0c0e;font:inherit;font-weight:800;cursor:pointer}
#task-list>.task-hero{padding-top:var(--space-7)}
.task-card .cta-btn{background:none;border:1px solid var(--line);box-shadow:none;color:var(--ink);min-height:var(--tap,44px);border-radius:99px;padding:0 var(--space-4);font-weight:700;font-size:var(--step--1);display:inline-flex;align-items:center;gap:var(--space-2);text-decoration:none}
.task-card .cta-row>.cta-btn:first-child{background:var(--ink);color:#0b0c0e;border-color:var(--ink)}
.task-card .cta-btn svg{width:16px;height:16px}
.task-impact{background:none!important;border:0!important;padding:0!important;color:var(--ink-2)!important;font-weight:700;white-space:nowrap}
.coach-details{border-top:0!important;margin-top:var(--space-3)!important;padding-top:0!important}
.coach-details summary{color:var(--ink-3)!important;font-size:var(--step--1);font-weight:700}
/* v4 (Remmy) */
.task-card.is-hero>*+*{margin-top:var(--space-5)!important}
.task-card.is-hero .task-why{margin-top:var(--space-2)!important}
.task-card.is-hero .cta-primary{display:flex}
.task-card.is-hero .cta-primary .cta-btn{background:var(--ink);color:#0b0c0e;border-color:var(--ink)}
.more-opts>summary{list-style:none;cursor:pointer;color:var(--ink-3);font-size:var(--step--1);font-weight:700;min-height:var(--tap,44px);display:inline-flex;align-items:center;gap:var(--space-2)}
.more-opts>summary::-webkit-details-marker{display:none}
.more-opts>summary::after{content:"›";transition:transform .2s}
.more-opts[open]>summary::after{transform:rotate(90deg)}
.more-opts-body{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}
.more-opts-body .cta-btn,.more-opts-body>.cta-btn:first-child{background:none!important;color:var(--ink)!important;border:1px solid var(--line)!important}
.more-opts-tip{color:var(--ink-2);font-size:var(--step--1);margin:var(--space-4) 0 0}
.trend-row .dot{display:none}
.trend-row.is-amber .dot,.trend-row.is-red .dot{display:inline-block}
.trend-row .m-row-l{column-gap:var(--space-2)}
.trend-row .zb-bar{height:4px!important}
.trend-row .zb-bar span{background:var(--ink-3)}
.trend-row.is-amber .zb-bar span{background:var(--warn)}
.trend-row.is-red .zb-bar span{background:var(--bad)}
.trend-row .m-amt{font-size:var(--step-0);font-weight:800;color:var(--ink)}
.trend-row .m-amt.is-bad{color:var(--bad)}

/* ---- Plan layout v9 (intrinsic, Kevin Powell style): no viewport breakpoints.
   Column count falls out of content minimums via nested flex-wrap:
   .zb-grid  = [insight 16rem] + [.zb-body 60rem]   -> insight wraps on top when < ~78.5rem (rem = 17px here)
   .zb-body  = [cards 34rem]   + [spending 18rem]   -> spending wraps under cards when < ~54rem
   Only the insight's look (one line vs small-type column) uses a container query on the panel. */
body:has(#panel-plan:not([hidden])) .desk{max-width:min(100%,1440px)}
body .notebook{overflow:clip}
#panel-plan{max-width:none;container:plan/inline-size;padding-inline:env(safe-area-inset-left,0px) env(safe-area-inset-right,0px)}
.zb-grid,.zb-body{display:flex;flex-wrap:wrap;align-items:flex-start;gap:clamp(var(--space-5),3vw,var(--space-7))}
.zb-grid>.zb-insights{flex:1 1 16rem;min-width:0}
.zb-body{flex:3.2 1 60rem;min-width:min(100%,60rem);display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side" "else";align-items:start}
.zb-main{grid-area:main;min-width:0}
.zb-else{grid-area:else;min-width:0}
.zb-side{grid-area:side;min-width:0;--flow-space:var(--space-4)}
.zb-grid>.zb-insights{position:sticky;top:calc(56px + env(safe-area-inset-top,0px) + var(--space-5));max-height:calc(100dvh - 56px - 2 * var(--space-5) - var(--tabbar-h,64px) - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.zb-main>.zb-status:empty+*{margin-block-start:0}
.zb-side .zb-label{margin:0}
.zb-sublabel{font-size:var(--step--1);font-weight:var(--w-bold);color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;margin:var(--space-5) 0 0}
.zb-sidegroups,.zb-recent{display:grid;gap:var(--space-4)}
.zb-sg .zb-row,.zb-recent .zb-row{font-size:clamp(.88rem,.85rem + .15vw,.95rem)}
.zb-cap .zb-muted{margin:var(--space-2) 0 0}
.zb-rt{display:flex;flex-direction:column;min-width:0}.zb-rt em{font-style:normal;color:var(--ink-3);font-size:var(--step--1)}
.zb-left-n{font-size:clamp(2.75rem,2rem + 3vw,4.5rem)}
/* insight: one line by default (phone / above the cards) */
#panel-plan .zb-nudge>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
/* insight sitting in its own column (panel wide enough for 16 + 60rem + gap): small type, no box, wraps */
@container plan (min-width:78.5rem){
  #panel-plan .zb-nudge{font-size:var(--step--1);line-height:var(--lh-body);background:none;border:0;padding:0}
  #panel-plan .zb-nudge>span:last-child{white-space:normal}
}
@container plan (max-width:78.49rem){.zb-grid>.zb-insights{position:static;max-height:none;flex-basis:100%}}

/* ---- v10 (Remmy): shared top bar spans the wrapper; grid starts below it.
   Body: cards | spending sit side by side once the panel fits 34rem + 18rem + gap (~55rem @17px rem);
   below that one column capped at 44rem: Plan cards → Spending → Elsewhere. */
body .spread-header,body .store-back{display:none}
#panel-plan header.appbar{margin-bottom:0}
@container plan (min-width:55rem){
  .zb-body{grid-template-columns:minmax(0,2.2fr) minmax(18rem,1fr);grid-template-areas:"main side" "else side";grid-template-rows:auto 1fr}
  .zb-side{grid-row:1 / span 2;position:sticky;top:calc(56px + env(safe-area-inset-top,0px) + var(--space-5));max-height:calc(100dvh - 56px - 2 * var(--space-5) - var(--tabbar-h,64px) - env(safe-area-inset-bottom,0px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
}
@container plan (max-width:54.99rem){
  .zb-grid{max-inline-size:min(100%,44rem);margin-inline:auto}
}
/* bottom tabs: bar stays full-bleed, tab group caps ~480px centered (intrinsic padding, no breakpoint) */
.money-bottom-rail{padding-inline:max(12px,(100% - 480px) / 2)}
body:has(#panel-plan:not([hidden])){--wrapper-max:1440px}

/* kill requests (v11) */
.zb-trykill{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;min-height:var(--tap,44px);margin-top:var(--space-2);color:var(--warn,#f5a524);font-weight:700;font-size:.92rem;cursor:pointer}
.zb-trykill:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px;border-radius:8px}
.zb-killing{margin:var(--space-2) 0 0;font-size:.92rem}.zb-killing-l,.zb-amber{color:var(--warn,#f5a524);font-weight:700}
.zb-rec.st-killing{box-shadow:inset 3px 0 0 var(--warn,#f5a524)}
.zb-killnote{margin:var(--space-2) 0 0;font-size:var(--step--1);color:var(--ink-3,#8b929a);overflow-wrap:anywhere}.zb-killnote a{color:inherit}

/* Money › Trips rows (Remmy trip-row.md) */
.zb-trips{max-inline-size:44rem}
.tr-list{border-top:1px solid color-mix(in oklab,currentColor 10%,transparent);container-type:inline-size}
.tr-row{display:grid;grid-template-columns:clamp(3.5rem,14cqi,5rem) minmax(0,1fr) auto;gap:1rem;align-items:center;padding-block:1rem;border-bottom:1px solid color-mix(in oklab,currentColor 10%,transparent);color:inherit;text-decoration:none}
.tr-thumb{aspect-ratio:1;inline-size:100%;border-radius:.75rem;object-fit:cover;display:block}
.tr-fallback{display:grid;place-items:center;font-weight:800;font-size:1.4rem;color:rgba(0,0,0,.4)}
.tr-text{min-width:0}
.tr-title{display:flex;align-items:baseline;gap:.4rem;font-weight:700;min-width:0}
.tr-title span{min-width:0}
.tr-title img{inline-size:1.1rem;block-size:1.1rem;border-radius:.3rem;flex:none;align-self:center}
.tr-meta{font-size:.875rem;margin-top:.15rem}
.tr-meta>*:not(.tr-amt):not(.tr-over),.tr-meta{color:inherit}
.tr-dim{opacity:.6}
.tr-muted{font-style:italic}
.tr-amt{font-weight:800;font-variant-numeric:tabular-nums;opacity:1}
.tr-over,.tr-text .tr-over{color:#ff5a4f}
.tr-bar{block-size:4px;border-radius:2px;background:color-mix(in oklab,currentColor 14%,transparent);margin-top:.5rem;overflow:hidden}
.tr-bar i{display:block;block-size:100%;background:#1fc77e}
.tr-bar.is-over i{background:#ff5a4f}
.tr-see{justify-self:end;font-size:.875rem;font-weight:700;padding:.5rem .75rem;border-radius:999px;border:1px solid color-mix(in oklab,currentColor 25%,transparent);white-space:nowrap;min-block-size:44px;display:inline-flex;align-items:center}
.tr-row:hover .tr-see,.tr-row:focus-visible .tr-see{background:color-mix(in oklab,currentColor 8%,transparent)}
@container (max-width:26rem){.tr-row{grid-template-columns:3.5rem minmax(0,1fr)}.tr-see{grid-column:2;justify-self:start}}

/* Money v16 › Accounts (Remmy checklist) — one panel as-of, tags are the only color, quiet refresh, no layout jumps */
.m-acct-panel{--acct-warn:var(--warn,#f5a524);--acct-bad:var(--bad,#f4212e);--acct-icon:1.1em}
/* row 1: label + Refresh share one centre line; row 2: as-of */
.m-acct-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:var(--space-3,.75rem)}
.m-acct-head .m-label{margin:0}
.m-acct-head .m-acct-asof{grid-column:1 / -1;margin-block-start:calc(var(--space-1,.25rem) * -1)}
.m-acct-btn{margin-inline-end:calc(var(--space-2,.5rem) * -1)}
.m-acct-asof,.m-acct-when,.m-acct-msg{margin:0;font-size:var(--step--1,.8125rem);color:var(--ink-3,#8b929a);font-variant-numeric:tabular-nums}
.m-acct-btn{all:unset;box-sizing:border-box;flex:none;display:inline-flex;align-items:center;gap:var(--space-2,.5rem);min-block-size:var(--tap,44px);padding-inline:var(--space-2,.5rem);border-radius:8px;color:var(--ink-2,#b8bec6);font-size:var(--step--1,.8125rem);font-weight:700;cursor:pointer}
.m-acct-btn svg,.m-acct-spin{inline-size:var(--acct-icon);block-size:var(--acct-icon);flex:none}
.m-acct-btn:hover:not(:disabled){color:var(--ink,#e7e9ea)}
.m-acct-btn:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px}
.m-acct-btn:disabled{cursor:default;opacity:.7}
.m-acct-spin{box-sizing:border-box;border-radius:50%;border:2px solid currentColor;border-block-start-color:transparent;animation:m-acct-spin .8s linear infinite}
@keyframes m-acct-spin{to{rotate:1turn}}
@keyframes m-acct-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.m-acct-spin{animation:m-acct-pulse 2s ease-in-out infinite}}
.m-acct-msg{min-block-size:1.45em;margin-block-start:var(--space-1,.25rem)} /* reserved: status/sync text never shifts rows */
.m-acct-empty{margin:var(--space-3,.75rem) 0 0;color:var(--ink-3,#8b929a)}
.m-acct-list{list-style:none;margin:var(--space-2,.5rem) 0 0;padding:0}
.m-acct{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:var(--space-4,1rem);padding-block:var(--space-3,.75rem);border-block-end:1px solid var(--line,#23262a);min-block-size:var(--tap,44px)}
.m-acct-l{min-width:0;display:flex;flex-wrap:wrap;column-gap:var(--space-2,.5rem);align-items:baseline}
.m-acct-l b{overflow-wrap:anywhere;color:var(--ink,#e7e9ea)}
.m-acct-l span{font-size:var(--step--1,.8125rem);color:var(--ink-3,#8b929a)}
.m-acct-bal{justify-self:end;text-align:end;font-variant-numeric:tabular-nums;font-weight:800;color:var(--ink,#e7e9ea)}
.m-acct-when{grid-column:1 / -1;margin-block-start:var(--space-1,.25rem)}
.m-tag{margin-inline-start:var(--space-1,.25rem);font-size:.75rem;font-weight:800;letter-spacing:.02em;white-space:nowrap;cursor:help}
.m-tag[data-level=stale]{color:var(--acct-warn)}
.m-tag[data-level=old]{color:var(--acct-bad)}
/* v18 groups: ASSETS (Cash, Investments) / LIABILITIES, small-caps like ACCOUNTS; dot on the group head only; subtotal right, tabular */
.m-acct-grp{margin-block-start:var(--space-6,2rem)}
.m-acct-msg+.m-acct-grp{margin-block-start:var(--space-2,.5rem)}
.m-acct-sub{display:flex;align-items:center;gap:var(--space-2,.5rem);margin:0;padding-block-end:var(--space-2,.5rem);border-block-end:1px solid var(--line,#23262a);font-size:var(--step--1,.8125rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2,#b8bec6)}
.m-acct-sub::before{content:"";flex:none;inline-size:.45rem;block-size:.45rem;border-radius:50%;background:var(--ok,#00ba7c)}
.m-acct-grp[data-side=liabilities] .m-acct-sub::before{background:var(--bad,#f4212e)}
.m-acct-subtot{margin-inline-start:auto;letter-spacing:0;font-size:var(--step-0,1rem);font-weight:800;font-variant-numeric:tabular-nums;color:var(--ink,#e7e9ea)}
.m-acct-sub2{margin:var(--space-4,1rem) 0 0;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3,#8b929a)}
.m-acct-grp .m-acct-list{margin-block-start:var(--space-1,.25rem)}
.m-acct-list>li:last-child>.m-acct,.m-acct-list>.m-acct:last-child{border-block-end:0}
.m-acct-edit{font:inherit;color:inherit;background:none;border:0;border-block-end:1px solid var(--line,#23262a);border-radius:0;inline-size:100%;padding-inline:0;text-align:start;cursor:pointer}
.m-acct-edit:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px;border-radius:6px}
.m-acct-t{cursor:help}
/* payoff power line: closing line, left-aligned with the list, tabular; green/red dot = covered/short */
.m-acct-payoff{display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:baseline;column-gap:var(--space-3,.75rem);row-gap:var(--space-1,.25rem);margin:var(--space-5,1.5rem) 0 0;padding-block-start:var(--space-3,.75rem);border-block-start:1px solid var(--line,#23262a);font-size:var(--step--1,.8125rem);color:var(--ink-3,#8b929a);text-align:start;font-variant-numeric:tabular-nums}
.m-acct-payoff b{color:var(--ink,#e7e9ea);font-weight:700}
.m-acct-payoff-r{display:inline-flex;align-items:center;gap:var(--space-2,.5rem)}
.m-acct-payoff-r::before{content:"";flex:none;inline-size:.45rem;block-size:.45rem;border-radius:50%;background:var(--ok,#00ba7c)}
.m-acct-payoff[data-covered=no] .m-acct-payoff-r::before{background:var(--bad,#f4212e)}
/* cash vs short-term debt bar (Graham's deliberate color exception): thin, rounded, full width, exact flex-grow split (no rounding gaps) */
.m-acct-bar{display:flex;block-size:.5625rem;margin-block-start:var(--space-4,1rem);border-radius:999px;overflow:hidden;background:var(--line,#23262a)}
.m-acct-bar i{flex-basis:0;min-inline-size:0}
.m-acct-bar i:first-child{flex-grow:var(--cash);background:var(--ok,#00ba7c)}
.m-acct-bar i:last-child{flex-grow:var(--debt);background:var(--bad,#f4212e)}
.m-acct-bar+.m-acct-sub2{margin-block-start:var(--space-3,.75rem)}
/* v22 Plan: month switcher + Planned/Spent toggle + edit sheet — quiet, token-based */
.zb-ctl{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3,.75rem);margin-block-end:var(--space-4,1rem)}
.zb-mswitch{display:inline-flex;align-items:center;gap:var(--space-1,.25rem)}
.zb-mlabel{min-inline-size:5.5rem;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;color:var(--ink,#e7e9ea)}
.zb-mbtn{all:unset;box-sizing:border-box;display:inline-grid;place-items:center;inline-size:var(--tap,44px);block-size:var(--tap,44px);border-radius:50%;font-size:1.75rem;line-height:1;color:var(--ink-2,#b8bec6);cursor:pointer}
.zb-mbtn:hover:not(:disabled){color:var(--ink,#e7e9ea);background:color-mix(in oklab,currentColor 8%,transparent)}
.zb-mbtn:disabled{opacity:.3;cursor:default}
.zb-seg2{display:inline-flex;padding:2px;border-radius:999px;border:1px solid var(--line,#23262a)}
.zb-seg2b{all:unset;box-sizing:border-box;min-block-size:36px;padding-inline:var(--space-4,1rem);display:inline-flex;align-items:center;border-radius:999px;font-size:var(--step--1,.8125rem);font-weight:700;color:var(--ink-3,#8b929a);cursor:pointer}
.zb-seg2b[aria-pressed=true]{background:var(--surface,#121416);color:var(--ink,#e7e9ea);box-shadow:inset 0 0 0 1px var(--line,#23262a)}
.zb-mbtn:focus-visible,.zb-seg2b:focus-visible,.zb-editln:focus-visible,.zb-applyb:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px}
.zb-editln{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;min-block-size:36px;padding-inline:var(--space-1,.25rem);font-size:var(--step--1,.8125rem);font-weight:700;color:var(--ink-3,#8b929a);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line,#23262a)}
.zb-editln:hover{color:var(--ink,#e7e9ea)}
.zb-edit{max-inline-size:min(100% - 2rem,26rem)}
.zb-apply{display:grid;gap:var(--space-2,.5rem)}
.zb-applyb{all:unset;box-sizing:border-box;min-block-size:var(--tap,44px);padding-inline:var(--space-4,1rem);display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--line,#23262a);font-weight:700;color:var(--ink,#e7e9ea);cursor:pointer;text-align:center}
.zb-applyb.is-main{background:var(--surface,#121416)}
.zb-edit-foot{display:flex;justify-content:space-between;gap:var(--space-3,.75rem)}
#panel-plan .zb-left-l.zb-nospend{font-size:var(--step-2,1.5rem);font-weight:700;color:var(--ink-2,#b8bec6);margin-top:0}
#panel-plan .zb-taxset{margin:var(--space-2,.5rem) 0 0;font-size:var(--step--1,.8125rem);font-variant-numeric:tabular-nums}
/* v25 transactions + recategorize + Needs a look — quiet chips, grouped picker, tablet tap targets */
.zb-txline{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3,.75rem);padding-block:var(--space-3,.75rem)}
.zb-txr{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-1,.25rem);font-variant-numeric:tabular-nums}
button.zb-chip{font:inherit;font-size:var(--step--1,.8125rem);font-weight:700;color:var(--ink-2,#b8bec6);background:none;border:1px solid var(--line,#23262a);border-radius:999px;min-block-size:36px;padding-inline:var(--space-3,.75rem);cursor:pointer}
button.zb-chip:hover{color:var(--ink,#e7e9ea)}
.zb-catb{all:unset;cursor:pointer;color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line,#23262a);min-block-size:36px;display:inline-flex;align-items:center}
.zb-pickg{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2,.5rem);padding-block:var(--space-2,.5rem)}
.zb-pickl{inline-size:100%;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3,#8b929a)}
.zb-sugg{display:flex;align-items:center;gap:var(--space-2,.5rem);padding-block-end:var(--space-3,.75rem)}
.zb-sugg em{font-style:normal;font-size:var(--step--1,.8125rem);color:var(--ink-3,#8b929a)}
.zb-suggb{font:inherit;font-size:var(--step--1,.8125rem);font-weight:700;color:var(--ink,#e7e9ea);background:var(--surface,#121416);border:1px solid var(--line,#23262a);border-radius:999px;min-block-size:36px;padding-inline:var(--space-3,.75rem);cursor:pointer}
.zb-apply-cat{padding-block-end:var(--space-3,.75rem)}
.zb-chip:focus-visible,.zb-catb:focus-visible,.zb-suggb:focus-visible,.zb-pick:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px}
/* v26 Remmy v25 notes */
#panel-plan .zb-body.is-planned{grid-template-areas:"main" "else"}
@container plan (min-width:54rem){#panel-plan .zb-body.is-planned{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}}
#panel-plan .zb-hero.is-bare>#zb-left,#panel-plan .zb-hero.is-bare>#zb-summary{display:none}
#panel-plan .zb-hero.is-bare .zb-ctl{margin-block-end:0}
.zb-ctl{margin-block-end:var(--space-3,.75rem)}
.zb-mbtn{inline-size:44px;block-size:44px}
.zb-mlabel{display:grid;justify-items:center;line-height:1.2}
.zb-mlabel b{font-size:var(--step-1,1.125rem)}
.zb-mlabel small{font-size:var(--step--1,.8125rem);font-weight:600;color:var(--ink-3,#8b929a)}
.zb-sechead{display:flex;justify-content:space-between;align-items:center}
.zb-textln{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;min-block-size:44px;padding-inline:var(--space-2,.5rem);font-size:var(--step--1,.8125rem);font-weight:700;color:var(--ink-3,#8b929a);cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--line,#23262a)}
.zb-textln:hover,.zb-textln[aria-pressed=true]{color:var(--ink,#e7e9ea)}
.zb-textln:focus-visible,.zb-sg>summary:focus-visible{outline:2px solid var(--accent,#1d9bf0);outline-offset:2px}
/* inline two-option row: one segmented control, first option focused, cancel = quiet text link */
.zb-apply-cat{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2,.5rem);padding-block-end:var(--space-3,.75rem)}
.zb-apply2{max-inline-size:100%}
/* v27: two equal options, nothing preselected, wrap so the merchant shows in full */
.zb-apply2{display:flex;flex-wrap:wrap;gap:var(--space-2,.5rem);padding:0;border:0;border-radius:0}
.zb-apply2 .zb-seg2b{min-block-size:44px;padding-block:var(--space-2,.5rem);border:1px solid var(--line,#23262a);border-radius:999px;color:var(--ink,#e7e9ea);white-space:normal;overflow-wrap:anywhere;text-align:center;background:none;box-shadow:none}
.zb-apply2 .zb-seg2b:hover{background:color-mix(in oklab,currentColor 6%,transparent)}
.zb-edit .zb-apply2{display:flex}
.zb-edit .zb-apply2 .zb-seg2b{flex:1 1 0;justify-content:center;text-align:center}
.zb-sugg{padding-block-start:0}
/* spending bars: groups expand to categories (tap a category for its transactions) */
.zb-sg>summary{list-style:none;cursor:pointer}
.zb-sg>summary::-webkit-details-marker{display:none}
.zb-sgi{padding-inline-start:var(--space-3,.75rem);border-inline-start:1px solid var(--line,#23262a);margin-block:var(--space-2,.5rem)}
.zb-sgi .zb-row{min-block-size:44px;align-items:center}
/* toast */
.zb-toast{position:fixed;inset-inline:0;inset-block-end:calc(var(--tabbar-h,64px) + env(safe-area-inset-bottom,0px) + var(--space-4,1rem));margin-inline:auto;inline-size:max-content;max-inline-size:calc(100% - 2rem);padding:var(--space-3,.75rem) var(--space-4,1rem);border-radius:999px;background:var(--ink,#e7e9ea);color:#121416;font-weight:700;font-size:var(--step--1,.8125rem);opacity:0;translate:0 8px;pointer-events:none;transition:opacity .2s,translate .2s;z-index:50}
.zb-toast.is-on{opacity:1;translate:0 0}
dialog .zb-toast{position:fixed}
@media (prefers-reduced-motion:reduce){.zb-toast{transition:none}}
/* sheets: bottom sheet on phones, centered dialog from 800px */
@media (min-width:800px){
  .zb-sheet{margin:auto;max-width:min(560px,100% - 2rem);max-height:80vh;border-radius:16px;overflow:auto;overscroll-behavior:contain}
}
/* v27 Remmy v26 pass */
#panel-plan .zb-hero{padding-block-start:0}
#panel-plan .zb-insights:empty{display:none}
#panel-plan.is-planned .zb-grid{max-inline-size:min(100%,640px);margin-inline:auto}
#panel-plan.is-planned .zb-g>summary .zb-amt{font-variant-numeric:tabular-nums}
