:root {
  --ink: #172033;
  --muted: #5c6678;
  --subtle: #7a8496;
  --line: #d9dfeb;
  --line-strong: #b9c3d4;
  --surface: #ffffff;
  --surface-soft: #f6f8fc;
  --surface-tint: #eef4fb;
  --navy: #123a63;
  --navy-deep: #0a2949;
  --teal: #087f75;
  --teal-deep: #05635c;
  --accent: #f2a23a;
  --danger: #b42318;
  --danger-soft: #fff0ef;
  --warning: #9a6700;
  --warning-soft: #fff8e6;
  --success: #087a4c;
  --success-soft: #eaf8f1;
  --info: #175cd3;
  --info-soft: #eff6ff;
  --shadow: 0 14px 34px rgba(15, 42, 70, 0.09);
  --shadow-soft: 0 6px 18px rgba(15, 42, 70, 0.07);
  --radius: 16px;
  --radius-small: 10px;
  --focus: 0 0 0 3px rgba(23, 92, 211, 0.22);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--ink);
  background: #eef2f7;
  font-synthesis: none;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  min-height: 100vh;
  color: var(--ink);
  background:
    radial-gradient(circle at 5% -10%, rgba(8, 127, 117, 0.10), transparent 25rem),
    radial-gradient(circle at 100% 0%, rgba(18, 58, 99, 0.10), transparent 30rem),
    #eef2f7;
  line-height: 1.5;
}

button, input, select, textarea { font: inherit; }
button { color: inherit; }
a { color: var(--info); }
[hidden] { display: none !important; }

.skip-link {
  position: fixed;
  z-index: 1000;
  top: 8px;
  left: 8px;
  transform: translateY(-150%);
  padding: 10px 14px;
  border-radius: 8px;
  background: #fff;
  color: var(--navy-deep);
  box-shadow: var(--shadow-soft);
}
.skip-link:focus { transform: translateY(0); }

.app-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px clamp(18px, 4vw, 64px) 18px;
  color: #fff;
  background: linear-gradient(120deg, var(--navy-deep), var(--navy) 62%, #155d72);
}
.brand-lockup { display: flex; align-items: center; gap: 16px; min-width: 0; }
.brand-mark {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  flex: 0 0 auto;
  border: 1px solid rgba(255,255,255,.42);
  border-radius: 14px;
  color: #fff;
  background: rgba(255,255,255,.10);
  font-weight: 800;
  letter-spacing: .04em;
}
.app-header h1 { margin: 0; font-size: clamp(1.55rem, 2.3vw, 2.25rem); line-height: 1.1; }
.eyebrow { margin: 0 0 4px; color: inherit; opacity: .74; font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.subtitle { margin: 7px 0 0; color: rgba(255,255,255,.80); font-size: .95rem; }
.header-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.environment-badge {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 11px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 999px;
  color: #fff;
  background: rgba(255,255,255,.10);
  font-size: .78rem;
  font-weight: 750;
}
.app-header .button-quiet { color: #fff; border-color: rgba(255,255,255,.30); background: rgba(255,255,255,.08); }
.app-header .button-quiet:hover { background: rgba(255,255,255,.16); }

.critical-banner {
  padding: 11px clamp(18px, 4vw, 64px);
  color: #5f3b00;
  background: #fff5d8;
  border-bottom: 1px solid #ead79f;
  font-size: .91rem;
}
.noscript { margin: 16px; padding: 14px; border: 1px solid #f0b4af; border-radius: 10px; color: var(--danger); background: var(--danger-soft); }

.stepper-wrap {
  position: sticky;
  z-index: 50;
  top: 0;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  background: rgba(255,255,255,.96);
  backdrop-filter: blur(10px);
}
.stepper {
  display: grid;
  grid-template-columns: repeat(8, minmax(105px, 1fr));
  max-width: 1540px;
  min-width: 900px;
  margin: 0 auto;
  padding: 0 clamp(12px, 2.2vw, 36px);
  list-style: none;
}
.stepper li { position: relative; }
.stepper li:not(:last-child)::after {
  content: "";
  position: absolute;
  z-index: 0;
  top: 23px;
  left: calc(50% + 18px);
  right: calc(-50% + 18px);
  height: 2px;
  background: var(--line);
}
.stepper li.complete:not(:last-child)::after { background: var(--teal); }
.stepper button {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
  padding: 10px 8px 11px;
  border: 0;
  color: var(--muted);
  background: transparent;
  cursor: pointer;
}
.stepper button span {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  margin-bottom: 5px;
  border: 2px solid var(--line-strong);
  border-radius: 999px;
  color: var(--muted);
  background: #fff;
  font-size: .78rem;
  font-weight: 800;
}
.stepper button strong { font-size: .78rem; white-space: nowrap; }
.stepper li.active button { color: var(--navy); }
.stepper li.active button span { border-color: var(--navy); color: #fff; background: var(--navy); }
.stepper li.complete button span { border-color: var(--teal); color: #fff; background: var(--teal); }
.stepper button:hover strong { text-decoration: underline; text-underline-offset: 3px; }
.stepper button:focus-visible { outline: 0; box-shadow: inset var(--focus); }

.app-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  align-items: start;
  gap: 22px;
  width: min(1540px, calc(100% - 32px));
  margin: 24px auto 36px;
}
.wizard-card, .summary-card {
  border: 1px solid rgba(185,195,212,.8);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow);
}
.wizard-card { min-width: 0; overflow: hidden; }
.step-panel { padding: clamp(22px, 3.2vw, 42px); }

.section-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 26px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--line);
}
.section-heading h2 { margin: 0; color: var(--navy-deep); font-size: clamp(1.4rem, 2vw, 1.9rem); line-height: 1.2; }
.section-heading p:last-child { max-width: 820px; margin: 8px 0 0; color: var(--muted); }
.step-kicker { margin: 0 0 5px; color: var(--teal); font-size: .74rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.rule-chip {
  display: inline-flex;
  align-items: center;
  padding: 5px 9px;
  border-radius: 999px;
  color: var(--navy);
  background: var(--surface-tint);
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: .72rem;
  font-weight: 750;
  white-space: nowrap;
}

fieldset {
  min-width: 0;
  margin: 0 0 28px;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #fff;
}
legend { padding: 0 8px; color: var(--navy-deep); font-weight: 800; }
.form-grid { display: grid; gap: 18px 20px; }
.form-grid.two-columns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid.three-columns { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.full-width { grid-column: 1 / -1; }
.field { min-width: 0; }
.field > label { display: block; margin-bottom: 7px; color: #25304a; font-size: .9rem; font-weight: 750; }
.optional { color: var(--subtle); font-size: .75rem; font-weight: 600; }
input[type="text"], input[type="email"], input[type="tel"], input[type="date"], input[type="number"], select, textarea {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--line-strong);
  border-radius: 9px;
  color: var(--ink);
  background: #fff;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
textarea { min-height: 88px; resize: vertical; }
input:hover, select:hover, textarea:hover { border-color: #95a4ba; }
input:focus, select:focus, textarea:focus { border-color: var(--info); box-shadow: var(--focus); }
input:disabled, select:disabled, textarea:disabled { color: #7e8795; background: #edf0f4; cursor: not-allowed; }
input[aria-invalid="true"], select[aria-invalid="true"], textarea[aria-invalid="true"] { border-color: var(--danger); background: #fffafa; }
.uppercase { text-transform: uppercase; }
.field-hint, .legend-help { margin: 6px 0 0; color: var(--muted); font-size: .79rem; }
.field-error { margin: 6px 0 0; color: var(--danger); font-size: .79rem; font-weight: 700; }
.field-help { margin-top: 6px; color: var(--muted); font-size: .79rem; }
.field-help summary { color: var(--info); cursor: pointer; font-weight: 700; }
.field-help p { margin: 6px 0 0; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }

.choice-fieldset { padding: 22px; }
.choice-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; margin-top: 14px; }
.choice-card, .check-card {
  display: flex;
  gap: 11px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: var(--surface-soft);
  cursor: pointer;
  transition: border-color .16s ease, background .16s ease, transform .16s ease;
}
.choice-card:hover, .check-card:hover { border-color: #9eacc0; background: #fff; }
.choice-card:has(input:checked), .check-card:has(input:checked) { border-color: var(--teal); background: #f0fbf8; }
.choice-card input, .check-card input { flex: 0 0 auto; margin: 3px 0 0; accent-color: var(--teal); }
.choice-card strong, .check-card strong { display: block; color: #24314a; font-size: .9rem; }
.choice-card small, .check-card small { display: block; margin-top: 3px; color: var(--muted); line-height: 1.38; }
.criteria-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }

.conditional-panel {
  margin-top: 20px;
  padding: 20px;
  border: 1px solid #cbd8e9;
  border-left: 4px solid var(--teal);
  border-radius: 12px;
  background: #fbfdff;
}
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-heading h3 { margin: 0; color: var(--navy-deep); }
.panel-heading p { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }

.inline-alert, .mapping-note, .dialog-warning {
  margin-top: 12px;
  padding: 12px 14px;
  border: 1px solid;
  border-radius: 9px;
  font-size: .86rem;
}
.inline-alert.info, .mapping-note, .dialog-warning { border-color: #b9d6ff; color: #194477; background: var(--info-soft); }
.inline-alert.success { border-color: #9ed8ba; color: #075e3c; background: var(--success-soft); }
.inline-alert.warning { border-color: #e6ce89; color: #795100; background: var(--warning-soft); }
.inline-alert.error { border-color: #efb3ae; color: #8f1c14; background: var(--danger-soft); }

.rate-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  margin-top: 22px;
  padding: 18px 20px;
  border-radius: 12px;
  color: #fff;
  background: linear-gradient(120deg, var(--navy-deep), var(--navy));
}
.rate-card > div:first-child { display: grid; }
.rate-label { color: rgba(255,255,255,.72); font-size: .72rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.rate-card strong { font-size: 1.1rem; }
.rate-card small { color: rgba(255,255,255,.72); }
.rate-metrics { display: grid; grid-template-columns: repeat(3, auto); gap: 10px 22px; }
.rate-metrics span { display: grid; color: rgba(255,255,255,.72); font-size: .75rem; }
.rate-metrics strong { color: #fff; font-size: .94rem; }

.advanced-card {
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px dashed var(--line-strong);
  border-radius: 11px;
  background: var(--surface-soft);
}
.advanced-card summary { color: var(--navy); cursor: pointer; font-weight: 800; }
.advanced-card > p { color: var(--muted); font-size: .84rem; }

.decision-explainer {
  margin-top: 22px;
  padding: 18px;
  border-radius: 12px;
  background: var(--surface-soft);
}
.decision-explainer h3 { margin: 0 0 10px; font-size: 1rem; }
.decision-row { display: flex; justify-content: space-between; gap: 18px; padding: 9px 0; border-top: 1px solid var(--line); font-size: .86rem; }
.decision-row strong { color: var(--navy); white-space: nowrap; }

.wizard-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 18px clamp(22px, 3.2vw, 42px);
  border-top: 1px solid var(--line);
  background: var(--surface-soft);
}
.draft-status { display: flex; align-items: center; gap: 7px; color: var(--muted); font-size: .8rem; }
.save-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px rgba(8,122,76,.10); }
.wizard-actions, .output-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 14px;
  border: 1px solid #aab5c7;
  border-radius: 9px;
  color: #26324a;
  background: #fff;
  font-size: .86rem;
  font-weight: 750;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease, background .14s ease;
}
.button:hover:not(:disabled) { border-color: #7f90a9; box-shadow: var(--shadow-soft); transform: translateY(-1px); }
.button:active:not(:disabled) { transform: translateY(0); }
.button:focus-visible { outline: none; box-shadow: var(--focus); }
.button-primary { border-color: var(--navy); color: #fff; background: var(--navy); }
.button-primary:hover:not(:disabled) { border-color: var(--navy-deep); background: var(--navy-deep); }
.button-quiet { border-color: transparent; color: var(--navy); background: transparent; }
.button-external { border-color: var(--teal); color: #fff; background: var(--teal); white-space: nowrap; }
.button:disabled { opacity: .48; cursor: not-allowed; }
.file-button { cursor: pointer; }

.summary-card { position: sticky; top: 88px; overflow: hidden; }
.summary-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; padding: 20px 20px 14px; }
.summary-heading .eyebrow { color: var(--teal); opacity: 1; }
.summary-heading h2 { margin: 0; color: var(--navy-deep); font-size: 1.25rem; }
.status-badge { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.status-badge.neutral { color: #515c6d; background: #edf0f4; }
.status-badge.success { color: #075e3c; background: var(--success-soft); }
.status-badge.warning { color: #795100; background: var(--warning-soft); }
.status-badge.error { color: #8f1c14; background: var(--danger-soft); }
.summary-amount { padding: 21px 20px; color: #fff; background: linear-gradient(125deg, var(--navy-deep), var(--teal-deep)); }
.summary-amount span, .summary-amount small { display: block; color: rgba(255,255,255,.74); font-size: .76rem; }
.summary-amount strong { display: block; margin: 2px 0; font-size: clamp(1.8rem, 3vw, 2.55rem); line-height: 1.12; overflow-wrap: anywhere; }
.summary-breakdown { margin: 0; padding: 12px 20px; }
.summary-breakdown > div { display: grid; grid-template-columns: 1fr auto; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: .82rem; }
.summary-breakdown dt { color: var(--muted); }
.summary-breakdown dd { margin: 0; text-align: right; font-weight: 750; }
.summary-breakdown .total-line { padding-top: 13px; border-bottom: 0; font-size: .95rem; }
.summary-health { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0 20px; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.summary-health > div { display: grid; place-items: center; padding: 10px 4px; border-right: 1px solid var(--line); }
.summary-health > div:last-child { border-right: 0; }
.health-count { font-size: 1.05rem; font-weight: 850; }
.health-count.error { color: var(--danger); }
.health-count.warning { color: var(--warning); }
.health-count.passed { color: var(--success); }
.summary-health small { color: var(--muted); font-size: .68rem; }
.summary-notes { display: grid; gap: 8px; padding: 16px 20px; }
.summary-note { padding: 9px 10px; border-radius: 8px; color: var(--muted); background: var(--surface-soft); font-size: .78rem; }
.privacy-note { padding: 13px 20px 18px; color: var(--muted); font-size: .75rem; }

.review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.review-card { min-width: 0; padding: 18px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.review-card h3 { margin: 0 0 12px; color: var(--navy-deep); font-size: 1rem; }
.review-card-heading { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.validation-list { display: grid; gap: 8px; max-height: 360px; overflow: auto; }
.validation-item { display: flex; gap: 9px; align-items: flex-start; padding: 9px 10px; border-radius: 8px; background: #fff; font-size: .8rem; }
.validation-item::before { flex: 0 0 auto; width: 18px; font-weight: 900; text-align: center; }
.validation-item.error { color: #821b13; border: 1px solid #f0c0bc; }
.validation-item.error::before { content: "!"; }
.validation-item.warning { color: #755100; border: 1px solid #ead797; }
.validation-item.warning::before { content: "!"; }
.validation-item.success { color: #075e3c; border: 1px solid #b7dec9; }
.validation-item.success::before { content: "✓"; }
.review-definition-list { margin: 0; }
.review-definition-list > div { display: grid; grid-template-columns: minmax(110px, .75fr) minmax(0, 1.25fr); gap: 12px; padding: 8px 0; border-top: 1px solid var(--line); font-size: .8rem; }
.review-definition-list > div:first-child { border-top: 0; }
.review-definition-list dt { color: var(--muted); }
.review-definition-list dd { margin: 0; overflow-wrap: anywhere; font-weight: 700; }
.certification-box { margin-top: 20px; background: #fbfdff; }
.output-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 20px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-soft); }
.output-panel h3 { margin: 0; }
.output-panel p { margin: 5px 0 0; color: var(--muted); font-size: .84rem; }
.official-next-step { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; padding: 18px; border-radius: 12px; color: #fff; background: linear-gradient(120deg, var(--teal-deep), var(--teal)); }
.official-next-step p { margin: 4px 0 0; color: rgba(255,255,255,.82); font-size: .84rem; }
.official-next-step .button-external { border-color: rgba(255,255,255,.45); background: rgba(255,255,255,.13); }

.app-footer { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; padding: 20px 24px 34px; color: var(--muted); font-size: .78rem; }
.link-button { padding: 0; border: 0; color: var(--info); background: transparent; font: inherit; text-decoration: underline; cursor: pointer; }

.rules-dialog {
  width: min(960px, calc(100% - 28px));
  max-height: min(86vh, 900px);
  padding: 0;
  border: 0;
  border-radius: 15px;
  box-shadow: 0 28px 80px rgba(5,27,49,.28);
}
.rules-dialog::backdrop { background: rgba(5, 20, 38, .58); backdrop-filter: blur(3px); }
.dialog-header { position: sticky; z-index: 2; top: 0; display: flex; justify-content: space-between; gap: 18px; padding: 20px 24px; color: #fff; background: var(--navy-deep); }
.dialog-header h2 { margin: 0; font-size: 1.35rem; }
.icon-button { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.28); border-radius: 8px; color: #fff; background: rgba(255,255,255,.08); font-size: 1.5rem; cursor: pointer; }
.dialog-body { padding: 22px 24px 30px; }
.dialog-body section { margin-top: 26px; }
.dialog-body h3 { margin: 0 0 12px; color: var(--navy-deep); }
.rule-catalog, .reference-list { display: grid; gap: 10px; }
.rule-item, .reference-item { padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-soft); }
.rule-item h4, .reference-item h4 { margin: 0; color: var(--navy-deep); font-size: .92rem; }
.rule-item p, .reference-item p { margin: 6px 0; color: var(--muted); font-size: .82rem; }
.rule-source { font-size: .75rem !important; font-style: italic; }
.reference-item a { font-size: .8rem; font-weight: 750; overflow-wrap: anywhere; }

.toast-region { position: fixed; z-index: 1001; right: 18px; bottom: 18px; display: grid; gap: 10px; width: min(380px, calc(100% - 36px)); pointer-events: none; }
.toast { padding: 12px 14px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); font-size: .84rem; animation: toast-in .2s ease; }
.toast.success { border-left: 4px solid var(--success); }
.toast.error { border-left: 4px solid var(--danger); }
.toast.warning { border-left: 4px solid var(--warning); }
@keyframes toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.print-sheet { display: none; }
.print-page { position: relative; width: 8.5in; min-height: 11in; padding: .35in; color: #000; background: #fff; font-family: Arial, Helvetica, sans-serif; }
.print-watermark { position: absolute; z-index: 0; top: 46%; left: 8%; transform: rotate(-31deg); color: rgba(120,120,120,.14); font-size: 38pt; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.print-page > *:not(.print-watermark) { position: relative; z-index: 1; }
.print-header { display: grid; grid-template-columns: 1fr 1.25fr .8fr; align-items: stretch; border: 1.5px solid #000; font-size: 8pt; }
.print-header > div { padding: 7px; border-right: 1px solid #000; }
.print-header > div:last-child { border-right: 0; }
.print-title { display: grid; place-items: center; text-align: center; font-size: 12pt; font-weight: 800; }
.omb-box { text-align: center; }
.pin-box { display: grid; grid-template-columns: 1fr 1.4fr; min-height: .55in; border: 1.5px solid #000; border-top: 0; }
.pin-box span, .pin-box strong { display: grid; place-items: center; padding: 7px; }
.pin-box span { border-right: 1px solid #000; font-size: 8pt; font-weight: 700; }
.pin-box strong { font-size: 14pt; }
.print-row { display: grid; }
.print-row.two { grid-template-columns: 1fr 1fr; }
.print-row.three { grid-template-columns: 1fr 1fr 1fr; }
.print-row .print-field { border-top: 0; }
.print-row .print-field + .print-field { border-left: 0; }
.print-field { min-height: .73in; padding: 6px 7px; border: 1px solid #000; border-top: 0; }
.print-field > span { display: block; margin-bottom: 4px; font-size: 7.2pt; font-weight: 800; }
.print-field p { margin: 0; font-size: 8.5pt; line-height: 1.25; white-space: pre-line; }
.print-field.emphasized { border-width: 1.5px; }
.signature-field { min-height: .63in; }
.print-disclaimer { padding: 7px 2px 0; font-size: 6.7pt; line-height: 1.2; }

@media (max-width: 1180px) {
  .app-shell { grid-template-columns: minmax(0, 1fr); }
  .summary-card { position: static; order: -1; }
  .summary-card { display: grid; grid-template-columns: 1fr 1fr 1fr; align-items: stretch; }
  .summary-heading { grid-column: 1 / -1; }
  .summary-amount { display: grid; align-content: center; }
  .summary-breakdown { grid-column: span 2; }
  .summary-health, .summary-notes, .privacy-note { grid-column: 1 / -1; }
}

@media (max-width: 820px) {
  .app-header { align-items: flex-start; flex-direction: column; }
  .header-actions { justify-content: flex-start; }
  .form-grid.two-columns, .form-grid.three-columns, .choice-grid, .criteria-grid, .review-grid { grid-template-columns: 1fr; }
  .full-width { grid-column: auto; }
  .rate-card, .output-panel, .official-next-step, .wizard-footer { align-items: stretch; flex-direction: column; }
  .rate-metrics { grid-template-columns: 1fr; }
  .wizard-actions, .output-actions { justify-content: stretch; }
  .wizard-actions .button, .output-actions .button, .output-actions .file-button { flex: 1 1 180px; }
  .summary-card { grid-template-columns: 1fr; }
  .summary-heading, .summary-breakdown, .summary-health, .summary-notes, .privacy-note { grid-column: 1; }
}

@media (max-width: 520px) {
  .app-shell { width: min(100% - 16px, 1540px); margin-top: 12px; }
  .step-panel { padding: 20px 16px; }
  fieldset, .conditional-panel { padding: 15px; }
  .section-heading, .panel-heading { flex-direction: column; }
  .rate-card { padding: 16px; }
  .wizard-footer { padding: 15px 16px; }
  .button { width: 100%; }
  .environment-badge { width: 100%; justify-content: center; }
}

@media print {
  @page { size: Letter; margin: 0; }
  body { background: #fff !important; }
  body > *:not(#printSheet) { display: none !important; }
  #printSheet { display: block !important; }
  .print-page { margin: 0; box-shadow: none; }
}
