.fields .field-block {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.field-block > span {
  color: var(--navy);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .045em;
  text-transform: uppercase;
}

.phone-input {
  display: grid;
  grid-template-columns: minmax(165px, .8fr) minmax(150px, 1.2fr);
  gap: 8px;
}

.phone-input .field-error {
  grid-column: 1 / -1;
}

.field-error {
  display: block;
  margin: 0;
  color: var(--red);
  font-size: 10px;
  font-weight: 700;
  line-height: 1.35;
  letter-spacing: 0;
  text-transform: none;
}

.field-error[hidden] {
  display: none;
}

.completion-status {
  min-height: 18px;
  margin-top: 10px;
  color: #106547;
  font-size: 10px;
  font-weight: 800;
}

.button:disabled {
  cursor: wait;
  opacity: .55;
}

input:valid:not(:placeholder-shown):not([readonly]),
textarea:valid:not(:placeholder-shown),
select:valid:not([value=""]) {
  border-color: #86ae9f;
}

input.invalid,
select.invalid,
textarea.invalid {
  border-color: var(--red) !important;
  background: #fff8f8 !important;
}

@media (max-width: 600px) {
  .phone-input {
    grid-template-columns: 1fr;
  }

  .phone-input .field-error {
    grid-column: auto;
  }
}

@media print {
  .field-error {
    display: none !important;
  }

  html,
  body {
    width: 100%;
    height: auto !important;
    overflow: visible !important;
  }

  .application-shell,
  #marineForm,
  .review-step {
    height: auto !important;
    overflow: visible !important;
  }

  .review-content {
    display: block !important;
  }

  .review-section {
    display: block !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
    margin-bottom: 4mm;
  }

  .review-section h3 {
    break-after: avoid-page;
    page-break-after: avoid;
  }

  .review-grid {
    display: block !important;
  }

  .review-item {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    padding: 2mm 3mm !important;
    border-right: 0 !important;
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .review-item b {
    font-size: 6.5pt !important;
  }

  .review-item span {
    font-size: 8pt !important;
    line-height: 1.35 !important;
  }

  .declarations {
    display: block !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  .declarations label,
  .signature-fields label {
    break-inside: avoid-page;
    page-break-inside: avoid;
  }

  .completion-status {
    display: none !important;
  }

  @page {
    size: A4 portrait;
    margin: 10mm 9mm 12mm;
  }
}
