.epga-app{--epga-blue:#0b65c2;--epga-dark:#172033;--epga-border:#d9e2ef;--epga-soft:#f4f7fb;--epga-danger:#d90429;font-family:Arial,Helvetica,sans-serif;border:1px solid var(--epga-border);border-radius:18px;overflow:hidden;background:#fff;color:var(--epga-dark);box-shadow:0 20px 60px rgba(20,36,64,.12);max-width:1500px;margin:24px auto}.epga-app *{box-sizing:border-box}.epga-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 22px;background:linear-gradient(135deg,#fff,#f7fbff);border-bottom:1px solid var(--epga-border)}.epga-brand{display:flex;gap:14px;align-items:center}.epga-logo{width:54px;height:54px;border-radius:14px;background:var(--epga-blue);color:#fff;display:grid;place-items:center;font-weight:800;letter-spacing:-1px}.epga-brand h2{font-size:22px;margin:0;line-height:1.1}.epga-brand p{margin:4px 0 0;font-size:13px;color:#607086}.epga-actions{display:flex;gap:10px;flex-wrap:wrap}.epga-btn,.epga-tool{appearance:none;border:1px solid var(--epga-border);background:#fff;border-radius:12px;padding:10px 15px;font-weight:700;cursor:pointer;transition:.15s ease;color:var(--epga-dark);box-shadow:0 2px 8px rgba(0,0,0,.03)}.epga-btn:hover,.epga-tool:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(20,36,64,.10)}.epga-btn:disabled,.epga-tool:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.epga-primary{background:var(--epga-blue);border-color:var(--epga-blue);color:#fff}.epga-toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 18px;background:#fbfdff;border-bottom:1px solid var(--epga-border)}.epga-tool.active{background:#ebf4ff;border-color:#99c4ef;color:#074d95}.epga-toolbar label{font-size:12px;font-weight:700;color:#59677a;display:flex;align-items:center;gap:6px}.epga-toolbar select,.epga-toolbar input[type=number]{border:1px solid var(--epga-border);border-radius:9px;padding:8px 10px;background:#fff}.epga-toolbar input[type=color]{width:38px;height:36px;padding:2px;border:1px solid var(--epga-border);border-radius:9px;background:#fff}.epga-separator{width:1px;height:26px;background:var(--epga-border);margin:0 4px}.epga-zoom{min-width:48px;text-align:center;font-weight:800;color:#34435a}.epga-notice{margin:14px 18px 0;background:#f8fbff;border:1px solid var(--epga-border);border-radius:14px;padding:12px 16px;font-size:14px;line-height:1.45;color:#33435d}.epga-workspace{display:grid;grid-template-columns:210px 1fr;min-height:720px;background:#eef3f9}.epga-sidebar{border-right:1px solid var(--epga-border);background:#fff;padding:16px 12px;overflow:auto}.epga-sidebar h3{margin:0 0 12px;font-size:14px;color:#4c5c71}.epga-thumbs{display:flex;flex-direction:column;gap:12px}.epga-thumb{border:2px solid transparent;border-radius:12px;background:#f8fafc;padding:8px;text-align:center;cursor:pointer;transition:.15s}.epga-thumb.active,.epga-thumb:hover{border-color:var(--epga-blue);background:#eef7ff}.epga-thumb canvas{max-width:100%;border-radius:6px;box-shadow:0 4px 12px rgba(0,0,0,.10);background:#fff}.epga-thumb span{display:block;margin-top:5px;font-size:12px;font-weight:800;color:#536178}.epga-stage{position:relative;overflow:auto;padding:32px 0}.epga-empty{max-width:520px;margin:90px auto;background:#fff;border:1px dashed #b7c9dc;border-radius:20px;text-align:center;padding:54px 30px;color:#5c6d80}.epga-empty-icon{font-size:48px}.epga-empty h3{margin:8px 0;font-size:22px;color:#25324a}.epga-empty p{margin:0;line-height:1.45}.epga-pages{display:flex;flex-direction:column;align-items:center;gap:32px;transform-origin:top center}.epga-page{position:relative;background:#fff;box-shadow:0 22px 55px rgba(32,48,74,.20);border-radius:4px;overflow:hidden;display:none}.epga-page.active-page{display:block}.epga-page canvas.epga-canvas{display:block;width:100%;height:100%;background:#fff}.epga-layer{position:absolute;inset:0;overflow:hidden}.epga-text-mask{position:absolute;pointer-events:none;opacity:0;transition:opacity .12s ease}.epga-text-mask.active{opacity:1}.epga-textbox{position:absolute;margin:0;padding:0;border:1px dashed transparent;outline:none;color:#000;line-height:1.05;white-space:pre;min-width:5px;min-height:5px;background:transparent;transform-origin:left top;cursor:text;z-index:4}.epga-textbox:hover{border-color:rgba(11,101,194,.45)}.epga-textbox.selected{border-color:#0b65c2!important;background:transparent!important;box-shadow:0 0 0 1px rgba(11,101,194,.10)}.epga-textbox[contenteditable=true]:focus{border-color:#0b65c2!important;background:transparent!important;box-shadow:0 0 0 1px rgba(11,101,194,.12)}.epga-textbox.added{padding:1px 3px;background:rgba(255,255,255,.02)}.epga-imagebox{position:absolute;border:1px dashed transparent;z-index:6;cursor:move}.epga-imagebox.selected{border-color:#0b65c2;box-shadow:0 0 0 3px rgba(11,101,194,.13)}.epga-imagebox img{display:block;width:100%;height:100%;object-fit:contain}.epga-signature-modal{position:fixed;inset:0;background:rgba(14,24,40,.50);z-index:999999;display:grid;place-items:center;padding:20px}.epga-signature-card{background:#fff;border-radius:20px;padding:20px;box-shadow:0 24px 80px rgba(0,0,0,.3);width:min(720px,95vw)}.epga-signature-card h3{margin:0 0 12px}.epga-signature-canvas{width:100%;height:220px;border:2px dashed #b8c8d9;border-radius:14px;background:#fff;touch-action:none}.epga-signature-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}.epga-loading{padding:16px 20px;text-align:center;font-weight:800;color:#0b65c2}.epga-status{padding:10px 18px;font-size:13px;color:#485a70}.epga-app.epga-busy .epga-stage:after{content:'Procesando...';position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;border:1px solid var(--epga-border);border-radius:16px;padding:18px 26px;box-shadow:0 20px 60px rgba(0,0,0,.18);font-weight:800;color:#0b65c2;z-index:50}@media(max-width:900px){.epga-workspace{grid-template-columns:1fr}.epga-sidebar{display:none}.epga-topbar{align-items:flex-start;flex-direction:column}.epga-stage{padding:20px 8px}.epga-toolbar{align-items:flex-start}.epga-notice{margin:12px}}

/* Corrección: el atributo hidden debe ocultar realmente la ventana de firma.
   Algunos temas de WordPress pisan el estilo nativo hidden y dejaban el modal abierto al cargar. */
.epga-signature-modal[hidden],
.epga-signature-modal.is-hidden{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}

/* Selector de archivo oculto pero funcional para navegadores/temas que bloquean input[hidden]. */
.epga-file{
  position:absolute !important;
  left:-99999px !important;
  top:auto !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
  overflow:hidden !important;
  pointer-events:none !important;
}
.epga-status{margin:10px 18px 14px;background:#fff;border:1px solid var(--epga-border);border-radius:12px;padding:10px 14px;font-size:13px;font-weight:700;color:#41516a}
.epga-status-ok{background:#f0fff6;border-color:#b8e8c9;color:#166534}
.epga-status-error{background:#fff4f4;border-color:#fecaca;color:#b91c1c}
.epga-stage.epga-dragover{outline:3px dashed var(--epga-blue);outline-offset:-12px;background:#e8f3ff}
.epga-repair-panel{margin:14px 18px;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:14px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;color:#7c2d12;font-size:14px;line-height:1.45}.epga-repair-panel strong{font-size:15px}.epga-repair-panel small{display:block;width:100%;color:#9a3412}.epga-red{color:#b91c1c;font-weight:800}.epga-status .epga-inline-install{margin-left:10px}

/* Firma premium: pestañas, carga de imagen y firma con fuente */
.epga-signature-modal{
  position:fixed !important;
  inset:0 !important;
  background:rgba(14,24,40,.58) !important;
  z-index:999999 !important;
  display:grid !important;
  place-items:center !important;
  padding:18px !important;
}
.epga-signature-modal[hidden],
.epga-signature-modal.is-hidden{
  display:none !important;
  visibility:hidden !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.epga-signature-card{
  width:min(880px,96vw) !important;
  max-height:92vh !important;
  overflow:auto !important;
  background:#fff !important;
  color:#172033 !important;
  border-radius:22px !important;
  padding:18px !important;
  box-shadow:0 28px 90px rgba(0,0,0,.34) !important;
}
.epga-signature-head{
  display:flex !important;
  align-items:flex-start !important;
  justify-content:space-between !important;
  gap:16px !important;
  margin-bottom:14px !important;
}
.epga-signature-head h3{
  margin:0 !important;
  font-size:24px !important;
  line-height:1.15 !important;
  color:#172033 !important;
}
.epga-signature-head p{
  margin:6px 0 0 !important;
  color:#667085 !important;
  font-size:13px !important;
  line-height:1.35 !important;
}
.epga-signature-close{
  width:42px !important;
  height:42px !important;
  display:grid !important;
  place-items:center !important;
  border:1px solid #d9e2ef !important;
  border-radius:13px !important;
  background:#fff !important;
  color:#172033 !important;
  font-size:26px !important;
  font-weight:900 !important;
  cursor:pointer !important;
  box-shadow:0 4px 12px rgba(20,36,64,.08) !important;
}
.epga-signature-tabs{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:8px !important;
  margin-bottom:14px !important;
  background:#f4f7fb !important;
  border:1px solid #d9e2ef !important;
  border-radius:16px !important;
  padding:6px !important;
}
.epga-signature-tabs button{
  min-height:42px !important;
  border:0 !important;
  border-radius:12px !important;
  background:transparent !important;
  color:#34435a !important;
  font-weight:900 !important;
  cursor:pointer !important;
}
.epga-signature-tabs button.active{
  background:#0b65c2 !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(11,101,194,.25) !important;
}
.epga-signature-pane{
  display:none !important;
}
.epga-signature-pane.active{
  display:block !important;
}
.epga-signature-help{
  margin:0 0 10px !important;
  color:#536178 !important;
  font-size:13px !important;
}
.epga-signature-canvas{
  width:100% !important;
  height:260px !important;
  display:block !important;
  border:2px dashed #9bb7ff !important;
  border-radius:18px !important;
  background:#fff !important;
  touch-action:none !important;
}
.epga-upload-signature{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  justify-content:center !important;
  gap:5px !important;
  min-height:125px !important;
  border:2px dashed #b8c8d9 !important;
  border-radius:18px !important;
  background:#f8fbff !important;
  cursor:pointer !important;
  color:#172033 !important;
  font-weight:900 !important;
}
.epga-upload-signature input{
  position:absolute !important;
  left:-99999px !important;
  width:1px !important;
  height:1px !important;
  opacity:0 !important;
}
.epga-upload-signature small{
  color:#667085 !important;
  font-weight:700 !important;
}
.epga-signature-preview{
  min-height:120px !important;
  margin-top:12px !important;
  border:1px solid #d9e2ef !important;
  border-radius:16px !important;
  background:linear-gradient(45deg,#fff 25%,#f7f7f7 25%,#f7f7f7 50%,#fff 50%,#fff 75%,#f7f7f7 75%) !important;
  background-size:22px 22px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#667085 !important;
  overflow:hidden !important;
  padding:12px !important;
}
.epga-signature-preview img{
  max-width:100% !important;
  max-height:120px !important;
  object-fit:contain !important;
  display:block !important;
}
.epga-signature-form-grid{
  display:grid !important;
  grid-template-columns:1.4fr .7fr .8fr .4fr !important;
  gap:10px !important;
  margin-bottom:12px !important;
}
.epga-signature-form-grid label{
  display:flex !important;
  flex-direction:column !important;
  gap:6px !important;
  font-size:12px !important;
  font-weight:900 !important;
  color:#4c5c71 !important;
}
.epga-signature-form-grid input,
.epga-signature-form-grid select{
  width:100% !important;
  min-height:42px !important;
  border:1px solid #d9e2ef !important;
  border-radius:12px !important;
  padding:8px 10px !important;
  background:#fff !important;
  color:#172033 !important;
  font-size:14px !important;
}
.epga-signature-form-grid input[type=color]{
  padding:3px !important;
}
.epga-signature-type-preview{
  min-height:145px !important;
  font-size:52px !important;
  color:#111827 !important;
  text-align:center !important;
}
.epga-signature-actions{
  display:flex !important;
  justify-content:flex-end !important;
  align-items:center !important;
  gap:10px !important;
  margin-top:16px !important;
  padding-top:14px !important;
  border-top:1px solid #edf1f7 !important;
  background:#fff !important;
  position:sticky !important;
  bottom:0 !important;
}
.epga-signature-actions .epga-btn,
.epga-signature-card .epga-btn{
  min-height:44px !important;
  min-width:115px !important;
  padding:10px 17px !important;
  border:1px solid #d9e2ef !important;
  border-radius:13px !important;
  background:#fff !important;
  color:#172033 !important;
  font-size:14px !important;
  font-weight:900 !important;
  text-indent:0 !important;
  line-height:1.2 !important;
  opacity:1 !important;
  visibility:visible !important;
}
.epga-signature-actions .epga-primary,
.epga-signature-card .epga-primary{
  background:#0b65c2 !important;
  border-color:#0b65c2 !important;
  color:#fff !important;
}
@media(max-width:780px){
  .epga-signature-tabs{grid-template-columns:1fr !important;}
  .epga-signature-form-grid{grid-template-columns:1fr !important;}
  .epga-signature-actions{justify-content:stretch !important; flex-direction:column !important;}
  .epga-signature-actions .epga-btn{width:100% !important;}
}


/* Fix 1.2.0: fuerza visibilidad de textos en botones dentro de temas/Elementor que los dejan en blanco. */
.epga-signature-card button,
.epga-signature-card .epga-btn,
.epga-signature-card .epga-signature-close,
.epga-signature-card .epga-signature-tabs button{
  font-size:14px !important;
  text-indent:0 !important;
  letter-spacing:normal !important;
  text-transform:none !important;
  opacity:1 !important;
  visibility:visible !important;
  overflow:visible !important;
  white-space:nowrap !important;
}
.epga-signature-card .epga-btn-text{
  display:inline-block !important;
  opacity:1 !important;
  visibility:visible !important;
  color:inherit !important;
  font-size:inherit !important;
  line-height:1.2 !important;
  text-indent:0 !important;
  transform:none !important;
}
.epga-signature-card button[data-epga-label]:empty::before{
  content:attr(data-epga-label) !important;
  display:inline-block !important;
  color:inherit !important;
}
.epga-signature-actions{z-index:2 !important;}
.epga-signature-close{font-size:28px !important; color:#172033 !important;}

.epga-page-indicator{min-width:70px;text-align:center;font-weight:900;color:#34435a;background:#fff;border:1px solid var(--epga-border);border-radius:10px;padding:8px 10px}
.epga-image-file{position:absolute!important;left:-99999px!important;top:auto!important;width:1px!important;height:1px!important;opacity:0!important;overflow:hidden!important;pointer-events:none!important}
.epga-imagebox{resize:both;overflow:hidden;min-width:36px;min-height:24px}
.epga-erasebox{position:absolute;z-index:5;cursor:move;resize:both;overflow:hidden;min-width:22px;min-height:16px;border:2px dashed #ef4444;background:rgba(255,255,255,.55);box-shadow:0 0 0 1px rgba(239,68,68,.15)}
.epga-erasebox::after{content:'Borrar área';position:absolute;left:4px;top:3px;font-size:10px;line-height:1;color:#b91c1c;background:rgba(255,255,255,.82);border-radius:4px;padding:2px 4px;pointer-events:none}
.epga-erasebox.selected{border-color:#b91c1c;box-shadow:0 0 0 3px rgba(239,68,68,.16)}
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited){color:transparent!important;text-shadow:none!important}
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited):hover{border-color:rgba(11,101,194,.22)}

/* Firma transparente HD: previsualización sobre patrón para verificar que no tenga fondo blanco */
.epga-signature-preview{
  background-color:#fff !important;
  background-image:linear-gradient(45deg,#eef2f7 25%,transparent 25%),linear-gradient(-45deg,#eef2f7 25%,transparent 25%),linear-gradient(45deg,transparent 75%,#eef2f7 75%),linear-gradient(-45deg,transparent 75%,#eef2f7 75%) !important;
  background-size:18px 18px !important;
  background-position:0 0,0 9px,9px -9px,-9px 0 !important;
}
.epga-signature-upload-preview span{display:block;padding:34px 12px;color:#475569;font-weight:800;text-align:center}

/* Fix 1.5.1: evita fondos azules/grises solo por detectar o seleccionar textos como correo electrónico. */
.epga-layer .epga-textbox[data-type=detected],
.epga-layer .epga-textbox[data-type=detected]:hover,
.epga-layer .epga-textbox[data-type=detected]:focus,
.epga-layer .epga-textbox[data-type=detected].selected{
  background:transparent !important;
  background-color:transparent !important;
}
.epga-text-mask:not(.active){
  opacity:0 !important;
  background:transparent !important;
}


/* Fix 1.5.2: el campo de correo queda igual que los demás textos, sin fondo azul/gris. */
.epga-layer .epga-textbox.epga-clean-field,
.epga-layer .epga-textbox.epga-clean-field:hover,
.epga-layer .epga-textbox.epga-clean-field:focus,
.epga-layer .epga-textbox.epga-clean-field.selected{
  background:transparent !important;
  background-color:transparent !important;
  color:#000 !important;
  text-shadow:none !important;
  box-shadow:none !important;
}
.epga-layer .epga-text-mask.epga-clean-field-mask.active{
  opacity:1 !important;
  background:#ffffff !important;
}


/* Fix 1.5.3: correo electrónico igual que teléfono: sin fondo especial ni máscara permanente. */
.epga-layer .epga-textbox.epga-clean-field,
.epga-layer .epga-textbox.epga-clean-field:hover,
.epga-layer .epga-textbox.epga-clean-field:focus,
.epga-layer .epga-textbox.epga-clean-field.selected{background:transparent!important;background-color:transparent!important;box-shadow:none!important;}
.epga-layer .epga-text-mask.epga-clean-field-mask.active{opacity:0!important;background:transparent!important;}

/* Fix 1.5.4: correo electrónico con fondo visual transparente.
   Se evita que la máscara de edición del correo se vea como un bloque blanco. */
.epga-layer .epga-textbox.epga-email-field,
.epga-layer .epga-textbox.epga-email-field:hover,
.epga-layer .epga-textbox.epga-email-field:focus,
.epga-layer .epga-textbox.epga-email-field.selected{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
}
.epga-layer .epga-text-mask.epga-email-mask.active{
  opacity:0 !important;
  background:transparent !important;
  background-color:transparent !important;
}


/* Versión 1.6.0 - herramienta interna avanzada de texto */
.epga-toolbar .epga-tool[data-action="fontSmaller"],
.epga-toolbar .epga-tool[data-action="fontLarger"]{
  min-width:42px;
  padding-left:11px;
  padding-right:11px;
}
.epga-layer .epga-textbox{
  resize:both !important;
  overflow:hidden !important;
  min-width:18px !important;
  min-height:12px !important;
  max-width:100% !important;
  white-space:pre-wrap !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
  line-height:1.08 !important;
  padding:1px 3px !important;
  caret-color:#0b65c2 !important;
}
.epga-layer .epga-textbox.selected{
  border-color:#0b65c2 !important;
  box-shadow:0 0 0 1px rgba(11,101,194,.14), 0 8px 18px rgba(11,101,194,.08) !important;
}
.epga-layer .epga-textbox.selected::after{
  content:'';
  position:absolute;
  right:0;
  bottom:0;
  width:10px;
  height:10px;
  border-right:2px solid #0b65c2;
  border-bottom:2px solid #0b65c2;
  pointer-events:none;
}
.epga-layer .epga-textbox[contenteditable=true]:focus{
  background:rgba(255,255,255,.02) !important;
}
.epga-layer .epga-textbox.added{
  background:rgba(255,255,255,.02) !important;
}
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited){
  resize:none !important;
  overflow:hidden !important;
}
.epga-layer .epga-textbox[data-type=detected].epga-edited{
  color:#000 !important;
  text-shadow:none !important;
}
.epga-status-ok{background:#ecfdf5!important;border-color:#a7f3d0!important;color:#065f46!important}
.epga-status-error{background:#fff1f2!important;border-color:#fecdd3!important;color:#9f1239!important}


/* Version 1.7.0 - deteccion avanzada de campos vacios y correos editables */
.epga-toolbar .epga-tool[data-action="detectFields"]{
  background:#f0fdf4;
  border-color:#bbf7d0;
  color:#166534;
}
.epga-layer .epga-textbox.epga-pdf-field{
  z-index:5;
}
.epga-layer .epga-textbox.epga-empty-field,
.epga-layer .epga-textbox.epga-empty-field:hover,
.epga-layer .epga-textbox.epga-empty-field:focus,
.epga-layer .epga-textbox.epga-empty-field.selected{
  border:1px dashed rgba(22,163,74,.55) !important;
  background:rgba(240,253,244,.06) !important;
  color:#000 !important;
  resize:both !important;
}
.epga-layer .epga-textbox.epga-empty-field:empty::before{
  content:attr(data-placeholder);
  color:rgba(22,101,52,.58);
  font-size:10px;
  font-weight:700;
  pointer-events:none;
  white-space:nowrap;
}
.epga-layer .epga-textbox.epga-empty-field.epga-edited:empty::before{
  content:'';
}
.epga-layer .epga-textbox.epga-smart-email,
.epga-layer .epga-textbox.epga-smart-email:hover,
.epga-layer .epga-textbox.epga-smart-email:focus,
.epga-layer .epga-textbox.epga-smart-email.selected{
  z-index:8 !important;
  background:transparent !important;
}
.epga-layer .epga-textbox.epga-smart-email.selected,
.epga-layer .epga-textbox.epga-smart-email:focus{
  border-color:#16a34a !important;
  box-shadow:0 0 0 1px rgba(22,163,74,.16), 0 8px 18px rgba(22,163,74,.08) !important;
}
.epga-layer .epga-text-mask.epga-field-mask:not(.active){
  opacity:0 !important;
}
.epga-layer .epga-text-mask.epga-field-mask.active,
.epga-layer .epga-text-mask.epga-field-mask.epga-email-mask.active{
  opacity:1 !important;
}


/* Version 1.8.0 - agrupacion por campo/celda y movimiento/redimensionamiento directo */
.epga-layer .epga-textbox.epga-grouped-text{
  resize:both !important;
  overflow:auto !important;
  white-space:pre-wrap !important;
  overflow-wrap:anywhere !important;
  word-break:normal !important;
  min-width:18px !important;
  min-height:12px !important;
}
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited){
  resize:both !important;
  overflow:hidden !important;
}
.epga-layer .epga-textbox[data-type=detected].selected,
.epga-layer .epga-textbox[data-type=detected]:focus,
.epga-layer .epga-textbox[data-type=detected].epga-edited{
  resize:both !important;
  overflow:auto !important;
}
.epga-layer .epga-textbox.selected{
  cursor:text !important;
}
.epga-layer .epga-textbox.selected::before{
  content:'mover desde el borde';
  position:absolute;
  left:0;
  top:-17px;
  padding:1px 5px;
  border-radius:5px;
  background:#0b65c2;
  color:#fff;
  font-size:9px;
  font-weight:800;
  line-height:1.25;
  pointer-events:none;
  opacity:.92;
  white-space:nowrap;
}
.epga-layer .epga-text-mask.epga-group-mask.active,
.epga-layer .epga-text-mask.epga-email-mask.active,
.epga-layer .epga-text-mask.epga-field-mask.epga-email-mask.active{
  opacity:1 !important;
}
.epga-layer .epga-textbox.epga-empty-field:empty::before{
  content:attr(data-placeholder);
}


/* Version 1.9.0 - reemplazo real de texto detectado */
.epga-layer .epga-text-mask.active{
  pointer-events:none !important;
  opacity:1 !important;
  z-index:3 !important;
}
.epga-layer .epga-textbox[data-type=detected]{
  z-index:4 !important;
}
.epga-layer .epga-textbox[data-type=detected].selected,
.epga-layer .epga-textbox[data-type=detected]:focus,
.epga-layer .epga-textbox[data-type=detected].epga-edited{
  color:#000 !important;
  text-shadow:none !important;
}
.epga-layer .epga-textbox[data-type=detected].selected::before{
  content:'borde=mover / esquina=ampliar' !important;
}


/* Version 2.0.0 - reemplazo visual persistente de valores detectados.
   El valor editable queda en la celda real y el texto original del canvas queda cubierto,
   para evitar duplicados al mover correos, teléfonos, cédulas o nombres. */
.epga-layer .epga-text-mask.epga-replace-mask.active,
.epga-layer .epga-text-mask.epga-group-mask.active,
.epga-layer .epga-text-mask.epga-field-mask.active{
  opacity:1 !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.epga-layer .epga-textbox[data-type=detected],
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited),
.epga-layer .epga-textbox[data-type=detected].selected,
.epga-layer .epga-textbox[data-type=detected]:focus,
.epga-layer .epga-textbox[data-type=detected].epga-edited{
  color:#000 !important;
  text-shadow:none !important;
  background:transparent !important;
  background-color:transparent !important;
}
.epga-layer .epga-textbox[data-type=detected]:not(.selected):not(.epga-edited){
  resize:both !important;
}
.epga-layer .epga-textbox[data-visual-replacement="1"]{
  outline:0 !important;
}

/* Version 2.1.0 - correccion de duplicados reales en campos detectados.
   Cuando un valor aparece como texto renderizado y como campo editable, se deja un solo campo
   y las posiciones originales quedan cubiertas por mascaras fijas. */
.epga-layer .epga-text-mask.epga-aux-replace-mask.active{
  opacity:1 !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.epga-layer .epga-textbox[data-replacement-owner="1"]{
  z-index:6 !important;
}

/* 2.3.0 - Editor tipo campo real: el fondo del PDF se renderiza sin texto incrustado,
   por eso los textos detectados quedan siempre visibles como cajas editables al estilo del video. */
.epga-page.epga-textless-page .epga-textbox[data-type="detected"]{
  border:1px dashed rgba(85,85,85,.42) !important;
  background:transparent !important;
  box-sizing:border-box !important;
  padding:0 2px !important;
  cursor:text !important;
}
.epga-page.epga-textless-page .epga-textbox[data-type="detected"]:hover,
.epga-page.epga-textless-page .epga-textbox[data-type="detected"].selected,
.epga-page.epga-textless-page .epga-textbox[data-type="detected"][contenteditable="true"]:focus{
  border-color:#0b65c2 !important;
  box-shadow:0 0 0 1px rgba(11,101,194,.18) !important;
  background:rgba(255,255,255,.02) !important;
}
.epga-page.epga-textless-page .epga-textbox.epga-empty-field{
  border:1px dashed rgba(23,160,84,.60) !important;
  color:#128344 !important;
}
.epga-page.epga-textless-page .epga-textbox.epga-empty-field:empty:before{
  content:'Escribe aqui';
  color:#3aa367;
  font-size:11px;
  opacity:.8;
}


/* Menú avanzado con clic derecho + deshacer/rehacer */
.epga-context-menu{
  position:fixed !important;
  z-index:9999999 !important;
  width:236px !important;
  padding:8px !important;
  border:1px solid rgba(255,255,255,.14) !important;
  border-radius:18px !important;
  background:linear-gradient(180deg,rgba(24,31,44,.98),rgba(14,19,29,.98)) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.36),0 0 0 1px rgba(0,0,0,.18) !important;
  backdrop-filter:blur(18px) saturate(1.25) !important;
  color:#fff !important;
  user-select:none !important;
  font-family:Inter,Arial,sans-serif !important;
}
.epga-context-menu[hidden]{display:none !important}
.epga-context-title{
  padding:8px 10px 7px !important;
  color:#b8c7dc !important;
  font-size:11px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
.epga-context-menu button{
  width:100% !important;
  min-height:36px !important;
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  border:0 !important;
  border-radius:12px !important;
  padding:8px 10px !important;
  background:transparent !important;
  color:#f8fbff !important;
  font-size:13px !important;
  font-weight:800 !important;
  text-align:left !important;
  cursor:pointer !important;
}
.epga-context-menu button span{
  width:24px !important;
  height:24px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:9px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  font-weight:900 !important;
}
.epga-context-menu button:hover:not(:disabled){
  background:linear-gradient(90deg,rgba(11,101,194,.85),rgba(92,51,215,.75)) !important;
}
.epga-context-menu button:disabled{
  opacity:.38 !important;
  cursor:not-allowed !important;
}
.epga-context-sep{
  height:1px !important;
  margin:6px 5px !important;
  background:rgba(255,255,255,.12) !important;
}

.epga-context-fontrow{
  display:grid !important;
  grid-template-columns:44px 1fr 44px !important;
  gap:7px !important;
  align-items:center !important;
  padding:3px 4px 8px !important;
}
.epga-context-fontrow button{
  min-height:34px !important;
  justify-content:center !important;
  padding:6px !important;
}
.epga-context-fontrow button span{
  width:28px !important;
  height:24px !important;
  font-size:12px !important;
}
.epga-context-size{
  width:100% !important;
  min-height:34px !important;
  border:1px solid rgba(255,255,255,.18) !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.10) !important;
  color:#fff !important;
  outline:none !important;
  text-align:center !important;
  font-weight:900 !important;
  font-size:13px !important;
  box-sizing:border-box !important;
}
.epga-context-size:focus{
  border-color:rgba(111,170,255,.85) !important;
  box-shadow:0 0 0 3px rgba(79,144,255,.18) !important;
}
.epga-context-size:disabled{
  opacity:.38 !important;
}

.epga-context-hint{
  margin:8px 6px 3px !important;
  padding:8px 9px !important;
  border-radius:12px !important;
  background:rgba(255,255,255,.07) !important;
  color:#b8c7dc !important;
  font-size:11px !important;
  font-weight:700 !important;
  line-height:1.25 !important;
}
.epga-tool-undo,.epga-tool-redo{
  background:#f4f8ff !important;
  border-color:#cfe1ff !important;
  color:#0b4fa3 !important;
}
.epga-tool-undo:not(:disabled):hover,.epga-tool-redo:not(:disabled):hover{
  background:#e7f1ff !important;
  color:#073f84 !important;
}
.epga-textbox{resize:both;overflow:auto}
.epga-textbox.selected::after,.epga-imagebox.selected::after,.epga-erasebox.selected::after{
  content:'';
  position:absolute;
  right:-5px;
  bottom:-5px;
  width:11px;
  height:11px;
  border-radius:50%;
  background:#0b65c2;
  box-shadow:0 0 0 3px rgba(11,101,194,.16);
  pointer-events:none;
}


/* Version 2.5.0 - bloqueo de posición original y detección de casillas pequeñas. */
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field,
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field:hover,
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field:focus,
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field.selected{
  border:1px dashed rgba(11,101,194,.75) !important;
  background:rgba(255,255,255,.01) !important;
  color:#000 !important;
  text-align:center !important;
  resize:both !important;
  overflow:hidden !important;
  min-width:9px !important;
  min-height:9px !important;
  padding:0 !important;
}
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field:empty:before{
  content:'' !important;
}
.epga-page.epga-textless-page .epga-textbox.epga-checkbox-field.selected::before{
  content:'casilla editable' !important;
}


/* Version 2.6.0 - deteccion mas limpia y herramientas de parrafo */
.epga-toolbar .epga-align-tool{
  min-width:38px !important;
  padding-left:10px !important;
  padding-right:10px !important;
  font-weight:900 !important;
}
.epga-toolbar .epga-align-tool.active{
  background:#e7f1ff !important;
  border-color:#74aef0 !important;
  color:#073f84 !important;
}
.epga-context-subtitle{
  padding:4px 10px 5px !important;
  color:#8ea1bb !important;
  font-size:10px !important;
  font-weight:900 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}
.epga-context-grid{
  display:grid !important;
  grid-template-columns:repeat(4,1fr) !important;
  gap:6px !important;
  padding:3px 4px 7px !important;
}
.epga-context-grid button{
  min-height:34px !important;
  justify-content:center !important;
  padding:6px !important;
}
.epga-context-grid button span{
  width:28px !important;
  height:24px !important;
}
.epga-page.epga-textless-page .epga-textbox[data-type="detected"]{
  text-rendering:geometricPrecision !important;
}

/* Version 3.0.0 - modo exacto PRO: el PDF se ve igual al original al cargar.
   Los textos detectados son capas invisibles hasta seleccionarlos o editarlos; los campos vacíos
   se muestran como formulario sutil sin tapar el diseño original. */
.epga-page.epga-exact-page .epga-text-mask:not(.active){
  opacity:0 !important;
  background:transparent !important;
  background-color:transparent !important;
}
.epga-page.epga-exact-page .epga-text-mask.active{
  opacity:1 !important;
  z-index:3 !important;
  pointer-events:none !important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus){
  color:transparent !important;
  text-shadow:none !important;
  background:transparent !important;
  background-color:transparent !important;
  border-color:transparent !important;
  box-shadow:none !important;
  resize:none !important;
  overflow:hidden !important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus):hover{
  border-color:rgba(11,101,194,.28) !important;
  background:rgba(11,101,194,.015) !important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].selected,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:focus,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-edited{
  color:#000 !important;
  text-shadow:none !important;
  background:transparent !important;
  background-color:transparent !important;
  resize:both !important;
  overflow:auto !important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:hover,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:focus,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field.selected{
  border:1px dashed rgba(22,163,74,.48) !important;
  background:rgba(240,253,244,.035) !important;
  color:#000 !important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:empty::before{
  content:attr(data-placeholder) !important;
  color:rgba(22,101,52,.56) !important;
  font-size:10px !important;
  font-weight:700 !important;
}
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field,
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field:hover,
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field:focus,
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field.selected{
  border:1px dashed rgba(11,101,194,.62) !important;
  background:rgba(255,255,255,.01) !important;
  color:#000 !important;
  text-align:center !important;
  resize:both !important;
  overflow:hidden !important;
  min-width:9px !important;
  min-height:9px !important;
  padding:0 !important;
}
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field:empty::before{
  content:'' !important;
}


/* 3.0.0 PRO - comportamiento visual exacto */
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus){
  color:transparent!important;
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  resize:none!important;
  overflow:hidden!important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus):hover{
  border-color:rgba(11,101,194,.18)!important;
  background:rgba(11,101,194,.01)!important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].selected,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:focus,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-edited{
  color:#000!important;
  background:transparent!important;
  border-color:#0b65c2!important;
  box-shadow:0 0 0 1px rgba(11,101,194,.14)!important;
}
.epga-page.epga-exact-page .epga-text-mask.active{
  opacity:1!important;
  z-index:3!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field{
  border:1px dashed rgba(37,99,235,.32)!important;
  background:rgba(59,130,246,.025)!important;
  color:#000!important;
  resize:both!important;
  overflow:auto!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:hover,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:focus,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field.selected{
  border-color:rgba(37,99,235,.78)!important;
  background:rgba(59,130,246,.045)!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:empty::before{
  content:''!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field.selected:empty::before,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field:focus:empty::before{
  content:attr(data-placeholder)!important;
  color:rgba(37,99,235,.55)!important;
  font-size:10px!important;
  font-weight:700!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-checkbox-field{
  border:1px dashed rgba(37,99,235,.55)!important;
  background:rgba(255,255,255,.01)!important;
  color:#000!important;
  text-align:center!important;
  resize:both!important;
  overflow:hidden!important;
  min-width:8px!important;
  min-height:8px!important;
}


/* 3.1.0 - Exacto estable: el PDF queda visualmente igual al original. */
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus){
  color:transparent!important;
  background:transparent!important;
  border-color:transparent!important;
  box-shadow:none!important;
  outline:none!important;
  resize:none!important;
  overflow:hidden!important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:not(.epga-empty-field):not(.epga-checkbox-field):not(.selected):not(.epga-edited):not(:focus):hover{
  border-color:rgba(37,99,235,.18)!important;
  background:rgba(37,99,235,.008)!important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].selected,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:focus,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-edited{
  color:#000!important;
  background:transparent!important;
  border-color:#2563eb!important;
  box-shadow:0 0 0 1px rgba(37,99,235,.16)!important;
  resize:both!important;
  overflow:auto!important;
}
.epga-page.epga-exact-page .epga-text-mask.active{
  opacity:1!important;
  z-index:3!important;
  pointer-events:none!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field[data-auto-form="1"]{
  border:1px dashed rgba(37,99,235,.38)!important;
  background:rgba(255,255,255,.012)!important;
  resize:both!important;
  overflow:auto!important;
}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field[data-auto-form="1"]:empty::before{content:''!important;}
.epga-page.epga-exact-page .epga-textbox.epga-empty-field[data-auto-form="1"].selected:empty::before,
.epga-page.epga-exact-page .epga-textbox.epga-empty-field[data-auto-form="1"]:focus:empty::before{
  content:attr(data-placeholder)!important;
  color:rgba(37,99,235,.50)!important;
  font-size:10px!important;
}

/* Version 3.3.0 - edicion exacta sin parches blancos visibles.
   El texto existente se borra por pixeles dentro de la copia del canvas, preservando lineas/bordes. */
.epga-page.epga-exact-page .epga-text-mask,
.epga-page.epga-exact-page .epga-text-mask.active{
  opacity:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-materialized,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-materialized:not(.selected):not(:focus),
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-edited,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].selected,
.epga-page.epga-exact-page .epga-textbox[data-type="detected"]:focus{
  color:#000 !important;
  text-shadow:none !important;
  background:transparent !important;
  background-color:transparent !important;
}
.epga-page.epga-exact-page .epga-textbox[data-type="detected"].epga-materialized:not(.selected):not(:focus){
  border-color:transparent !important;
  box-shadow:none !important;
}


/* Version 3.7.0 - deteccion de imagenes incrustadas y cierre automatico de edicion */
.epga-page.epga-exact-page .epga-pdf-imagebox{
  border:1px dashed transparent!important;
  background:transparent!important;
  resize:both!important;
  overflow:hidden!important;
  cursor:move!important;
  z-index:7!important;
}
.epga-page.epga-exact-page .epga-pdf-imagebox:not(.selected):not(.epga-edited) img{
  opacity:0!important;
}
.epga-page.epga-exact-page .epga-pdf-imagebox:not(.selected):not(.epga-edited):hover{
  border-color:rgba(37,99,235,.35)!important;
  box-shadow:0 0 0 2px rgba(37,99,235,.08)!important;
}
.epga-page.epga-exact-page .epga-pdf-imagebox.selected{
  border-color:#2563eb!important;
  box-shadow:0 0 0 3px rgba(37,99,235,.16)!important;
}
.epga-page.epga-exact-page .epga-pdf-imagebox.epga-edited img,
.epga-page.epga-exact-page .epga-pdf-imagebox.selected.epga-edited img{
  opacity:1!important;
}
.epga-pdf-image-mask{
  position:absolute;
  pointer-events:none;
  z-index:5;
  background:#fff;
}
