/* Equity Source brand font (2026-09-14, from logo package: Fonts/Mulish -
   Google Fonts.url). Self-hosted rather than pulled from Google's CDN so
   this doesn't need a CSP allowlist change (style-src/font-src only permit
   'self' and cdnjs.cloudflare.com -- see app.py) and so the page doesn't
   depend on a third-party font host at all. Both files are the variable-font
   build (one file covers the whole weight range via `font-weight: 200 1000`)
   converted from the .ttf in the brand package to .woff2 for a much smaller
   download; the OFL license text that permits this is kept alongside them
   in static/fonts/. font-display: swap avoids invisible text while the font
   loads -- text renders immediately in the fallback stack and swaps in. */
@font-face {
  font-family: 'Mulish';
  src: url('fonts/Mulish-Variable.woff2') format('woff2-variations'),
       url('fonts/Mulish-Variable.woff2') format('woff2');
  font-weight: 200 1000;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Mulish';
  src: url('fonts/Mulish-Italic-Variable.woff2') format('woff2-variations'),
       url('fonts/Mulish-Italic-Variable.woff2') format('woff2');
  font-weight: 200 1000;
  font-style: italic;
  font-display: swap;
}

/* Equity Source brand palette (from logo package / email signature):
   navy #012E4C (primary), cyan #05D0E0 (accent), grey #828485.
   Overriding Bootstrap's CSS custom properties here (loaded after
   bootstrap.min.css) recolors .btn-primary, links, etc. without having
   to hand-patch every Bootstrap utility class. */
:root {
  --bs-body-font-family: 'Mulish', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --bs-primary: #012E4C;
  --bs-primary-rgb: 1, 46, 76;
  --bs-link-color: #012E4C;
  --bs-link-color-rgb: 1, 46, 76;
  --bs-link-hover-color: #05D0E0;
  --bs-link-hover-color-rgb: 5, 208, 224;
}
.btn-primary {
  --bs-btn-bg: #012E4C;
  --bs-btn-border-color: #012E4C;
  --bs-btn-hover-bg: #024368;
  --bs-btn-hover-border-color: #024368;
  --bs-btn-active-bg: #011f33;
  --bs-btn-active-border-color: #011f33;
}

/* Remove number-input spin buttons sitewide (2026-09-11, requested for lender
   criteria page) -- the up/down arrows only make sense for small increments;
   this app's numeric fields are dollar amounts, percentages and credit
   scores, so the +/-1 steppers are just visual clutter and a mis-click
   risk. */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] {
  -moz-appearance: textfield;
}

/* Explicit fallback alongside the --bs-body-font-family variable above --
   Bootstrap 5.3's reboot reads that variable on `body`, but setting the
   property directly here too means the brand font still applies even if a
   future Bootstrap upgrade stops reading that variable the same way. */
body { background: #f4f6f8; font-family: var(--bs-body-font-family); }
h1, h2, h3, h4, h5, h6 { font-family: 'Mulish', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-weight: 800; }
.card { margin-bottom: 1rem; }
.lender-card { border-left: 4px solid #012E4C; }
.stat-box { background: white; border-radius: 8px; padding: 1.2rem; text-align: center; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.stat-box .num { font-size: 2rem; font-weight: 700; color: #012E4C; }
table.table { background: white; }

/* 2026-10-02, Matthew's request: the agent/lender deal tables still run
   wide even after collapsing the final-rate/fee/LTV/amount columns into one
   "Final terms" cell above (agent_deals.html, lender_deals.html) -- tighter
   cell padding and a smaller font buy back more columns before
   .table-responsive's horizontal scrollbar kicks in, without hiding any
   data. */
.table-responsive table.table td,
.table-responsive table.table th {
  padding: .4rem .5rem;
  font-size: .875rem;
  vertical-align: middle;
}

/* 2026-09-30, Matthew's request (#441/#442): the action buttons at the right
   edge of the wide deal tables (agent_deals.html, lender_deals.html) were
   getting pushed off-screen, needing a horizontal scroll just to find them.
   Each template now wraps its table in .table-responsive (contains the
   scroll to the table, not the whole page) and pins the action column(s) to
   the right with position:sticky so Update/Documents/Confirm/Reject/Notes
   stay visible on screen no matter how far the table is scrolled. */
.table-responsive .sticky-action-col,
.table-responsive .sticky-review-col,
.table-responsive .sticky-notes-col {
  position: sticky;
  background: white;
}
.table-responsive .sticky-action-col {
  right: 0;
  min-width: 160px;
  box-shadow: -2px 0 4px rgba(0,0,0,.08);
}
.table-responsive .sticky-notes-col {
  right: 0;
  min-width: 110px;
  box-shadow: -2px 0 4px rgba(0,0,0,.08);
}
.table-responsive .sticky-review-col {
  right: 110px;
  min-width: 100px;
}
