/* NVO application details; keeps the existing campaign typography and palette. */
.ngo-course-context { margin-top: 16px; }
.ngo-eligibility { list-style: none; padding: 0; margin: 27px 0 0; display: grid; gap: 10px; font-size: 17px; }
.ngo-eligibility li { display: flex; gap: 11px; align-items: center; }
.ngo-eligibility li::before { content: '✓'; color: #356544; font-weight: 800; }
.power-tabs { flex-wrap: wrap; }
.power-tabs button { flex: 1 1 auto; }
.application-choice, .ngo-form-section { margin: 0; padding: 0; border: 0; min-width: 0; }
.application-choice { display: flex; flex-wrap: wrap; gap: 10px; padding-bottom: 26px; }
.application-choice legend, .ngo-form-section legend { padding: 0; margin-bottom: 14px; font-weight: 800; font-size: 18px; letter-spacing: -.02em; }
.application-choice label { display: flex; gap: 9px; align-items: center; min-height: 48px; padding: 11px 14px; border: 1px solid #b8bebc; border-radius: 5px; cursor: pointer; font-size: 16px; }
.application-choice label:has(input:checked) { border-color: var(--ink); background: #edf4dc; }
.application-choice input, .team-confirmation input { width: 18px; height: 18px; accent-color: #365640; flex: 0 0 auto; }
.ngo-form-section { border-top: 1px solid #cfd1c9; padding-top: 23px; padding-bottom: 12px; }
.ngo-form-section legend { float: left; width: 100%; margin-bottom: 17px; }
.ngo-form-section legend + * { clear: both; }
.form-help { font-size: 15px; line-height: 1.6; color: var(--muted); margin: -4px 0 18px; }
.field > select { width: 100%; border: 1px solid #aeb5b6; border-radius: 4px; background: #fffdf7; padding: 13px 14px; min-height: 50px; font: inherit; font-size: 16px; color: var(--ink); }
.field > select:focus-visible, .team-add:focus-visible, .team-remove:focus-visible { outline: 3px solid #335bc5; outline-offset: 4px; }
.field > select + .form-help { margin: 8px 0 0; }
.team-member { border: 1px solid #c4c9be; background: #f6f6ed; border-radius: 6px; padding: 17px; margin-bottom: 14px; }
.team-member-heading { display: flex; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.team-member-heading h4 { margin: 0; font-size: 16px; font-weight: 700; }
.team-remove { border: 0; border-bottom: 1px solid currentColor; background: none; padding: 8px 0; font-size: 15px; min-height: 44px; }
.team-member .field:last-child { margin-bottom: 0; }
.team-add { border: 1px solid #566a57; border-radius: 5px; background: #edf4dc; padding: 12px 15px; min-height: 46px; font-size: 16px; font-weight: 700; }
.team-add:disabled { opacity: .55; cursor: default; }
.team-confirmation { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.6; margin: 20px 0 8px; }
.team-confirmation input { margin-top: 2px; }
#team-status { margin: 8px 0 0; }
#application-summary dd { overflow-wrap: anywhere; white-space: pre-wrap; }
@media (max-width: 560px) {
  .application-choice label { flex: 1 1 100%; font-size: 16px; }
  .field > select { font-size: 16px; }
  .team-member { padding: 13px; }
  .team-member-heading h4 { font-size: 16px; }
  .ngo-eligibility { font-size: 17px; }
  .power-tabs { justify-content: flex-start; }
  .power-tabs button { flex: 1 0 calc(50% - 8px); }
}

.ngo-privacy { margin: 20px 0 24px; padding: 18px 20px; background: #edf0e9; border: 1px solid #d2d7ce; border-radius: 8px; font-size: 15px; line-height: 1.65; color: #414b44; }
.ngo-privacy p + p { margin-top: 10px; }
.ngo-privacy strong { color: var(--ink); }
.ngo-privacy a { text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 560px) { .ngo-privacy { padding: 16px; } }

/* Team controls remain readable inside the narrower nested fieldset. */
.team-member-heading { flex-wrap: wrap; }
.team-remove { flex: 0 0 auto; }
