/* Futuro · avales electrónicos. Colores institucionales: azul #1A4D8C y amarillo #FACC15. */
.fa-wrap { --fa-navy: #1A4D8C; --fa-yellow: #FACC15; --fa-ink: #0F1B31; --fa-muted: #55627E; --fa-line: #D3DAE7; --fa-tint: #EEF1F7; --fa-red: #B42318; --fa-green: #1F7A48;
	max-width: 760px; margin: 0 auto; color: var(--fa-ink); font-size: 16px; line-height: 1.5; }
.fa-wrap *, .fa-wrap *::before, .fa-wrap *::after { box-sizing: border-box; }
.fa-form[hidden] { display: none; }
.fa-hint { font-weight: 400; font-size: 0.85rem; color: #5B6B82; }
.fa-form { background: #fff; border: 1px solid var(--fa-line); border-top: 6px solid var(--fa-navy); border-radius: 10px; padding: 20px; display: grid; gap: 14px; }
.fa-intro { margin: 0; font-size: 1.05rem; }
.fa-grid { display: grid; gap: 12px; align-items: start; grid-template-columns: repeat(auto-fit, minmax(min(100%, 210px), 1fr)); }
.fa-field { display: grid; gap: 4px; font-weight: 600; font-size: 0.95rem; }
.fa-field input { font: inherit; font-weight: 400; padding: 10px 12px; border: 1px solid var(--fa-line); border-radius: 8px; background: var(--fa-tint); width: 100%; color: var(--fa-ink); }
.fa-field input:focus { outline: 3px solid var(--fa-yellow); outline-offset: 1px; }
.fa-field input[aria-invalid="true"] { border-color: var(--fa-red); }
.fa-error { color: var(--fa-red); font-weight: 600; font-size: 0.85rem; }
.fa-hint { margin: -4px 0 0; color: var(--fa-muted); font-size: 0.88rem; }
.fa-check { display: grid; grid-template-columns: 22px 1fr; gap: 8px; align-items: start; font-size: 0.95rem; }
.fa-check input { width: 18px; height: 18px; margin-top: 3px; accent-color: var(--fa-navy); }
.fa-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.fa-rgpd, .fa-help { background: var(--fa-tint); border-radius: 8px; padding: 10px 14px; font-size: 0.9rem; }
.fa-rgpd summary, .fa-help summary { cursor: pointer; font-weight: 700; color: var(--fa-navy); }
.fa-rgpd p { margin: 8px 0 0; }
.fa-help { margin-top: 14px; }
.fa-help ol { margin: 10px 0 0; padding-left: 20px; display: grid; gap: 6px; }
.fa-btn { font: inherit; font-weight: 800; font-size: 1.05rem; background: var(--fa-yellow); color: #2B2200; border: 0; border-radius: 8px; padding: 14px 20px; cursor: pointer; justify-self: start; }
.fa-btn:hover { filter: brightness(0.96); }
.fa-btn:disabled { opacity: 0.6; cursor: progress; }
.fa-btn:focus-visible { outline: 3px solid var(--fa-navy); outline-offset: 2px; }
.fa-status { margin: 0; font-weight: 600; min-height: 1.5em; }
.fa-status.fa-error { color: var(--fa-red); }
.fa-status.fa-info { color: var(--fa-navy); }
.fa-done { background: var(--fa-navy); color: #fff; border-radius: 10px; padding: 24px; border-bottom: 6px solid var(--fa-yellow); }
.fa-done p { margin: 6px 0 0; }
.fa-done-title { font-size: 1.5rem; font-weight: 900; color: var(--fa-yellow); margin: 0 !important; }
.fa-closed { background: var(--fa-tint); padding: 16px; border-radius: 8px; }
@media (max-width: 520px) { .fa-form { padding: 16px; } .fa-btn { width: 100%; justify-self: stretch; } }
