/* HyperForge · formularios de firma (W2). Usa los tokens RDS de base.css; contraste AA en ambos temas. */
.firma > * + *{margin-top:var(--s4)}
.campo-grupo{display:flex;flex-direction:column;gap:var(--s1)}
.campo-grupo + .campo-grupo{margin-top:var(--s3)}
.campo-grupo[hidden]{display:none}
.campo-grupo label,.opciones-abc legend{color:var(--veta);font-size:14px}
.campo{font:inherit;color:var(--marmol);background:var(--rds-input);border:1px solid var(--borde-control);border-radius:var(--r-sup);
  padding:10px 12px;width:100%;min-height:44px}
textarea.campo{resize:vertical;min-height:88px}
.campo:focus-visible{outline:2px solid var(--rds-focus);outline-offset:2px}
.ayuda{color:var(--veta);font-size:13px}
.casilla{display:flex;align-items:center;gap:var(--s2);margin-top:var(--s2)}
.casilla input,.opcion input{width:20px;height:20px;accent-color:var(--rds-action);flex:none}
.opciones-abc{border:0;display:flex;flex-direction:column;gap:var(--s2)}
.opcion{display:flex;align-items:flex-start;gap:var(--s2)}
.opcion label{cursor:pointer}
.firma-error{color:var(--danger);font-weight:500}
.firma-error:empty,.firma-estado:empty{display:none}
.firma-estado{color:var(--veta)}
.btn:not([disabled]){cursor:pointer}
button.etiqueta{cursor:pointer}
button.etiqueta:hover{color:var(--marmol);border-color:var(--marmol)}
.personas li > .campo,.personas li > .firma-error{margin:0 0 var(--s3) 64px;width:calc(100% - 64px)}
/* 8-oct · acceso: diálogo de step-up, alta y códigos de respaldo */
.dialogo-acceso{margin:auto;color:var(--marmol);background:var(--tinta);border:1px solid var(--borde-control);border-radius:var(--r-hoja);
  padding:var(--s5);width:min(440px,calc(100% - 32px))}
.dialogo-acceso::backdrop{background:var(--rds-scrim)}
.dialogo-acceso h2{margin:0}
.secreto-totp{display:inline-block;word-break:break-all;user-select:all;letter-spacing:.06em}
.qr-totp{margin:var(--s4) 0;display:inline-flex;flex-direction:column;gap:var(--s2)}
.qr-totp img{display:block;width:232px;height:232px;max-width:100%;background:#fff;padding:var(--s3);border-radius:var(--r-hoja);
  image-rendering:pixelated}
.pasos-alta{margin-top:var(--s4);max-width:640px}
.codigos-respaldo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2) var(--s5);padding-left:var(--s5);
  font-size:16px;user-select:all}
details summary{cursor:pointer;color:var(--veta)}

/* W2b · /firmar/<id> */
.firmar{display:flex;flex-direction:column;gap:var(--s4);max-width:720px}
.firmar-datos{display:grid;grid-template-columns:max-content 1fr;gap:var(--s1) var(--s3);margin:0}
.firmar-datos dt{color:var(--veta);font-size:14px}
.firmar-datos dd{margin:0;overflow-wrap:anywhere}
.firmar-datos .firmar-datos{padding-left:var(--s2)}
.firmar-lista{margin:0;padding-left:var(--s4)}
.firmar-objeto{border:1px solid var(--veta);border-radius:var(--r-sup);padding:var(--s3);max-height:60vh;overflow:auto}
.firmar-objeto h2{margin-top:0}
.firmar-sello{border:2px solid var(--oro);border-radius:var(--r-sup);padding:var(--s4);max-width:560px}
.firmar-sello[data-estado="firmada"]{border-color:var(--luz)}
.firmar-sello h2{margin-top:0}
.firmar-formulario .opcion{display:flex;gap:var(--s2);align-items:baseline}
