/*
 * Formularios propios (plan-etapa-2.md §4.1). Solo lo que no aporta el CSS de Elementor/JFB:
 * - dropzone y tarjeta de PDF: copia de lo que hoy imprime el snip 4322 (para no depender de él cuando se apague);
 * - mensajes fuera del widget de JFB (Anexo A.8: éxito #00AC66; error #B23A3A sobre #B23A3A14, radio 20 px);
 * - errores por campo y banner del motivo.
 */
.crea-form-bloque .jet-form-builder-file-upload__content { position: relative; min-height: 120px; display: flex; flex-direction: column; justify-content: center; cursor: pointer; }
.crea-form-bloque .jfb-dropzone-helper { text-align: center; padding: 30px 20px; color: rgba(0,0,0,0.5); pointer-events: none; font-family: 'Roboto Condensed', sans-serif; border-style: dashed; border-width: 1px; border-radius: 5px; border-color: #666; }
.crea-form-bloque .jet-form-builder-file-upload.has-file .jfb-dropzone-helper { display: none !important; }
.crea-form-bloque .jet-form-builder-file-upload__content.is-dragover { background-color: #eef9f2 !important; border-color: #00AC66 !important; }
.crea-form-bloque .jet-form-builder-file-upload__files { display: flex !important; align-items: center !important; justify-content: center !important; width: 100% !important; padding: 20px 0 !important; }
.crea-form-bloque .jet-form-builder-file-upload:not(.has-file) .jet-form-builder-file-upload__files { display: none !important; }
.crea-form-bloque .jet-form-builder-file-upload__file { position: relative !important; width: 240px !important; max-width: 100%; height: 90px !important; margin: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; background: transparent !important; border: none !important; }
.crea-form-bloque .dx-custom-pdf-wrap { position: absolute; top: 0; left: 0; width: 100%; height: 100%; display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; border: 1px dashed rgba(0,0,0,0.3); border-radius: 6px; z-index: 5; box-sizing: border-box; padding: 10px 30px 10px 10px; }
.crea-form-bloque .dx-custom-pdf-name { margin-top: 5px !important; font-family: 'Roboto Condensed', sans-serif !important; font-weight: 300 !important; font-size: 10pt !important; line-height: 1.2 !important; color: #111 !important; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center; display: block !important; }
.crea-form-bloque .jet-form-builder-file-upload__file-remove { position: absolute !important; z-index: 10 !important; top: 6px !important; right: 6px !important; left: auto !important; bottom: auto !important; background: #666 !important; border-radius: 50% !important; width: 20px !important; height: 20px !important; display: flex !important; align-items: center !important; justify-content: center !important; opacity: 1 !important; cursor: pointer; color: #fff; }
.crea-form-bloque .jet-form-builder-file-upload__file-remove svg { fill: #fff !important; width: 10px !important; height: 10px !important; margin: 0 !important; display: block !important; }
.crea-form-bloque .jet-form-builder-file-upload__fields { display: none !important; }
.crea-form-bloque .wp-editor-container iframe { height: 160px; }
/* 4363 (solicitar cambios): el editor de 4382 mide 176 px; el snip 4322, que lo baja a 160, no corre ahí. */
#crea-solicitar-cambios .wp-editor-container iframe { height: 176px; }

.crea-mensajes:empty { display: none; }
.crea-mensajes { width: 100%; margin: 14px 0 0; }
.crea-mensajes .jet-form-builder-message,
.crea-form-bloque .crea-error-campo,
.crea-banner-motivo { display: block; width: 100%; box-sizing: border-box; font-family: 'Roboto Condensed', sans-serif; font-size: 15px; line-height: 1.3; text-align: center; padding: 10px 16px; border-radius: 20px; margin: 8px 0 0; }
.crea-mensajes .jet-form-builder-message--success { color: #00AC66; background: #00AC661A; }
.crea-mensajes .jet-form-builder-message--error,
.crea-form-bloque .crea-error-campo,
.crea-banner-motivo { color: #B23A3A; background: #B23A3A14; }
.crea-banner-motivo { margin: 0 0 20px; text-align: left; }
/* 0.9.1 (aviso_envio_cerrado): el desafío no recibe soluciones; se puede guardar, no enviar. */
.crea-banner-aviso { display: block; width: 100%; box-sizing: border-box; margin: 0 0 20px; padding: 10px 16px; border-radius: 20px; font-family: 'Roboto Condensed', sans-serif; font-size: 15px; line-height: 1.3; text-align: left; color: #5E4C00; background: #FFF3B8; }
.crea-envio-bloqueado,
.crea-envio-bloqueado a,
.crea-envio-bloqueado button { cursor: not-allowed !important; opacity: .5; }
.crea-form-bloque .crea-con-error .jet-form-builder__field,
.crea-form-bloque .crea-con-error .wp-editor-container,
.crea-form-bloque .crea-con-error .jet-form-builder-file-upload__content { border-color: #B23A3A !important; }

/*
 * 0.7.0. Varios archivos (desafío): una tarjeta por archivo (el snip 4322 muestra solo la primera, así que 292/3457
 * dejaban ver un solo archivo aunque aceptaran 20).
 */
.crea-form-bloque .crea-adjuntos-varios .jet-form-builder-file-upload__files { flex-wrap: wrap !important; gap: 12px; }
.crea-form-bloque .crea-adjuntos-varios .jet-form-builder-file-upload__files .jet-form-builder-file-upload__file:nth-child(n+2) { display: flex !important; }
.crea-form-bloque .crea-adjuntos-varios .jet-form-builder-file-upload__file { width: 200px !important; }
/* Los "Guardar borrador" de las altas son <a> sin href: que se vean como botones. */
.crea-form-bloque .btn-guardar-borrador .wp-block-button__link { cursor: pointer; }
/* Como en 3457/292 y 3771: la lista vacía de archivos ocupa su lugar (el dropzone mide lo mismo que con JFB). En la
   2162 (0.6.0) se queda oculta, como con 4201. */
.crea-form-bloque .crea-adjuntos-varios:not(.has-file) .jet-form-builder-file-upload__files,
.crea-form-alta .jet-form-builder-file-upload:not(.has-file) .jet-form-builder-file-upload__files { display: flex !important; }
/* Moderación (popups de la 2796): "Pedir cambios" y "Rechazar" uno al lado del otro. */
.crea-moderar .crea-moderar-botones { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; }
.crea-moderar .crea-mensajes .jet-form-builder-message { margin-top: 10px; }
/* 0.8.0: "Reenvío n.º N" y motivo anterior en los popups de la cola. */
.crea-moderar .crea-moderar-reenvio { margin: 0 0 12px; font-family: "Roboto Condensed", sans-serif; font-size: 15px; }
.crea-moderar .crea-moderar-reenvio p { margin: 0 0 4px; }
.crea-moderar .crea-moderar-motivo { padding: 8px 12px; border-left: 3px solid #FFDC19; background: #0000000A; }
/* Modificar datos (1904): el DNI se ve pero no se edita ([D] D3). */
.crea-form-simple .crea-solo-lectura { background-color: #f3f3f3 !important; cursor: not-allowed; }

/*
 * "Olvidé mi contraseña" (3333): lo que los widgets HTML de la página aplican al form de JFB
 * (form[data-form-id="3344"]), para el propio.
 */
#crea-recuperar .jet-form-builder__field-wrap { position: relative; }
#crea-recuperar input[name="new_password"],
#crea-recuperar input[name="confirm_new_password"] { padding-right: 52px !important; }
#crea-recuperar .pw-toggle-visibility { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); background: none; border: none; cursor: pointer; padding: 0; line-height: 1; font-size: 18px; color: #007244; opacity: .75; }
#crea-recuperar .pw-toggle-visibility:hover { opacity: 1; }
#crea-recuperar .pw-toggle-visibility:focus { outline: none; }
#crea-recuperar .pw-rules { display: none; margin-top: 14px; grid-template-columns: repeat(3, auto); column-gap: 28px; row-gap: 6px; justify-content: center; }
#crea-recuperar .pw-rules.is-active { display: grid; }
#crea-recuperar .pw-rule { position: relative; padding-left: 22px; font-size: 14px; opacity: .5; white-space: nowrap; }
#crea-recuperar .pw-rule::before { content: "✓"; position: absolute; left: 0; top: 0; opacity: .3; font-weight: 700; }
#crea-recuperar .pw-rule.is-ok { color: #00AC66; opacity: 1; font-weight: 600; }
#crea-recuperar .pw-rule.is-ok::before { color: #00AC66; opacity: 1; }
#crea-recuperar button[type="submit"][disabled] { opacity: .45; cursor: not-allowed; filter: grayscale(25%); }
@media (max-width: 768px) { #crea-recuperar .pw-rules { grid-template-columns: repeat(2, auto); } }
@media (max-width: 480px) { #crea-recuperar .pw-rules { grid-template-columns: 1fr; justify-content: flex-start; } }

/*
 * 0.9.0 (clave formularios_ui; .crea-formularios-ui en el contenedor de las altas, plan-etapa-2.md §4.12).
 * - "Volver" y "Siguiente" de las altas, separados (estaban pegados).
 * - "Guardar borrador" de las altas con el aspecto del de las ediciones (389/2162; [D] Javier, 2026-10-28):
 *   contorno gris oscuro, radio 15 px, sin ícono.
 * - Link "Ir a Mi cuenta" dentro del aviso de error.
 */
.crea-formularios-ui .jet-form-builder__next-page-wrap { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link,
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link:visited { display: inline-flex; align-items: center; justify-content: center; padding: 12px 24px !important; border: 1px solid #000000AB !important; border-radius: 15px !important; background: #fff !important; color: #000000AB !important; font-family: "Roboto Condensed", sans-serif !important; font-size: 15px !important; font-weight: 400 !important; line-height: 15px !important; letter-spacing: normal !important; text-transform: none !important; box-shadow: none !important; }
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link:hover,
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link:focus { background: #00000030 !important; color: #000000AB !important; border-color: #000000AB !important; }
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link::before,
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link::after,
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link svg,
.crea-formularios-ui .btn-guardar-borrador .wp-block-button__link i { display: none !important; }
.crea-mensajes .crea-mensaje-link { color: inherit; font-weight: 600; text-decoration: underline; white-space: nowrap; }
