/*
 * The new look's case board (John, 2026-10-16). Pairs with finance-board.js.
 *
 * Every rule is scoped to `body.nl-board`, a class finance-board.js adds only
 * after it has built the board for management with the new look on. Nobody
 * else ever matches a rule in this file.
 *
 * Hiding: the board REPLACES some of Command 2.0's chrome (its tabs, the old
 * lender grid, the sticky Submit bar and the lender cards), so those are
 * hidden here - and only those. The live controls under them stay in the
 * page and the board drives them. The live credit and disclosure panels sit
 * in a hidden holder (#nl-hold, by the `hidden` attribute) and the board
 * draws both from the same data. Never hide a guard: #lookup-result,
 * #prior-runs-banner, #max-warning, #consent-panel, .err-panel and
 * #push-status stay visible. The one exception is the Logics warning
 * panels, which show under the person in People instead.
 * scripts/new_look_switch_test.mjs checks the list.
 */

/* ------------------------------------------------------------ replaced chrome */
body.nl-board.command-has-case .command-tabs,
body.nl-board.command-has-case #command-case-number,
body.nl-board.command-has-case #submit-card,
body.nl-board.command-has-case #command-history-empty {
  display: none !important;
}
body.nl-board:not(.command-has-case) #nl-board,
body.nl-board:not(.command-has-case) .nl-head-tools,
body.nl-board:not(.command-has-case) .nl-head-activity {
  display: none !important;
}

/* ------------------------------------------------------------ header row */
body.nl-board .command-context { gap: 14px; }
body.nl-board .nl-head-tools { display: flex; align-items: center; gap: 12px; min-width: 0; }
body.nl-board .nl-head-extra { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
body.nl-board .nl-case-no { font-size: 13px; font-weight: 500; color: var(--nl-muted, #5c6f7e); font-variant-numeric: tabular-nums; }
body.nl-board .nl-req { font-size: 13.5px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--nl-ink, #1a2835); }
body.nl-board .nl-req .nl-muted { font-weight: 500; }
body.nl-board .nl-muted { color: var(--nl-muted, #5c6f7e); }

/* ------------------------------------------------------------ layout */
body.nl-board #nl-board {
  display: grid; grid-template-columns: clamp(300px, 26vw, 360px) minmax(0, 1fr); gap: 16px; align-items: start;
  margin: 0 0 64px; font-family: "Inter", "Segoe UI", Arial, sans-serif; color: var(--nl-ink, #1a2835);
}
body.nl-board .nl-client { display: grid; gap: 16px; min-width: 0; }
body.nl-board .nl-card {
  background: #fff; border: 1px solid var(--nl-line, #e8edf2); border-radius: 12px; min-width: 0;
}
body.nl-board .nl-card:empty { display: none; }
body.nl-board .nl-card-head {
  display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 16px; border-bottom: 1px solid var(--nl-line, #e8edf2);
}
body.nl-board .nl-card-title { margin: 0; font-size: 13px; font-weight: 600; }
body.nl-board .nl-right { margin-left: auto; display: flex; align-items: center; gap: 10px; }

/* People */
body.nl-board .nl-person { display: grid; gap: 6px; padding: 12px 16px; border-top: 1px solid var(--nl-line-soft, #eef1f4); }
body.nl-board .nl-card-head + .nl-person { border-top: 0; }
body.nl-board .nl-person-line { display: flex; align-items: center; gap: 8px; }
body.nl-board .nl-person-name { font-weight: 600; font-size: 14px; }
body.nl-board .nl-person-role { color: var(--nl-muted, #5c6f7e); font-size: 12.5px; }
body.nl-board .nl-warn-row { display: grid; grid-template-columns: 8px minmax(0, 1fr); column-gap: 8px; font-size: 12.5px; color: #92400e; }
body.nl-board .nl-warn-row .nl-dot { background: #b45309; margin-top: 5px; }
body.nl-board .nl-small { font-size: 12px; }
body.nl-board .nl-refusal, body.nl-board .nl-line-warn { display: flex; align-items: flex-start; gap: 8px; font-size: 12.5px; font-weight: 500; }
body.nl-board .nl-refusal { color: #b91c1c; }
body.nl-board .nl-refusal .nl-dot { margin-top: 5px; background: #dc2626; }
body.nl-board .nl-line-warn { color: #92400e; }
body.nl-board .nl-line-warn .nl-dot { margin-top: 5px; background: #b45309; }

/* Credit and Disclosure: folder tabs, one per person (John, 10-15/16). */
body.nl-board .nl-card-head > .nl-btn { margin-left: auto; }
body.nl-board .nl-btn-sm { height: 30px; }
body.nl-board .nl-ctabs { display: flex; gap: 4px; padding: 10px 16px 0; position: relative; z-index: 1; }
body.nl-board .nl-ctab {
  display: inline-flex; align-items: center; gap: 8px; margin: 0 0 -1px; padding: 7px 14px 8px; font: 600 13px "Inter", "Segoe UI", Arial, sans-serif;
  color: var(--nl-muted, #5c6f7e); background: var(--nl-subtle, #f9fbfc); border: 1px solid var(--nl-line, #e8edf2); border-bottom: 0;
  border-radius: 8px 8px 0 0; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0; height: auto;
}
body.nl-board .nl-ctab:hover { color: var(--nl-ink, #1a2835); }
body.nl-board .nl-ctab:focus-visible { outline: none; box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-ctab.on { color: var(--nl-ink, #1a2835); background: #fff; border-color: var(--nl-line-strong, #cdd6de); padding-bottom: 9px; }
body.nl-board .nl-ctab-score { font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; padding: 1px 7px; border-radius: 16px; background: #e6f6fb; color: #0d8ab0; }
body.nl-board .nl-ctab-score.low { background: #fdecec; color: #b42318; }
body.nl-board .nl-ctab-yes { display: inline-flex; color: #15803d; }
body.nl-board .nl-ctab-yes .nl-ico { width: 14px; height: 14px; }
body.nl-board .nl-ctab-sheet { margin: 0 16px 14px; border: 1px solid var(--nl-line-strong, #cdd6de); border-radius: 0 8px 8px 8px; }
body.nl-board .nl-credit-person, body.nl-board .nl-disc-person { padding: 12px 16px; display: grid; gap: 8px; }
body.nl-board .nl-credit-top { display: flex; align-items: center; gap: 8px; min-height: 24px; }
body.nl-board .nl-when { margin-left: auto; font-size: 12px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-tu-line { display: flex; align-items: baseline; gap: 8px; }
body.nl-board .nl-tu-line .k { font-size: 12px; font-weight: 600; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-tu-line .v { font-size: 20px; font-weight: 700; font-variant-numeric: tabular-nums; color: var(--nl-ink, #1a2835); }
body.nl-board .nl-tu-line .v.low { color: #b42318; }
body.nl-board .nl-tu-line .v.none { font-size: 14px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-rep-link {
  margin-left: auto; display: inline-flex; align-items: center; gap: 4px; align-self: center; font-size: 12.5px; font-weight: 600;
  color: var(--nl-primary, #0b7a9e); text-decoration: none; border-radius: 6px; padding: 2px 6px;
}
body.nl-board .nl-rep-link:hover { background: rgba(11, 122, 158, 0.08); }
body.nl-board .nl-rep-link:focus-visible { outline: none; box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-rep-link .nl-ico { width: 15px; height: 15px; }
body.nl-board .nl-cstats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
body.nl-board .nl-cstat { display: grid; gap: 2px; padding: 8px 10px; border: 1px solid var(--nl-line, #e8edf2); border-radius: 8px; min-width: 0; }
body.nl-board .nl-cstat .k { font-size: 11.5px; font-weight: 500; color: var(--nl-muted, #5c6f7e); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.nl-board .nl-cstat .v { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--nl-ink, #1a2835); }
body.nl-board .nl-disc-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
body.nl-board .nl-disc-step { display: grid; gap: 1px; padding-top: 6px; border-top: 2px solid var(--nl-line, #e8edf2); }
body.nl-board .nl-disc-step .k { font-size: 12px; font-weight: 600; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-disc-step .t { font-size: 11.5px; color: var(--nl-muted, #5c6f7e); min-height: 16px; }
body.nl-board .nl-disc-step.done { border-top-color: #16a34a; }
body.nl-board .nl-disc-step.done .k { color: #15803d; }
body.nl-board .nl-disc-step.bad { border-top-color: #dc2626; }
body.nl-board .nl-disc-step.bad .k { color: #b91c1c; }
body.nl-board .nl-disc-step.wait { border-top-color: var(--nl-line-strong, #cdd6de); }
body.nl-board .nl-card-foot { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 12px 16px; border-top: 1px solid var(--nl-line-soft, #eef1f4); }

/* ------------------------------------------------------------ lenders */
body.nl-board .nl-lenders .nl-lhead-bar { min-height: 56px; }
body.nl-board .nl-waterfall { display: flex; align-items: center; gap: 12px; padding: 10px 16px; background: var(--nl-subtle, #f9fbfc); border-bottom: 1px solid var(--nl-line, #e8edf2); font-size: 13px; font-weight: 500; }
body.nl-board .nl-waterfall .nl-btn { margin-left: auto; }
body.nl-board .nl-sel-sum { font-size: 12.5px; color: var(--nl-muted, #5c6f7e); font-variant-numeric: tabular-nums; }
body.nl-board .nl-guards { display: grid; gap: 0; padding: 0 16px; }
body.nl-board .nl-guards.nl-has-guards { gap: 8px; padding: 12px 16px; border-bottom: 1px solid var(--nl-line, #e8edf2); }
body.nl-board .nl-guards > * { margin: 0 !important; }
body.nl-board .nl-lgrid {
  display: grid; grid-template-columns: 20px 168px minmax(0, 1fr) 96px 86px 56px 56px 112px 32px;
  column-gap: 12px; align-items: center; padding: 0 12px 0 16px;
}
body.nl-board .nl-colhead .nl-num { white-space: normal; line-height: 1.25; }
body.nl-board .nl-colhead { min-height: 38px; font-size: 12px; font-weight: 600; color: var(--nl-muted, #5c6f7e); border-bottom: 1px solid var(--nl-line, #e8edf2); }
body.nl-board .nl-num { text-align: right; font-variant-numeric: tabular-nums; font-size: 13.5px; white-space: nowrap; }
body.nl-board .nl-num.strong { font-weight: 600; }
body.nl-board .nl-num.sub { color: var(--nl-muted, #5c6f7e); font-size: 12.5px; }
body.nl-board .nl-req { display: block; color: var(--nl-muted, #5c6f7e); font-size: 11px; font-weight: 500; }
body.nl-board .nl-row-wrap { border-bottom: 1px solid var(--nl-line-soft, #eef1f4); }
body.nl-board .nl-row-wrap:last-child { border-bottom: 0; }
body.nl-board .nl-row { min-height: 64px; }
body.nl-board .nl-row.dim .nl-lname, body.nl-board .nl-row.dim .nl-lwho { color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-tick { width: 16px; height: 16px; margin: 0; accent-color: var(--nl-primary, #0b7a9e); cursor: pointer; }
body.nl-board .nl-tick:disabled { cursor: default; }
body.nl-board .nl-lname { display: flex; align-items: center; gap: 8px; font-weight: 600; font-size: 13.5px; white-space: nowrap; }
body.nl-board .nl-dot { width: 8px; height: 8px; border-radius: 50%; flex: none; display: inline-block; }
body.nl-board .nl-lwho { display: block; font-size: 12.5px; color: var(--nl-muted, #5c6f7e); margin-left: 16px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
body.nl-board .nl-who {
  display: block; margin: 3px 0 0 16px; height: 26px; max-width: calc(100% - 16px); padding: 0 24px 0 8px; font: inherit; font-size: 12.5px;
  color: var(--nl-ink, #1a2835); border: 1px solid var(--nl-line-strong, #cdd6de); border-radius: 8px; appearance: none; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%235C6F7E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 6px center;
}
body.nl-board .nl-lstate { min-width: 0; display: grid; gap: 4px; padding: 8px 0; }
body.nl-board .nl-lchips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
body.nl-board .nl-lact { display: flex; justify-content: flex-end; }
body.nl-board .nl-lmeta { font-size: 12px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-lmeta.warn { color: #92400e; font-weight: 500; }
body.nl-board .nl-lmeta.err { color: #b91c1c; font-weight: 500; }
body.nl-board .nl-skel { display: inline-block; width: 58px; height: 10px; border-radius: 6px; background: linear-gradient(90deg, #eef1f4, #f6f8fa, #eef1f4); background-size: 200% 100%; animation: nl-shimmer 1.2s linear infinite; }
body.nl-board .nl-skel.short { width: 32px; }
@keyframes nl-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }

/* Chips */
body.nl-board .nl-chip {
  display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: 16px; font-size: 12px; font-weight: 600;
  white-space: nowrap; line-height: 1; border: 1px solid transparent;
}
body.nl-board .nl-chip.success { background: #eef5ef; color: #15803d; border-color: #e9f2eb; }
body.nl-board .nl-chip.warning { background: #faf1ed; color: #92400e; border-color: #f9eee8; }
body.nl-board .nl-chip.error { background: #fff0ee; color: #b91c1c; border-color: #ffece9; }
body.nl-board .nl-chip.info { background: #edf3ff; color: #1d4ed8; border-color: #e8f0ff; }
body.nl-board .nl-chip.neutral { background: #f1f3f4; color: #46586a; border-color: #eef0f1; }
body.nl-board .nl-chip.primary { background: #edf4f7; color: #09678a; border-color: #e9f1f5; }
body.nl-board .nl-chip.plain { background: #fff; color: #46586a; border-color: var(--nl-line, #e8edf2); font-weight: 500; }

/* Buttons */
body.nl-board .nl-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 32px; padding: 0 12px; margin: 0;
  border-radius: 8px; border: 1px solid transparent; font: 600 13px/1 "Inter", "Segoe UI", Arial, sans-serif; white-space: nowrap; cursor: pointer;
  box-shadow: none; text-transform: none; letter-spacing: 0;
}
body.nl-board .nl-btn-md { height: 40px; padding: 0 16px; font-size: 14px; }
body.nl-board .nl-btn-primary { background: var(--nl-primary, #0b7a9e); color: #fff; border-color: var(--nl-primary, #0b7a9e); }
body.nl-board .nl-btn-primary:hover:not(:disabled) { background: var(--nl-primary-hover, #09678a); }
body.nl-board .nl-btn-secondary { background: #fff; color: var(--nl-ink, #1a2835); border-color: var(--nl-line-strong, #cdd6de); }
body.nl-board .nl-btn-secondary:hover:not(:disabled) { background: var(--nl-subtle, #f9fbfc); border-color: #b7c3cd; }
body.nl-board .nl-btn-ghost { background: transparent; color: var(--nl-ink, #1a2835); }
body.nl-board .nl-btn-ghost:hover { background: var(--nl-page, #f4f7fa); }
body.nl-board .nl-btn:disabled { background: #eef1f4; border-color: #eef1f4; color: #6b7c8a; cursor: default; }
body.nl-board .nl-btn-link { background: none; border: 0; padding: 0; height: auto; color: var(--nl-primary, #0b7a9e); font: 600 12.5px "Inter", "Segoe UI", Arial, sans-serif; cursor: pointer; box-shadow: none; }
body.nl-board .nl-btn-link:hover { text-decoration: underline; text-underline-offset: 2px; }
body.nl-board .nl-icon-btn {
  display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; padding: 0; margin: 0; border-radius: 8px;
  border: 1px solid transparent; background: transparent; color: var(--nl-muted, #5c6f7e); cursor: pointer; box-shadow: none;
}
body.nl-board .nl-icon-btn:hover { background: var(--nl-page, #f4f7fa); color: var(--nl-ink, #1a2835); }
body.nl-board .nl-btn:focus-visible, body.nl-board .nl-icon-btn:focus-visible, body.nl-board .nl-btn-link:focus-visible,
body.nl-board .nl-who:focus-visible, body.nl-board .nl-tick:focus-visible { outline: none; box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-ico { width: 18px; height: 18px; display: block; }
body.nl-board .nl-chev { transition: transform 160ms ease-out; }
body.nl-board [aria-expanded="true"] .nl-chev { transform: rotate(90deg); }

/* ------------------------------------------------------------ a row, open */
body.nl-board .nl-detail { padding: 4px 16px 16px 48px; display: grid; gap: 12px; }
body.nl-board .nl-grow { flex: 1; }

/* ------------------------------------------------------------ Actions menu (John, 10-29) */
body.nl-board .nl-actcell { position: relative; display: inline-flex; justify-content: flex-end; }
body.nl-board .nl-actcell.open { z-index: 40; }
body.nl-board .nl-act {
  display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 10px 0 12px; margin: 0; border-radius: 8px;
  border: 1px solid var(--nl-line-strong, #cdd6de); background: #fff; color: var(--nl-ink, #1a2835);
  font: 600 13px/1 "Inter", "Segoe UI", Arial, sans-serif; white-space: nowrap; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0;
}
body.nl-board .nl-act:hover { background: var(--nl-subtle, #f9fbfc); border-color: #b7c3cd; }
body.nl-board .nl-act[aria-expanded="true"] { border-color: var(--nl-primary, #0b7a9e); box-shadow: 0 0 0 2px rgba(11, 122, 158, 0.25); }
body.nl-board .nl-act .nl-down { width: 14px; height: 14px; }
body.nl-board .nl-menu {
  position: absolute; top: calc(100% + 4px); right: 0; z-index: 40; min-width: 208px; padding: 4px; display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--nl-line, #e8edf2); border-radius: 10px; box-shadow: 0 10px 28px rgba(16, 24, 40, 0.14); box-sizing: border-box;
}
body.nl-board .nl-mi {
  display: flex; align-items: center; gap: 8px; width: 100%; height: 36px; padding: 0 10px; margin: 0; border: 0; border-radius: 6px;
  background: none; font: 500 13px "Inter", "Segoe UI", Arial, sans-serif; color: var(--nl-ink, #1a2835); text-align: left;
  white-space: nowrap; cursor: pointer; box-shadow: none; text-transform: none; letter-spacing: 0;
}
body.nl-board .nl-mi:hover:not(:disabled) { background: var(--nl-page, #f4f7fa); }
body.nl-board .nl-mi:disabled { color: #a3b0bb; cursor: default; }
body.nl-board .nl-mi.lead { color: var(--nl-primary, #0b7a9e); font-weight: 600; }
body.nl-board .nl-mi .nl-again { width: 14px; height: 14px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-msep { height: 1px; margin: 4px 6px; background: var(--nl-line-soft, #eef1f4); }
/* A Review flashes until it is opened. */
body.nl-board .nl-act.flash, body.nl-board .nl-mi.flash { animation: nl-review-flash 1.1s ease-in-out infinite alternate; }
body.nl-board .nl-act.flash { border-color: #e9b9a0; color: #92400e; }
body.nl-board .nl-mi.flash { color: #92400e; font-weight: 600; }
@keyframes nl-review-flash { from { background: #fff; } to { background: #f7dccd; } }
body.nl-board .nl-act:focus-visible, body.nl-board .nl-mi:focus-visible, body.nl-board .nl-offer:focus-visible,
body.nl-board .nl-copy:focus-visible { outline: none; box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-copy {
  display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; padding: 0; margin: 0;
  border: 0; border-radius: 6px; background: transparent; color: var(--nl-muted, #5c6f7e); cursor: pointer; box-shadow: none;
}
body.nl-board .nl-copy:hover { background: var(--nl-page, #f4f7fa); }
body.nl-board .nl-copy .nl-copy-ico { width: 14px; height: 14px; }

/* The Run again and Choose offer dialogs (#nl-modal). */
body.nl-board .nl-overlay {
  position: fixed; inset: 0; z-index: 1050; display: flex; align-items: flex-start; justify-content: center; padding: 96px 16px;
  background: rgba(15, 28, 40, 0.36); overflow: auto; box-sizing: border-box;
  font-family: "Inter", "Segoe UI", Arial, sans-serif; color: var(--nl-ink, #1a2835);
}
body.nl-board .nl-overlay[hidden] { display: none; }
body.nl-board .nl-dialog {
  width: 100%; max-width: 440px; padding: 20px; display: flex; flex-direction: column; gap: 14px; box-sizing: border-box;
  background: #fff; border-radius: 12px; box-shadow: 0 20px 48px rgba(16, 24, 40, 0.22);
}
body.nl-board .nl-dlg-t { margin: 0; font-size: 16px; font-weight: 600; }
body.nl-board .nl-dlg-p { margin: 0; font-size: 13.5px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-dlg-hint {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; font-size: 13px;
  border: 1px solid var(--nl-line, #e8edf2); background: var(--nl-subtle, #f9fbfc); border-radius: 8px;
}
body.nl-board .nl-dlg-field { display: flex; flex-direction: column; gap: 6px; }
body.nl-board .nl-overlay .nl-dlg-l { margin: 0; font-size: 12px; font-weight: 600; color: var(--nl-muted, #5c6f7e); text-transform: none; letter-spacing: 0; }
body.nl-board .nl-overlay .nl-select { width: 100%; font-weight: 500; }
body.nl-board .nl-dlg-note { font-size: 12.5px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-dlg-foot { display: flex; justify-content: flex-end; gap: 8px; flex-wrap: wrap; margin-top: 4px; }
body.nl-board .nl-dlg-foot .nl-btn, body.nl-board .nl-dlg-hint .nl-btn { height: 36px; padding: 0 14px; }
body.nl-board .nl-offer-list { display: flex; flex-direction: column; gap: 8px; }
body.nl-board .nl-offer {
  display: grid; grid-template-columns: 18px 1fr auto auto; gap: 12px; align-items: center; width: 100%; min-height: 48px; padding: 0 12px; margin: 0;
  border: 1px solid var(--nl-line, #e8edf2); border-radius: 8px; background: #fff; color: var(--nl-ink, #1a2835);
  font: 500 13.5px "Inter", "Segoe UI", Arial, sans-serif; text-align: left; font-variant-numeric: tabular-nums; cursor: pointer; box-shadow: none;
}
body.nl-board .nl-offer:hover { border-color: #b7c3cd; }
body.nl-board .nl-offer[aria-pressed="true"] { border-color: var(--nl-primary, #0b7a9e); background: #f2f8fb; }
body.nl-board .nl-offer .t { font-weight: 600; }
body.nl-board .nl-rad { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid #9aa9b6; box-sizing: border-box; }
body.nl-board .nl-offer[aria-pressed="true"] .nl-rad { border: 4.5px solid var(--nl-primary, #0b7a9e); }

/* The offers of an open row (prototype .offers). */
body.nl-board .nl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* #submit-result sits under the rows. The rows ARE the cards, so its card
   grid and Blue's card slots are hidden (the board still clicks their
   Finalize); everything else in it shows: run errors, the push status. */
body.nl-board.finance-command #submit-result,
body.nl-board.finance-command.command-view-application #submit-result.command-results-only {
  display: block !important; margin: 0 !important;
}
body.nl-board #submit-result.nl-filter .results-grid,
body.nl-board #submit-result.nl-filter > [id^="settlement-handoff"],
body.nl-board #submit-result.nl-filter > .banner:has(#push-all-btn),
body.nl-board #submit-result.nl-filter > .banner:has(#_run-banner-text),
body.nl-board #submit-result.nl-filter > div:has(> #push-all-btn) {
  display: none !important;
}
body.nl-board .nl-results-home:has(#submit-result:not(:empty)) { padding: 0 16px 12px; }
/* The Logics warnings show under the person in People instead. */
body.nl-board.nl-has-warnings #lookup-result [data-alert-lender] { display: none !important; }
/* The blue strip of per-lender banners (John, 10-16: not needed). The
   ran-today warning sits on the lender's own row instead. */
body.nl-board #prior-runs-banner { display: none !important; }

/* Toasts */
body.nl-board .nl-toasts { position: fixed; right: 20px; bottom: 20px; z-index: 1200; display: grid; gap: 8px; justify-items: end; pointer-events: none; }
body.nl-board .nl-toast {
  display: flex; align-items: center; gap: 10px; min-width: 200px; max-width: 420px; padding: 10px 16px; border-radius: 8px;
  background: #1a2835; color: #fff; font: 500 13.5px "Inter", "Segoe UI", Arial, sans-serif; box-shadow: 0 6px 20px rgba(26, 40, 53, 0.12); pointer-events: auto;
}
body.nl-board .nl-toast .nl-ico { color: #4ade80; width: 16px; height: 16px; }
body.nl-board .nl-toast .nl-tdot { width: 8px; height: 8px; border-radius: 50%; background: #f87171; flex: none; }

/* ------------------------------------------------------------ Activity */
body.nl-board .nl-drawer {
  position: fixed; top: 0; right: 0; bottom: 0; z-index: 900; width: min(640px, 96vw); background: #fff;
  border-left: 1px solid var(--nl-line, #e8edf2); box-shadow: -8px 0 24px rgba(26, 40, 53, 0.1);
  display: flex; flex-direction: column; font-family: "Inter", "Segoe UI", Arial, sans-serif;
}
body.nl-board .nl-drawer[hidden] { display: none; }
body.nl-board .nl-drawer-head { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 12px 0 20px; border-bottom: 1px solid var(--nl-line, #e8edf2); }
body.nl-board .nl-drawer-head .nl-icon-btn { margin-left: auto; }
body.nl-board .nl-empty { margin: 0; color: var(--nl-muted, #5c6f7e); font-size: 13px; }
body.nl-board .nl-drawer-body { overflow-y: auto; padding: 16px 20px 32px; display: grid; gap: 14px; align-content: start; }
body.nl-board.finance-command.command-view-application .nl-drawer #wizard-banner.command-history-only,
body.nl-board.finance-command.command-view-application .nl-drawer #case-history.command-history-only {
  display: block !important;
}
body.nl-board.finance-command .nl-drawer #case-history.hidden:empty { display: none !important; }

/* ------------------------------------------------------------ Finalize
   The live Finalize window, as a side panel. */
body.nl-board.finance-command #wizard-modal { align-items: stretch !important; justify-content: flex-end !important; padding: 0 !important; }
/* The page runs at 90% zoom, hence the /0.9 (the same sum Command uses). */
body.nl-board.finance-command #wizard-modal > .modal-card {
  width: min(900px, calc(100vw / 0.9)) !important; max-width: none !important;
  height: calc(100vh / 0.9) !important; max-height: calc(100vh / 0.9) !important;
  margin: 0 !important; border-radius: 0 !important; border-left: 1px solid var(--nl-line, #e8edf2);
  box-shadow: -8px 0 24px rgba(26, 40, 53, 0.1) !important;
}

/* ------------------------------------------------------------ Finalize steps
   The prototype's stepper (finance-board.js, finPaint). The page's own step
   body sits inside the open step; its tabs and footer hide only once the
   steps have drawn (.nl-fin-ok). */
body.nl-board.finance-command #wizard-modal.nl-fin > .modal-card {
  width: min(622px, calc(100vw / 0.9)) !important; padding: 0 !important; gap: 0 !important;
  font-family: "Inter", "Segoe UI", Arial, sans-serif; color: var(--nl-ink, #1a2835); background: #fff;
}
body.nl-board #wizard-modal.nl-fin-ok .nl-fin-old,
body.nl-board #wizard-modal.nl-fin-ok #wizard-steps-nav,
body.nl-board #wizard-modal.nl-fin-ok #wizard-footer { display: none !important; }
body.nl-board #wizard-modal:not(.nl-fin-ok) #nl-fin-steps .nl-step-acts { display: none; }
body.nl-board .nl-fin-head { display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 0 10px 0 20px; border-bottom: 1px solid var(--nl-line, #e8edf2); flex: none; }
body.nl-board .nl-fin-title { margin: 0; font-size: 14px; font-weight: 600; display: flex; align-items: center; gap: 8px; }
body.nl-board .nl-fin-who { color: var(--nl-muted, #5c6f7e); font-size: 13px; }
body.nl-board .nl-fin-x { margin-left: auto; }
/* Silver: the application number under the name. */
body.nl-board .nl-fin-id { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; min-width: 0; }
body.nl-board .nl-fin-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.nl-board .nl-fin-app { display: inline-flex; align-items: center; gap: 6px; margin-left: 16px; font-size: 13px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-fin-app b { color: var(--nl-ink, #1a2835); font-weight: 600; font-variant-numeric: tabular-nums; }
/* Silver's Verification step (finVerificationHTML). */
body.nl-board .nl-verify { display: flex; flex-direction: column; gap: 14px; }
body.nl-board .nl-cap { font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-say {
  display: flex; flex-direction: column; gap: 8px; padding: 12px 14px;
  background: var(--nl-subtle, #f9fbfc); border: 1px solid var(--nl-line, #e8edf2); border-radius: 10px;
}
body.nl-board .nl-say p { margin: 0; font-size: 13.5px; line-height: 1.55; }
body.nl-board .nl-vsec { display: flex; flex-direction: column; gap: 8px; }
body.nl-board .nl-sms {
  padding: 10px 12px; font-size: 13px; line-height: 1.55; font-variant-numeric: tabular-nums;
  background: #fff; border: 1px solid var(--nl-line, #e8edf2); border-radius: 10px;
}
body.nl-board .nl-sms-text { white-space: pre-line; }
body.nl-board .nl-sms-last { display: flex; align-items: center; justify-content: space-between; gap: 8px 12px; flex-wrap: wrap; margin-top: 2px; }
body.nl-board .nl-sms-btns { display: inline-flex; gap: 8px; flex-wrap: wrap; margin-left: auto; }
body.nl-board .nl-sms-btns .nl-btn { height: 36px; padding: 0 14px; }
body.nl-board .nl-vbox { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border: 1px solid var(--nl-line, #e8edf2); border-radius: 10px; }
body.nl-board .nl-kv { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
body.nl-board .nl-kv .k { font-size: 12.5px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-kv .v { display: inline-flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; }
body.nl-board .nl-small { font-size: 12px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-vhold { display: flex; align-items: center; gap: 8px; font-size: 13px; }
body.nl-board .nl-vwarn { padding: 10px 12px; font-size: 13.5px; line-height: 1.55; border: 1px solid #fdba74; background: #fff7ed; border-radius: 10px; }
body.nl-board .nl-vwarn.bad { border-color: #fecaca; background: #fef2f2; }
body.nl-board .nl-mark { padding: 0 3px; border-radius: 4px; background: #e6f3f8; color: #0b5f7c; font-weight: 600; }
body.nl-board #wizard-modal.nl-fin #wizard-note:not(:empty) { padding: 12px 20px 0; }
body.nl-board .nl-fin-steps { flex: 1; overflow-y: auto; padding: 16px 20px 28px; }
body.nl-board .nl-step { position: relative; padding-left: 44px; padding-bottom: 18px; }
body.nl-board .nl-step::before { content: ""; position: absolute; left: 13px; top: 30px; bottom: 0; width: 2px; background: var(--nl-line, #e8edf2); }
body.nl-board #nl-fin-post > .nl-step:last-child::before,
body.nl-board .nl-fin-steps:has(#nl-fin-post:empty) #nl-fin-open::before { display: none; }
body.nl-board .nl-step.done::before { background: #cfe8d6; }
body.nl-board .nl-step-circle {
  position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
  font-size: 12.5px; font-weight: 600; background: #fff; border: 1.5px solid var(--nl-line-strong, #cdd6de); color: var(--nl-muted, #5c6f7e);
  font-variant-numeric: tabular-nums;
}
body.nl-board .nl-step.current .nl-step-circle { border-color: var(--nl-primary, #0b7a9e); color: var(--nl-primary, #0b7a9e); }
body.nl-board .nl-step.done .nl-step-circle { background: #22a35a; border-color: #22a35a; color: #fff; }
body.nl-board .nl-step.skip .nl-step-circle { border-style: dashed; }
body.nl-board .nl-step-circle .nl-ico { width: 14px; height: 14px; }
body.nl-board .nl-step-head {
  display: flex; align-items: center; gap: 8px; width: 100%; min-height: 28px; padding: 0; background: none; border: 0; border-radius: 6px;
  text-align: left; font: inherit; color: var(--nl-ink, #1a2835); cursor: pointer;
}
body.nl-board #nl-fin-oh { cursor: default; }
body.nl-board .nl-step-head:focus-visible { outline: none; box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-step-title { font-size: 14px; font-weight: 600; }
body.nl-board .nl-step.future .nl-step-title,
body.nl-board .nl-step.skip .nl-step-title { color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-step-sum { margin-left: auto; font-size: 12.5px; color: var(--nl-muted, #5c6f7e); font-variant-numeric: tabular-nums; white-space: nowrap; }
body.nl-board .nl-step-head .nl-chev { margin-left: 6px; color: var(--nl-muted, #5c6f7e); width: 16px; height: 16px; flex: none; }
body.nl-board .nl-step.open .nl-step-head .nl-chev { transform: rotate(90deg); }
body.nl-board .nl-step-content { padding-top: 12px; display: grid; gap: 14px; }
body.nl-board .nl-step-acts { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
body.nl-board .nl-step-acts:empty { display: none; }
body.nl-board .nl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
/* The page's step body, inside the open step: no scroll box of its own. */
body.nl-board #wizard-modal.nl-fin #wizard-body { overflow: visible !important; flex: none !important; padding: 0 !important; }
/* Its terms card reads as plain rows, like the prototype. */
body.nl-board #wizard-modal.nl-fin .wiz-contract { background: none !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important; }
body.nl-board #wizard-modal.nl-fin .wiz-contract-h { display: none !important; }
/* Labels read like the prototype's: small sentence case, not caps. */
body.nl-board #wizard-modal.nl-fin .wiz-contract { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 12px 24px !important; margin: 0 !important; }
body.nl-board #wizard-modal.nl-fin .wiz-contract > .wiz-kv { grid-row: auto !important; grid-column: auto !important; }
body.nl-board #wizard-modal.nl-fin .wiz-contract > .wiz-kv[data-wiz-k="email"] { grid-column: 1 / -1 !important; }
body.nl-board #wizard-modal.nl-fin .wiz-contract > .wiz-kv > .wiz-kv-l,
body.nl-board #wizard-modal.nl-fin .wiz-review-terms .k {
  font-size: 12.5px !important; font-weight: 500 !important; letter-spacing: 0 !important; text-transform: none !important;
  color: var(--nl-muted, #5c6f7e) !important;
}

/* Documents and Submit, drawn by the board (finDocsHTML / finSubmitHTML). */
body.nl-board #wizard-modal.nl-fin #wizard-body { display: grid; gap: 14px; }
body.nl-board .nl-docs, body.nl-board .nl-checklist { display: grid; border: 1px solid var(--nl-line, #e8edf2); border-radius: 8px; }
body.nl-board .nl-doc { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 6px 12px; border-top: 1px solid var(--nl-line-soft, #eef1f4); }
body.nl-board .nl-doc:first-child, body.nl-board .nl-check:first-child { border-top: 0; }
body.nl-board .nl-doc-name { display: grid; gap: 1px; min-width: 0; }
body.nl-board .nl-doc-name .name { font-size: 13.5px; font-weight: 500; }
body.nl-board .nl-doc-name .for { font-size: 12px; color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-doc .nl-chip { margin-left: auto; }
body.nl-board .nl-ex {
  position: relative; margin-left: 8px; font-size: 12px; font-weight: 500; color: var(--nl-primary, #0b7a9e);
  text-decoration: underline dotted; text-underline-offset: 3px; cursor: help; border-radius: 3px;
}
body.nl-board .nl-ex:focus { outline: none; }
body.nl-board .nl-ex:focus-visible { box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-ex-pop {
  display: none; position: absolute; left: 0; top: calc(100% + 6px); z-index: 30; width: 290px; max-width: 70vw;
  padding: 8px 12px; background: #fff; color: var(--nl-ink, #1a2835); border: 1px solid var(--nl-line, #e8edf2);
  border-radius: 8px; box-shadow: 0 8px 24px rgba(16, 24, 40, 0.14);
  font-size: 12.5px; font-weight: 400; line-height: 1.45; text-decoration: none; white-space: normal; cursor: default;
}
body.nl-board .nl-ex:hover .nl-ex-pop, body.nl-board .nl-ex:focus .nl-ex-pop { display: block; }
body.nl-board .nl-ex-pop ul { margin: 0; padding-left: 16px; }
body.nl-board .nl-ex-pop li { margin: 3px 0; }
body.nl-board .nl-doc-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
body.nl-board .nl-doc-pick.one { grid-template-columns: 1fr; max-width: 50%; }
body.nl-board .nl-field { display: grid; gap: 6px; font-size: 13px; color: var(--nl-ink, #1a2835); }
body.nl-board .nl-select {
  height: 36px; padding: 0 10px; border: 1px solid var(--nl-line-strong, #cdd6de); border-radius: 6px; background: #fff;
  font: inherit; font-size: 13.5px; color: var(--nl-ink, #1a2835);
}
body.nl-board .nl-select:focus-visible { outline: none; border-color: var(--nl-primary, #0b7a9e); box-shadow: var(--nl-ring, 0 0 0 2px rgba(11, 122, 158, 0.25)); }
body.nl-board .nl-drop {
  border: 1.5px dashed var(--nl-line-strong, #cdd6de); border-radius: 10px; background: var(--nl-subtle, #f9fbfc);
  text-align: center; font-size: 13px; color: var(--nl-muted, #5c6f7e);
}
body.nl-board .nl-drop:hover, body.nl-board .nl-drop:focus-within { border-color: var(--nl-primary, #0b7a9e); color: var(--nl-ink, #1a2835); }
body.nl-board .nl-drop-label { display: block; padding: 18px; cursor: pointer; }
body.nl-board .nl-drop-link { color: var(--nl-primary, #0b7a9e); font-weight: 600; }
body.nl-board .nl-up-status { font-size: 12.5px; color: var(--nl-muted, #5c6f7e); }
/* The page styles every label and select bold; these read like the prototype. */
body.nl-board #wizard-modal.nl-fin .nl-field > span { font-size: 13px; font-weight: 500; color: var(--nl-ink, #1a2835); text-transform: none; letter-spacing: 0; }
body.nl-board #wizard-modal.nl-fin .nl-select { font-weight: 400 !important; }
body.nl-board #wizard-modal.nl-fin .nl-drop-label { margin: 0; font-size: 13px; font-weight: 400; color: var(--nl-muted, #5c6f7e) !important; text-transform: none; letter-spacing: 0; }
body.nl-board #wizard-modal.nl-fin .nl-drop-label .nl-drop-link { font-weight: 600; color: var(--nl-primary, #0b7a9e) !important; }
body.nl-board .nl-up-status:empty { display: none; }
body.nl-board .nl-tell { border: 1px solid var(--nl-line, #e8edf2); border-radius: 8px; }
body.nl-board .nl-tell > summary {
  list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 8px 12px;
  font-size: 12.5px; font-weight: 600; color: var(--nl-muted, #5c6f7e);
}
body.nl-board .nl-tell > summary::-webkit-details-marker { display: none; }
body.nl-board .nl-tell > summary .nl-chev { width: 14px; height: 14px; transition: transform .15s; }
body.nl-board .nl-tell[open] > summary .nl-chev { transform: rotate(90deg); }
body.nl-board .nl-tell-body { padding: 0 12px 12px; }
body.nl-board .nl-check { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; min-height: 40px; padding: 8px 12px; border-top: 1px solid var(--nl-line-soft, #eef1f4); font-size: 13px; }
body.nl-board .nl-check .mark {
  width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid var(--nl-line-strong, #cdd6de); flex: none;
  display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #fff;
}
body.nl-board .nl-check .mark .nl-ico { width: 12px; height: 12px; }
body.nl-board .nl-check.done .mark { background: #22a35a; border-color: #22a35a; }
body.nl-board .nl-check.done .label, body.nl-board .nl-check.after .label { color: var(--nl-muted, #5c6f7e); }
body.nl-board .nl-check.after .mark { border-style: dashed; }
body.nl-board .nl-check.warn .mark { background: #d97706; border-color: #d97706; }
body.nl-board .nl-check.bad .mark { background: #dc2626; border-color: #dc2626; }
body.nl-board .nl-check .right { margin-left: auto; font-size: 12px; text-align: right; }
body.nl-board .nl-check-detail { flex-basis: 100%; padding-left: 28px; font-size: 12px; color: #92400e; }
body.nl-board .nl-fin-after { margin: 0; font-size: 13px; color: var(--nl-muted, #5c6f7e); }

@media (max-width: 1100px) {
  body.nl-board #nl-board { grid-template-columns: minmax(0, 1fr); }
  body.nl-board .nl-lenders { overflow-x: auto; }
  body.nl-board .nl-lgrid { min-width: 820px; }
}
@media (prefers-reduced-motion: reduce) {
  body.nl-board .nl-skel { animation: none; }
  body.nl-board .nl-chev { transition: none; }
  body.nl-board .nl-act.flash, body.nl-board .nl-mi.flash { animation: none; background: #faf1ed; }
}
/* The board's own regions show only when they have something to say. */
body.nl-board #nl-board [hidden] { display: none !important; }
/* The page's two step columns stack in the drawer: the script sits under
   the step, full width, in its fold (finFoldScript). Long words wrap. */
body.nl-board #wizard-modal.nl-fin .wiz-cols { display: block !important; }
body.nl-board #wizard-modal.nl-fin .wiz-side { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; position: static !important; }
body.nl-board #wizard-modal.nl-fin .wiz-side:not(:empty) { margin-top: 14px !important; }
body.nl-board #wizard-modal.nl-fin .nl-tell-body { overflow-wrap: anywhere; }
/* Every button in the drawer is the Update finalization blue (Martin +
   John, 10-19: "make the buttons blue ... all buttons"). */
body.nl-board #wizard-modal.nl-fin #wizard-body button.secondary:not(:disabled),
body.nl-board #wizard-modal.nl-fin #nl-fin-steps .wiz-callcard button:not(:disabled) {
  background: var(--nl-primary, #0b7a9e) !important; color: #fff !important;
  border-color: var(--nl-primary, #0b7a9e) !important;
}
body.nl-board #wizard-modal.nl-fin #wizard-body button.secondary:hover:not(:disabled),
body.nl-board #wizard-modal.nl-fin #nl-fin-steps .wiz-callcard button:hover:not(:disabled) {
  background: var(--nl-primary-hover, #09678a) !important;
}
