html { color-scheme: light; }
body { margin: 0; padding: 12px; color: var(--text, #20281d); background: #fff; font: 16px/1.6 var(--font-content, Arial), sans-serif; }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
#calculator-content { max-width: 940px; margin: 0 auto; }
.library-lead-step { flex: 1; }
.library-lead-step h3 { margin: 0 0 .5rem; font-size: 1.1rem; }
.library-lead-step p { margin: 0 0 1rem; }
.library-lead-step label { display: block; font-size: .9rem; font-weight: 700; }
.library-lead-step input { display: block; width: 100%; min-height: 48px; margin: .5rem 0 1rem; padding: .75rem; border: 1px solid #8d9884; border-radius: 8px; background: #fff; color: #20281d; font: inherit; font-weight: 400; }
.library-lead-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; }
.library-lead-consent { font-size: .82rem; }
.library-lead-actions { display: flex; gap: .75rem; margin-top: 1rem; }
.library-lead-actions button { min-height: 48px; padding: .75rem 1rem; border: 1px solid #20281d; border-radius: 8px; background: #20281d; color: white; font: inherit; font-size: .95rem; font-weight: 700; cursor: pointer; }
.library-lead-actions [data-lead-submit] { margin-left: auto; }
.library-lead-actions [data-lead-back] { color: #20281d; background: transparent; white-space: nowrap; }
.library-lead-step :focus-visible { outline: 3px solid #526e3d; outline-offset: 3px; }
.library-lead-error { color: #a1261c; }
.library-lead-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.library-lead-actions button:disabled { opacity: .6; cursor: wait; }
@media(max-width:520px) { .library-lead-grid { grid-template-columns: 1fr; gap: 0; } }

/* Opt in with data-tenant-theme on the calculator root. These rules are
   snapshotted with each published version; theme values come from its tenant. */
html body {
  background: var(--bg, #fff);
  color: var(--text, #0f172a);
  font-family: var(--font-content, Arial), sans-serif;
  font-size: var(--body-size, 16px);
  font-weight: var(--body-weight, 400);
  line-height: var(--body-line, 1.6);
}
#calculator-content [data-tenant-theme] {
  --calc-surface: color-mix(in srgb, var(--accent, #0ea5a4) 6%, var(--bg, #fff));
  --calc-border: color-mix(in srgb, var(--muted, #475569) 45%, var(--bg, #fff));
  --calc-soft-border: color-mix(in srgb, var(--muted, #475569) 22%, var(--bg, #fff));
  color: var(--text, #0f172a);
  background: var(--calc-surface);
  border-color: var(--calc-soft-border);
  font-family: var(--font-content, Arial), sans-serif;
}
#calculator-content [data-tenant-theme] :is(h2, h3, h4, legend) {
  font-family: var(--font-heading, var(--font-content, Arial)), sans-serif;
  font-weight: var(--heading-weight, 700);
  line-height: var(--heading-line, 1.25);
  letter-spacing: var(--heading-spacing, 0);
}
#calculator-content [data-tenant-theme] :is(input, select) {
  color: var(--text, #0f172a);
  background-color: var(--bg, #fff);
  border-color: var(--calc-border);
  font-family: var(--font-content, Arial), sans-serif;
  font-weight: var(--body-weight, 400);
}
#calculator-content [data-tenant-theme] input::placeholder { color: var(--muted, #475569); opacity: 1; }
#calculator-content [data-tenant-theme] select {
  appearance: none;
  padding-right: 2.75rem;
  background-image: linear-gradient(45deg, transparent 50%, var(--text, #0f172a) 50%), linear-gradient(135deg, var(--text, #0f172a) 50%, transparent 50%);
  background-position: right 1.125rem center, right .75rem center;
  background-size: .375rem .375rem;
  background-repeat: no-repeat;
}
#calculator-content [data-tenant-theme] button {
  background: var(--brand, #0f172a);
  color: var(--on-brand, #fff);
  border-color: var(--brand, #0f172a);
  font-family: var(--font-content, Arial), sans-serif;
}
#calculator-content [data-tenant-theme] :is(.calc-secondary, .svmcm-back, [data-lead-back]) {
  background: transparent;
  color: var(--text, #0f172a);
  border: 1px solid var(--calc-border);
}
#calculator-content [data-tenant-theme] button:hover:not(:disabled) { filter: brightness(.94); }
#calculator-content [data-tenant-theme] :is(input, select, button, a):focus-visible { outline: 3px solid var(--accent, #0ea5a4); outline-offset: 3px; }
#calculator-content [data-tenant-theme] :is(small, .calc-note, .library-lead-consent) { color: var(--muted, #475569); }
#calculator-content [data-tenant-theme] :is(.eyebrow, .calc-eyebrow, .svmcm-kicker) { color: var(--brand, #0f172a); }
#calculator-content [data-tenant-theme] fieldset { border-color: var(--calc-soft-border); }
#calculator-content [data-tenant-theme] :is(output, .svmcm-result) { background: var(--bg, #fff); color: var(--text, #0f172a); border-color: var(--calc-soft-border); }
#calculator-content [data-tenant-theme] .svmcm-amount { background: var(--calc-surface); }
#calculator-content [data-tenant-theme] .svmcm-result[data-outcome="eligible"] [data-result-title] { color: var(--brand, #0f172a); }
#calculator-content [data-tenant-theme] .svmcm-result[data-outcome="ineligible"] { border-color: #dcb5ac; }
#calculator-content [data-tenant-theme] .svmcm-result[data-outcome="needs-details"] { border-color: #dbc990; }
#calculator-content [data-tenant-theme] a { color: var(--brand, #0f172a); }
#calculator-content [data-tenant-theme] progress { background: var(--calc-soft-border); color: var(--accent, #0ea5a4); }
#calculator-content [data-tenant-theme] progress::-webkit-progress-bar { background: var(--calc-soft-border); }
#calculator-content [data-tenant-theme] progress::-webkit-progress-value { background: var(--accent, #0ea5a4); }
#calculator-content [data-tenant-theme] progress::-moz-progress-bar { background: var(--accent, #0ea5a4); }
@media (forced-colors: active) {
  #calculator-content [data-tenant-theme] select { appearance: auto; background-image: none; }
}
@media (max-width: 520px) {
  .library-lead-actions { flex-wrap: wrap; }
  .library-lead-actions [data-lead-submit] { flex: 1; min-width: 0; }
}
