/* Scoped styles shared by the public calculator and both software editions. */
.page-hero.km-page-hero { padding:32px 0 38px; }
.km-page-hero .eyebrow { color:#ddbc76; }
.km-page-hero h1 { font-size:clamp(32px,4.2vw,52px); margin:10px 0 16px; }
.km-page-hero .lead { max-width:850px; font-size:17px; }
.km-page-hero .lead+p { font-size:13px; margin:14px 0 0; }
.section.km-page-section { padding:36px 0; }
.km-calculator { --km-ink:#153b33; --km-teal:#2f6f64; --km-gold:#b7842e; --km-line:#ccd8d1; color:#233e35; font:400 15px/1.5 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; max-width:1250px; margin:0 auto; }
.km-calculator * { box-sizing:border-box; }
.km-calculator [hidden] { display:none!important; }
.km-calculator h3,.km-calculator p { margin:0; }
.km-calculator h3 { font:600 17px/1.35 inherit; }
.km-calculator button,.km-calculator input { font:inherit; }
.km-calculator button,.km-calculator a { touch-action:manipulation; }
.km-calculator button:focus-visible,.km-calculator a:focus-visible,.km-calculator summary:focus-visible,.km-calculator input:focus-visible,.km-table-scroll:focus-visible { outline:3px solid #b7842e; outline-offset:3px; }
.km-toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin:0 0 8px; }
.km-calculator .km-kicker { color:#725522; font-size:11px; font-weight:750; letter-spacing:.12em; }
.km-calculator .km-text-button { border:0; border-bottom:1px solid currentColor; padding:7px 0; background:transparent; color:var(--km-teal); cursor:pointer; font-size:13px; min-height:40px; }
.km-calculator .km-example { margin:0 0 25px; color:#627267; font-size:13px; }
.km-calculator .km-legal-reminder { margin:-12px 0 24px; padding:11px 14px; background:#fbf6e9; border-left:3px solid #b7842e; color:#66522d; font-size:13px; }
.km-legal-reminder a { color:#245e50; text-decoration:underline; text-underline-offset:3px; }
.km-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.95fr); gap:28px; align-items:start; }
.km-form,.km-results { min-width:0; }
.km-form { margin:0; }
.km-calculator .km-input-section { margin:0 0 18px; border:1px solid var(--km-line); border-radius:12px; padding:22px; background:#fff; min-width:0; }
.km-input-section legend { float:left; width:100%; font:400 24px/1.2 Georgia,serif; color:var(--km-ink); margin:0 0 20px; padding:0; }
.km-input-section legend+.km-field-grid { clear:both; }
.km-calculator details>summary { cursor:pointer; color:var(--km-ink); font-weight:600; min-height:30px; }
.km-input-section>summary { font-size:17px; }
.km-input-section[open]>summary { margin-bottom:20px; }
.km-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px; }
.km-field { min-width:0; }
.km-field label { display:block; font-size:13px; font-weight:650; margin-bottom:7px; color:#274b40; }
.km-input-wrap { position:relative; }
.km-field input { display:block; width:100%; height:47px; border:1px solid #baccc2; border-radius:6px; background:#fbfcfa; color:#173d33; padding:10px 52px 10px 12px; appearance:textfield; -moz-appearance:textfield; font-size:16px; }
.km-field input::-webkit-inner-spin-button,.km-field input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.km-unit { position:absolute; right:12px; top:13px; color:#6c7a70; pointer-events:none; font-size:12px; }
.km-field small { display:block; color:#69776d; font-size:11px; line-height:1.5; margin-top:6px; }
.km-field input[aria-invalid=true] { border-color:#ae392e; background:#fff7f4; }
.km-field-error { display:block; color:#9b3329; font-size:12px; margin-top:4px; }
.km-field-error:empty { display:none; }
.km-calculator .km-section-note { margin-top:16px; color:#617468; font-size:12px; }
.km-calculator .km-loan-hint { margin:-6px 4px 20px; color:#52685c; font-size:13px; }
.km-calculator .km-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; border:1px solid var(--km-teal); border-radius:6px; background:var(--km-teal); color:#fff; font-size:14px; font-weight:600; padding:11px 17px; text-decoration:none; text-align:center; cursor:pointer; line-height:1.45; }
.km-calculator .km-button:hover { background:#24594f; color:white; }
.km-calculator .km-secondary { background:#fff; color:var(--km-ink); border-color:#a9beb1; }
.km-calculator .km-secondary:hover { background:#e8f0e9; color:var(--km-ink); }
.km-calculate { width:100%; }
.km-calculator .km-local { font-size:12px; color:#6a796f; margin:12px 3px 0; }
.km-results { scroll-margin-top:25px; }
.km-status:empty { display:none; }
.km-calculator .km-status { margin:0 0 15px; padding:16px; border:1px solid #d5b86d; border-radius:8px; background:#fff8e9; color:#765820; }
.km-result-hero { background:var(--km-ink); color:#fff; border-radius:12px; padding:27px; border-top:4px solid #c7973b; }
.km-result-hero .km-kicker { color:#ddbc76; margin:0 0 18px; }
.km-top-result { display:flex; flex-direction:column; gap:4px; }
.km-top-result span { color:#dae7dd; font-size:14px; }
.km-top-result strong { font-weight:550; letter-spacing:-.03em; font-size:clamp(27px,3.1vw,42px); line-height:1.25; overflow-wrap:anywhere; }
.km-top-result small { color:#b8cec0; font-size:12px; }
.km-cash { margin-top:22px; padding-top:20px; border-top:1px solid #476256; }
.km-cash strong { color:#e3c177; }
.km-negative strong { color:#ffd0bc; }
.km-disclaimer { background:#fbf6e9; border:1px solid #dfce9e; border-left:3px solid #b7842e; border-radius:7px; padding:17px 18px; margin-top:16px; break-inside:avoid; }
.km-calculator .km-disclaimer h3 { color:#6b4e19; font:650 14px/1.4 system-ui,sans-serif; margin:0 0 8px; }
.km-calculator .km-disclaimer p { font-size:13px; line-height:1.6; color:#514a37; margin:0; }
.km-calculator .km-disclaimer p+p { margin-top:12px; }
.km-disclaimer h3 { scroll-margin-top:24px; }
.km-calculator .km-shortfall { color:#8d392b; font-size:13px; padding:11px 3px 0; }
.km-metrics { display:grid; grid-template-columns:1fr 1fr; gap:1px; border:1px solid var(--km-line); border-radius:10px; overflow:hidden; margin:18px 0; background:var(--km-line); }
.km-metric { display:flex; flex-direction:column; gap:7px; padding:17px; background:#fff; min-width:0; }
.km-metric>span { font-size:12px; color:#546b5e; }
.km-metric>strong { font-size:23px; font-weight:550; letter-spacing:-.02em; overflow-wrap:anywhere; }
.km-metric>small { font-size:10px; color:#758177; }
.km-card { padding:21px; border:1px solid var(--km-line); background:#fff; border-radius:10px; }
.km-breakdown-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; margin-bottom:14px; }
.km-calculator .km-breakdown-heading h3 { font-size:16px; font-weight:650; padding:0; border:0; }
.km-period { display:inline-flex; border:1px solid #c4d1c8; border-radius:5px; overflow:hidden; }
.km-period button { border:0; border-radius:0; background:#fff; color:var(--km-ink); padding:7px 10px; min-height:36px; font-size:12px; cursor:pointer; }
.km-period button[aria-pressed=true] { background:#e4eee7; box-shadow:inset 0 -2px #2f6f64; }
.km-breakdown-row { display:flex; justify-content:space-between; align-items:baseline; gap:15px; padding:8px 0; font-size:13px; }
.km-breakdown-row span { color:#5b7063; }
.km-breakdown-row strong { font-weight:550; white-space:nowrap; font-variant-numeric:tabular-nums; }
.km-subtotal { border-top:1px solid #dbe3dc; border-bottom:1px solid #dbe3dc; margin:6px 0; }
.km-total { border-top:2px solid #8ea797; margin-top:8px; padding-top:13px; font-weight:650; }
.km-total span { color:var(--km-ink); }
.km-rate-scenario { padding:20px 2px; }
.km-calculator .km-rate-scenario h3 { font-size:15px; margin-bottom:8px; }
.km-rate-scenario p { font-size:13px; }
.km-rate-scenario small { color:#6e7b71; font-size:11px; display:block; margin-top:8px; }
.km-schedule { border-top:1px solid var(--km-line); border-bottom:1px solid var(--km-line); padding:14px 0; font-size:13px; }
.km-table-scroll { overflow:auto; max-height:360px; margin-top:12px; }
.km-table-scroll table { width:100%; border-collapse:collapse; font-size:12px; background:#fff; }
.km-table-scroll caption { text-align:left; padding:0 0 10px; font-size:11px; color:#6e7b71; }
.km-table-scroll th,.km-table-scroll td { padding:9px; text-align:right; white-space:nowrap; border-bottom:1px solid #dbe4dd; }
.km-table-scroll th:first-child { text-align:left; }
.km-table-scroll thead th { color:var(--km-ink); background:#e8f0e9; font-weight:600; }
.km-result-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:18px; }
.km-result-actions>* { flex:1 1 160px; }
.km-method { margin-top:30px; padding:20px 22px; background:#edf2ec; border-radius:9px; }
.km-method>p { margin-top:14px; font-size:13px; color:#586d5f; }
.km-method a { color:#245e50; text-underline-offset:3px; }
.km-cta { display:flex; align-items:center; justify-content:space-between; gap:28px; margin-top:26px; padding:26px 0; border-top:1px solid var(--km-line); }
.km-calculator .km-cta h3 { font:400 24px/1.3 Georgia,serif; margin:0 0 10px; }
.km-cta p { font-size:14px; max-width:630px; color:#65766a; }
.km-cta .km-button { flex-shrink:0; max-width:310px; }
@media(max-width:760px) { .km-layout { grid-template-columns:1fr; gap:24px; } .km-calculator .km-input-section { padding:18px; } .km-cta { flex-direction:column; align-items:stretch; gap:18px; } .km-cta .km-button { max-width:none; } .km-top-result strong { font-size:36px; } }
@media(max-width:390px) { .km-field-grid { grid-template-columns:1fr; } .km-metric { padding:13px; } .km-metric>strong { font-size:20px; } .km-breakdown-row { gap:8px; font-size:12px; } .km-card { padding:15px; } .km-toolbar { flex-wrap:wrap; gap:0; } }
@media print {
  body { background:white!important; }
  body:has(.km-calculator) header,body:has(.km-calculator) footer,body:has(.km-calculator) #tabbar,.km-toolbar,.km-result-actions,.km-calculate,.km-cta,.km-period,.km-local,.km-sources { display:none!important; }
  .km-calculator { font-size:11px; max-width:none; }
  .km-layout { display:block; }
  .km-form { position:static; }
  .km-field-grid { grid-template-columns:repeat(3,1fr); gap:8px; }
  .km-input-section { break-inside:avoid; }
  .km-input-section>div,.km-input-section>p { display:block!important; }
  .km-input-section .km-field-grid { display:grid!important; }
  .km-field input { height:32px; font-size:12px; }
  .km-unit { top:7px; }
  .km-results { margin-top:20px; }
  .km-result-hero { color:#153b33; background:white; border:1px solid #9eb2a4; padding:15px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
  .km-result-hero .km-kicker { grid-column:1/-1; color:#153b33; }
  .km-top-result span,.km-top-result small,.km-top-result strong { color:#153b33; }
  .km-cash { border:0; margin:0; padding:0; }
  .km-top-result strong { font-size:25px; }
  .km-metrics,.km-card,.km-rate-scenario { break-inside:avoid; }
  .km-method>p { display:block!important; }
  .km-schedule[open] .km-table-scroll { max-height:none; overflow:visible; }
}
