/* Estética ASENF */
.asf-wrap { max-width: 860px; margin: 24px auto; background: #ffffff; border-radius: 18px;
  padding: 26px 24px; box-shadow: 0 20px 50px rgba(11,99,181,.12); border:1px solid #edf2fb; }
.asf-brand { display:flex; align-items:center; gap:16px; margin-bottom:14px; justify-content:center; }
.asf-brand-header { max-height: 90px; width: auto; object-fit: contain; }
.asf-success { background:#e9f9ef; border:1px solid #b7f0c3; color:#146c2e; padding:12px 14px; border-radius:12px; margin-bottom:14px; font-weight:700; }
.asf-title { margin: 8px 0 14px; color: #0b63b5; font-size: 1.55rem; letter-spacing:.2px; text-align: center; }
.asf-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:16px; }
.asf-field { display:flex; flex-direction:column; }
.asf-field-full { grid-column: 1 / -1; }
.asf-label { font-weight:650; margin-bottom:6px; color:#1e2a3a; }
.asf-input, .asf-input[type="file"] { width:100%; box-sizing: border-box; padding:12px 14px; border:1px solid #dbe3f4;
  border-radius:12px; background:#fbfdff; outline:none; transition: box-shadow .2s, border-color .2s; }
.asf-input:focus { border-color:#90c2ff; box-shadow: 0 0 0 4px rgba(11,99,181,.08); }
.asf-hint { color:#5b6b82; font-size:.85rem; margin-top:6px; }
.asf-actions { margin-top:18px; display:flex; gap:12px; flex-wrap:wrap; justify-content: center; }
.asf-btn { padding:11px 16px; border-radius:999px; border:1px solid #c7ddff; background:#fff; cursor:pointer; font-weight:600; }
.asf-btn-primary { background:#0b63b5; color:#fff; border-color:#0b63b5; box-shadow:0 8px 18px rgba(11,99,181,.18); }
.asf-step { display:none; }
.asf-step.active { display:block; }
.asf-legal { background:#f7fbff; border:1px solid #e6f0fb; padding:14px 16px; border-radius:12px; line-height:1.6; }
.asf-firma-block canvas { width:100%; max-width:820px; height:300px; border:1px dashed #9bbcf0; border-radius:12px; background:#fcfeff; }
.asf-selfie-tools { display:flex; gap:10px; align-items:center; }
.asf-selfie-preview img { display:block; max-width:200px; border-radius:12px; border:1px solid #e5eefc; margin-top:10px; }
.asf-camera { margin-top:10px; }
#asf-video { width:100%; max-width:480px; border-radius:12px; border:1px solid #e6eefc; }
.asf-msg { margin-top:14px; color:#0b63b5; font-weight:700; text-align: center; }

/* Paso 2 resumen */
.asf-review-data { display: flex; justify-content: space-around; align-items: center; flex-wrap: wrap; gap: 15px 20px; background: #f7fbff; border: 1px solid #e6f0fb; padding: 12px 18px; border-radius: 12px; margin-bottom: 16px; }
.asf-review-item { display: flex; align-items: baseline; }
.asf-review-label { font-weight: 600; color: #5b6b82; margin-right: 8px; font-size: 0.9rem; }
#asf-review-nombre, #asf-review-run, #asf-review-fecha { font-weight: 500; color: #1e2a3a; }

/* Firma: bloquear gestos del navegador y selección para un trazado limpio en móvil */
.asf-firma-block canvas {
  touch-action: none;
  -ms-touch-action: none;
  user-select: none;
  -webkit-user-select: none;
  -webkit-touch-callout: none;
}

@media (max-width: 720px){
  .asf-grid { grid-template-columns: 1fr; }
  .asf-brand { flex-direction:column; gap:8px; }
  .asf-review-data { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  .asf-btn, .asf-input { transition: none !important; }
}
