/* OFI Bookkeeping 1.1.0 F2/7 — Foundation 1.1.0 visual integration.
   Bookkeeping keeps its approved compact workspace while consuming Foundation typography, palette and UI tokens. */
html,
body,
button,
input,
select,
textarea {
  font-family: var(--ofi-font-family);
}

html,
body {
  color: var(--ofi-text);
  background: var(--ofi-bg);
}

body {
  font-size: var(--ofi-font-size-md);
}

.topbar {
  min-height: var(--ofi-topbar-height);
  background: linear-gradient(92deg, var(--ofi-primary) 0%, var(--ofi-primary-hover) 62%, var(--ofi-primary-active) 100%);
  box-shadow: 0 2px 12px rgba(36, 63, 134, .18);
}

.primary-button {
  border-color: var(--ofi-primary);
  color: var(--ofi-on-primary);
  background: var(--ofi-primary);
}
.primary-button:hover { background: var(--ofi-primary-hover); }
.primary-button:active { background: var(--ofi-primary-active); }

.secondary-button,
.icon-button {
  border-color: var(--ofi-secondary-border);
  color: var(--ofi-secondary-text);
  background: var(--ofi-secondary-bg);
}
.secondary-button:hover,
.icon-button:hover {
  border-color: var(--ofi-primary-border);
  color: var(--ofi-primary);
  background: var(--ofi-primary-soft);
}

.eyebrow,
.text-button,
.nav-item:hover,
.menu-tile:hover,
.menu-sections details[open] summary,
.bank-description-button:hover strong,
.report-value-link:hover {
  color: var(--ofi-primary);
}

.main-menu-button,
.topbar-icon-button {
  min-height: var(--ofi-control-height);
}

.panel,
.workspace-action-card,
.menu-sections details,
.bank-account-card {
  border-color: var(--ofi-border);
  box-shadow: var(--ofi-shadow-sm);
}

.content-container,
.notice {
  max-width: var(--ofi-content-max);
}

:focus-visible {
  outline: 2px solid var(--ofi-focus);
  outline-offset: 2px;
}

/* =========================================================
   OFI Bookkeeping 1.1.0 F2/7 — Foundation visual alignment
   ========================================================= */
:root {
  --bk-accent-soft: color-mix(in srgb, var(--ofi-primary) 9%, white);
  --bk-accent-softer: color-mix(in srgb, var(--ofi-primary) 5%, white);
  --bk-panel-radius: 14px;
}

html[data-ofi-bookkeeping-phase] body {
  font-family: var(--ofi-font-family);
  background: var(--ofi-bg);
  color: var(--ofi-text);
}

html[data-ofi-bookkeeping-phase] .content-container {
  margin-top: 18px;
}

html[data-ofi-bookkeeping-phase] .page-heading h1,
html[data-ofi-bookkeeping-phase] .panel-heading h2,
html[data-ofi-bookkeeping-phase] .modal-header h2,
html[data-ofi-bookkeeping-phase] .main-menu-head h2 {
  color: var(--ofi-text-strong);
  font-weight: 620;
}

html[data-ofi-bookkeeping-phase] .panel,
html[data-ofi-bookkeeping-phase] .metric-card,
html[data-ofi-bookkeeping-phase] .workspace-action-card,
html[data-ofi-bookkeeping-phase] .modal,
html[data-ofi-bookkeeping-phase] .confirm-card {
  border-color: var(--ofi-border);
  border-radius: var(--bk-panel-radius);
  box-shadow: var(--ofi-shadow-sm);
}

html[data-ofi-bookkeeping-phase] .metric-card {
  min-height: 96px;
}
html[data-ofi-bookkeeping-phase] .metric-card.violet { background: linear-gradient(135deg, var(--ofi-primary), var(--ofi-accent-purple)); }
html[data-ofi-bookkeeping-phase] .metric-card.rose { background: linear-gradient(135deg, var(--ofi-primary), var(--ofi-accent-rose)); }
html[data-ofi-bookkeeping-phase] .metric-card.blue { background: linear-gradient(135deg, var(--ofi-primary), var(--ofi-accent-blue)); }
html[data-ofi-bookkeeping-phase] .metric-card.green { background: linear-gradient(135deg, var(--ofi-primary), var(--ofi-accent-green)); }

html[data-ofi-bookkeeping-phase] .quick-card,
html[data-ofi-bookkeeping-phase] .bank-account-card,
html[data-ofi-bookkeeping-phase] .mapping-box,
html[data-ofi-bookkeeping-phase] .bank-import-review > div {
  border-color: var(--ofi-border);
  background: var(--ofi-surface);
}
html[data-ofi-bookkeeping-phase] .quick-card:hover,
html[data-ofi-bookkeeping-phase] .bank-account-card:hover {
  border-color: var(--ofi-primary-border);
  background: var(--ofi-primary-soft);
  box-shadow: var(--ofi-shadow-sm);
}

/* Launcher entry point in the approved compact top bar. */
.workspace-launcher-button {
  width: 38px;
  height: 38px;
  flex: 0 0 38px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 10px;
  color: #fff;
  background: rgba(255,255,255,.09);
  transition: background .16s ease, transform .16s ease;
}
.workspace-launcher-button:hover {
  background: rgba(255,255,255,.17);
  transform: translateY(-1px);
}

/* Foundation Language Selector in the application top bar. */
.topbar-language-slot .ofi-language-selector {
  gap: 5px;
}
.topbar-language-slot .ofi-language-selector__label {
  display: none;
}
.topbar-language-slot .ofi-language-selector__controls {
  padding: 2px;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 10px;
  background: rgba(255,255,255,.08);
}
.topbar-language-slot .ofi-language-selector__option {
  min-height: 31px;
  padding: 5px 9px;
  border: 0;
  border-radius: 8px;
  color: rgba(255,255,255,.76);
  background: transparent;
  font-size: 11px;
  font-weight: 600;
}
.topbar-language-slot .ofi-language-selector__option[aria-pressed="true"] {
  color: var(--ofi-primary);
  background: #fff;
  box-shadow: 0 2px 8px rgba(18,35,76,.16);
}

/* Official Foundation Workspace Launcher host. */
.ofi-bookkeeping-launcher-stage {
  position: relative;
  min-height: 100vh;
  background: var(--ofi-bg);
}
.ofi-bookkeeping-launcher-toolbar {
  position: absolute;
  top: 18px;
  right: 22px;
  z-index: 5;
  padding: 7px 9px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  box-shadow: var(--ofi-shadow-sm);
  backdrop-filter: blur(8px);
}
.ofi-bookkeeping-launcher-toolbar .ofi-language-selector {
  gap: 7px;
}
.ofi-bookkeeping-launcher-toolbar .ofi-language-selector__label {
  color: var(--ofi-text-muted);
  font-size: 10px;
}
.ofi-bookkeeping-launcher-toolbar .ofi-language-selector__option {
  min-height: 31px;
  padding: 5px 9px;
  border-radius: 8px;
  font-size: 11px;
  font-weight: 600;
}
.ofi-bookkeeping-launcher-stage .ofi-workspace-launcher__brand {
  background:
    radial-gradient(circle at 18% 12%, rgba(255,255,255,.17), transparent 31%),
    linear-gradient(145deg, var(--ofi-primary), #31578f 54%, #287ca5);
}
.ofi-bookkeeping-launcher-stage .ofi-workspace-launcher__card {
  border-radius: 20px;
}
.ofi-bookkeeping-launcher-stage .ofi-workspace-launcher__card h2,
.ofi-bookkeeping-launcher-stage .ofi-workspace-launcher__brand h1 {
  font-weight: 620;
}
.workspace-launcher-busy {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 10px;
  color: var(--ofi-text-strong);
  background: rgba(246,248,252,.72);
  backdrop-filter: blur(4px);
}
.workspace-launcher-busy .spinner {
  width: 28px;
  height: 28px;
  border: 3px solid var(--ofi-primary-soft);
  border-top-color: var(--ofi-primary);
  border-radius: 50%;
  animation: ofiBkSpin .7s linear infinite;
}
@keyframes ofiBkSpin { to { transform: rotate(360deg); } }

/* Company manager opened from the official launcher. */
.workspace-manager-stage {
  min-height: 100vh;
  padding-bottom: 48px;
  background: linear-gradient(180deg, var(--ofi-primary-soft) 0, var(--ofi-bg) 230px);
}
.workspace-manager-top {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 9px 18px;
  color: #fff;
  background: linear-gradient(92deg, var(--ofi-primary), var(--ofi-primary-hover));
  box-shadow: 0 2px 12px rgba(36,63,134,.16);
}
.workspace-manager-brand .brand-copy small { color: rgba(255,255,255,.72); }
.workspace-language-slot .ofi-language-selector__label { display: none; }
.workspace-language-slot .ofi-language-selector__controls {
  padding: 2px;
  border: 1px solid rgba(255,255,255,.20);
  border-radius: 10px;
  background: rgba(255,255,255,.08);
}
.workspace-language-slot .ofi-language-selector__option {
  min-height: 31px;
  padding: 5px 9px;
  border: 0;
  border-radius: 8px;
  color: rgba(255,255,255,.78);
  background: transparent;
  font-size: 11px;
  font-weight: 600;
}
.workspace-language-slot .ofi-language-selector__option[aria-pressed="true"] {
  color: var(--ofi-primary);
  background: #fff;
}
.workspace-manager-card {
  width: min(980px, calc(100% - 32px));
  margin: 30px auto 0;
  padding: 24px;
  border: 1px solid var(--ofi-border);
  border-radius: 18px;
  background: var(--ofi-surface);
  box-shadow: var(--ofi-shadow-lg);
}
.workspace-manager-heading { margin-bottom: 16px; }
.workspace-company-list {
  display: grid;
  gap: 9px;
}
.workspace-company-row {
  display: grid;
  grid-template-columns: 42px minmax(0,1fr) auto;
  align-items: center;
  gap: 12px;
  min-height: 68px;
  padding: 10px 12px;
  border: 1px solid var(--ofi-border);
  border-radius: 12px;
  background: var(--ofi-surface);
}
.workspace-company-row:hover {
  border-color: var(--ofi-primary-border);
  background: var(--ofi-primary-soft);
}
.workspace-company-icon {
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 11px;
  color: var(--ofi-primary);
  background: var(--ofi-primary-soft);
}
.workspace-company-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}
.workspace-company-copy strong {
  overflow: hidden;
  color: var(--ofi-text-strong);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 620;
}
.workspace-company-copy small {
  overflow: hidden;
  color: var(--ofi-text-muted);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 11px;
}
.workspace-company-actions {
  display: flex;
  align-items: center;
  gap: 7px;
}
.workspace-manager-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding-top: 15px;
  border-top: 1px solid var(--ofi-border);
  color: var(--ofi-text-muted);
  font-size: 11px;
}

/* Keep Foundation-aligned controls compact, consistent and <= 700 weight. */
html[data-ofi-bookkeeping-phase] button,
html[data-ofi-bookkeeping-phase] input,
html[data-ofi-bookkeeping-phase] select,
html[data-ofi-bookkeeping-phase] textarea {
  font-family: var(--ofi-font-family);
}
html[data-ofi-bookkeeping-phase] .field input,
html[data-ofi-bookkeeping-phase] .field select,
html[data-ofi-bookkeeping-phase] .field textarea,
html[data-ofi-bookkeeping-phase] .search-control,
html[data-ofi-bookkeeping-phase] .bank-picker-trigger {
  border-color: var(--ofi-border);
}
html[data-ofi-bookkeeping-phase] .field input:focus,
html[data-ofi-bookkeeping-phase] .field select:focus,
html[data-ofi-bookkeeping-phase] .field textarea:focus {
  border-color: var(--ofi-primary-border);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ofi-primary) 10%, transparent);
}

@media (max-width: 900px) {
  .topbar-language-slot { display: none; }
  .ofi-bookkeeping-launcher-toolbar { top: 10px; right: 10px; }
  .workspace-company-row { grid-template-columns: 38px minmax(0,1fr); }
  .workspace-company-actions { grid-column: 1 / -1; justify-content: flex-end; }
}
@media (max-width: 620px) {
  .workspace-manager-card { width: min(100% - 18px, 980px); margin-top: 12px; padding: 16px; }
  .workspace-manager-foot { align-items: flex-start; flex-direction: column; }
  .ofi-bookkeeping-launcher-toolbar { position: relative; top: auto; right: auto; display: flex; justify-content: flex-end; border: 0; border-radius: 0; box-shadow: none; }
}

/* F3 — OFI Platform access boundary */
.platform-gate-stage{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:28px;
  background:linear-gradient(145deg,var(--ofi-color-surface-subtle,#f5f7fb),var(--ofi-color-surface,#fff));
}
.platform-gate-card{
  width:min(520px,100%);
  padding:34px;
  border:1px solid var(--ofi-color-border,#d7ddea);
  border-radius:18px;
  background:var(--ofi-color-surface,#fff);
  box-shadow:0 18px 50px rgba(22,38,74,.10);
  text-align:center;
}
.platform-gate-card .brand-mark{margin:0 auto 18px}
.platform-gate-card h1{margin:7px 0 10px;font-size:28px;font-weight:680;color:var(--ofi-color-text,#17233d)}
.platform-gate-card p{margin:0 auto 20px;max-width:430px;color:var(--ofi-color-text-muted,#68738a);line-height:1.55}
.platform-gate-card .button-row{justify-content:center;margin-top:20px}
.platform-account-hint{
  display:inline-flex;
  align-items:center;
  min-height:32px;
  padding:6px 12px;
  border-radius:999px;
  background:var(--ofi-color-surface-subtle,#f5f7fb);
  border:1px solid var(--ofi-color-border,#d7ddea);
  color:var(--ofi-color-text-muted,#68738a);
  font-size:13px;
}
.platform-access-banner{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:38px;
  padding:7px 18px;
  border-bottom:1px solid #d9c98f;
  background:#fff9df;
  color:#5d4b0b;
  font-size:13px;
}
.platform-access-banner strong{font-weight:680;white-space:nowrap}
.platform-access-banner span{line-height:1.35}
@media (max-width:640px){.platform-gate-stage{padding:18px}.platform-gate-card{padding:26px 20px}.platform-access-banner{align-items:flex-start;flex-direction:column;gap:2px;padding:8px 14px}}

/* F6/7 — Roaming / editing-turn presentation. */
.roaming-access-banner{display:flex;align-items:center;gap:10px;padding:8px 18px;background:var(--ofi-color-surface-soft,#f6f8fb);border-bottom:1px solid var(--ofi-color-border,#d8dee8);font-size:13px;min-height:42px}
.roaming-access-banner strong{font-weight:650;color:var(--ofi-color-text-strong,#172033)}
.roaming-access-banner span{flex:1;color:var(--ofi-color-text-muted,#5d6878)}
.roaming-access-banner.warning{background:#fff9ec}.roaming-access-banner.request{background:#f2f5ff}
.roaming-turn-button{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 10px;border:1px solid var(--ofi-color-border,#d8dee8);border-radius:8px;background:var(--ofi-color-surface,#fff);color:var(--ofi-color-text,#253047);font:inherit;font-size:12px;cursor:pointer}
.roaming-turn-button strong{font-weight:650}.roaming-dot{width:8px;height:8px;border-radius:50%;background:#8b95a5;box-shadow:0 0 0 3px rgba(139,149,165,.12)}
.roaming-turn-button.editor .roaming-dot{background:#26895f;box-shadow:0 0 0 3px rgba(38,137,95,.12)}
.roaming-panel{grid-column:1/-1}.roaming-panel .details-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.remote-workspaces-section{margin-top:20px;border-top:1px solid var(--ofi-color-border,#d8dee8);padding-top:18px}.workspace-subhead{display:flex;justify-content:space-between;gap:18px;align-items:baseline;margin-bottom:10px}.workspace-subhead strong{font-weight:650}.workspace-subhead span{font-size:12px;color:var(--ofi-color-text-muted,#5d6878)}
.remote-workspace-row{background:var(--ofi-color-surface-soft,#f6f8fb)}
html[data-ofi-turn-mode="reader"] .roaming-turn-button.reader{background:var(--ofi-color-surface-soft,#f6f8fb)}
@media(max-width:760px){.roaming-access-banner{align-items:flex-start;flex-wrap:wrap}.roaming-access-banner span{flex-basis:100%}.roaming-turn-button strong{display:none}.roaming-panel .details-list{grid-template-columns:1fr}.workspace-subhead{display:block}.workspace-subhead span{display:block;margin-top:3px}}

/* =========================================================
   F7 RC1 HF1 — Foundation 1.1.0 typography-scale alignment
   Physical-test refinement: consume the approved Foundation
   font-size tokens across Bookkeeping while preserving the
   spreadsheet-dense transaction layout and <= 700 weights.
   ========================================================= */
html[data-ofi-bookkeeping-phase] body {
  font-size: var(--ofi-font-size-md);
  line-height: var(--ofi-line-height-normal);
}
html[data-ofi-bookkeeping-phase] .brand-copy strong { font-size: var(--ofi-font-size-md); }
html[data-ofi-bookkeeping-phase] .brand-copy small { font-size: var(--ofi-font-size-xs); }
html[data-ofi-bookkeeping-phase] .organization-control select { font-size: var(--ofi-font-size-md); }
html[data-ofi-bookkeeping-phase] .dev-badge,
html[data-ofi-bookkeeping-phase] .phase-badge,
html[data-ofi-bookkeeping-phase] .status-pill,
html[data-ofi-bookkeeping-phase] .warning-badge,
html[data-ofi-bookkeeping-phase] .muted-badge,
html[data-ofi-bookkeeping-phase] .role-badge { font-size: var(--ofi-font-size-xs); }

html[data-ofi-bookkeeping-phase] .page-heading h1,
html[data-ofi-bookkeeping-phase] .bank-page-heading h1,
html[data-ofi-bookkeeping-phase] .register-title-row h1 {
  font-size: var(--ofi-font-size-title) !important;
  line-height: var(--ofi-line-height-tight);
}
html[data-ofi-bookkeeping-phase] .page-heading p,
html[data-ofi-bookkeeping-phase] .bank-page-heading p,
html[data-ofi-bookkeeping-phase] .main-menu-head p {
  font-size: var(--ofi-font-size-sm) !important;
  line-height: var(--ofi-line-height-normal);
}
html[data-ofi-bookkeeping-phase] .eyebrow { font-size: var(--ofi-font-size-xs); }
html[data-ofi-bookkeeping-phase] .panel-heading h2,
html[data-ofi-bookkeeping-phase] .modal-header h2,
html[data-ofi-bookkeeping-phase] .main-menu-head h2,
html[data-ofi-bookkeeping-phase] .empty-module h2,
html[data-ofi-bookkeeping-phase] .coa-empty h3 {
  font-size: var(--ofi-font-size-lg) !important;
  line-height: var(--ofi-line-height-tight);
}

html[data-ofi-bookkeeping-phase] .primary-button,
html[data-ofi-bookkeeping-phase] .secondary-button,
html[data-ofi-bookkeeping-phase] .text-button,
html[data-ofi-bookkeeping-phase] .back-link,
html[data-ofi-bookkeeping-phase] .compact-button,
html[data-ofi-bookkeeping-phase] .mini-action {
  font-size: var(--ofi-font-size-md) !important;
}
html[data-ofi-bookkeeping-phase] .heading-actions .primary-button,
html[data-ofi-bookkeeping-phase] .heading-actions .secondary-button,
html[data-ofi-bookkeeping-phase] .bank-bulk-bar .primary-button,
html[data-ofi-bookkeeping-phase] .bank-bulk-bar .secondary-button {
  font-size: var(--ofi-font-size-sm) !important;
}

html[data-ofi-bookkeeping-phase] .field > span,
html[data-ofi-bookkeeping-phase] .report-controls-detail .field > span,
html[data-ofi-bookkeeping-phase] .report-control-grid .field span,
html[data-ofi-bookkeeping-phase] .bank-account-filter > span,
html[data-ofi-bookkeeping-phase] .transaction-edit-grid .field > span {
  font-size: var(--ofi-font-size-sm) !important;
}
html[data-ofi-bookkeeping-phase] .field input,
html[data-ofi-bookkeeping-phase] .field select,
html[data-ofi-bookkeeping-phase] .field textarea,
html[data-ofi-bookkeeping-phase] .report-controls-detail .field input,
html[data-ofi-bookkeeping-phase] .report-controls-detail .field select,
html[data-ofi-bookkeeping-phase] .transaction-edit-grid .field input,
html[data-ofi-bookkeeping-phase] .transaction-edit-grid .field select,
html[data-ofi-bookkeeping-phase] .transaction-edit-grid .field textarea,
html[data-ofi-bookkeeping-phase] .bank-account-filter select,
html[data-ofi-bookkeeping-phase] .bank-search-control input {
  font-size: var(--ofi-font-size-md) !important;
}
html[data-ofi-bookkeeping-phase] .field small,
html[data-ofi-bookkeeping-phase] .helper,
html[data-ofi-bookkeeping-phase] .foundation-note span,
html[data-ofi-bookkeeping-phase] .toggle-setting small,
html[data-ofi-bookkeeping-phase] .locked-setting small {
  font-size: var(--ofi-font-size-xs) !important;
}
html[data-ofi-bookkeeping-phase] .foundation-note strong,
html[data-ofi-bookkeeping-phase] .toggle-setting strong,
html[data-ofi-bookkeeping-phase] .locked-setting strong { font-size: var(--ofi-font-size-sm) !important; }

/* Tables follow the Foundation DataGrid scale: 13px heads, 14px data. */
html[data-ofi-bookkeeping-phase] .coa-table th,
html[data-ofi-bookkeeping-phase] .register-table th,
html[data-ofi-bookkeeping-phase] .journal-lines th,
html[data-ofi-bookkeeping-phase] .financial-report-table th,
html[data-ofi-bookkeeping-phase] .transaction-detail-grouped th {
  font-size: var(--ofi-font-size-sm) !important;
}
html[data-ofi-bookkeeping-phase] .coa-table td,
html[data-ofi-bookkeeping-phase] .register-table td,
html[data-ofi-bookkeeping-phase] .financial-report-table td,
html[data-ofi-bookkeeping-phase] .transaction-detail-grouped td,
html[data-ofi-bookkeeping-phase] .ledger-detail-table,
html[data-ofi-bookkeeping-phase] .transaction-detail-table {
  font-size: var(--ofi-font-size-md) !important;
}
html[data-ofi-bookkeeping-phase] .report-paper-head h2,
html[data-ofi-bookkeeping-phase] .report-paper-detail .report-paper-head h2 { font-size: 20px !important; }
html[data-ofi-bookkeeping-phase] .report-paper-head p,
html[data-ofi-bookkeeping-phase] .report-paper-head > span,
html[data-ofi-bookkeeping-phase] .report-detail-page-heading p,
html[data-ofi-bookkeeping-phase] .report-warning,
html[data-ofi-bookkeeping-phase] .report-loading,
html[data-ofi-bookkeeping-phase] .report-empty { font-size: var(--ofi-font-size-sm) !important; }

/* Bank Transactions — match Foundation TransactionGrid typography. */
html[data-ofi-bookkeeping-phase] .bank-account-card span { font-size: var(--ofi-font-size-xs) !important; }
html[data-ofi-bookkeeping-phase] .bank-account-card strong { font-size: var(--ofi-font-size-md) !important; }
html[data-ofi-bookkeeping-phase] .bank-account-card small { font-size: var(--ofi-font-size-xs) !important; }
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button { font-size: var(--ofi-font-size-sm) !important; }
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button span { font-size: var(--ofi-font-size-xs) !important; }
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar .table-count,
html[data-ofi-bookkeeping-phase] .table-count { font-size: var(--ofi-font-size-xs) !important; }
html[data-ofi-bookkeeping-phase] .bank-edit-grid thead th,
html[data-ofi-bookkeeping-phase] .bank-edit-grid th { font-size: var(--ofi-font-size-sm) !important; }
html[data-ofi-bookkeeping-phase] .bank-date-cell strong,
html[data-ofi-bookkeeping-phase] .bank-description-main strong,
html[data-ofi-bookkeeping-phase] .bank-description-button strong,
html[data-ofi-bookkeeping-phase] .money-cell,
html[data-ofi-bookkeeping-phase] .bank-picker-trigger,
html[data-ofi-bookkeeping-phase] .bank-inline-select,
html[data-ofi-bookkeeping-phase] .bank-full-cell-select {
  font-size: var(--ofi-font-size-md) !important;
  line-height: 1.2 !important;
}
html[data-ofi-bookkeeping-phase] .bank-date-cell small,
html[data-ofi-bookkeeping-phase] .bank-description-button small,
html[data-ofi-bookkeeping-phase] .bank-grid-row td > small,
html[data-ofi-bookkeeping-phase] .bank-match-state small,
html[data-ofi-bookkeeping-phase] .match-hint,
html[data-ofi-bookkeeping-phase] .bank-expanded span,
html[data-ofi-bookkeeping-phase] .bank-expanded-match small,
html[data-ofi-bookkeeping-phase] .bank-picker-group-label,
html[data-ofi-bookkeeping-phase] .bank-picker-option > small,
html[data-ofi-bookkeeping-phase] .bank-picker-empty,
html[data-ofi-bookkeeping-phase] .bank-suggestion-pill {
  font-size: var(--ofi-font-size-xs) !important;
}
html[data-ofi-bookkeeping-phase] .bank-picker-search input,
html[data-ofi-bookkeeping-phase] .bank-picker-add,
html[data-ofi-bookkeeping-phase] .bank-picker-option > span,
html[data-ofi-bookkeeping-phase] .bank-expanded strong,
html[data-ofi-bookkeeping-phase] .bank-expanded-suggestion > strong {
  font-size: var(--ofi-font-size-md) !important;
}
html[data-ofi-bookkeeping-phase] .bank-match-state .bank-match-button,
html[data-ofi-bookkeeping-phase] .bank-post-button,
html[data-ofi-bookkeeping-phase] .bank-grid-actions .bank-inline-busy,
html[data-ofi-bookkeeping-phase] .bank-inline-busy {
  font-size: var(--ofi-font-size-sm) !important;
}
html[data-ofi-bookkeeping-phase] .row-open-label { font-size: var(--ofi-font-size-xs) !important; }

/* Secondary modules and menu copy use the same 12/13/14 token ladder. */
html[data-ofi-bookkeeping-phase] .menu-tile strong,
html[data-ofi-bookkeeping-phase] .import-step-head strong,
html[data-ofi-bookkeeping-phase] .file-picker-button strong,
html[data-ofi-bookkeeping-phase] .mapping-head strong,
html[data-ofi-bookkeeping-phase] .history-section h3,
html[data-ofi-bookkeeping-phase] .rule-section-head strong,
html[data-ofi-bookkeeping-phase] .match-option strong { font-size: var(--ofi-font-size-md) !important; }
html[data-ofi-bookkeeping-phase] .import-step-head small,
html[data-ofi-bookkeeping-phase] .file-picker-button small,
html[data-ofi-bookkeeping-phase] .mapping-head span,
html[data-ofi-bookkeeping-phase] .history-category-card strong,
html[data-ofi-bookkeeping-phase] .rule-section-head small,
html[data-ofi-bookkeeping-phase] .match-option small { font-size: var(--ofi-font-size-sm) !important; }
html[data-ofi-bookkeeping-phase] .history-category-card small,
html[data-ofi-bookkeeping-phase] .history-recent-list span,
html[data-ofi-bookkeeping-phase] .history-recent-list small,
html[data-ofi-bookkeeping-phase] .file-field small { font-size: var(--ofi-font-size-xs) !important; }

/* Foundation-native language controls keep their approved component sizes. */
.topbar-language-slot .ofi-language-selector__option,
.workspace-language-slot .ofi-language-selector__option,
.ofi-bookkeeping-launcher-toolbar .ofi-language-selector__option { font-size: var(--ofi-font-size-xs); }

/* =========================================================
   F7 RC1 HF2 — Foundation 1.1.0 main-menu alignment
   Replaces the legacy large tile drawer with the official compact
   Foundation drawer/navigation language. Navigation behavior is unchanged.
   ========================================================= */
.ofi-bookkeeping-menu-button {
  flex: 0 0 38px;
}
.ofi-bookkeeping-menu-drawer {
  width: min(var(--ofi-drawer-width), calc(100vw - 24px));
}
.ofi-bookkeeping-menu-drawer .ofi-drawer__nav {
  display: grid;
  align-content: start;
  gap: 2px;
}
.ofi-bookkeeping-menu-drawer .ofi-nav-item,
.ofi-bookkeeping-menu-drawer .ofi-nav-accordion__trigger {
  font-size: var(--ofi-font-size-sm);
}
.ofi-bookkeeping-menu-drawer .ofi-nav-subitem {
  font-size: 12.5px;
}
.ofi-bookkeeping-menu-drawer .ofi-nav-item__icon svg {
  width: 18px;
  height: 18px;
}
.ofi-bookkeeping-menu-drawer .ofi-button--icon svg {
  width: 16px;
  height: 16px;
}
@media (max-width: 620px) {
  .ofi-bookkeeping-menu-drawer {
    left: 8px;
    right: 8px;
    width: auto;
  }
}
@media print {
  .ofi-bookkeeping-menu-backdrop,
  .ofi-bookkeeping-menu-drawer,
  .ofi-bookkeeping-menu-button { display: none !important; }
}

/* =========================================================
   F7 RC1 HF3 — Bank Transactions / Foundation Kit alignment
   Presentation-only refinement. The approved bookkeeping flow,
   row actions, match/categorize/post semantics and schema remain
   unchanged. This block maps the bank feed to Foundation 1.1.0
   cards, tabs, controls and dense TransactionGrid tokens.
   ========================================================= */
html[data-ofi-bookkeeping-phase] .bank-page {
  --bk-bank-row-height: var(--ofi-transaction-row-height);
}

/* Heading + primary actions use the same compact rhythm as Foundation pages. */
html[data-ofi-bookkeeping-phase] .bank-page-heading {
  align-items: end;
  margin-bottom: var(--ofi-space-3);
  gap: var(--ofi-space-4);
}
html[data-ofi-bookkeeping-phase] .bank-page-heading .heading-actions {
  gap: var(--ofi-space-2);
}
html[data-ofi-bookkeeping-phase] .bank-page-heading .heading-actions .primary-button,
html[data-ofi-bookkeeping-phase] .bank-page-heading .heading-actions .secondary-button {
  min-height: var(--ofi-control-height-sm);
  height: var(--ofi-control-height-sm);
  padding: 0 11px;
  border-radius: var(--ofi-radius-md);
  font-size: var(--ofi-font-size-sm) !important;
  font-weight: var(--ofi-font-weight-semibold);
}

/* Account selector cards become Foundation cards rather than legacy bank tiles. */
html[data-ofi-bookkeeping-phase] .bank-account-cards {
  gap: var(--ofi-space-2);
  margin-bottom: var(--ofi-space-3);
}
html[data-ofi-bookkeeping-phase] .bank-account-card {
  position: relative;
  min-height: 76px;
  padding: 10px 12px 9px;
  border: 1px solid var(--ofi-border);
  border-radius: var(--ofi-radius-lg);
  background: var(--ofi-surface);
  box-shadow: var(--ofi-shadow-sm);
  color: var(--ofi-text);
  transition: border-color .15s ease, background .15s ease, box-shadow .15s ease, transform .15s ease;
}
html[data-ofi-bookkeeping-phase] .bank-account-card:hover {
  border-color: var(--ofi-primary-border);
  background: var(--ofi-surface-soft);
  transform: translateY(-1px);
}
html[data-ofi-bookkeeping-phase] .bank-account-card.selected {
  border-color: var(--ofi-primary-border);
  background: linear-gradient(135deg, var(--ofi-primary-soft), var(--ofi-surface) 78%);
  box-shadow: inset 0 3px 0 var(--ofi-primary), var(--ofi-shadow-sm);
}
html[data-ofi-bookkeeping-phase] .bank-account-card span {
  color: var(--ofi-text-muted);
  font-weight: var(--ofi-font-weight-semibold);
  letter-spacing: .045em;
}
html[data-ofi-bookkeeping-phase] .bank-account-card strong {
  margin-top: 1px;
  color: var(--ofi-text-strong);
  font-weight: var(--ofi-font-weight-semibold);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html[data-ofi-bookkeeping-phase] .bank-account-card small {
  margin-top: 4px;
  color: var(--ofi-text-muted);
  line-height: 1.25;
}
html[data-ofi-bookkeeping-phase] .bank-account-card small b {
  color: var(--ofi-text-subtle);
  font-weight: var(--ofi-font-weight-regular);
}

/* One Foundation card contains tabs, filters and the transaction grid. */
html[data-ofi-bookkeeping-phase] .bank-layout-panel {
  overflow: hidden;
  border: 1px solid var(--ofi-border);
  border-radius: var(--ofi-radius-lg);
  background: var(--ofi-surface);
  box-shadow: var(--ofi-shadow-sm);
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs {
  display: flex;
  align-items: center;
  gap: 3px;
  min-height: 44px;
  padding: 5px 8px;
  border-bottom: 1px solid var(--ofi-border);
  background: var(--ofi-surface-soft);
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button {
  min-height: 32px;
  padding: 0 11px;
  border: 0;
  border-radius: var(--ofi-radius-md);
  color: var(--ofi-text-muted);
  background: transparent;
  font-weight: var(--ofi-font-weight-medium);
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button:hover {
  color: var(--ofi-text-strong);
  background: var(--ofi-surface-muted);
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button.active {
  border-bottom-color: transparent;
  color: var(--ofi-primary);
  background: var(--ofi-surface);
  box-shadow: var(--ofi-shadow-sm);
  font-weight: var(--ofi-font-weight-semibold);
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button span {
  min-width: 20px;
  height: 20px;
  margin-left: 5px;
  padding: 0 6px;
  border: 1px solid var(--ofi-border);
  border-radius: var(--ofi-radius-pill);
  background: var(--ofi-surface-muted);
  color: var(--ofi-text-muted);
  line-height: 18px;
}
html[data-ofi-bookkeeping-phase] .bank-feed-tabs button.active span {
  border-color: var(--ofi-primary-border);
  background: var(--ofi-primary-soft);
  color: var(--ofi-primary);
}

/* Foundation toolbar: one baseline, 34px dense controls, no legacy micro-copy. */
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar {
  min-height: var(--ofi-toolbar-height);
  padding: 6px 10px;
  gap: var(--ofi-space-2);
  border-bottom: 1px solid var(--ofi-border);
  background: var(--ofi-surface);
}
html[data-ofi-bookkeeping-phase] .bank-account-filter {
  min-width: 220px;
}
html[data-ofi-bookkeeping-phase] .bank-account-filter select,
html[data-ofi-bookkeeping-phase] .bank-search-control,
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar .compact-button {
  min-height: 34px !important;
  height: 34px !important;
  border-radius: var(--ofi-radius-md) !important;
}
html[data-ofi-bookkeeping-phase] .bank-account-filter select,
html[data-ofi-bookkeeping-phase] .bank-search-control {
  border: 1px solid var(--ofi-border-strong);
  background: var(--ofi-surface);
  box-shadow: none;
}
html[data-ofi-bookkeeping-phase] .bank-account-filter select {
  padding: 0 30px 0 10px !important;
  color: var(--ofi-text);
  font-size: var(--ofi-font-size-sm) !important;
}
html[data-ofi-bookkeeping-phase] .bank-search-control {
  min-width: 300px;
  max-width: 500px;
  padding: 0 10px;
  gap: 8px;
  color: var(--ofi-text-subtle);
}
html[data-ofi-bookkeeping-phase] .bank-search-control:focus-within,
html[data-ofi-bookkeeping-phase] .bank-account-filter select:focus {
  border-color: var(--ofi-focus);
  box-shadow: var(--ofi-focus-ring);
  outline: 0;
}
html[data-ofi-bookkeeping-phase] .bank-search-control input {
  min-height: 32px !important;
  height: 32px !important;
  color: var(--ofi-text);
  font-size: var(--ofi-font-size-sm) !important;
}
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar .compact-button {
  padding: 0 12px;
  border-color: var(--ofi-secondary-border);
  background: var(--ofi-secondary-bg);
  color: var(--ofi-secondary-text);
  font-size: var(--ofi-font-size-sm) !important;
  font-weight: var(--ofi-font-weight-semibold);
}
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar .compact-button:hover {
  background: var(--ofi-secondary-hover);
}
html[data-ofi-bookkeeping-phase] .bank-layout-toolbar .table-count {
  margin-left: auto;
  color: var(--ofi-text-muted);
}

/* TransactionGrid mapping: Foundation surfaces, borders and dense row metrics. */
html[data-ofi-bookkeeping-phase] .bank-grid-shell,
html[data-ofi-bookkeeping-phase] .bank-grid-scroll {
  background: var(--ofi-surface);
}
html[data-ofi-bookkeeping-phase] .bank-grid-scroll {
  scrollbar-color: var(--ofi-border-strong) transparent;
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid {
  border-collapse: separate;
  border-spacing: 0;
  color: var(--ofi-text);
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid thead th {
  height: 36px;
  padding: 0 8px;
  border-bottom: 1px solid var(--ofi-border-strong);
  border-right: 1px solid var(--ofi-border);
  background: var(--ofi-surface-soft);
  color: var(--ofi-text-strong);
  box-shadow: none;
  font-size: var(--ofi-font-size-sm) !important;
  font-weight: var(--ofi-font-weight-semibold);
  letter-spacing: 0;
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid thead th:last-child {
  border-right: 0;
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row > td {
  height: var(--bk-bank-row-height);
  padding: 0 8px;
  border-bottom: 1px solid var(--ofi-border);
  border-right: 1px solid var(--ofi-border);
  background: var(--ofi-surface);
  transition: background .12s ease;
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row > td:last-child {
  border-right: 0;
}
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row:hover > td {
  background: var(--ofi-surface-soft);
}
html[data-ofi-bookkeeping-phase] .bank-grid-row.has-smart-suggestion > td.bank-editor-cell,
html[data-ofi-bookkeeping-phase] .bank-grid-row.has-rule-suggestion > td.bank-editor-cell {
  background: color-mix(in srgb, var(--ofi-primary-soft) 55%, var(--ofi-surface));
}
html[data-ofi-bookkeeping-phase] .bank-grid-row.has-match td:first-child {
  box-shadow: inset 3px 0 var(--ofi-success);
}
html[data-ofi-bookkeeping-phase] .bank-grid-row.ready-to-post:not(.has-match) td:first-child {
  box-shadow: inset 3px 0 var(--ofi-primary-light);
}
html[data-ofi-bookkeeping-phase] .bank-date-cell strong,
html[data-ofi-bookkeeping-phase] .bank-description-main strong,
html[data-ofi-bookkeeping-phase] .money-cell {
  color: var(--ofi-text-strong);
  font-weight: var(--ofi-font-weight-medium);
}
html[data-ofi-bookkeeping-phase] .bank-description-button:hover strong {
  color: var(--ofi-primary);
}

/* Full-cell searchable editors now behave like Foundation TransactionGrid cells. */
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody tr.bank-grid-row > td.bank-editor-cell {
  padding: 0 !important;
}
html[data-ofi-bookkeeping-phase] .bank-cell-picker,
html[data-ofi-bookkeeping-phase] .bank-picker-trigger,
html[data-ofi-bookkeeping-phase] .bank-native-editor-cell .bank-grid-editor,
html[data-ofi-bookkeeping-phase] .bank-full-cell-select {
  height: var(--bk-bank-row-height) !important;
  min-height: var(--bk-bank-row-height) !important;
}
html[data-ofi-bookkeeping-phase] .bank-picker-trigger {
  padding: 0 8px;
  border: 0;
  border-radius: 0;
  color: var(--ofi-text);
  background: transparent;
  font-size: var(--ofi-font-size-md) !important;
  font-weight: var(--ofi-font-weight-regular) !important;
}
html[data-ofi-bookkeeping-phase] .bank-picker-trigger > span {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
html[data-ofi-bookkeeping-phase] .bank-picker-trigger:not(.has-value) {
  color: var(--ofi-text-muted);
}
html[data-ofi-bookkeeping-phase] .bank-picker-trigger:hover,
html[data-ofi-bookkeeping-phase] .bank-full-cell-select:hover {
  background: var(--ofi-surface-muted) !important;
  box-shadow: none !important;
}
html[data-ofi-bookkeeping-phase] .bank-cell-picker.open .bank-picker-trigger,
html[data-ofi-bookkeeping-phase] .bank-full-cell-select:focus {
  background: var(--ofi-surface) !important;
  box-shadow: inset 0 0 0 2px var(--ofi-focus) !important;
}
html[data-ofi-bookkeeping-phase] .bank-full-cell-select {
  padding: 0 28px 0 8px !important;
  color: var(--ofi-text);
  font-size: var(--ofi-font-size-md) !important;
  font-weight: var(--ofi-font-weight-regular) !important;
}
html[data-ofi-bookkeeping-phase] .bank-picker-trigger > b {
  color: var(--ofi-text-subtle);
}

/* Smart Categorization remains review-only; its visual cue is now readable. */
html[data-ofi-bookkeeping-phase] .bank-suggestion-pill {
  flex: 0 0 auto;
  max-width: none !important;
  overflow: visible !important;
  text-overflow: clip !important;
  margin-left: 6px;
  padding: 2px 7px;
  border: 1px solid var(--ofi-primary-border);
  border-radius: var(--ofi-radius-pill);
  background: var(--ofi-primary-soft);
  color: var(--ofi-primary);
  font-size: 10px !important;
  font-style: normal;
  font-weight: var(--ofi-font-weight-semibold);
  line-height: 1.2;
  text-transform: none;
  letter-spacing: 0;
}
html[data-ofi-bookkeeping-phase] .bank-suggestion-pill.rule {
  border-color: color-mix(in srgb, var(--ofi-success) 30%, white);
  background: var(--ofi-success-soft);
  color: var(--ofi-success);
}

/* Match and row actions use Foundation action sizing and state colors. */
html[data-ofi-bookkeeping-phase] .bank-col-match { width: 158px; }
html[data-ofi-bookkeeping-phase] .bank-col-action { width: 112px; }
html[data-ofi-bookkeeping-phase] .bank-match-state {
  display: grid;
  gap: 2px;
  align-content: center;
}
html[data-ofi-bookkeeping-phase] .bank-match-state .bank-match-button,
html[data-ofi-bookkeeping-phase] .bank-post-button {
  min-height: 28px;
  height: 28px;
  border-radius: var(--ofi-radius-sm);
  padding: 0 8px;
  font-size: var(--ofi-font-size-xs) !important;
  font-weight: var(--ofi-font-weight-semibold);
}
html[data-ofi-bookkeeping-phase] .bank-match-state .bank-match-button {
  min-width: 76px;
}
html[data-ofi-bookkeeping-phase] .bank-match-state.has-match .bank-match-button {
  border-color: color-mix(in srgb, var(--ofi-success) 36%, white);
  background: var(--ofi-success-soft);
  color: var(--ofi-success);
}
html[data-ofi-bookkeeping-phase] .bank-match-state.has-match .bank-match-button:hover {
  border-color: var(--ofi-success);
  background: color-mix(in srgb, var(--ofi-success-soft) 70%, white);
}
html[data-ofi-bookkeeping-phase] .bank-match-state small {
  max-width: 148px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--ofi-text-muted);
  font-size: 11px !important;
  line-height: 1.15;
}
html[data-ofi-bookkeeping-phase] .bank-post-button {
  min-width: 48px;
}
html[data-ofi-bookkeeping-phase] .bank-row-more {
  width: 28px;
  height: 28px;
  border-radius: var(--ofi-radius-sm);
  border-color: var(--ofi-secondary-border);
  background: var(--ofi-secondary-bg);
  color: var(--ofi-secondary-text);
}
html[data-ofi-bookkeeping-phase] .bank-row-more:hover,
html[data-ofi-bookkeeping-phase] .bank-row-more.active {
  border-color: var(--ofi-primary-border);
  background: var(--ofi-primary-soft);
  color: var(--ofi-primary);
}
html[data-ofi-bookkeeping-phase] .bank-grid-row input[type="checkbox"],
html[data-ofi-bookkeeping-phase] .bank-edit-grid thead input[type="checkbox"] {
  width: 14px;
  height: 14px;
  accent-color: var(--ofi-primary);
}

/* Searchable picker popover consumes the same Foundation surfaces. */
html[data-ofi-bookkeeping-phase] .bank-picker-popover {
  border-color: var(--ofi-border-strong);
  border-radius: var(--ofi-radius-md);
  background: var(--ofi-surface);
  box-shadow: var(--ofi-shadow-md);
}
html[data-ofi-bookkeeping-phase] .bank-picker-search,
html[data-ofi-bookkeeping-phase] .bank-picker-add {
  border-bottom-color: var(--ofi-border);
  background: var(--ofi-surface);
}
html[data-ofi-bookkeeping-phase] .bank-picker-add {
  color: var(--ofi-primary);
}
html[data-ofi-bookkeeping-phase] .bank-picker-add:hover,
html[data-ofi-bookkeeping-phase] .bank-picker-option:hover,
html[data-ofi-bookkeeping-phase] .bank-picker-option.selected {
  background: var(--ofi-primary-soft);
}
html[data-ofi-bookkeeping-phase] .bank-picker-option.selected > span {
  color: var(--ofi-primary);
}
html[data-ofi-bookkeeping-phase] .bank-picker-group-label,
html[data-ofi-bookkeeping-phase] .bank-picker-option > small,
html[data-ofi-bookkeeping-phase] .bank-picker-empty {
  color: var(--ofi-text-muted);
}

/* Expanded row follows the same card language, without changing its actions. */
html[data-ofi-bookkeeping-phase] .bank-detail-row > td {
  background: var(--ofi-surface-soft);
}
html[data-ofi-bookkeeping-phase] .bank-expanded {
  border: 1px solid var(--ofi-border);
  border-radius: var(--ofi-radius-md);
  background: var(--ofi-surface);
}
html[data-ofi-bookkeeping-phase] .bank-expanded-match {
  border-color: color-mix(in srgb, var(--ofi-success) 28%, white);
  background: var(--ofi-success-soft);
}

@media (max-width: 1500px) {
  html[data-ofi-bookkeeping-phase] .bank-col-match { width: 148px; }
  html[data-ofi-bookkeeping-phase] .bank-col-action { width: 108px; }
  html[data-ofi-bookkeeping-phase] .bank-suggestion-pill { padding-left: 6px; padding-right: 6px; font-size: 9.5px !important; }
}

/* =========================================================
   F7 RC1 HF4 — Bank Transactions typography weight normalization
   Physical-test refinement: all ordinary row values use the
   Foundation regular weight. Headers, actions and state badges
   retain their semantic emphasis.
   ========================================================= */
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-date-cell strong,
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-description-main strong,
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .money-cell,
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-picker-trigger,
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-full-cell-select,
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-inline-select {
  font-weight: var(--ofi-font-weight-regular) !important;
}

/* Keep placeholder values visually quieter without changing weight rhythm. */
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-picker-trigger:not(.has-value),
html[data-ofi-bookkeeping-phase] .bank-edit-grid tbody > tr.bank-grid-row .bank-full-cell-select:invalid {
  color: var(--ofi-text-muted);
}
