:root{
    --focus:#2F6FD0; --on-accent:#FFFFFF; --accent-btn:#1A2233;
    --navy-950:#0B1626; --navy-900:#12213B; --navy-850:#17294A; --navy-800:#1B2E4E; --navy-700:#28456F;
    --gold:#0AA5B5; --gold-bright:#2EE6D6; --gold-dim:rgba(10,165,181,0.14);   /* brand accent (name kept): teal from the KebFin logo */
    --paper:#F4F5F9; --paper-line:rgba(20,30,60,0.07); --card:#FFFFFF;
    --ink:#1A2233; --ink-soft:#5B6474; --ink-faint:#687184;
    --green:#0B7A57; --green-bg:#E1F5EE; --red:#C0392B; --red-bg:#FCEBEA;
    --radius:16px; --radius-sm:10px;
    --sidebar-w:232px; --bottomnav-h:64px;
    --nb-page:#F4F5F9; --nb-card:#FFFFFF; --nb-radius:14px; --nb-radius-sm:8px;
    --nb-shadow:0 2px 14px rgba(20,30,60,0.06); --nb-shadow-hover:0 6px 20px rgba(20,30,60,0.10);
    --nb-ink:#1A2233; --nb-ink-soft:#5B6474; --nb-ink-faint:#687184;
    --nb-teal:#0B7A57; --nb-teal-bg:#E1F5EE;
    --nb-coral:#C0392B; --nb-coral-bg:#FCEBEA;
    --heat1:#FDF0EE; --heat2:#FADCD8; --heat3:#F5C2BB; --heat4:#EFA59C;
    --nb-amber:#9A5B06; --nb-amber-bg:#FDF1DE;
    --nb-blue:#3F7FE0; --nb-blue-bg:#E9F0FD; --link:#1F5FC4;
    --nb-purple:#7A6FD9; --nb-purple-bg:#EFEDFC;
    --nb-border:rgba(20,30,60,0.06);
  }
  *{box-sizing:border-box;}
  html,body{margin:0; padding:0;}
  body{
    background:var(--paper); color:var(--ink); font-family:'Inter',sans-serif; font-size:15px;
    -webkit-font-smoothing:antialiased;
  }
  .mono{ font-family:inherit;font-variant-numeric:tabular-nums; font-variant-numeric:tabular-nums; }
  .num{ font-family:inherit;font-variant-numeric:tabular-nums; font-variant-numeric:tabular-nums; text-align:right; }
  .neg{ color:var(--red); }
  .pos{ color:var(--green); }
  ::selection{ background:var(--gold-dim); }
  :focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }
  .sidebar :focus-visible, .bottomnav :focus-visible, .mobile-nav-panel :focus-visible{ outline-color:var(--gold-bright); }
  .sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  @media (prefers-reduced-motion: reduce){ *{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } }

  /* ---------- App shell ---------- */
  .app{ display:flex; min-height:100vh; }
  .sidebar{
    width:var(--sidebar-w); flex-shrink:0; background:linear-gradient(180deg,var(--navy-900),var(--navy-950));
    color:#fff; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; padding:22px 16px 0; overflow-y:auto; overscroll-behavior:contain;
  }
  .brand{ display:flex; align-items:center; gap:10px; padding:0 6px 20px; border-bottom:1px solid rgba(255,255,255,0.08); margin-bottom:16px; }
  .glyph{ background:url(data:image/png;base64,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) center / cover no-repeat; flex-shrink:0; }
  .brand .glyph{ width:36px; height:36px; border-radius:9px; }
  .brand .txt .mark{ font-family:'Inter',sans-serif; font-weight:700; font-size:18px; line-height:1.1; letter-spacing:-0.2px; }
  .brand .txt .tag{ font-size:12px; color:var(--gold-bright); letter-spacing:1px; text-transform:uppercase; }
  nav.sidenav{ display:flex; flex-direction:column; gap:2px; flex:1; }
  nav.sidenav button{
    display:flex; align-items:center; gap:11px; background:none; border:none; color:#AEB8CB;
    padding:10px 12px; border-radius:8px; font-family:'Inter',sans-serif; font-size:13px; font-weight:600;
    cursor:pointer; text-align:left; transition:background .15s, color .15s;
  }
  nav.sidenav button .ic{ font-size:15px; width:20px; text-align:center; }
  nav.sidenav button:hover{ background:rgba(255,255,255,0.06); color:#fff; }
  nav.sidenav button.active{ background:var(--gold-dim); color:var(--gold-bright); }
  nav.sidenav{ flex:1 0 auto; }
  .sidebar-foot{ display:flex; flex-direction:column; gap:10px; padding:14px 0 16px; border-top:1px solid rgba(255,255,255,0.08); position:sticky; bottom:0; background:var(--navy-950); }   /* always visible, even when the menu needs to scroll */
  @media (max-height:880px){ nav.sidenav button{ padding:7px 12px; } .brand{ padding-bottom:12px; margin-bottom:10px; } .nav-section-label{ margin-top:10px; } }
  .nb-card{ background:var(--nb-card); border-radius:var(--nb-radius); padding:20px; box-shadow:var(--nb-shadow); border:none; }
  .nb-icon{ width:40px; height:40px; border-radius:14px; display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; color:var(--ink-soft); }
  .nb-label{ font-size:13px; color:var(--nb-ink-soft); font-weight:500; }
  .nb-value{ font-size:26px; font-weight:600; color:var(--nb-ink); font-family:'Inter',sans-serif; letter-spacing:-0.5px; white-space:nowrap; }
  @media (max-width:520px){ .nb-value{ font-size:clamp(15px, 4.7vw, 24px); } .stat-value{ white-space:nowrap; } .nb-card{ min-width:0; } }
  .nb-pill{ font-size:12px; font-weight:600; padding:3px 9px; border-radius:999px; }
  .nb-row{ display:flex; align-items:center; gap:12px; padding:11px 0; border-bottom:1px solid var(--nb-border); }
  .nb-row:last-child{ border-bottom:none; }
  .nb-btn{ background:var(--accent-btn); color:#fff; border:none; border-radius:14px; padding:10px 18px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif; }
  .nb-btn:hover{ opacity:0.88; }
  .nb-btn-ghost{ background:var(--nb-page); color:var(--nb-ink); border:none; border-radius:14px; padding:10px 18px; font-weight:600; font-size:13px; cursor:pointer; font-family:'Inter',sans-serif; }
  .tb-pill{
    font-family:inherit;font-variant-numeric:tabular-nums; font-size:12px; font-weight:600; padding:8px 10px;
    border-radius:8px; display:flex; align-items:center; gap:7px;
  }
  .tb-pill .dot{ width:7px; height:7px; border-radius:50%; }
  .tb-pill.ok{ background:rgba(46,125,70,0.16); color:#8CE0A6; } .tb-pill.ok .dot{ background:#8CE0A6; }
  .tb-pill.bad{ background:rgba(179,38,30,0.16); color:#F4A199; } .tb-pill.bad .dot{ background:#F4A199; }
  .btn{
    font-family:'Inter',sans-serif; font-weight:600; font-size:13px; padding:10px 16px; border-radius:14px;
    border:none; background:var(--accent-btn); color:#fff; cursor:pointer; transition:transform .1s, opacity .15s;
  }
  .btn:hover{ opacity:0.88; transform:translateY(-1px); }
  .btn.secondary{ background:var(--paper); color:var(--ink); border:none; }
  .btn.secondary:hover{ background:#E9EBF1; opacity:1; }
  .btn.ghost{ background:none; border:1px solid var(--paper-line); color:var(--ink-soft); }
  .btn.ghost:hover{ background:var(--paper); }
  .btn.small{ padding:7px 12px; font-size:12px; border-radius:8px; }
  .btn.block{ width:100%; }

  main{ flex:1; min-width:0; padding:30px 36px 90px; }
  .topbar{ display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin-bottom:6px; flex-wrap:wrap;}
  .view{ display:none; max-width:1180px; margin:0 auto; animation:fadein .25s ease; }
  .view.active{ display:block; }
  @keyframes fadein{ from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);} }
  h1{ font-family:'Inter',sans-serif; font-weight:600; font-size:26px; margin:0 0 4px; color:var(--ink); letter-spacing:-0.3px; }
  .subtitle{ color:var(--ink-soft); font-size:13px; margin-bottom:22px; }
  h2{ font-family:'Inter',sans-serif; font-weight:600; font-size:15px; margin:26px 0 10px; color:var(--ink); }
  .card{
    background:var(--card); border:none; border-radius:var(--radius);
    padding:20px; margin-bottom:18px; box-shadow:0 2px 14px rgba(20,30,60,0.06);
  }
  .grid4{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  .grid3{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .grid2{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:16px; }
  @media (max-width:920px){ .grid4{grid-template-columns:repeat(2,1fr);} .grid3{grid-template-columns:1fr;} .grid2{grid-template-columns:1fr;} }

  .stat-card{ display:flex; flex-direction:column; gap:8px; }
  .stat-top{ display:flex; justify-content:space-between; align-items:flex-start; }
  .stat-icon{ width:32px; height:32px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:15px; }
  .stat-label{ font-size:12px; text-transform:uppercase; letter-spacing:0.6px; color:var(--ink-soft); font-weight:600; }
  .stat-value{ font-family:inherit;font-variant-numeric:tabular-nums; font-size:26px; font-weight:600; color:var(--ink); }
  @media (max-width:520px){ .stat-value{ font-size:17px; white-space:nowrap; } }
  .stat-sub{ font-size:12px; color:var(--ink-faint); }

  .code-chip{
    display:inline-flex; align-items:center; font-family:inherit;font-variant-numeric:tabular-nums; font-size:12px; font-weight:600;
    color:var(--navy-800); background:#E2F4F6; border-left:3px solid var(--gold); padding:2px 7px;
    border-radius:3px; margin-right:8px; white-space:nowrap;
  }
  .cat-row{ display:flex; align-items:center; gap:10px; }
  .cat-ic{ width:28px; height:28px; border-radius:8px; background:var(--paper); display:flex; align-items:center; justify-content:center; font-size:15px; flex-shrink:0; color:var(--ink-soft); }
  .ico{ flex-shrink:0; vertical-align:-3px; }

  table{ width:100%; border-collapse:collapse; font-size:13px; }
  #csvPreviewTable select{ width:100%; max-width:200px; min-width:120px; }
  th{ text-align:left; font-size:12px; text-transform:uppercase; letter-spacing:0.5px; color:var(--nb-ink-soft); padding:10px; border-bottom:1.5px solid var(--paper-line); font-weight:700; }
  th.num,td.num{ text-align:right; white-space:nowrap; }   /* an amount never breaks into “RM” and the number */
  .unset{ color:var(--nb-amber); font-weight:600; font-size:15px; }
  .link-btn{ background:none; border:0; padding:4px 0; font:inherit; font-size:13px; font-weight:600; color:var(--link); text-decoration:none; cursor:pointer; }
  .link-btn:hover{ text-decoration:underline; } .link-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; border-radius:4px; }
  #fxToggle{ font-size:13px; margin:2px 0 8px; }
  .outbox-count{ background:var(--nb-amber-bg); border-radius:8px; padding:8px 10px; } #fxCalc{ margin:-4px 0 10px; }
  input.is-derived{ background:var(--paper) !important; color:var(--ink-soft); }
  .j-fx{ font-size:12px; color:var(--ink-soft); white-space:nowrap; }
  .inv-row{ display:grid; grid-template-columns:minmax(0,1fr) auto auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--paper-line); }
  .inv-main{ display:flex; flex-direction:column; min-width:0; } .inv-row .mono{ white-space:nowrap; }
  .inv-form{ grid-column:1 / -1; } #investCard > .card{ margin-top:16px; }
  @media (max-width:560px){ .inv-row{ grid-template-columns:minmax(0,1fr) auto; } .inv-main{ grid-column:1 / -1; } }
  .fav-chips{ padding-bottom:8px; } .fav-chips .chip{ font-weight:500; }
  .form-field:has(> .calc-ops){ position:relative; }
  .calc-ops{ display:none; gap:6px; position:absolute; left:0; right:0; top:100%; z-index:6; margin-top:4px; padding:6px; background:var(--card); border:1px solid var(--paper-line); border-radius:10px; box-shadow:0 8px 24px rgba(8,20,40,.14); }
  .form-field:focus-within > .calc-ops{ display:flex; }   /* floats under the amount while you type it, so nothing below moves */ .calc-ops button{ flex:1; min-width:0; padding:6px 0; border:1px solid var(--paper-line); border-radius:8px; background:var(--paper); color:var(--ink); font:inherit; font-size:15px; font-weight:600; cursor:pointer; }
  .add-actions{ position:sticky; bottom:-24px; margin:18px -26px -24px; padding:12px 26px 16px; background:var(--card); border-top:1px solid var(--paper-line); flex-wrap:wrap; align-items:center; z-index:2; }
  .add-actions .spacer{ flex:1; } .add-actions .btn{ white-space:nowrap; } #modeSwitch{ font-size:13px; }
  @media (max-width:760px){ .add-actions{ bottom:-20px; margin:14px -16px -20px; padding:10px 16px calc(14px + env(safe-area-inset-bottom)); } .add-actions #modeSwitch{ flex-basis:100%; text-align:left; } .add-actions .spacer{ display:none; } .add-actions .btn{ flex:1; padding-left:8px; padding-right:8px; } }
  #addModeTabs{ display:none !important; }
  #newMenu, #addMenuDash{ min-width:290px; }
  #newMenu button, #addMenuDash button{ display:flex !important; align-items:center; gap:10px; white-space:nowrap; } .new-menu .ico{ color:var(--ink-soft); }
  .has-subnav .view.active > h1, .has-subnav .view.active > .topbar h1, .has-subnav .view.active > div > h1{ display:none; }
  body.conn-login .sidebar nav, body.conn-login .side-settings, body.conn-login .palette-btn, body.conn-login .bottomnav, body.conn-login .m-right, body.conn-login .subnav,
  body.conn-loading .sidebar nav, body.conn-loading .bottomnav, body.conn-loading .m-right, body.conn-loading .subnav{ pointer-events:none; opacity:.4; }
  .ab-row[data-acct]{ cursor:pointer; border-radius:8px; margin-left:-6px; margin-right:-6px; padding-left:6px; padding-right:6px; } .ab-row[data-acct]:hover{ background:var(--gold-dim); }
  .ab-row[data-acct]:focus-visible{ outline:2px solid var(--gold); } .ab-more summary{ cursor:pointer; margin-top:6px; }
  .tax-fold > summary{ list-style:none; cursor:pointer; display:flex; align-items:baseline; justify-content:space-between; gap:10px; flex-wrap:wrap; }
  .tax-fold > summary::-webkit-details-marker{ display:none; } .tax-fold > summary h2{ margin:0; font-size:16px; }
  .tax-fold > summary h2::before{ content:'▸'; display:inline-block; width:16px; color:var(--ink-soft); transition:transform .15s; } .tax-fold[open] > summary h2::before{ transform:rotate(90deg); }
  .tax-fold[open] > summary{ margin-bottom:12px; }
  #cfContent .card, #view-tools .card{ overflow-x:auto; }
  /* v47: app lock, weekly review, balances, IOU, two-step sign-in */
  .lock-screen{ position:fixed; inset:0; z-index:10000; background:#001534; display:flex; align-items:center; justify-content:center; padding:24px; }
  .lock-screen[hidden]{ display:none; }
  body.app-locked > *:not(#lockScreen):not(#modalConfirm){ visibility:hidden; }
  .lock-box{ background:var(--card); color:var(--ink); border-radius:18px; padding:28px 24px; width:min(340px, 100%); text-align:center; display:flex; flex-direction:column; gap:10px; box-shadow:0 20px 60px rgba(0,0,0,.35); }
  .lock-box h2{ margin:4px 0 6px; font-size:20px; }
  .lock-glyph{ width:56px; height:56px; margin:0 auto; border-radius:14px; background-size:cover; }
  .lock-box input{ font-size:24px; letter-spacing:8px; text-align:center; padding:10px; border:1px solid var(--paper-line); border-radius:10px; background:var(--paper); color:var(--ink); }
  .lock-actions{ display:flex; flex-direction:column; gap:8px; }
  .streak-row{ margin:-6px 0 14px; } .streak{ display:inline-flex; align-items:center; gap:6px; font-size:13px; color:var(--ink-soft); padding:5px 10px; border-radius:999px; background:var(--card); border:1px solid var(--paper-line); }
  .streak.warn{ color:var(--red); border-color:color-mix(in srgb, var(--red) 35%, transparent); font-weight:600; }
  .streak.on{ color:var(--green); border-color:color-mix(in srgb, var(--green) 35%, transparent); }
  .week-card{ margin-bottom:18px; } .week-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:14px 22px; margin-top:12px; }
  .week-cat{ display:flex; justify-content:space-between; gap:10px; font-size:13px; padding:2px 0; }
  .nb-value.sm{ font-size:20px; }
  .bs-rows{ display:flex; flex-direction:column; gap:8px; max-height:50vh; overflow:auto; margin-top:8px; }
  .bs-row{ display:flex; align-items:center; gap:12px; justify-content:space-between; padding:6px 0; border-top:1px solid var(--paper-line); }
  .bs-row label{ display:flex; flex-direction:column; gap:2px; font-size:14px; min-width:0; } .bs-row label > span:first-child{ display:flex; align-items:center; gap:6px; }
  .bs-row input{ width:150px; padding:8px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; text-align:right; }
  .iou-pay{ display:flex; gap:6px; align-items:center; } .iou-pay select{ max-width:150px; padding:6px 8px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:13px; }
  @media (max-width:560px){ #billsBorrowed .bill-row{ flex-wrap:wrap; } .iou-pay{ flex-basis:100%; } }
  .mfa-box{ margin-top:12px; padding:12px; border:1px solid var(--paper-line); border-radius:10px; display:flex; flex-wrap:wrap; gap:6px 10px; align-items:center; font-size:13px; }
  .mfa-box > .cap-note{ flex:1 1 220px; } .mfa-qr{ display:block; flex-basis:100%; max-width:180px; background:#fff; border-radius:8px; padding:6px; }
  .mfa-code{ font-size:24px; letter-spacing:6px; text-align:center; width:100%; padding:10px; border:1px solid var(--paper-line); border-radius:10px; background:var(--paper); color:var(--ink); }
  /* v47 Home: bell + popover, left column and the calendar */
  .bell-btn{ position:relative; width:40px; height:40px; border-radius:10px; border:1px solid var(--paper-line); background:var(--card); color:var(--ink); display:inline-flex; align-items:center; justify-content:center; cursor:pointer; flex-shrink:0; }
  .m-acct.bell-btn{ border-radius:50%; }
  .bell-btn:hover{ border-color:var(--gold); } .bell-btn[aria-expanded="true"]{ border-color:var(--gold); color:var(--gold); }
  .bell-badge{ position:absolute; top:-5px; right:-5px; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:#E8A23A; color:#1A1200; font-size:12px; font-weight:700; line-height:18px; text-align:center; box-shadow:0 0 0 2px var(--paper); }
  .bell-badge.urgent{ background:#C0262D; color:#fff; } .bell-badge[hidden]{ display:none; }
  .m-right{ display:flex; gap:8px; align-items:center; }
  @media (max-width:760px){ .hdr-bell{ display:none !important; } }
  .todo-pop{ position:fixed; z-index:900; width:min(420px, calc(100vw - 24px)); max-height:min(72vh, 640px); overflow:auto; border-radius:16px; box-shadow:0 18px 50px rgba(8,20,40,.22), 0 2px 8px rgba(8,20,40,.12); }
  .todo-pop[hidden]{ display:none; } .todo-pop > .nb-card{ margin:0; border:1px solid var(--paper-line); }
  @media (max-width:760px){ .todo-pop{ width:auto; } }
  .todo-head{ margin-bottom:6px; } .todo-close{ background:none; border:none; color:var(--ink-soft); cursor:pointer; padding:6px; border-radius:8px; display:inline-flex; } .todo-close:hover{ background:var(--paper); color:var(--ink); }
  .home-main{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:18px; }
  @media (min-width:900px){ .home-main{ grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:stretch; } .home-left > .nb-card:last-child, .home-right > .nb-card:last-child{ flex:1; } }
  .home-left, .home-right{ display:flex; flex-direction:column; gap:16px; min-width:0; } .home-left > .nb-card, .home-right > .nb-card{ margin:0; }
  .cat-line{ display:block; width:100%; background:none; border:none; padding:7px 0; text-align:left; font:inherit; color:inherit; cursor:pointer; border-top:1px solid var(--paper-line); }
  .cat-line:first-of-type{ border-top:0; } .cat-line:hover .cl-name{ color:var(--link); }
  .cl-top{ display:flex; justify-content:space-between; gap:10px; align-items:baseline; font-size:14px; } .cl-name{ display:inline-flex; align-items:center; gap:6px; min-width:0; }
  .cl-amt{ white-space:nowrap; font-weight:600; }
  .cl-bar{ display:block; height:6px; border-radius:999px; background:var(--paper-line); margin-top:6px; overflow:hidden; } .cl-bar > i{ display:block; height:100%; background:var(--nb-teal); border-radius:999px; }
  .cl-bar.near > i{ background:var(--nb-amber); } .cl-bar.over > i{ background:var(--red); }
  .quick-chips{ display:flex; flex-wrap:wrap; gap:8px; } .chip-new{ display:inline-flex; align-items:center; gap:4px; }
  .urgent-card{ border:1px solid var(--red); background:var(--nb-coral-bg); border-radius:14px; padding:4px 14px; margin-bottom:16px; }
  .urgent-row{ display:flex; align-items:center; gap:12px; width:100%; background:none; border:0; border-top:1px solid color-mix(in srgb, var(--red) 25%, transparent); padding:10px 0; font:inherit; color:var(--ink); text-align:left; cursor:pointer; }
  .urgent-row:first-child{ border-top:0; } .urgent-row .jtext{ display:flex; flex-direction:column; flex:1; min-width:0; } .urgent-row .chev{ color:var(--ink-soft); font-size:20px; }
  @media (min-width:761px) and (max-width:1200px){ .grid4{ grid-template-columns:repeat(2, minmax(0,1fr)); } }
  .mc-start{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin:-6px 0 14px; } .mc-start select{ padding:7px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; }
  .mc-start .cap-note:last-child{ flex-basis:100%; }
  .dup-group{ border-top:1px solid var(--paper-line); padding:10px 0; } .dup-row{ padding:6px 0; flex-wrap:nowrap; gap:10px; }
  .btn.danger{ background:var(--red); color:#fff; }
  .cancelled-subs{ margin-top:12px; padding-top:10px; border-top:1px solid var(--paper-line); text-align:left; }
  .cancelled-subs .bill-row{ flex-wrap:wrap; gap:8px; }
  .tax-gap{ margin-bottom:14px; border-left:4px solid var(--nb-amber); }
  .rcpt-list{ display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; } .rcpt-list:empty{ display:none; }
  .rcpt-chip{ display:inline-flex; align-items:center; gap:6px; border:1px solid var(--paper-line); border-radius:999px; padding:3px 4px 3px 10px; font-size:13px; }
  .rcpt-chip button{ background:none; border:0; color:var(--link); font:inherit; cursor:pointer; padding:2px 6px; }
  .receipt-body img{ max-width:100%; max-height:70vh; display:block; margin:0 auto; border-radius:8px; }
  #rcptNote:empty{ display:none; }
  .fill-pill{ margin-top:10px; background:rgba(255,255,255,0.18); color:#fff; border:1px solid rgba(255,255,255,0.45); border-radius:999px; padding:6px 12px; font-size:12px; font-weight:600; cursor:pointer; font-family:inherit; }
  td{ padding:10px; border-bottom:1px solid var(--paper-line); vertical-align:middle; }
  tr.total-row td{ border-top:1.5px solid var(--nb-ink); border-bottom:none; font-weight:700; background:var(--nb-page); }
  tr.subtotal-row td{ font-weight:700; background:var(--nb-page); }
  tr.section-row td{ background:var(--nb-ink); color:#fff; font-weight:700; font-size:12px; letter-spacing:0.7px; text-transform:uppercase; padding:7px 10px; }
  body[data-theme="dark"] tr.section-row td{ background:#0A1322; color:var(--ink); }
  a[data-acct]{ color:inherit; text-decoration:underline; text-underline-offset:2px; }
  tr:hover td{ background:var(--nb-page); }
  tr.total-row:hover td, tr.subtotal-row:hover td, tr.section-row:hover td{ background:inherit; }

  /* ---------- Journal list ---------- */
  #journalTable td.j-date{ white-space:nowrap; font-size:13px; color:var(--ink-soft); }
  #journalTable td.j-amt, #journalTable th.j-amt{ white-space:nowrap; text-align:right; font-weight:600; }
  #journalTable .j-sub{ display:block; font-size:12px; color:var(--ink-soft); margin-top:2px; }
  #journalTable .j-acc .dc{ display:inline-block; width:20px; font-size:12px; font-weight:700; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.3px; }
  #journalTable .j-acc div{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:300px; }
  #journalTable td.j-act{ width:44px; text-align:right; }
  .row-menu-btn{ background:none; border:1px solid transparent; border-radius:8px; width:34px; height:34px; font-size:17px; line-height:1; cursor:pointer; color:var(--ink-soft); }
  .row-menu-btn:hover, .row-menu-btn:focus-visible{ background:var(--nb-page); border-color:var(--paper-line); color:var(--ink); }
  .row-menu{ position:fixed; z-index:120; min-width:150px; background:var(--card); border:1px solid var(--paper-line); border-radius:8px; box-shadow:0 8px 28px rgba(11,22,38,.22); padding:4px; display:none; }
  .row-menu.open{ display:block; }
  .row-menu button{ display:block; width:100%; text-align:left; background:none; border:none; padding:10px 12px; border-radius:8px; font-size:13px; font-family:'Inter',sans-serif; color:var(--ink); cursor:pointer; }
  .row-menu button:hover, .row-menu button:focus-visible{ background:var(--nb-page); }
  .row-menu button.danger{ color:var(--red); }
  .j-bar{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; font-size:13px; color:var(--ink-soft); margin:2px 2px 8px; }
  .j-bar label{ display:inline-flex; align-items:center; gap:7px; cursor:pointer; color:var(--ink); font-weight:500; }
  .j-pager{ display:flex; align-items:center; justify-content:center; gap:12px; margin:2px 0 18px; font-size:13px; color:var(--ink-soft); }
  .jf-toggle{ display:none; }
  .jhead2{ display:flex; align-items:flex-start; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
  .jhead2 h1{ margin-bottom:2px; }
  .jhead2-right{ display:flex; align-items:center; gap:10px; }
  .seg{ display:inline-flex; background:var(--paper-line); border-radius:14px; padding:3px; }
  .seg button{ border:none; background:none; padding:8px 13px; font-size:13px; font-weight:600; color:var(--ink-soft); border-radius:8px; cursor:pointer; font-family:inherit; }
  .seg button[aria-pressed="true"]{ background:var(--card); color:var(--ink); box-shadow:0 1px 3px rgba(20,30,60,.12); }
  .menu-wrap{ position:relative; }
  .new-menu{ display:none; position:absolute; right:0; top:calc(100% + 6px); min-width:210px; background:var(--card); border:1px solid var(--paper-line); border-radius:14px; box-shadow:0 10px 30px rgba(11,22,38,.22); padding:5px; z-index:80; }
  .new-menu.open{ display:block; }
  .new-menu button{ display:block; width:100%; text-align:left; padding:11px 12px; background:none; border:none; font-size:15px; color:var(--ink); border-radius:8px; cursor:pointer; font-family:inherit; }
  .new-menu button:hover, .new-menu button:focus-visible{ background:var(--paper); }
  .jsearch{ display:flex; align-items:center; gap:10px; background:var(--card); border:1px solid var(--paper-line); border-radius:14px; padding:0 14px; margin-bottom:10px; }
  .jsearch input{ flex:1; border:none; background:none; padding:13px 0; font-size:15px; color:var(--ink); outline-offset:6px; min-width:0; font-family:inherit; }
  .chips{ display:flex; gap:8px; overflow-x:auto; padding:2px 0 12px; scrollbar-width:none; }
  .chips.more-right, .report-tabs.more-right:not(.more-left), .subnav.more-right:not(.more-left){ -webkit-mask-image:linear-gradient(to right, #000 82%, transparent); mask-image:linear-gradient(to right, #000 82%, transparent); }
  .chips.more-left.more-right, .report-tabs.more-left.more-right, .subnav.more-left.more-right{ -webkit-mask-image:linear-gradient(to right, transparent, #000 12%, #000 82%, transparent); mask-image:linear-gradient(to right, transparent, #000 12%, #000 82%, transparent); }
  .chips.more-left:not(.more-right), .report-tabs.more-left:not(.more-right), .subnav.more-left:not(.more-right){ -webkit-mask-image:linear-gradient(to right, transparent, #000 18%); mask-image:linear-gradient(to right, transparent, #000 18%); }
  .chips::-webkit-scrollbar{ display:none; }
  .chip{ flex-shrink:0; border:1px solid var(--paper-line); background:var(--card); color:var(--ink); border-radius:999px; padding:8px 14px; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; white-space:nowrap; display:inline-flex; align-items:center; gap:6px; }
  .chip[aria-pressed="true"]{ background:var(--navy-900); color:#fff; border-color:var(--navy-900); }
  .chip .cnt{ background:var(--nb-amber-bg); color:var(--ink); border-radius:999px; padding:0 7px; font-size:12px; }
  .chip[aria-pressed="true"] .cnt{ background:rgba(255,255,255,.2); color:#fff; }
  .jf-card:not(.jf-open){ display:none; }
  .jf-extra{ display:flex; gap:12px; flex-wrap:wrap; align-items:flex-end; }
  .jf-extra .form-field{ flex:1 1 130px; margin:0; }
  .jgroup{ padding:0; margin-bottom:12px; overflow:hidden; }
  .jg-head{ display:flex; justify-content:space-between; gap:10px; padding:11px 16px 6px; font-size:13px; font-weight:600; color:var(--ink-soft); }
  .jitem{ display:flex; align-items:center; gap:4px; padding:0 8px 0 10px; border-top:1px solid var(--paper-line); }
  .jg-head + .jitem{ border-top:none; }
  .jmain{ flex:1; min-width:0; display:flex; align-items:center; gap:12px; padding:11px 6px; cursor:pointer; border-radius:8px; }
  .jmain:focus-visible{ outline:2px solid var(--focus); }
  .jicon{ width:38px; height:38px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:17px; flex-shrink:0; background:var(--nb-amber-bg); }
  .jicon{ color:#9A5B00; } body[data-theme="dark"] .jicon{ color:var(--nb-amber); }
  .jicon.income, .jicon.refund{ background:var(--nb-teal-bg); color:var(--nb-teal); }
  .jicon.transfer, .jicon.other, .jicon.owed, .jicon.repaid{ background:var(--paper); color:var(--ink-soft); }
  .jtext{ flex:1; min-width:0; }
  .jtitle{ font-weight:600; font-size:15px; color:var(--ink); overflow-wrap:anywhere; }
  .jsub2{ font-size:13px; color:var(--ink-soft); margin-top:1px; overflow-wrap:anywhere; }
  .jamt{ font-family:inherit;font-variant-numeric:tabular-nums; font-weight:600; font-size:15px; white-space:nowrap; color:var(--ink); }
  .jamt.income, .jamt.refund{ color:var(--green); }
  .jamt.transfer, .jamt.other, .jamt.owed, .jamt.repaid{ color:var(--ink-soft); }
  .pill{ display:inline-block; font-size:12px; font-weight:700; padding:2px 8px; border-radius:999px; margin-left:6px; vertical-align:middle; }
  .pill.amber{ background:var(--nb-amber-bg); color:var(--ink); }
  .jsel{ display:none; padding:0 4px; }
  .eyebrow{ font-size:13px; color:var(--ink-soft); }
  .today-top{ display:grid; grid-template-columns:1fr; gap:16px; margin-bottom:18px; }
  @media (min-width:900px){ .today-top{ grid-template-columns:1fr 1fr; } }
  .todo-title{ font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; margin-bottom:6px; }
  .todo-wrap{ display:flex; align-items:stretch; gap:4px; }
  .todo-wrap .todo-row{ flex:1; min-width:0; }
  .todo-x{ border:none; background:none; color:var(--ink-soft); font-size:17px; width:36px; flex-shrink:0; cursor:pointer; border-radius:8px; }
  .todo-x:hover{ background:var(--paper); color:var(--ink); }
  .todo-row{ display:flex; align-items:center; gap:12px; padding:12px 0; border-top:1px solid var(--paper-line); width:100%; background:none; border-left:none; border-right:none; border-bottom:none; text-align:left; cursor:pointer; color:var(--ink); font-family:inherit; }
  .todo-title + .todo-row{ border-top:none; }
  .todo-row .jicon{ width:36px; height:36px; font-size:17px; }
  .todo-row .chev{ color:var(--ink-soft); font-size:17px; }
  .todo-badge{ background:var(--navy-900); color:#fff; border-radius:999px; min-width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; padding:0 7px; }
  .left-card{ border-radius:14px; padding:18px 20px; background:var(--nb-teal-bg); border:1px solid var(--nb-teal); color:var(--ink); }
  .left-card.over{ background:var(--nb-coral-bg); border-color:var(--nb-coral); }
  .left-card .lc-top{ display:flex; justify-content:space-between; align-items:baseline; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--ink-soft); }
  .left-card .lc-top a, .left-card .lc-top button{ background:none; border:none; color:var(--link); font-weight:700; font-size:13px; cursor:pointer; font-family:inherit; text-transform:none; letter-spacing:0; }
  .left-card .lc-amt{ font-family:inherit;font-variant-numeric:tabular-nums; font-size:32px; font-weight:600; margin:6px 0 10px; }
  .lc-bar{ height:9px; background:rgba(0,0,0,.08); border-radius:999px; overflow:hidden; }
  .lc-bar > i{ display:block; height:100%; background:var(--green); border-radius:999px; }
  .left-card.over .lc-bar > i{ background:var(--red); }
  .lc-sub{ font-size:13px; color:var(--ink-soft); margin-top:9px; line-height:1.45; }
  .bill-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--paper-line); }
  .bill-row:first-of-type{ border-top:none; }
  .bill-date{ width:38px; text-align:center; font-size:12px; color:var(--ink-soft); line-height:1.2; flex-shrink:0; }
  .bill-date b{ display:block; font-size:15px; color:var(--ink); }
  /* phones: each bill becomes a small card — name and details get the full width, status and amount sit on their own line (v46 review N5) */
  @media (max-width:560px){
    #billsMonthList .bill-row{ display:grid; grid-template-columns:38px 1fr auto; grid-template-areas:'d t t' 'd s a'; gap:4px 12px; align-items:start; }
    #billsMonthList .bill-row .bill-date{ grid-area:d; } #billsMonthList .bill-row .jtext{ grid-area:t; min-width:0; }
    #billsMonthList .bill-row .status-chip{ grid-area:s; justify-self:start; } #billsMonthList .bill-row .jamt{ grid-area:a; min-width:0 !important; white-space:nowrap; }
  }
  .month-nav{ display:flex; align-items:center; gap:10px; font-weight:600; }
  .month-nav button{ width:40px; height:40px; border-radius:50%; border:1px solid var(--paper-line); background:var(--card); font-size:20px; color:var(--ink); cursor:pointer; }
  .cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
  .cal-dow{ font-size:12px; color:var(--ink-soft); padding:6px 0; }
  .cal-day{ position:relative; aspect-ratio:1; max-height:56px; display:flex; flex-direction:column; align-items:center; justify-content:center; border-radius:14px; font-size:15px; color:var(--ink); }
  .cal-day small{ font-size:12px; line-height:1; height:12px; }
  .cal-day.today{ background:var(--navy-900); color:#fff; }
  .cal-day.needs{ background:var(--nb-amber-bg); font-weight:700; }
  .cal-day.overdue{ background:var(--nb-coral-bg); } .cal-day.overdue .dot{ color:var(--red); }
  .cal-day .ok{ color:var(--green); } .cal-day .dot{ color:var(--nb-amber); } .cal-day .soon{ color:var(--ink-soft); }
  .cal-day.today .ok{ color:#7BE0A8; }
  .debt-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr)); gap:16px; margin-top:6px; }
  .debt-card{ margin:0; display:flex; flex-direction:column; gap:10px; }
  .dc-top{ display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
  .dc-name{ font-weight:600; font-size:17px; color:var(--ink); }
  .dc-bal{ font-size:20px; font-weight:600; color:var(--ink); white-space:nowrap; }
  .dc-facts{ display:flex; flex-wrap:wrap; gap:4px 14px; font-size:13px; color:var(--ink-soft); }
  .dc-status{ font-size:13px; }
  .dc-actions{ display:flex; gap:8px; flex-wrap:wrap; }
  .dc-more summary{ cursor:pointer; font-size:13px; font-weight:600; color:var(--link); }
  .opt-box{ border:1px solid var(--paper-line); border-radius:14px; padding:14px; }
  .opt-box.best{ border:2px solid var(--green); }
  .status-chip{ font-size:12px; font-weight:700; padding:2px 9px; border-radius:999px; }
  .status-chip.paid{ background:var(--nb-teal-bg); color:var(--green); }
  .status-chip.due{ background:var(--nb-amber-bg); color:var(--ink); }
  .status-chip.upcoming, .status-chip.skipped{ background:var(--paper); color:var(--ink-soft); }
  .status-chip.late, .status-chip.missing{ background:var(--nb-coral-bg); color:var(--red); }
  .status-chip.min{ background:var(--nb-amber-bg); color:var(--ink); }
  .cal-day small.cal-amt{ font-size:12px; height:auto; color:var(--ink-soft); font-weight:500; margin-top:1px; }
  .cal-day.today small.cal-amt{ color:#fff; }
  .cal-day.late{ background:var(--nb-coral-bg); }
  .cal-day .late{ color:var(--red); font-weight:700; }
  .needs-card{ border:1px solid var(--nb-amber); background:var(--nb-amber-bg); margin-bottom:16px; }
  .back-link{ background:none; border:none; color:var(--link); font-weight:600; font-size:15px; padding:6px 0; cursor:pointer; font-family:inherit; }
  .rv-group{ padding:6px 14px 4px; margin-bottom:12px; }
  .rv-label{ font-size:13px; font-weight:600; color:var(--ink-soft); padding:8px 2px 4px; }
  .rv-item{ padding:10px 0; border-top:1px solid var(--paper-line); }
  .rv-label + .rv-item{ border-top:none; }
  .rv-top{ display:flex; align-items:center; gap:12px; }
  .rv-actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:8px; }
  .jicon.warn{ background:var(--nb-coral-bg); color:var(--nb-coral); }
  .nav-badge{ display:none; margin-left:auto; background:var(--nb-coral); color:#fff; border-radius:999px; font-size:12px; font-weight:700; padding:1px 8px; }
  body.j-selecting .jsel{ display:flex; align-items:center; }
  .jf-extra{ display:contents; }
  .mode-tabs{ display:flex; gap:4px; background:var(--nb-page); border-radius:8px; padding:4px; margin:0 0 16px; }
  .mode-tabs button{ flex:1; border:none; background:none; padding:9px 10px; border-radius:8px; font-size:13px; font-weight:600; font-family:'Inter',sans-serif; color:var(--ink-soft); cursor:pointer; }
  .mode-tabs button[aria-selected="true"]{ background:var(--card); color:var(--ink); box-shadow:0 1px 4px rgba(20,30,60,.12); }
  .quick-amt input{ font-size:26px; font-weight:600; font-family:inherit;font-variant-numeric:tabular-nums; padding:12px 14px; }
  .badge-claude{ display:inline-block; width:6px; height:6px; border-radius:50%; background:var(--nb-blue); margin-left:6px; vertical-align:middle; }
  .badge-err{ color:var(--red); font-weight:700; font-size:12px; }
  .badge-ok{ color:var(--green); font-weight:700; font-size:12px; }

  .form-row{ display:flex; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
  .form-field{ display:flex; flex-direction:column; gap:4px; flex:1; min-width:140px; }
  .form-field label{ font-size:13px; font-weight:600; color:var(--ink-soft); }
  .form-field input, .form-field select{
    font-family:'Inter',sans-serif; font-size:13px; padding:9px 10px; border:1px solid var(--paper-line);
    border-radius:8px; background:#FDFCF9; color:var(--ink);
  }
  .form-field input:focus, .form-field select:focus{ outline:2px solid var(--gold); outline-offset:1px; background:var(--card); }

  .modal-backdrop{ display:none; position:fixed; inset:0; background:rgba(11,22,38,0.55); z-index:100; align-items:center; justify-content:center; padding:20px; }
  .modal-backdrop.active{ display:flex; }
  .modal{ background:var(--card); border-radius:14px; padding:24px 26px; width:560px; max-width:100%; max-height:88vh; overflow-y:auto; border-top:4px solid var(--gold); }
  .modal h3{ margin:0 0 16px; font-size:20px; color:var(--ink); }
  .modal-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:18px; }

  main{ position:relative; }
  .conn-overlay{ position:absolute; inset:0; z-index:60; background:var(--paper,#F4F5F9); display:flex; align-items:flex-start; justify-content:center; padding:14vh 20px 20px; min-height:100vh; }
  .conn-card{ max-width:420px; width:100%; background:var(--card); color:var(--ink); border-radius:14px; padding:28px 26px; text-align:center; box-shadow:0 8px 30px rgba(20,30,60,0.10); }
  .conn-card b{ display:block; font-size:17px; margin:10px 0 6px; }
  .conn-card p{ font-size:13px; line-height:1.55; color:var(--ink-soft); margin:0 0 16px; }
  .conn-actions{ display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
  body.conn-login .fab, body.conn-login .bottomnav{ display:none !important; }
  .sr-only{ position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .auth-form{ display:flex; flex-direction:column; gap:10px; text-align:left; }
  .auth-form input{ width:100%; padding:12px 14px; font-size:15px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font-family:inherit; }
  .auth-form .conn-actions{ margin-top:4px; }
  .auth-msg{ min-height:18px; font-size:13px; color:var(--ink-soft); }
  .auth-banner{ border-radius:8px; padding:10px 14px; font-size:13px; line-height:1.5; }
  .auth-banner.warn{ background:var(--nb-coral-bg); color:var(--ink); border:1px solid var(--nb-coral); }
  .auth-banner.ok{ background:var(--nb-teal-bg); color:var(--ink); border:1px solid var(--nb-teal); }
  .auth-steps{ margin-top:14px; font-size:13px; color:var(--ink-soft); }
  .auth-steps summary{ cursor:pointer; font-weight:600; color:var(--ink); padding:6px 0; }
  .auth-steps ol{ margin:8px 0 14px 18px; padding:0; line-height:1.6; }
  .auth-steps code{ font-family:inherit;font-variant-numeric:tabular-nums; font-size:12px; background:var(--paper); padding:1px 5px; border-radius:4px; }
  .device-banner{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; background:var(--nb-amber-bg); border:1px solid var(--nb-amber); color:var(--ink); border-radius:8px; padding:10px 14px; margin-bottom:16px; font-size:13px; }
  .device-banner span{ flex:1 1 220px; }
  .conn-spinner{ width:30px; height:30px; border:3px solid #E3E6EF; border-top-color:var(--nb-blue,#3B6FE0); border-radius:50%; margin:0 auto; animation:connspin .8s linear infinite; }
  @keyframes connspin{ to{ transform:rotate(360deg); } }
  .toast{ position:fixed; bottom:24px; right:24px; background:var(--navy-900); color:#fff; padding:14px 18px; border-radius:8px; border-left:4px solid var(--gold); font-size:13px; max-width:340px; box-shadow:0 10px 28px rgba(0,0,0,0.28); z-index:200; display:none; }
  .toast.active{ display:block; animation:toastin .2s ease; }
  @keyframes toastin{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
  .note{ font-size:12px; color:var(--ink-soft); font-style:italic; margin-top:6px; }
  .helptext{ background:#FAF7EE; border:1px dashed var(--paper-line); border-radius:8px; padding:12px 14px; font-size:13px; color:var(--ink-soft); margin-bottom:16px; }
  .flex-between{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
  .cap-note{ font-size:12px; color:var(--ink-soft); }
  .report-tab-btn, .coa-tab-btn{
    font-family:'Inter',sans-serif; font-weight:600; font-size:13px; padding:9px 14px; border:none; background:none;
    color:var(--ink-soft); border-bottom:2px solid transparent; cursor:pointer; margin-bottom:-2px;
  }
  .report-tab-btn:hover, .coa-tab-btn:hover{ color:var(--ink); }
  .report-tab-btn{ white-space:nowrap; flex:0 0 auto; }
  .report-tabs{ scrollbar-width:none; }
  .report-tab-btn.active, .coa-tab-btn.active{ color:var(--ink); border-bottom:2px solid var(--gold); }
  .nav-section-label{
    font-size:12px; font-weight:700; letter-spacing:1px; color:#5A6884; text-transform:uppercase;
    padding:14px 12px 4px; margin-top:4px;
  }
  .nav-section-label:first-child{ margin-top:0; }
  .empty{ text-align:center; padding:34px 10px; color:var(--ink-faint); font-size:13px; line-height:1.6; max-width:340px; margin:0 auto; }
  .empty::before{ content:'📭'; display:block; font-size:26px; margin-bottom:10px; opacity:0.55; }

  .fab{
    position:fixed; bottom:28px; right:28px; width:56px; height:56px; border-radius:50%; background:var(--gold);
    color:var(--navy-950); border:none; font-size:26px; display:none; align-items:center; justify-content:center;
    cursor:pointer; box-shadow:0 8px 20px rgba(10,165,181,0.4); z-index:60;
  }
  .fab:hover{ background:var(--gold-bright); }
  .mobile-nav-backdrop{ display:none; }

  /* Dark mode */
  body[data-theme="dark"]{ --link:#8DB7FF; --paper:#0F1A2C; --paper-line:#2A3B54; --card:#16233A; --ink:#E7ECF5; --ink-soft:#9BA8BE; --ink-faint:#8390A8;
    --green-bg:rgba(46,125,70,0.22); --red-bg:rgba(179,38,30,0.22); --gold-dim:rgba(46,230,214,0.18);
    --nb-page:#0F1A2C; --nb-card:#16233A; --nb-shadow:0 2px 14px rgba(0,0,0,0.35); --nb-shadow-hover:0 6px 20px rgba(0,0,0,0.45);
    --nb-ink:#E7ECF5; --nb-ink-soft:#9BA8BE; --nb-ink-faint:#8390A8; --nb-border:rgba(255,255,255,0.08);
    --nb-teal-bg:rgba(29,158,117,0.18); --nb-coral-bg:rgba(226,87,74,0.18); --nb-amber-bg:rgba(217,138,31,0.18);
    --nb-blue-bg:rgba(63,127,224,0.18); --nb-purple-bg:rgba(122,111,217,0.18);
   --heat1:#2A2E45; --heat2:#3F3448; --heat3:#5A3C4C; --heat4:#7A4752;
   --green:#3ECF9A; --red:#FF8F82; --nb-teal:#3ECF9A; --nb-coral:#FF8F82; --nb-amber:#F0B040; --focus:#8DB8FF; --on-accent:#0B1626; --accent-btn:#2F6FD0;}
  body[data-theme="dark"] th{ border-bottom-color:var(--gold); }
  body[data-theme="dark"] tr.total-row td{ background:#1C2C48; }
  body[data-theme="dark"] tr.subtotal-row td{ background:#182740; }
  body[data-theme="dark"] tr:hover td{ background:#1A2A45; }
  body[data-theme="dark"] .code-chip{ background:#22314C; color:var(--gold-bright); }
  body[data-theme="dark"] .cat-ic{ background:#1C2C48; }
  body[data-theme="dark"] .form-field input, body[data-theme="dark"] .form-field select{ background:#0F1A2C; color:var(--ink); border-color:var(--paper-line); }
  body[data-theme="dark"] .helptext{ background:#182740; }
  body[data-theme="dark"] .btn.ghost{ color:var(--ink-soft); }
  body[data-theme="dark"] .btn.ghost:hover{ background:#1C2C48; }
  body[data-theme="dark"] .nb-btn-ghost{ background:#1C2C48; color:var(--ink); }
  body[data-theme="dark"] .donut-wrap svg circle[fill="#fff"]{ fill:#16233A; }
  body[data-theme="dark"] input[type="date"], body[data-theme="dark"] input[type="month"]{ background:#0F1A2C; color:var(--ink); border-color:var(--paper-line); color-scheme:dark; }

  /* Donut chart */
  .donut-wrap{ display:flex; gap:22px; align-items:center; flex-wrap:wrap; }
  .bill-amt-row{ display:flex; align-items:center; gap:8px 10px; flex-wrap:wrap; margin-top:12px; font-size:13px; }
  .bill-amt-row input{ width:130px; }
  .q-kind{ margin:2px 0 12px; display:flex; width:100%; }
  .q-kind button{ flex:1; }
  .toast .toast-act{ margin-left:10px; background:none; border:1px solid rgba(255,255,255,.5); color:#fff; border-radius:6px; padding:3px 9px; font:inherit; font-size:13px; cursor:pointer; }
  .csv-map{ border:1px solid var(--paper-line); border-radius:8px; padding:10px 12px; margin-bottom:6px; background:var(--card); }
  .csv-map summary{ cursor:pointer; font-size:13px; }
  .csv-map .form-row{ flex-wrap:wrap; }
  .csv-lock{ font-size:12px; color:var(--ink-soft); white-space:nowrap; }
  .ab-groups{ display:flex; flex-wrap:wrap; gap:6px 14px; font-size:13px; color:var(--ink-soft); margin-bottom:12px; }
  .ab-groups b{ color:var(--nb-ink); }
  .ab-row{ padding:6px 0; }
  .ab-top{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; font-size:13px; }
  .ab-top > span:first-child{ min-width:0; overflow-wrap:anywhere; }
  .ab-top .mono{ white-space:nowrap; }
  .ab-bar{ height:8px; border-radius:4px; background:var(--paper-line); margin-top:5px; overflow:hidden; }
  .ab-bar i{ display:block; height:100%; background:var(--nb-teal); border-radius:4px; }
  .pill.grp{ background:var(--nb-blue-bg); color:var(--nb-ink); font-weight:500; font-size:12px; }
  .rp-bar{ display:flex; flex-direction:column; gap:10px; margin:-4px 0 14px; }
  .rp-custom{ display:flex; gap:12px; flex-wrap:wrap; }
  .rp-custom .form-field{ max-width:180px; }
  .rp-opts{ display:flex; gap:6px 18px; flex-wrap:wrap; font-size:13px; }
  #isTable, #bsTable, #tbTable{ min-width:100%; }
  .heat-day{ font:inherit; color:inherit; padding:0; width:100%; min-width:0; }
  .heat-day:hover{ transform:scale(1.06); }
  .heat-day:focus-visible{ outline:2px solid var(--focus, #2F6FD0); outline-offset:2px; }
  .heat-legend{ display:flex; align-items:center; gap:4px; margin-top:10px; font-size:12px; color:var(--ink-soft); flex-wrap:wrap; }
  .heat-legend i{ display:inline-block; width:14px; height:14px; border-radius:3px; border:1px solid var(--paper-line); }
  .legend{ display:flex; flex-direction:column; gap:7px; flex:1; min-width:180px; }
  .legend-row{ display:flex; align-items:center; gap:8px; font-size:13px; }
  .legend-dot{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
  .legend-row .amt{ margin-left:auto; font-family:inherit;font-variant-numeric:tabular-nums; }

  .dn-up{ color:var(--red); font-weight:600; } .dn-down{ color:var(--nb-teal); font-weight:600; }
  .palette-btn{ display:flex; justify-content:space-between; align-items:center; width:100%; margin-bottom:10px; padding:9px 12px; border-radius:8px; border:1px solid rgba(255,255,255,0.18); background:rgba(255,255,255,0.06); color:#E7ECF5; font:inherit; font-size:13px; cursor:pointer; }
  .palette-btn:hover{ background:rgba(255,255,255,0.12); }
  kbd{ font-family:inherit;font-variant-numeric:tabular-nums; font-size:12px; padding:1px 6px; border:1px solid var(--paper-line); border-bottom-width:2px; border-radius:6px; background:var(--paper); color:var(--ink-soft); }
  .palette-btn kbd{ background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.25); color:#C9D3E6; }
  .kbd-table td{ padding:7px 6px; border-top:1px solid var(--paper-line); font-size:15px; } .kbd-table tr:first-child td{ border-top:0; } .kbd-table td:first-child{ white-space:nowrap; width:1%; padding-right:16px; }
  .modal.palette{ width:520px; padding:14px; margin-top:-8vh; }
  #modalPalette{ align-items:flex-start; padding-top:14vh; }
  #paletteInput{ width:100%; padding:12px 14px; font-size:15px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font-family:inherit; }
  #paletteInput:focus-visible{ outline:2px solid var(--gold); outline-offset:1px; }
  #paletteList{ list-style:none; margin:8px 0 0; padding:0; max-height:50vh; overflow-y:auto; }
  #paletteList li{ display:flex; gap:10px; align-items:center; padding:10px 12px; border-radius:8px; cursor:pointer; font-size:15px; }
  #paletteList li .ph{ margin-left:auto; font-size:12px; color:var(--ink-soft); }
  #paletteList li[aria-selected="true"]{ background:var(--paper); outline:2px solid var(--gold); outline-offset:-2px; }
  .jmain.kb-focus, .row-menu-btn:focus-visible{ outline:2px solid var(--gold); outline-offset:2px; }
  @media (max-width:920px){ .palette-btn{ display:none; } }
  .coa-group{ border:1px solid var(--paper-line); border-radius:14px; margin-bottom:10px; background:var(--card); }
  .coa-group > summary{ cursor:pointer; padding:12px 14px; display:flex; gap:10px; align-items:baseline; }
  .coa-group[open] > summary{ border-bottom:1px solid var(--paper-line); }
  .coa-group .table-wrap{ overflow-x:auto; padding:0 6px 6px; }
  #coaSearch{ padding:9px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:15px; width:100%; }
  .rrow{ padding:13px 0; border-top:1px solid var(--paper-line); }
  .rrow:first-of-type{ border-top:0; }
  .rman{ display:none; align-items:center; gap:8px; margin-top:6px; font-size:13px; color:var(--ink-soft); }
  .rman input{ width:110px; text-align:right; font-family:inherit;font-variant-numeric:tabular-nums; padding:6px 8px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font-size:13px; }
  .rman input:focus-visible{ outline:2px solid var(--gold); outline-offset:1px; }
  .show-manual .rman{ display:flex; }
  .nb-value.sm{ font-size:20px; }
  @media (max-width:520px){ .nb-value.sm{ font-size:17px; white-space:nowrap; overflow-wrap:normal; } }
  .tax-remind{ border-left:4px solid var(--nb-amber); }
  .tax-remind ul{ margin:8px 0 0; padding:0; list-style:none; }
  .tax-remind li{ display:flex; justify-content:space-between; align-items:baseline; gap:2px 12px; padding:8px 0; border-top:1px solid var(--paper-line); font-size:15px; flex-wrap:wrap; }
  .tax-remind li .cap-note b{ color:var(--nb-teal); }
  .tax-remind li:first-child{ border-top:0; }
  .tax-sum td:first-child{ padding-right:10px; }
  .left-card.even{ background:var(--paper); border-color:var(--paper-line); }
  .bgroup{ margin-bottom:18px; }
  .bgroup-head{ display:flex; justify-content:space-between; align-items:baseline; gap:10px; margin:0 2px 8px; }
  .bgroup-head h2{ margin:0; font-size:15px; }
  .brow{ display:flex; gap:12px; padding:13px 0; border-top:1px solid var(--paper-line); }
  .brow:first-of-type{ border-top:0; }
  .bmain{ flex:1; min-width:0; }
  .btop{ display:flex; justify-content:space-between; align-items:baseline; gap:2px 10px; flex-wrap:wrap; }
  .bname{ font-weight:600; font-size:15px; }
  .bnums{ font-family:inherit;font-variant-numeric:tabular-nums; font-size:13px; white-space:nowrap; margin-left:auto; }
  .bnums .cap-note{ font-size:12px; }
  .bbar{ height:9px; border-radius:6px; background:var(--paper-line); margin:7px 0 5px; overflow:hidden; }
  .bbar > i{ display:block; height:100%; border-radius:6px; background:var(--green); }
  .bbar > i.near{ background:var(--nb-amber); } .bbar > i.over{ background:var(--red); } .bbar > i.reserve{ background:var(--nb-blue); }
  .bsub{ font-size:13px; color:var(--ink-soft); display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .bsub .over{ color:var(--red); font-weight:600; } .bsub .near{ color:var(--nb-amber); font-weight:600; } .bsub .good{ color:var(--nb-teal); font-weight:600; }
  .bedit{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr); gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--paper-line); }
  .bedit:first-of-type{ border-top:0; }
  #anaCmpMonth{ padding:8px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:15px; }
  #anaCmpMonth:focus-visible{ outline:2px solid var(--gold); outline-offset:1px; }
  .bedit select, .bedit input{ width:100%; min-width:0; padding:9px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:15px; }
  .bedit select:focus-visible, .bedit input:focus-visible{ outline:2px solid var(--gold); outline-offset:1px; }
  .bedit-roll{ grid-column:1 / -1; font-size:13px; color:var(--ink-soft); margin:-4px 0 0; } .bedit-roll:empty{ display:none; }
  .bedit .bedit-roll input{ width:auto; padding:0; }
  @media (max-width:760px){ .bedit{ grid-template-columns:1fr 1fr; } .bedit .cat-row{ grid-column:1 / -1; } }
  .bulk-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:12px; }
  .bulk-pair{ display:flex; gap:8px; align-items:stretch; } .bulk-pair select, .bulk-pair input{ flex:1; min-width:0; }
  .bulk-pair input{ padding:8px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-size:15px; }
  .rule-tag{ font-size:12px; background:var(--nb-blue-bg); color:var(--nb-ink); border-radius:4px; padding:1px 6px; margin-left:4px; }
  .check-line{ display:flex; align-items:center; gap:10px; font-size:15px; cursor:pointer; }
  .restore-drop{ margin-top:16px; border:2px dashed var(--paper-line); border-radius:14px; padding:16px; }
  .restore-drop.over{ border-color:var(--gold); background:var(--gold-dim); }
  .restore-box{ margin-top:12px; border:1px solid var(--paper-line); border-radius:14px; padding:14px; background:var(--paper); }
  .restore-box.bad{ border-color:var(--red); color:var(--red); }
  .restore-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; }
  .restore-grid > div{ display:flex; flex-direction:column; }
  .restore-grid b{ font-size:15px; }
  .restore-warn{ margin-top:8px; padding:8px 10px; border-radius:8px; background:var(--nb-amber-bg); font-size:13px; }
  details.adv > summary{ cursor:pointer; list-style:none; }
  details.adv > summary::-webkit-details-marker{ display:none; }
  details.adv > summary::before{ content:'▸ '; }
  details.adv[open] > summary::before{ content:'▾ '; }
  /* ---------- Month close ---------- */
  .mc-head{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
  .mc-head select{ width:auto; min-width:150px; }
  .mc-steps{ list-style:none; margin:14px 0 0; padding:0; }
  .mc-step{ display:flex; gap:12px; padding:14px 0; border-top:1px solid var(--paper-line); }
  .mc-step:first-child{ border-top:0; }
  .mc-num{ width:30px; height:30px; border-radius:50%; flex:0 0 30px; display:flex; align-items:center; justify-content:center; font-weight:700; font-size:15px; background:var(--paper-line); color:var(--ink-soft); }
  .mc-step.done .mc-num{ background:var(--nb-teal-bg); color:var(--nb-teal); }
  .mc-step.warn .mc-num{ background:var(--nb-amber-bg); color:var(--nb-amber); }
  .mc-step.next .mc-num{ background:var(--navy-900); color:#fff; }
  .mc-body{ flex:1; min-width:0; }
  .mc-title{ font-weight:600; font-size:15px; display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .mc-sub{ font-size:13px; color:var(--ink-soft); margin-top:2px; }
  .mc-actions{ margin-top:10px; display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
  .mc-recon{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:8px 0; border-top:1px dashed var(--paper-line); font-size:13px; }
  .mc-recon:first-of-type{ border-top:0; }
  .mc-recon .nm{ flex:1 1 150px; min-width:0; }
  .mc-recon input{ width:130px; padding:7px 10px; border:1px solid var(--paper-line); border-radius:8px; background:var(--card); color:var(--ink); font:inherit; font-variant-numeric:tabular-nums; }
  .mc-recon input:focus{ outline:2px solid var(--gold); outline-offset:1px; }
  .mc-done-banner{ background:var(--nb-teal-bg); color:var(--nb-teal); border-radius:14px; padding:12px 14px; font-weight:600; margin-top:12px; }
  @media (max-width:760px){ .mc-recon input{ flex:1 1 120px; width:auto; } }

  /* ---------- Mobile ---------- */
  .bottomnav{ display:none; }
  @media (max-width:760px){
    .sidebar{ display:none; }
    main{ padding:18px 16px calc(var(--bottomnav-h) + 28px); }
    input[type=checkbox]{ width:24px; height:24px; accent-color:var(--gold); flex-shrink:0; }
    .hdr-actions{ flex-wrap:wrap; }
    #btnAddDash{ display:none; }            /* the bottom-bar + does this on a phone */
    .nb-value{ font-size:20px; letter-spacing:-0.3px; overflow-wrap:anywhere; }
    .flex-between{ flex-wrap:wrap; gap:12px; }
    /* wide tables scroll inside their card instead of pushing the page sideways */
    .card:has(table){ overflow-x:auto; -webkit-overflow-scrolling:touch; }
    td.num, th.num, td.mono{ white-space:nowrap; }
    /* journal: each entry becomes a compact card */
    .card:has(#journalTable){ padding:6px 12px; overflow-x:visible; }
    #journalTable, #journalTable tbody{ display:block; width:100%; }
    #journalTable tr.jhead{ display:none; }
    #journalTable tr.jrow{ display:grid; grid-template-columns:32px 1fr auto 36px; grid-template-areas:"sel desc amt act" "sel date date date" "sel acc acc acc"; column-gap:8px; row-gap:3px; padding:12px 0; border-bottom:1px solid var(--paper-line); align-items:center; }
    #journalTable tr.jrow:last-child{ border-bottom:none; }
    #journalTable tr.jrow td{ display:block; border:none; padding:0; background:none !important; min-width:0; }
    #journalTable td.j-sel{ grid-area:sel; align-self:start; padding-top:0; }
    #journalTable td.j-desc{ grid-area:desc; font-weight:600; overflow-wrap:anywhere; }
    #journalTable td.j-amt{ grid-area:amt; font-size:15px; }
    #journalTable td.j-act{ grid-area:act; width:auto; }
    #journalTable td.j-date{ grid-area:date; font-size:12px; }
    #journalTable td.j-acc{ grid-area:acc; font-size:13px; }
    #journalTable .j-acc div{ max-width:none; }
    #journalTable .empty{ padding:24px 4px; display:block; }
    .row-menu-btn{ width:40px; height:40px; margin:-4px 0; }
    .modal .form-row > .form-field:has(select){ flex:1 1 100%; }
    .jf-toggle{ display:inline-flex; margin-bottom:10px; }
    .card.jf-card:not(.jf-open) .jf-extra{ display:none; }
    .modal-backdrop{ padding:10px; align-items:flex-end; }
    .modal{ width:100%; max-height:92vh; padding:20px 16px; border-radius:16px 16px 12px 12px; }
    .topbar{ flex-direction:column; align-items:stretch; }
    .grid4{ grid-template-columns:repeat(2,1fr); }
    .bottomnav{
      display:flex; position:fixed; bottom:0; left:0; right:0; height:var(--bottomnav-h); background:var(--navy-900);
      border-top:2px solid var(--gold); z-index:60; overflow-x:auto;
    }
    .bottomnav button{
      flex:1; min-width:64px; background:none; border:none; color:#AEB8CB; display:flex; flex-direction:column;
      align-items:center; justify-content:center; gap:2px; font-size:12px; font-weight:600; font-family:'Inter',sans-serif;
    }
    .bottomnav button .ic{ font-size:17px; }
    .bottomnav button.active{ color:var(--gold-bright); }
    .bottomnav button{ position:relative; }
    .bottomnav .bn-add{ flex:0 0 76px; min-width:76px; }
    .bottomnav .bn-plus{ width:50px; height:50px; border-radius:50%; background:var(--gold); color:var(--navy-900); font-size:32px; line-height:46px; font-weight:500; margin-top:-22px; box-shadow:0 4px 12px rgba(0,0,0,.35); border:3px solid var(--navy-900); display:block; }
    .bottomnav .nav-dot{ display:none; position:absolute; top:10px; left:calc(50% + 8px); width:9px; height:9px; border-radius:50%; background:var(--nb-coral); border:2px solid var(--navy-900); }
    .fab{ display:none !important; }        /* the + now lives in the middle of the bottom bar */
    .toast{ bottom:calc(var(--bottomnav-h) + 18px); left:16px; right:16px; max-width:none; }
    #undoBar{ bottom:calc(var(--bottomnav-h) + 18px) !important; width:calc(100% - 32px); box-sizing:border-box; justify-content:space-between; }
    .mobile-nav-backdrop{ display:none; position:fixed; inset:0; background:rgba(0,0,0,0.5); z-index:70; }
    .mobile-nav-backdrop.active{ display:block; }
    .mobile-nav-panel{
      position:fixed; bottom:0; left:0; right:0; background:var(--navy-900); border-radius:16px 16px 0 0;
      max-height:70vh; overflow-y:auto; z-index:71; padding:12px 8px calc(var(--bottomnav-h) + 12px);
      transform:translateY(100%); transition:transform .2s ease;
    }
    .mobile-nav-backdrop.active .mobile-nav-panel{ transform:translateY(0); }
    .mobile-nav-panel .nav-section-label{ padding:10px 14px 4px; }
    .mobile-nav-panel button{
      width:100%; display:flex; align-items:center; gap:10px; padding:12px 14px; background:none; border:none;
      color:#C9D2E3; font-size:15px; font-family:'Inter',sans-serif; text-align:left; border-radius:8px;
    }
    .mobile-nav-panel button:active{ background:rgba(255,255,255,0.08); }
    .mobile-nav-panel button .ic{ font-size:17px; width:22px; text-align:center; }
    .mobile-nav-panel button.active{ color:var(--gold-bright); background:rgba(255,255,255,0.06); }
    .m-appbar{ display:flex; }
    .bottomnav button svg{ margin-bottom:1px; }
  }
  /* ---------- v46 navigation: five places, tabs inside each ---------- */
  nav.sidenav button svg, .side-settings svg{ flex-shrink:0; opacity:.9; }
  nav.sidenav button .nav-badge{ margin-left:auto; }
  .side-settings{ display:flex; align-items:center; gap:11px; background:none; border:none; color:#AEB8CB; padding:9px 12px; border-radius:8px; font-family:inherit; font-size:15px; font-weight:600; cursor:pointer; text-align:left; width:100%; }
  .side-settings:hover{ background:rgba(255,255,255,0.06); color:#fff; }
  .side-settings.active{ background:var(--gold-dim); color:var(--gold-bright); }
  .palette-btn .pb-l{ display:inline-flex; align-items:center; gap:8px; }
  .subnav{ display:flex; gap:4px; border-bottom:1px solid var(--paper-line); margin:-6px 0 18px; overflow-x:auto; scrollbar-width:none; }
  .subnav::-webkit-scrollbar{ display:none; }
  .subnav button{ flex-shrink:0; background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-1px; padding:10px 12px; font-family:inherit; font-size:15px; font-weight:600; color:var(--ink-soft); cursor:pointer; white-space:nowrap; }
  .subnav button:hover{ color:var(--ink); }
  .subnav button.active{ color:var(--ink); border-bottom-color:var(--gold); }
  .m-appbar{ display:none; align-items:center; justify-content:space-between; margin:-6px 0 12px; }
  .m-brand{ display:flex; align-items:center; gap:8px; font-weight:700; font-size:15px; color:var(--ink); }
  .m-brand .glyph{ width:28px; height:28px; border-radius:8px; }
  .m-acct{ width:40px; height:40px; border-radius:50%; border:1px solid var(--paper-line); background:var(--card); color:var(--ink); display:flex; align-items:center; justify-content:center; cursor:pointer; }
  .m-acct.active{ border-color:var(--gold); color:var(--gold); }
  .chips{ flex-wrap:wrap; }
  .lc-warn{ color:var(--red); font-weight:600; margin-top:6px; }
  @media (max-width:760px){
    .m-appbar{ display:flex; }
    /* Transactions on a phone: title and + New on one line, quick filters in one scrolling row → more entries on the first screen */
    .jhead2{ flex-wrap:nowrap; align-items:center; margin-bottom:10px; }
    #journalSubtitle{ display:none; }
    .chips{ flex-wrap:nowrap; }
    .subnav{ margin-top:-4px; }
    /* tax tables on a phone: labels wrap, amounts stay on one line, inputs go under their label */
    #taxContent table td, #taxContent table th{ padding:8px 4px; }
    #taxContent table td:first-child{ white-space:normal; overflow-wrap:anywhere; }
    #taxContent table td.num, #taxContent table th.num{ white-space:nowrap; font-size:13px; }
    #taxContent table td input{ display:block; margin:6px 0 0 !important; width:100% !important; max-width:140px; }
  }
  .tax-prof{ display:flex; flex-wrap:wrap; gap:4px 14px; align-items:center; margin:6px 0; }
  .budget-sum{ margin-bottom:16px; }
  .budget-sum .bs-line{ display:flex; flex-wrap:wrap; gap:4px 12px; align-items:baseline; font-size:15px; color:var(--ink-soft); }
  .budget-sum .bs-line b{ color:var(--ink); font-size:15px; }
  .budget-sum.over .bs-line b{ color:var(--red); }
  .rv-card .rv-row{ display:flex; align-items:center; gap:10px; padding:8px 0; border-top:1px solid var(--paper-line); }
  .rv-card .rv-row:first-of-type{ border-top:none; }
  .rv-card .rv-row .jtext{ flex:1; min-width:0; }
  .j-bal{ font-size:12px; color:var(--ink-soft); white-space:nowrap; text-align:right; }
  /* ---------- v46 design system: one number style, three buttons, one brand colour ---------- */
  .mono, .num, .stat-value, .jamt, .nb-value, .lc-amt, .dc-bal, td.num{ font-family:'Inter',sans-serif; font-variant-numeric:tabular-nums; letter-spacing:0; }
  .nb-btn, .btn{ border-radius:8px; font-family:'Inter',sans-serif; font-weight:600; }
  .nb-btn{ background:var(--accent-btn); color:var(--on-accent); padding:9px 16px; font-size:13px; }
  .nb-btn-ghost, .btn.secondary{ background:none; border:1px solid var(--paper-line); color:var(--ink); border-radius:8px; }
  .btn.small{ border-radius:8px; font-size:13px; }
  .link-btn, .back-link{ color:var(--link); background:none; border:none; font-weight:600; cursor:pointer; padding:4px 0; font-family:inherit; font-size:13px; }
  .modal{ border-top:none; border-radius:14px; }
  .modal h3{ font-family:'Inter',sans-serif; font-weight:600; font-size:20px; }
  input, select, textarea{ background:var(--card) !important; }
  .grid4, .grid2{ row-gap:16px; }
  .grid4 > .card, .grid2 > .card, .grid4 > .nb-card, .grid2 > .nb-card{ margin-bottom:0; }
  body[data-theme="dark"]{ --accent-btn:#22D3C5; --on-accent:#04202A; }
  body[data-theme="dark"] .btn:not(.ghost):not(.secondary), body[data-theme="dark"] .nb-btn{ color:#0B1626; }
