/* ========================================================================== 
   JuriBooks Accounting Workspace v1
   Odoo-led operational presentation for Journal Entry + General Ledger.

   PRESENTATION ONLY. Scoped behind body.jb-acct-workspace. The layer does
   not redefine accounting tokens, calculations, storage, posting payloads,
   account classifications, exports, or historical records.
   ========================================================================== */

/* Shared page treatment --------------------------------------------------- */
html body.jb-acct-workspace :is(#view-batch,#view-ledger) {
  --jaw-accent: var(--primary-blue, #1672e8);
  --jaw-accent-hover: var(--primary-blue-hover, #0f63ce);
  --jaw-accent-soft: var(--primary-blue-soft, #eaf3ff);
  --jaw-canvas: var(--canvas, #f4f8fc);
  --jaw-surface: var(--surface, #fff);
  --jaw-surface-soft: var(--surface-soft, #f8fafd);
  --jaw-border: var(--border, #dfe6ee);
  --jaw-border-strong: var(--border-strong, #c8d1dc);
  --jaw-ink: var(--ink, #162033);
  --jaw-ink-soft: var(--ink-soft, #596579);
  --jaw-muted: var(--mute, #6f7b8d);
  --jaw-success: var(--success-ink, #0f7a52);
  --jaw-success-soft: var(--success-soft, #e3f7ef);
  --jaw-danger: var(--danger-ink, #b42335);
  --jaw-danger-soft: var(--danger-soft, #fde8ec);
  --jaw-warning: var(--warning-ink, #9a6500);
  --jaw-warning-soft: var(--warning-soft, #fff4d8);
  --jaw-shadow: 0 1px 2px rgba(16,24,40,.04), 0 7px 20px -15px rgba(16,24,40,.30);
  font-family: var(--font-exec, var(--font-ui, "Inter Tight", Arial, sans-serif));
}

html body.jb-acct-workspace #view-batch.batch-max {
  background: var(--jaw-canvas);
  padding: 16px 22px 72px;
}

/* Journal entry ----------------------------------------------------------- */
html body.jb-acct-workspace #view-batch .jrnwin {
  max-width: none;
  margin: 0;
  overflow: visible;
  border: 1px solid var(--jaw-border);
  border-radius: 9px;
  background: var(--jaw-surface);
  box-shadow: var(--jaw-shadow);
}
html body.jb-acct-workspace #view-batch .jrnwin.oob {
  border-color: var(--jaw-border);
  box-shadow: inset 3px 0 0 var(--jaw-danger), var(--jaw-shadow);
}
html body.jb-acct-workspace #view-batch .jrn-freeze {
  z-index: 45;
  overflow: visible;
  border-radius: 9px 9px 0 0;
  background: var(--jaw-surface);
  box-shadow: 0 1px 0 var(--jaw-border), 0 8px 18px -18px rgba(16,24,40,.8);
}

/* Document identity and deterministic balance state. */
html body.jb-acct-workspace #view-batch .sw-title {
  min-height: 48px;
  padding: 9px 14px;
  gap: 9px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  border-radius: 9px 9px 0 0;
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .sw-title .ico {
  width: 28px;
  height: 28px;
  border-radius: 6px;
  background: #112b4a;
  color: #fff;
  font-family: var(--font-exec, var(--font-ui));
  font-size: 10px;
  font-weight: 700;
}
html body.jb-acct-workspace #view-batch .sw-title .t {
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -.005em;
}
html body.jb-acct-workspace #view-batch .sw-title .t::after {
  content: "Draft workspace";
  display: block;
  margin-top: 1px;
  color: var(--jaw-muted);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: .01em;
  text-transform: none;
}
html body.jb-acct-workspace #view-batch .sw-title .st {
  margin-left: auto;
  padding: 4px 9px;
  border: 1px solid color-mix(in srgb, var(--jaw-success) 25%, transparent);
  border-radius: 999px;
  background: var(--jaw-success-soft);
  color: var(--jaw-success);
  font-family: var(--font-exec, var(--font-ui));
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: .055em;
  line-height: 18px;
  text-transform: uppercase;
}
html body.jb-acct-workspace #view-batch .jrnwin.oob .sw-title .st {
  border-color: color-mix(in srgb, var(--jaw-danger) 25%, transparent);
  background: var(--jaw-danger-soft);
  color: var(--jaw-danger);
}

/* One action hierarchy: Post is primary; New/List/utilities are secondary;
   destructive actions do not compete with posting. */
html body.jb-acct-workspace #view-batch .sw-toolbar {
  min-height: 50px;
  align-items: center;
  gap: 5px;
  padding: 7px 12px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .sw-tb {
  min-width: 0;
  min-height: 34px;
  height: 34px;
  flex-direction: row;
  justify-content: center;
  gap: 6px;
  padding: 0 10px;
  border: 1px solid transparent;
  border-radius: 5px;
  background: transparent;
  color: var(--jaw-ink-soft);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 12px;
  font-weight: 600;
  line-height: 1;
}
html body.jb-acct-workspace #view-batch .sw-tb svg {
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  stroke: currentColor;
}
html body.jb-acct-workspace #view-batch .sw-tb .car {
  position: static;
  margin-left: 1px;
  color: currentColor;
  font-size: 9px;
}
html body.jb-acct-workspace #view-batch .sw-tb:hover {
  border-color: var(--jaw-border);
  background: var(--jaw-surface-soft);
  color: var(--jaw-ink);
}
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="post"] {
  border-color: var(--jaw-accent);
  background: var(--jaw-accent);
  color: #fff;
}
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="post"]:hover {
  border-color: var(--jaw-accent-hover);
  background: var(--jaw-accent-hover);
  color: #fff;
}
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="clear"],
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="delete"] {
  color: var(--jaw-danger);
}
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="clear"]:hover,
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="delete"]:hover {
  border-color: color-mix(in srgb, var(--jaw-danger) 20%, var(--jaw-border));
  background: var(--jaw-danger-soft);
}
html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="reports"] {
  margin-left: auto;
}
html body.jb-acct-workspace #view-batch .sw-menu-pop {
  top: calc(100% + 6px);
  min-width: 232px;
  padding: 5px;
  border: 1px solid var(--jaw-border);
  border-radius: 7px;
  background: var(--jaw-surface);
  box-shadow: 0 14px 32px -12px rgba(16,24,40,.35);
}
html body.jb-acct-workspace #view-batch .sw-menu-pop button {
  min-height: 36px;
  padding: 7px 9px;
  border-radius: 4px;
  font-size: 12px;
}
html body.jb-acct-workspace #view-batch .sw-menu-pop button:hover {
  background: var(--jaw-accent-soft);
}

/* Entry navigation behaves like a compact form status/action bar. */
html body.jb-acct-workspace #view-batch .sw-band {
  min-height: 40px;
  justify-content: flex-start;
  gap: 7px;
  padding: 6px 14px;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface-soft);
}
html body.jb-acct-workspace #view-batch .sw-band .bt {
  margin-right: auto;
  color: var(--jaw-ink-soft);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .045em;
  text-transform: uppercase;
}
html body.jb-acct-workspace #view-batch .sw-band .navb {
  width: 30px;
  height: 28px;
  border: 1px solid var(--jaw-border);
  border-radius: 5px;
  background: var(--jaw-surface);
  color: var(--jaw-ink-soft);
}
html body.jb-acct-workspace #view-batch .sw-band .navb:hover:not(:disabled) {
  border-color: var(--jaw-accent);
  background: var(--jaw-accent-soft);
  color: var(--jaw-accent);
}
html body.jb-acct-workspace #view-batch .sw-band .cnt {
  min-width: 58px;
  color: var(--jaw-muted);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 11px;
  font-variant-numeric: tabular-nums lining-nums;
  text-align: right;
}

/* Header fields: compact, horizontal and scan-friendly. */
html body.jb-acct-workspace #view-batch .sw-head {
  display: flex;
  align-items: center;
  gap: 28px;
  min-height: 68px;
  padding: 11px 16px;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .sw-head .row {
  flex-wrap: nowrap;
  gap: 9px;
}
html body.jb-acct-workspace #view-batch .sw-head label.fl {
  min-width: auto;
  color: var(--jaw-ink-soft);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .025em;
  text-align: left;
  text-transform: none;
}
html body.jb-acct-workspace #view-batch .sw-head input[type="text"],
html body.jb-acct-workspace #view-batch .sw-head input[type="date"] {
  height: 36px;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid var(--jaw-border-strong);
  border-radius: 5px;
  background: var(--jaw-surface);
  color: var(--jaw-ink);
  font-size: 13px;
}
html body.jb-acct-workspace #view-batch .sw-head input:focus {
  border-color: var(--jaw-accent);
  outline: 0;
  box-shadow: 0 0 0 3px var(--jaw-accent-soft);
}

/* Journal worksheet: compact, flat and accounting-first. */
html body.jb-acct-workspace #view-batch .jwrap {
  padding: 0;
  border: 0;
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .jtbl {
  width: 100%;
  min-width: 980px;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
}
html body.jb-acct-workspace #view-batch .jtbl thead th {
  height: 36px;
  padding: 0 10px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  background: #f1f5f9;
  color: #4f5d70;
  font-family: var(--font-exec, var(--font-ui));
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .025em;
  line-height: 36px;
  text-transform: none;
}
html body.jb-acct-workspace #view-batch .jtbl thead th:nth-child(3),
html body.jb-acct-workspace #view-batch .jtbl thead th:nth-child(4) {
  background: #edf3f9;
}
html body.jb-acct-workspace #view-batch .jtbl tbody td {
  height: 48px;
  min-height: 48px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface);
  vertical-align: middle;
}
html body.jb-acct-workspace #view-batch .jtbl tbody td + td {
  border-left: 1px solid #eef2f6;
}
html body.jb-acct-workspace #view-batch .jtbl tbody tr:hover td {
  background: #f8fbff;
}
html body.jb-acct-workspace #view-batch .jtbl .gl-cell {
  padding: 5px 9px;
}
html body.jb-acct-workspace #view-batch .jtbl .pill {
  display: inline-flex;
  align-items: center;
  min-height: 21px;
  height: 21px;
  padding: 0 7px;
  border: 1px solid #ced9e5;
  border-radius: 4px;
  background: #f2f6fa;
  color: #143f68;
  font-family: var(--font-code, "IBM Plex Mono", monospace);
  font-size: 14px;
  font-weight: 600;
  line-height: 19px;
}
html body.jb-acct-workspace #view-batch .jtbl .pill.flag {
  border-color: #e7c66d;
  background: var(--jaw-warning-soft);
  color: var(--jaw-warning);
  /* Empty state: the pill reads "choose..." -- prose, not an account code.
     §3 keeps monospace for identifiers only, so the placeholder takes the
     interface face. Once a code is chosen the .flag class is dropped and the
     identifier rule above applies again. */
  font-family: var(--font-ui);
}
html body.jb-acct-workspace #view-batch .jtbl .gl-sub {
  min-height: 13px;
  margin-top: 2px;
  overflow: hidden;
  color: var(--jaw-muted);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 12px;
  font-weight: 500;
  line-height: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html body.jb-acct-workspace #view-batch .jtbl .jcell,
html body.jb-acct-workspace #view-batch .jtbl select.jobsel {
  width: 100%;
  height: 47px;
  min-height: 47px;
  padding: 0 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 14px;   /* journal cells: documented floor (V5 T6/T7) */
  font-weight: 500;
  line-height: 47px;
  box-shadow: none;
}
html body.jb-acct-workspace #view-batch .jtbl .jcell.num {
  padding-right: 11px;
  font-family: var(--font-exec, var(--font-ui));
  font-size: 14px;
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
html body.jb-acct-workspace #view-batch .jtbl .jcell.deb { color: #15558c; }
html body.jb-acct-workspace #view-batch .jtbl .jcell.cr { color: #983442; }
html body.jb-acct-workspace #view-batch .jtbl .jcell:focus,
html body.jb-acct-workspace #view-batch .jtbl select.jobsel:focus {
  position: relative;
  z-index: 1;
  border-radius: 0;
  outline: 0;
  background: #f6faff;
  box-shadow: inset 0 -2px 0 var(--jaw-accent);
}
html body.jb-acct-workspace #view-batch .jtbl .jx {
  width: 28px;
  height: 28px;
  color: #8b97a8;
}
html body.jb-acct-workspace #view-batch .jtbl .jx:hover {
  background: var(--jaw-danger-soft);
  color: var(--jaw-danger);
}
html body.jb-acct-workspace #view-batch .jtbl tr.padrow td {
  height: 36px;
  min-height: 36px;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .jtbl tr.padrow:hover td {
  background: var(--jaw-accent-soft);
}
html body.jb-acct-workspace #view-batch .jtbl tr.padrow:first-of-type td:first-child::after {
  content: "+  Add a line";
  padding-left: 9px;
  color: var(--jaw-accent);
  font-size: 12px;
  font-weight: 600;
}

/* Part-payment disclosure is a flat section, not a nested dashboard card. */
html body.jb-acct-workspace #view-batch .jrnwin > .card,
html body.jb-acct-workspace #view-batch .jrnwin > .jwrap + .card {
  margin: 0;
  padding: 10px 14px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  border-radius: 0;
  background: var(--jaw-surface-soft);
  box-shadow: none;
}

/* Totals retain the exact engine values; only hierarchy/alignment changes. */
html body.jb-acct-workspace #view-batch .sw-foot {
  padding: 10px 16px 12px;
  border-top: 0;
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-batch .sw-totrow {
  grid-template-columns: 162px minmax(220px,1fr) 118px 118px 140px 240px 34px;
  min-height: 28px;
  color: var(--jaw-ink-soft);
  font-size: 12px;
}
html body.jb-acct-workspace #view-batch .sw-totrow .lab {
  color: var(--jaw-ink-soft);
  font-size: 12px;
  font-weight: 600;
}
html body.jb-acct-workspace #view-batch .sw-totrow .val {
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 13px;
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
html body.jb-acct-workspace #view-batch .sw-totrow.oobr .val:not(.zero) { color: var(--jaw-danger); }
html body.jb-acct-workspace #view-batch .sw-totrow.oobr .val.zero { color: var(--jaw-success); }
html body.jb-acct-workspace #view-batch .sw-status {
  min-height: 38px;
  padding: 7px 13px;
  border-top: 1px solid var(--jaw-border);
  border-radius: 0 0 9px 9px;
  background: var(--jaw-surface-soft);
}

/* Existing import/register reveal remains available but recedes from the main
   posting workflow. */
html body.jb-acct-workspace #view-batch #jb3Reveal {
  margin: 0 0 9px;
  padding: 5px 7px;
  border-radius: 5px;
  color: var(--jaw-muted);
  font-size: 11px;
}
html body.jb-acct-workspace #view-batch #jb3Reveal:hover {
  background: var(--jaw-accent-soft);
  color: var(--jaw-accent);
}
html body.jb-acct-workspace #view-batch #jb2JrnReg {
  border: 1px solid var(--jaw-border);
  border-radius: 7px;
  box-shadow: none;
}

/* General ledger --------------------------------------------------------- */
html body.jb-acct-workspace #view-ledger.jb-ledger-pro {
  color: var(--jaw-ink);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp {
  margin: 0 0 14px;
  border: 1px solid var(--jaw-border);
  border-radius: 8px;
  background: var(--jaw-surface);
  box-shadow: 0 1px 2px rgba(16,24,40,.03);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp-top {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 5px 8px 5px 13px;
  border-bottom: 1px solid var(--jaw-border);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtabs {
  display: flex;
  align-items: stretch;
  gap: 1px;
  width: auto;
  margin: 0;
  padding: 0;
  overflow: visible;
  border: 0;
  border-radius: 0;
  background: transparent;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtab {
  position: relative;
  min-height: 36px;
  padding: 0 11px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: var(--jaw-ink-soft);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 12px;
  font-weight: 600;
  box-shadow: none;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtab:hover {
  background: var(--jaw-surface-soft);
  color: var(--jaw-ink);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtab.on {
  background: var(--jaw-accent-soft);
  color: var(--jaw-accent);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtab.on::after {
  content: "";
  position: absolute;
  right: 9px;
  bottom: -6px;
  left: 9px;
  height: 2px;
  border-radius: 2px;
  background: var(--jaw-accent);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-actions {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 0 10px;
  border: 1px solid var(--jaw-border);
  border-radius: 5px;
  background: var(--jaw-surface);
  color: var(--jaw-ink-soft);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-btn:hover {
  border-color: #b8c8d9;
  background: var(--jaw-surface-soft);
  color: var(--jaw-ink);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-btn--primary {
  border-color: var(--jaw-accent);
  background: var(--jaw-accent);
  color: #fff;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-btn--primary:hover {
  border-color: var(--jaw-accent-hover);
  background: var(--jaw-accent-hover);
  color: #fff;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-btn svg {
  width: 14px;
  height: 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp-filter {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 50px;
  padding: 7px 10px 7px 13px;
  background: var(--jaw-surface-soft);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-cp-filter:empty { display: none; }
html body.jb-acct-workspace #view-ledger .gl-pick {
  display: flex;
  align-items: center;
  flex: 1 1 400px;
  gap: 8px;
  margin: 0;
}
html body.jb-acct-workspace #view-ledger .gl-pick .fld {
  color: var(--jaw-ink-soft);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
html body.jb-acct-workspace #view-ledger #glAcctInput {
  width: min(420px, 100%);
  max-width: 420px;
  height: 36px;
  min-height: 36px;
  padding: 0 32px 0 10px;
  border: 1px solid var(--jaw-border-strong);
  border-radius: 5px;
  background: var(--jaw-surface);
  color: var(--jaw-ink);
  font-size: 13px;
  font-weight: 500;
}
html body.jb-acct-workspace #view-ledger #glAcctInput:hover {
  border-color: #aebdce;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-find {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 1 330px;
  min-width: 220px;
  margin-left: auto;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-find svg {
  position: absolute;
  left: 10px;
  width: 14px;
  height: 14px;
  fill: none;
  stroke: var(--jaw-muted);
  stroke-width: 1.8;
  pointer-events: none;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-find input,
html body.jb-acct-workspace #view-ledger .jb-ledger-status {
  width: 100%;
  height: 36px;
  min-height: 36px;
  border: 1px solid var(--jaw-border-strong);
  border-radius: 5px;
  background: var(--jaw-surface);
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: 12px;
  font-weight: 500;
  box-shadow: none;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-find input { padding: 0 10px 0 31px; }
html body.jb-acct-workspace #view-ledger .jb-ledger-status {
  width: 118px;
  padding: 0 8px;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-find input:focus,
html body.jb-acct-workspace #view-ledger .jb-ledger-status:focus {
  border-color: var(--jaw-accent);
  outline: 0;
  box-shadow: 0 0 0 3px var(--jaw-accent-soft);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-count {
  min-width: 80px;
  color: var(--jaw-muted);
  font-size: 11px;
  font-weight: 600;
  text-align: right;
  white-space: nowrap;
}

/* Ledger sheets: one bordered surface, 36px rows, restrained hierarchy. */
html body.jb-acct-workspace #view-ledger > .card,
html body.jb-acct-workspace #view-ledger .jb-ledger-cp + .card {
  overflow: hidden;
  padding: 0;
  border: 1px solid var(--jaw-border);
  border-radius: 8px;
  background: var(--jaw-surface);
  box-shadow: 0 1px 2px rgba(16,24,40,.03);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-register-head {
  margin: 0;
  padding: 13px 15px;
  border-bottom: 1px solid var(--jaw-border);
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-ledger .jb-ledger-register-head .eyebrow {
  color: var(--jaw-ink);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-tb-card > :not(table):not(.tb-tbl) {
  max-width: none;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-tb-card .stmt-title,
html body.jb-acct-workspace #view-ledger .jb-ledger-tb-card .stmt-entity,
html body.jb-acct-workspace #view-ledger .jb-ledger-tb-card .stmt-sub {
  margin-left: 18px;
  margin-right: 18px;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-tb-card .stmt-title { margin-top: 18px; }
html body.jb-acct-workspace #view-ledger .tb-tbl {
  width: 100%;
  border: 0;
  border-collapse: collapse;
  background: var(--jaw-surface);
}
html body.jb-acct-workspace #view-ledger .tb-tbl thead th {
  height: 36px;
  padding: 0 10px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  background: #f1f5f9;
  color: #4f5d70;
  font-family: var(--font-exec, var(--font-ui));
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .025em;
  line-height: 36px;
  text-transform: none;
}
html body.jb-acct-workspace #view-ledger .tb-tbl tbody td {
  height: 36px;
  min-height: 36px;
  padding: 6px 10px;
  border: 0;
  border-bottom: 1px solid var(--jaw-border);
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: var(--text-md);
  font-weight: 500;
  line-height: 1.35;
  vertical-align: middle;
}
html body.jb-acct-workspace #view-ledger .tb-tbl tbody tr:nth-child(even) td {
  background: #fbfcfe;
}
html body.jb-acct-workspace #view-ledger .tb-tbl tbody tr:hover td {
  background: #f1f7ff;
}
html body.jb-acct-workspace #view-ledger .tb-tbl td.r,
html body.jb-acct-workspace #view-ledger .tb-tbl td.num,
html body.jb-acct-workspace #view-ledger .tb-tbl tfoot td.r {
  font-family: var(--font-exec, var(--font-ui));
  font-weight: 600;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
html body.jb-acct-workspace #view-ledger .tb-tbl .mono,
html body.jb-acct-workspace #view-ledger .tb-tbl .coa-code {
  font-family: var(--font-code, "IBM Plex Mono", monospace);
  font-size: var(--text-sm);
  font-weight: 600;
}
html body.jb-acct-workspace #view-ledger .tb-tbl tfoot td {
  height: 40px;
  padding: 7px 10px;
  border: 0;
  border-top: 2px solid var(--jaw-border-strong);
  background: #f5f8fb;
  color: var(--jaw-ink);
  font-family: var(--font-exec, var(--font-ui));
  font-size: var(--text-md);
  font-weight: 700;
}
html body.jb-acct-workspace #view-ledger .cat-badge {
  border: 1px solid var(--jaw-border);
  border-radius: 999px;
  background: var(--jaw-surface-soft);
  color: var(--jaw-ink-soft);
  font-size: var(--text-xs);
  font-weight: 600;
}
html body.jb-acct-workspace #view-ledger .kebab > button,
html body.jb-acct-workspace #view-ledger .kebab-btn {
  width: 30px;
  height: 30px;
  border-radius: 5px;
}
html body.jb-acct-workspace #view-ledger tr[data-jb-filtered="1"] { display: none; }

/* Trial balance builders sometimes add an inner report wrapper. Keep that
   report typography but remove card-inside-card treatment. */
html body.jb-acct-workspace #view-ledger .jb-ledger-cp + .card .card {
  border: 0;
  box-shadow: none;
}

/* Cascade bridge ----------------------------------------------------------
   The submitted build has older presentation layers that mark typography,
   inputs and the maximised journal with !important. The new adapter disables
   the two superseded runtime journal skins. Only the declarations below still
   need an importance bridge; keeping them together prevents another broad
   specificity layer from spreading through the application. */
html body.jb-acct-workspace #view-batch.batch-max {
  padding: 16px 22px 72px !important;
  background: var(--jaw-canvas) !important;
}
html body.jb-acct-workspace #view-batch .jrnwin { overflow: visible !important; }
html body.jb-acct-workspace #view-batch .sw-head input[type="text"],
html body.jb-acct-workspace #view-batch .sw-head input[type="date"] {
  height: 36px !important;
  min-height: 36px !important;
  padding: 0 10px !important;
  border: 1px solid var(--jaw-border-strong) !important;
  border-radius: 5px !important;
  background: var(--jaw-surface) !important;
  color: var(--jaw-ink) !important;
  font-size: 13px !important;
}
html body.jb-acct-workspace #view-batch .jtbl thead th {
  color: #4f5d70 !important;
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .025em !important;
}
html body.jb-acct-workspace #view-batch .jtbl tbody td {
  color: var(--jaw-ink) !important;
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
}
html body.jb-acct-workspace #view-batch .jtbl .pill:not(.flag) {
  font-family: var(--font-code, "IBM Plex Mono", monospace) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
html body.jb-acct-workspace #view-batch .jtbl .gl-sub {
  color: var(--jaw-muted) !important;
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
}
html body.jb-acct-workspace #view-batch .jtbl .jcell,
html body.jb-acct-workspace #view-batch .jtbl select.jobsel {
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 14px !important;   /* journal cells: documented floor (V5 T6/T7) */
  font-weight: 500 !important;
}
html body.jb-acct-workspace #view-batch .jtbl .jcell.num {
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
html body.jb-acct-workspace #view-batch .jrnwin > .card,
html body.jb-acct-workspace #view-batch .jrnwin > .jwrap + .card {
  margin: 0 !important;
  padding: 10px 14px !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}
html body.jb-acct-workspace #view-batch .sw-totrow .val {
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
}
html body.jb-acct-workspace #view-ledger > .card,
html body.jb-acct-workspace #view-ledger .jb-ledger-cp + .card {
  padding: 0 !important;
  border: 1px solid var(--jaw-border) !important;
  border-radius: 8px !important;
  box-shadow: 0 1px 2px rgba(16,24,40,.03) !important;
}
html body.jb-acct-workspace #view-ledger #glAcctInput {
  width: min(420px, 100%) !important;
  max-width: 420px !important;
}
html body.jb-acct-workspace #view-ledger .jb-ledger-register-head {
  margin: 0 !important;
  padding: 13px 15px !important;
}
html body.jb-acct-workspace #view-ledger .tb-tbl thead th {
  color: #4f5d70 !important;
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .025em !important;
}
html body.jb-acct-workspace #view-ledger .tb-tbl tbody td {
  color: var(--jaw-ink) !important;
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-size: var(--text-md) !important;
  font-weight: 500 !important;
}
html body.jb-acct-workspace #view-ledger .tb-tbl td.r,
html body.jb-acct-workspace #view-ledger .tb-tbl td.num,
html body.jb-acct-workspace #view-ledger .tb-tbl tfoot td.r {
  font-family: var(--font-exec, var(--font-ui)) !important;
  font-weight: 600 !important;
}
html body.jb-acct-workspace #view-ledger .tb-tbl .mono,
html body.jb-acct-workspace #view-ledger .tb-tbl .coa-code {
  font-family: var(--font-code, "IBM Plex Mono", monospace) !important;
  font-size: var(--text-sm) !important;
  font-weight: 600 !important;
}

/* Responsive and touch ---------------------------------------------------- */
@media (max-width: 1100px) {
  html body.jb-acct-workspace #view-batch .sw-toolbar { overflow-x: auto; flex-wrap: nowrap; }
  html body.jb-acct-workspace #view-batch .sw-tb[data-jb-action="reports"] { margin-left: 0; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp-top { align-items: flex-start; flex-wrap: wrap; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-actions { width: 100%; margin-left: 0; }
}
@media (max-width: 767px) {
  html body.jb-acct-workspace #view-batch.batch-max { padding: 10px 10px 64px; }
  html body.jb-acct-workspace #view-batch .sw-head { align-items: flex-start; flex-direction: column; gap: 10px; }
  html body.jb-acct-workspace #view-batch .sw-head .row { width: 100%; flex-wrap: wrap; }
  html body.jb-acct-workspace #view-batch .sw-tb,
  html body.jb-acct-workspace #view-batch .sw-band .navb,
  html body.jb-acct-workspace #view-ledger .jb-ledger-btn,
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtab { min-height: 44px; }
  html body.jb-acct-workspace #view-batch .jtbl tbody td { height: 52px; min-height: 52px; }
  html body.jb-acct-workspace #view-batch .jtbl .jcell,
  html body.jb-acct-workspace #view-batch .jtbl select.jobsel { height: 51px; min-height: 51px; font-size: 16px; line-height: 51px; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp-top { padding: 6px; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp .rtabs { width: 100%; overflow-x: auto; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-actions { overflow-x: auto; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp-filter { align-items: stretch; flex-direction: column; }
  html body.jb-acct-workspace #view-ledger .gl-pick { width: 100%; align-items: stretch; flex-direction: column; }
  html body.jb-acct-workspace #view-ledger #glAcctInput { width: 100%; max-width: none; min-height: 44px; font-size: 16px; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-find { width: 100%; min-width: 0; margin-left: 0; flex-basis: auto; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-find input,
  html body.jb-acct-workspace #view-ledger .jb-ledger-status { min-height: 44px; font-size: 16px; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-status { width: 100%; }
  html body.jb-acct-workspace #view-ledger .jb-ledger-count { text-align: left; }
  html body.jb-acct-workspace #view-ledger .tb-tbl tbody td { min-height: 44px; }
}

@media (prefers-reduced-motion: reduce) {
  html body.jb-acct-workspace :is(#view-batch,#view-ledger) * { scroll-behavior: auto; transition: none; }
}
@media (forced-colors: active) {
  html body.jb-acct-workspace :is(#view-batch,#view-ledger) :is(button,input,select,.pill,.sw-title .st) { forced-color-adjust: auto; border: 1px solid CanvasText; }
}
@media print {
  html body.jb-acct-workspace #view-batch :is(.sw-toolbar,.sw-band,#jb3Reveal),
  html body.jb-acct-workspace #view-ledger .jb-ledger-cp { display: none; }
  html body.jb-acct-workspace #view-batch .jrnwin,
  html body.jb-acct-workspace #view-ledger > .card { border: 0; box-shadow: none; }
}
