:root {
  --cfn-primary: #041627;
  --cfn-secondary: #00a8cc;
  --cfn-secondary-dark: #00879a;
  --cfn-text: #243447;
  --cfn-muted: #64748b;
  --cfn-border: #e0e2db;
  --cfn-danger: #9f1239;
  --cfn-card: #ffffff;
  --cfn-field: #fafbf8;
}

* {
  box-sizing: border-box;
}

html,
body,
body.prescreen-body,
body.cfn-suitability-page,
body.cfn-suitability-page main {
  margin: 0;
  min-height: 100%;
  background: #ffffff !important;
  background-color: #ffffff !important;
  background-image: none !important;
}

body.cfn-suitability-page {
  color: var(--cfn-primary);
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  line-height: 1.6;
}

.material-symbols-outlined {
  font-family: "Material Symbols Outlined";
  font-weight: normal;
  font-style: normal;
  font-size: 1.35rem;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: "liga";
  -webkit-font-smoothing: antialiased;
  font-variation-settings: "FILL" 0, "wght" 250, "GRAD" 0, "opsz" 24;
}

.skip-link {
  position: absolute;
  left: 1rem;
  top: 1rem;
  z-index: 20;
  transform: translateY(-150%);
  background: var(--cfn-primary);
  color: #fff;
  padding: .65rem 1rem;
  border-radius: .35rem;
  font-weight: 800;
}

.skip-link:focus {
  transform: translateY(0);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.cfn-suitability-page main {
  min-height: 100vh;
  padding: 2.5rem 0 4rem;
  overflow: visible;
}

.prescreen-standalone-topbar {
  max-width: 1440px;
  margin: 0 auto 2rem;
  padding: 0 1.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}

.cfn-back-link {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  color: var(--cfn-primary);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: color .2s ease;
}

.cfn-back-link:hover {
  color: var(--cfn-secondary);
}

.logo-container {
  background: var(--cfn-primary) !important;
  border-radius: .85rem !important;
  box-shadow: 0 10px 30px rgba(4, 22, 39, .08) !important;
}

.logo-container img {
  width: auto;
  object-fit: contain;
}

.scanner {
  position: absolute;
  inset: 0;
  transform: translateX(-120%);
  background: linear-gradient(to right, transparent, rgba(255,255,255,.15), transparent);
  pointer-events: none;
}

.logo-container:hover .scanner {
  animation: cfn-scan 1.2s ease;
}

@keyframes cfn-scan {
  to { transform: translateX(120%); }
}

.cfn-suitability-shell {
  max-width: 64rem !important;
  padding-top: 2rem !important;
}

.cfn-questionnaire-header {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1rem;
  align-items: flex-start;
  padding-bottom: 1.35rem;
  margin-bottom: 1.35rem;
  border-bottom: 1px solid rgba(4,22,39,.08);
}

.step-icon-container {
  width: 3rem;
  height: 3rem;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
  background: rgba(0, 168, 204, .08);
  color: var(--cfn-secondary);
}

.cfn-eyebrow,
.step-indicator,
.cfn-current-step-name {
  margin: 0;
  color: rgba(4,22,39,.48);
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.cfn-questionnaire-header h1 {
  margin: 0 0 1rem;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.875rem;
  line-height: 1.15;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0;
}

.cfn-success-panel h2 {
  margin: .35rem 0 .85rem;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.875rem;
  line-height: 1.15;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0;
}

.cfn-questionnaire-header p {
  max-width: 48rem;
  margin: 0 0 1rem;
  color: rgba(4,22,39,.68);
  font-size: .875rem;
  line-height: 1.625;
}

.cfn-questionnaire-header .cfn-header-caution {
  margin-bottom: 2rem;
  color: rgba(4,22,39,.8);
  font-size: .75rem;
  line-height: 1.625;
  font-style: italic;
}

@media (min-width: 1024px) {
  .cfn-questionnaire-header h1 {
    font-size: 2.25rem;
  }
}

.cfn-info-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
  margin: 1.5rem 0 1.25rem;
}

.cfn-info-card {
  padding: 1.25rem 1.5rem;
  background: #fafbf8;
  border: 1px solid #e8e9e4;
  border-radius: .85rem;
}

.cfn-info-card h2 {
  margin: 0 0 .75rem;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
}

.cfn-info-card p {
  margin: 0 0 .65rem;
  color: rgba(4,22,39,.68);
  font-size: .86rem;
  line-height: 1.65;
}

.cfn-step-row {
  gap: 1rem;
}

.cfn-current-step-name {
  color: #1a6b80;
  text-align: right;
}

.step-pills {
  display: flex;
  gap: .45rem;
  overflow-x: auto;
  padding: .25rem 0 .75rem;
  margin-bottom: .9rem;
  scrollbar-width: none;
}

.step-pills::-webkit-scrollbar {
  display: none;
}

.step-pill {
  flex: 0 0 auto;
  border: 1px solid rgba(4,22,39,.10);
  background: rgba(255,255,255,.72);
  color: rgba(4,22,39,.55);
  border-radius: 999px;
  padding: .42rem .7rem;
  font-size: .66rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.step-pill.active {
  background: rgba(0,168,204,.09);
  border-color: rgba(0,168,204,.35);
  color: #04485e;
}

.step-pill.complete {
  color: rgba(4,22,39,.68);
  border-color: rgba(0,168,204,.22);
}

.privacy-banner {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  background: rgba(0,168,204,.06);
  border: 1px solid rgba(0,168,204,.18);
  border-radius: .85rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1.25rem;
}

.privacy-banner .material-symbols-outlined {
  color: var(--cfn-secondary);
  margin-top: .1rem;
}

.privacy-banner strong {
  display: block;
  color: #04485e;
  font-size: .85rem;
  line-height: 1.3;
}

.privacy-banner p {
  margin: .25rem 0 0;
  color: #1a6b80;
  font-size: .78rem;
  line-height: 1.55;
}

.cfn-wizard-shell {
  border-radius: 1.5rem !important;
  border-color: rgba(4,22,39,.08) !important;
  overflow: hidden;
  box-shadow: 0 18px 60px rgba(4,22,39,.08), 0 0 0 1px rgba(4,22,39,.03);
  background: #fff;
}

.cfn-vertical-progress {
  width: .375rem;
  background: #e8e9e4;
}

.cfn-progress-bar {
  width: 100% !important;
  background: linear-gradient(180deg, #00a8cc 0%, #00879a 100%) !important;
  border-radius: 999px;
  transition: height .5s ease-out;
}

.cfn-form-card {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  padding: 1.5rem;
  background: #fff;
}

.cfn-step h2 {
  margin: 0 0 .75rem;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
  letter-spacing: 0;
}

.cfn-step-intro {
  max-width: 58rem;
  margin: 0 0 1.5rem;
  color: rgba(4,22,39,.66);
  font-size: .875rem;
  line-height: 1.625;
}

.cfn-fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}

.cfn-form-grid {
  display: grid;
  gap: 1rem;
}

.cfn-field,
.cfn-question-block {
  padding: 1.25rem 1.5rem;
  background: var(--cfn-field);
  border: 1px solid #e8e9e4;
  border-radius: .85rem;
  transition: border-color .2s ease, background .2s ease;
}

.cfn-field:hover,
.cfn-question-block:hover {
  border-color: #d0d2ca;
  background: #fbfcfa;
}

.cfn-field label,
.cfn-question-label,
.cfn-checkbox-label {
  display: block;
  color: var(--cfn-primary);
  font-size: .875rem;
  font-weight: 700;
}

.cfn-required {
  color: var(--cfn-danger);
}

.cfn-field input,
.cfn-field select,
.cfn-field textarea,
.cfn-medication-grid input {
  width: 100%;
  min-height: 3.15rem;
  margin-top: .55rem;
  padding: .9rem 1rem;
  border: 1px solid rgba(4,22,39,.14);
  border-radius: .5rem;
  background: #fff;
  color: var(--cfn-primary);
  font: inherit;
  font-size: .9rem;
}

.cfn-field textarea {
  min-height: 8rem;
  resize: vertical;
}

.cfn-field-hint,
.cfn-char-count {
  display: block;
  margin-top: .45rem;
  color: var(--cfn-muted);
  font-size: .78rem;
}

.cfn-field-error {
  display: block;
  min-height: 1.1rem;
  margin-top: .45rem;
  color: var(--cfn-danger);
  font-size: .78rem;
  font-weight: 800;
}

.cfn-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-top: .85rem;
}

.cfn-option {
  display: flex;
  align-items: flex-start;
  gap: .75rem;
  min-height: 3.25rem;
  padding: .95rem 1rem;
  border: 1px solid rgba(4,22,39,.12);
  border-radius: .65rem;
  background: #fff;
  color: var(--cfn-primary);
  cursor: pointer;
  transition: border-color .2s ease, background .2s ease;
}

.cfn-option:hover {
  background: #f8fbfb;
}

.cfn-option:has(input:checked) {
  border-color: var(--cfn-secondary);
  background: rgba(0,168,204,.06);
}

.cfn-option input {
  flex: 0 0 auto;
  width: 1.15rem;
  height: 1.15rem;
  margin-top: .12rem;
  accent-color: var(--cfn-secondary);
}

.cfn-option span {
  display: block;
  color: var(--cfn-primary);
  font-size: .875rem;
  font-weight: 600;
  line-height: 1.4;
}

.cfn-alert,
.cfn-safety-notice,
.cfn-privacy-panel {
  border-radius: .85rem;
  padding: 1rem 1.25rem;
  margin-bottom: 1rem;
}

.cfn-alert,
.cfn-safety-notice {
  color: #7f1d1d;
  background: #fff1f2;
  border: 1px solid #fecdd3;
}

.cfn-privacy-panel {
  background: rgba(0,168,204,.05);
  border: 1px solid rgba(0,168,204,.18);
}

.cfn-privacy-panel h3 {
  margin: 0 0 .75rem;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
}

.cfn-privacy-panel p {
  margin: 0 0 1rem;
  color: #1a6b80;
  font-size: .875rem;
  line-height: 1.625;
}

.cfn-actions {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(4,22,39,.08);
}

.cfn-btn {
  min-height: 3rem;
  border: 1px solid transparent;
  border-radius: .5rem;
  padding: .85rem 1.2rem;
  font-family: 'Inter', sans-serif;
  font-size: .75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .15em;
  cursor: pointer;
  transition: background .2s ease, box-shadow .2s ease, transform .15s ease, border-color .2s ease;
}

.cfn-btn:hover {
  transform: translateY(-1px);
}

.cfn-btn:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.cfn-option:focus-within {
  outline: 2px solid var(--cfn-secondary);
  outline-offset: 2px;
}

.cfn-btn-primary {
  background: var(--cfn-secondary-dark);
  color: #fff;
  box-shadow: 0 2px 10px rgba(0,135,154,.20);
}

.cfn-btn-primary:hover {
  background: #00778a;
  box-shadow: 0 4px 18px rgba(0,135,154,.28);
}

.cfn-btn-secondary {
  background: transparent;
  color: #1a6b80;
  border-color: rgba(0,168,204,.25);
}

.cfn-btn-secondary:hover {
  color: #04485e;
  border-color: rgba(0,168,204,.45);
  background: rgba(0,168,204,.04);
}

.cfn-btn[disabled] {
  opacity: .55;
  cursor: wait;
  transform: none;
}

.cfn-review-section {
  border: 1px solid rgba(4,22,39,.08);
  border-radius: .85rem;
  margin-bottom: 1rem;
  overflow: hidden;
}

.cfn-review-section header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 1rem;
  padding: .85rem 1rem;
  background: #fafbf8;
}

.cfn-review-section h3 {
  margin: 0;
  color: var(--cfn-primary);
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
}

.cfn-edit-link {
  border: 0;
  background: transparent;
  color: #087f97;
  font-weight: 800;
  cursor: pointer;
  text-decoration: underline;
}

.cfn-review-list {
  display: grid;
  grid-template-columns: minmax(10rem, .7fr) minmax(0, 1fr);
  gap: 0;
  margin: 0;
}

.cfn-review-list dt,
.cfn-review-list dd {
  padding: .6rem 1rem;
  border-top: 1px solid rgba(4,22,39,.06);
}

.cfn-review-list dt {
  color: var(--cfn-muted);
  font-weight: 800;
}

.cfn-review-list dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.cfn-honeypot,
[hidden] {
  display: none !important;
}

.cfn-medication-list {
  display: grid;
  gap: .85rem;
  margin-top: .75rem;
}

.cfn-medication-item {
  padding: .85rem;
  border: 1px solid var(--cfn-border);
  background: #fff;
  border-radius: .65rem;
}

.cfn-medication-item h4 {
  margin: 0 0 .6rem;
  font-size: .9rem;
  color: var(--cfn-primary);
}

.cfn-medication-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: .75rem;
}

.cfn-medication-grid label {
  color: var(--cfn-primary);
  font-size: .8rem;
  font-weight: 800;
}

.cfn-success-panel {
  max-width: 52rem;
  margin: 1.25rem auto 0;
  padding: 2rem;
  background: #fff;
  border: 1px solid rgba(4,22,39,.08);
  border-radius: 1rem;
  box-shadow: 0 18px 60px rgba(4,22,39,.08), 0 0 0 1px rgba(4,22,39,.03);
}

.cfn-success-panel dl {
  display: grid;
  gap: .5rem;
  max-width: 42rem;
}

.cfn-success-panel dl div {
  display: grid;
  grid-template-columns: 12rem 1fr;
  gap: 1rem;
  padding: .7rem;
  background: #fafbf8;
  border-radius: .5rem;
}

.cfn-success-panel dt {
  font-weight: 800;
  color: var(--cfn-primary);
}

.cfn-success-panel dd {
  margin: 0;
}

.cfn-form-footer {
  color: var(--cfn-muted);
  font-size: .82rem;
}

.cfn-form-footer p {
  margin: 0;
}

.cfn-form-footer a {
  color: #087f97;
  font-weight: 800;
}

@media (min-width: 1024px) {
  .cfn-form-card {
    padding: 2.5rem;
  }
}

@media (max-width: 760px) {
  body.cfn-suitability-page main {
    padding-top: 1.5rem;
  }

  .prescreen-standalone-topbar {
    padding: 0 1rem;
    margin-bottom: 1.25rem;
  }

  .cfn-suitability-shell {
    padding: 1.5rem 1rem 0 !important;
  }

  .cfn-info-grid,
  .cfn-options,
  .cfn-medication-grid,
  .cfn-review-list,
  .cfn-success-panel dl div {
    grid-template-columns: 1fr;
  }

  .cfn-questionnaire-header {
    grid-template-columns: 1fr;
    gap: .75rem;
  }

  .cfn-step-row,
  .cfn-actions,
  .cfn-form-footer > div {
    flex-direction: column;
    align-items: stretch;
  }

  .cfn-current-step-name {
    text-align: left;
  }

  .cfn-actions {
    flex-direction: column-reverse;
  }

  .cfn-btn {
    width: 100%;
  }

  .cfn-wizard-shell {
    border-radius: 1rem !important;
  }

  .cfn-form-card,
  .cfn-field,
  .cfn-question-block {
    padding: 1rem;
  }
}

@media print {
  .prescreen-standalone-topbar,
  .cfn-info-grid,
  .cfn-step-row,
  .step-pills,
  .privacy-banner,
  .cfn-wizard-shell,
  .cfn-form-footer,
  .skip-link {
    display: none !important;
  }

  body.cfn-suitability-page,
  body.cfn-suitability-page main {
    background: #fff !important;
  }

  .cfn-success-panel {
    display: block !important;
    box-shadow: none;
    border: 0;
  }
}
