/* Scoped to the four loan tools. Shared payoff and article styles are untouched. */
.loan-page { margin:0; font-family:system-ui,-apple-system,"Segoe UI",sans-serif; color:#18312b; background:#fff; line-height:1.6; }
.loan-page *, .loan-page *::before, .loan-page *::after { box-sizing:border-box; }
.loan-page [hidden] { display:none !important; }
.loan-page a { color:#08614b; text-underline-offset:.16em; }
.loan-page .site-header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:16px 24px; background:#0f6e56; color:#fff; }
.loan-page .site-header a { color:#fff; }
.loan-page .logo { font-weight:750; font-size:1.125rem; text-decoration:none; }
.loan-page .site-header nav { display:flex; gap:18px; align-items:center; }
.loan-page .lang-switch { border:1px solid #a2d4c7; border-radius:5px; padding:7px 10px; }
.loan-page main { max-width:1040px; padding:28px 24px; margin:auto; }
.loan-page h1 { font-size:clamp(1.8rem,4vw,2.6rem); line-height:1.2; margin:22px 0 14px; }
.loan-page h2 { font-size:1.4rem; line-height:1.35; margin:28px 0 14px; }
.loan-page h3 { font-size:1.15rem; line-height:1.4; }
.loan-page p { max-width:85ch; }
.loan-page .loan-byline, .loan-page .loan-hint { font-size:.88rem; color:#405d54; }
.loan-page .loan-intro { font-size:1.1rem; }
.loan-page .loan-limit, .loan-page .loan-warning { padding:14px 18px; border-left:4px solid #ab640f; background:#fff7e8; color:#533600; }
.loan-page .site-footer { padding:30px 24px; background:#f0f6f3; border-top:1px solid #cadbd4; margin-top:32px; }
.loan-page .site-footer .container { max-width:992px; margin:auto; }
.loan-page .site-footer nav { line-height:2.4; }
.loan-page .skip-link { position:absolute; left:8px; z-index:999; background:#fff; color:#0f513f; padding:12px; }
.loan-page :focus-visible { outline:3px solid #be6800; outline-offset:3px; }
#loan-app { border:1px solid #bdd5ca; border-radius:12px; background:#f7fbf9; padding:24px; margin:28px 0; }
#loan-app > h2 { margin-top:0; }
#loan-app fieldset { min-width:0; border:1px solid #b8cec5; border-radius:8px; padding:18px; margin:16px 0; }
#loan-app legend { font-weight:700; padding:0 6px; }
#loan-app .loan-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; align-items:end; }
#loan-app .loan-field { min-width:0; display:flex; flex-direction:column; }
#loan-app .loan-field label { font-weight:650; }
#loan-app .loan-field .loan-hint { margin:5px 0 8px; }
#loan-app input:not([type=checkbox]), #loan-app select { width:100%; min-width:0; min-height:46px; border:1px solid #75988a; border-radius:6px; background:#fff; padding:10px; color:#142e24; font:inherit; }
#loan-app input[aria-invalid=true], #loan-app select[aria-invalid=true] { border:2px solid #a02828; }
#loan-app button { min-height:46px; max-width:100%; border:1px solid #0f6e56; border-radius:6px; padding:10px 14px; font:inherit; font-weight:600; background:#fff; color:#07523f; cursor:pointer; overflow-wrap:anywhere; }
#loan-app button:hover:not(:disabled) { background:#e4f2eb; }
#loan-app button.loan-primary { background:#0f6e56; color:#fff; margin-top:20px; }
#loan-app button.loan-primary:hover:not(:disabled) { background:#094d3b; }
#loan-app :disabled { cursor:default; opacity:.62; }
#loan-app .loan-check { display:flex; align-items:center; gap:12px; min-height:46px; margin-top:22px; font-weight:650; }
#loan-app input[type=checkbox] { width:22px; height:22px; flex:0 0 22px; accent-color:#0f6e56; }
#loan-app .loan-error { color:#912222; font-weight:600; font-size:.9rem; margin:6px 0 0; }
#loan-status:empty { display:none; }
#loan-status { border-left:3px solid #0f6e56; padding:12px; background:#eaf4ee; }
#loan-app .loan-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
#loan-app .loan-metrics > div { min-width:0; padding:12px; background:#edf5f0; border-radius:6px; }
#loan-app dt { font-size:.86rem; color:#405d54; }
#loan-app dd { font-weight:700; font-size:1.1rem; margin:5px 0 0; overflow-wrap:anywhere; }
#loan-app .loan-offers { display:grid; gap:18px; }
#loan-app .loan-summary { padding:16px; border:1px solid #c4d8ce; border-radius:8px; background:#fff; min-width:0; }
#loan-app .loan-summary h3 { margin-top:0; }
#loan-app .loan-table-scroll { max-width:100%; overflow-x:auto; border:1px solid #c3d6cc; border-radius:7px; margin:14px 0; background:white; }
#loan-app table { border-collapse:collapse; width:100%; font-size:.88rem; }
#loan-app caption { text-align:left; padding:12px; font-weight:700; color:#18312b; }
#loan-app th, #loan-app td { padding:10px 12px; text-align:left; vertical-align:top; border-bottom:1px solid #d7e3dc; min-width:7rem; overflow-wrap:anywhere; }
#loan-app thead th { background:#e7f1eb; }
#loan-app tbody th { font-weight:500; }
#loan-app .loan-actions { display:flex; flex-wrap:wrap; gap:12px; margin:16px 0; }
#loan-offer { margin:8px 0; max-width:24rem; }
#loan-print { display:none; }
@media (max-width:600px) {
  .loan-page main { padding:20px 14px; }
  .loan-page .site-header { padding:14px; }
  .loan-page .site-header nav { gap:12px; font-size:.9rem; }
  #loan-app { padding:16px; }
  #loan-app fieldset { padding:12px; }
  #loan-app .loan-fields, #loan-app .loan-metrics { grid-template-columns:minmax(0,1fr); }
  #loan-app .loan-actions button { flex:1 1 13rem; }
}
@media print {
  @page { size:auto; margin:12mm; }
  body.loan-printing > * { display:none !important; }
  body.loan-printing > #loan-print { display:block !important; }
  #loan-print { color:#000; background:white; font-size:9pt; line-height:1.35; }
  #loan-print h1 { font-size:16pt; margin:0 0 8pt; }
  #loan-print h3 { font-size:11pt; }
  #loan-print .loan-metrics { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4pt 12pt; }
  #loan-print .loan-metrics > div { break-inside:avoid; }
  #loan-print dt { font-weight:600; }
  #loan-print dd { margin:0 0 5pt; }
  #loan-print table { border-collapse:collapse; table-layout:fixed; width:100%; font-size:8pt; }
  #loan-print caption { text-align:left; font-weight:700; margin:8pt 0; }
  #loan-print th, #loan-print td { border:1px solid #777; padding:4pt; text-align:left; overflow-wrap:anywhere; }
  #loan-print thead { display:table-header-group; }
  #loan-print tr { break-inside:avoid; }
}

/* Keep inputs aligned when one translated hint or validation error is longer. */
@supports (grid-template-rows:subgrid) {
  #loan-app .loan-fields { row-gap:.4rem; align-items:stretch; }
  #loan-app .loan-field { display:grid; grid-row:span 4; grid-template-rows:subgrid; }
  #loan-app .loan-field > label { grid-row:1; }
  #loan-app .loan-field > .loan-hint { grid-row:2; }
  #loan-app .loan-field > input, #loan-app .loan-field > select { grid-row:3; margin-top:0; align-self:start; }
  #loan-app .loan-field > .loan-error { grid-row:4; margin-top:0; }
}
@supports not (grid-template-rows:subgrid) {
  #loan-app .loan-fields { grid-template-columns:minmax(0,1fr); }
}
