/* Follows the theme's form conventions (navy labels, line-colored fields, .vwa-btn submit). Fields with a
   visible border use square corners. Theme tokens are used when present, with the theme's values as fallbacks. */
.vaisef-application { display: grid; gap: 20px; max-width: 760px; }
.vaisef-application-form { display: grid; gap: 22px; }
.vaisef-application-form[hidden] { display: none; }
.vaisef-application-group { display: grid; gap: 14px; min-width: 0; margin: 0; padding: 0; border: 0; }
.vaisef-application-group legend { padding: 0; margin: 0 0 4px; font-family: var(--display, "Jost", sans-serif); font-size: 20px; font-weight: 600; color: var(--navy, #16274F); }
.vaisef-application-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 16px; }
.vaisef-application-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; font-size: 14px; font-weight: 700; color: var(--navy, #16274F); }
.vaisef-application-optional { font-weight: 400; color: var(--muted, #56617A); }
.vaisef-application-field input[type="text"],
.vaisef-application-field input[type="email"],
.vaisef-application-field input[type="tel"],
.vaisef-application-field textarea { width: 100%; min-width: 0; min-height: 48px; padding: 10px 14px; border: 1px solid #b8c9d4; border-radius: 0; background: var(--white, #FFFFFF); color: var(--ink, #23304A); font: inherit; font-size: 16px; font-weight: 400; }
.vaisef-application-field textarea { min-height: 112px; resize: vertical; }
.vaisef-application-field input[type="file"] { width: 100%; min-width: 0; padding: 12px; background: var(--surface, #F5F9FB); color: var(--ink, #23304A); font: inherit; font-size: 15px; font-weight: 400; }
.vaisef-application-field input:focus-visible,
.vaisef-application-field textarea:focus-visible,
.vaisef-application-consent input:focus-visible { outline: 2px solid var(--teal, #0A6F88); outline-offset: 2px; }
.vaisef-application-field [aria-invalid="true"] { border-color: #a12a2a; }
.vaisef-application-consent { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: start; gap: 10px; font-size: 15px; line-height: 1.5; color: var(--ink, #23304A); }
.vaisef-application-consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--blue, #1F55A6); }
.vaisef-application-consent .vaisef-application-error { grid-column: 2; }
.vaisef-application-limits,
.vaisef-application-privacy,
.vaisef-application-note { margin: 0; font-size: 15px; line-height: 1.55; color: var(--muted, #56617A); }
.vaisef-application-note { padding: 12px 16px; background: var(--tint, #EEF6F8); color: var(--navy, #16274F); }
.vaisef-application-actions { display: grid; gap: 10px; justify-items: start; }
.vaisef-application-submit[disabled] { opacity: .7; cursor: progress; }
.vaisef-application-status:empty { display: none; }
.vaisef-application-status:focus { outline: none; }
.vaisef-application-status p { margin: 0; font-weight: 700; }
.vaisef-application-success { padding: 14px 16px; background: var(--tint, #EEF6F8); color: var(--navy, #16274F); }
.vaisef-application-problem { padding: 14px 16px 0; background: #FBEFEF; color: #8a1f1f; }
.vaisef-application-problem:last-child { padding-bottom: 14px; }
.vaisef-application-problems { margin: 0; padding: 8px 16px 14px 36px; background: #FBEFEF; color: #8a1f1f; font-size: 15px; }
.vaisef-application-error { font-size: 14px; font-weight: 400; color: #8a1f1f; }
.vaisef-application-again { margin: 0; }
@media (max-width: 640px) {
	.vaisef-application-grid { grid-template-columns: 1fr; }
}
