/* Solo componentes de integración nuevos; el diseño base es el CSS aprobado. */
.document-input-group {
  display: flex;
  min-width: 0;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #fff;
}
.document-input-group > select,
.document-input-group > input {
  margin: 0;
  border: 0;
  border-radius: 4px;
}
.document-input-group > select {
  flex: 0 0 86px;
  width: 86px;
  border-right: 1px solid #cbd5e1;
  border-radius: 4px 0 0 4px;
  padding-right: 12px;
}
.document-input-group > input {
  flex: 1 1 0;
  min-width: 0;
  width: 0;
}
.top form {
  margin: 0;
  display: flex;
  align-items: center;
}
.geo-fields small {
  grid-column: 1/-1;
}
.geo-fields .field label {
  display: block;
}
[hidden] {
  display: none !important;
}
.certificate-canvas {
  display: block;
  width: 100%;
  height: auto;
}
.qr img {
  width: 100%;
  height: 100%;
  display: block;
}
.system-card {
  background: #fff;
  border: 1px solid #e0e7ef;
  border-radius: 6px;
  padding: 24px;
  margin-bottom: 18px;
}
.system-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  gap: 24px;
}
form > input {
  margin-bottom: 18px;
}
textarea {
  width: 100%;
  font: inherit;
  min-height: 100px;
  border: 1px solid #cbd5e1;
  padding: 11px 13px;
  border-radius: 4px;
  color: #012b6f;
}
.cert-detail canvas {
  width: 100%;
}

.login-recovery {
  text-align: right;
  margin-bottom: 22px;
}
.auth-panel > form + p {
  margin-top: 24px;
}
.future {
  margin-top: 35px;
}

.swatches label.swatch {
  cursor: pointer;
  position: relative;
}
.swatches label.swatch input {
  position: absolute;
  top: 4px;
  left: 4px;
}
.swatches label.swatch:has(input:checked) {
  border-color: #012b6f;
  box-shadow: 0 0 0 2px #ffd43a;
}
.form-error:not(:empty) {
  margin: 16px 0;
  padding: 14px;
  background: #fff0ee;
  color: #9b1732;
  border-radius: 4px;
}

[data-register-wizard] fieldset {
  border: 0;
  padding: 0;
  margin: 0;
  min-width: 0;
}
[data-register-wizard] fieldset > p {
  margin: 16px 0 26px;
}
.verification-email {
  margin: 20px 0;
}
.cert-meta > .muted {
  margin-top: 10px;
}
.certificate-preview {
  max-width: 100%;
  height: auto;
}
.dialog-close {
  position: absolute;
  top: 12px;
  right: 16px;
  border: 0;
  background: none;
  font-size: 28px;
  color: #012b6f;
}
.dialog-content form {
  margin-top: 20px;
}
.dialog-content .form-error {
  margin-bottom: 16px;
}

.generated-files {
  margin-top: 35px;
}
.generated-files > summary {
  cursor: pointer;
  font-weight: 700;
}
.generated-files .settings-panel {
  margin-top: 15px;
}

#detail-dialog .wrap {
  padding: 0;
}
#detail-dialog .page-head {
  padding-top: 0;
}
#detail-dialog .page-head h1 {
  font-size: 43px;
}
#detail-dialog .settings-panel {
  margin: 20px 0;
}
#detail-dialog .page {
  padding-bottom: 0;
}

/* Laboratorio local de compras y entregas */
.shipping-lab .lab-choice{display:flex;gap:12px;align-items:center;padding:12px 0}.shipping-lab .lab-choice input{width:20px;height:20px}.shipping-lab .lab-card{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.shipping-lab [hidden]{display:none!important}.shipping-lab input[readonly]{background:#edf1f6;color:#263b57}.shipping-lab .settings-panel{margin-top:24px}.shipping-lab li{margin:10px 0}@media(max-width:600px){.shipping-lab .lab-card{grid-template-columns:1fr}}

/* Selector internacional y control visible del himno */
.phone-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:16px}.phone-fields>p{grid-column:1/-1;margin:0 0 20px}.top .top-actions{margin-left:auto}.top .music-toggle{background:transparent;color:#ffd43a;white-space:nowrap}.top .music-toggle:hover{color:#ffe680}.top .music-toggle.on{color:#ffd43a}@media(max-width:720px){.phone-fields{grid-template-columns:minmax(0,1fr)}}

/* Ventana del proveedor de pago local */
.payment-dialog{width:min(560px,calc(100vw - 24px));max-height:90svh;overflow:auto;border:0;border-radius:12px;padding:32px;color:#012b6f}.payment-dialog::backdrop{background:#001637b8}.payment-dialog h2{font-size:38px;margin:12px 0}.payment-dialog [data-payment-concept]{margin-bottom:20px}.payment-dialog .lab-card{display:grid;grid-template-columns:1fr 1fr;gap:16px}.payment-dialog .payment-scenarios{margin:18px 0}.payment-dialog .payment-result{margin:18px 0}.payment-dialog .actions{display:flex;flex-wrap:wrap;gap:12px}.payment-dialog [hidden]{display:none!important}.payment-dialog .muted{margin-top:18px}.payment-dialog input[readonly]{background:#edf1f6}@media(max-width:600px){.payment-dialog{padding:24px 18px}.payment-dialog .actions .btn{width:100%}}

.payment-dialog [data-payment-message]:empty{display:none}

/* Catálogos con buscador y menú flotante, sin desplazar el formulario. */
.field .ts-wrapper{width:100%;min-width:0;margin:0;font:inherit}
.field .ts-control{height:58px;min-height:58px;padding:16px 42px 16px 20px;border:1px solid #c9d6e8;border-radius:4px;background:#fff!important;box-shadow:none;font:inherit;color:#012b6f;flex-wrap:nowrap;align-items:center}
.field .ts-wrapper.single .ts-control:after{right:18px;border-top-color:#012b6f}
.field .ts-control>input{padding:0!important;margin:0!important;min-height:0;height:auto;width:1px;border:0!important;box-shadow:none!important;font:inherit;line-height:24px;color:#012b6f}
.field .ts-control>.item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.field .ts-wrapper.focus .ts-control{border-color:#012b6f;box-shadow:0 0 0 3px #012b6f12}
.field .ts-dropdown{position:absolute;z-index:1000;margin-top:4px;border:1px solid #c9d6e8;border-radius:4px;box-shadow:0 8px 24px #012b6f24;font:inherit;color:#012b6f}
.field .ts-dropdown-content{max-height:240px;overflow-y:auto}
.field .ts-dropdown .option,.field .ts-dropdown .no-results{padding:10px 16px}
.field .ts-dropdown .active{background:#eaf1fb;color:#012b6f}
.field .ts-wrapper.disabled{opacity:.65}

/* Teléfono integrado: bandera/prefijo y número dentro del mismo campo. */
.phone-fields{grid-template-columns:minmax(0,1fr)}
.phone-fields [hidden]{display:none!important}
.phone-fields .iti{width:100%;min-width:0;--iti-border-color:#c9d6e8;--iti-text-color:#012b6f;--iti-hover-color:#eaf1fb;--iti-dropdown-bg:#fff;--iti-spacer-horizontal:14px}
.phone-fields .iti input.iti__tel-input{height:58px;padding-right:16px;border:1px solid #c9d6e8;border-radius:4px;font-variant-numeric:tabular-nums}
.phone-fields .iti__selected-country{padding:0 12px 0 0;border-right:1px solid #c9d6e8;border-radius:4px 0 0 4px;background:#f4f7fc;color:#012b6f}
.phone-fields .iti__country-container{padding:1px 0 1px 1px}
.phone-fields .iti__selected-dial-code{font-weight:600}
.phone-fields .iti__country-selector{z-index:1000;border-radius:6px;box-shadow:0 8px 24px #012b6f24;overflow:hidden}
.phone-fields .iti__country-selector:not(.iti__hide){display:flex;flex-direction:column}
.phone-fields .iti__search-input-wrapper{flex:0 0 auto}
.phone-fields .iti__country-list{flex:1 1 auto;min-height:0;max-height:none;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.phone-fields .iti__country{min-width:0;white-space:normal;overflow-wrap:anywhere}
.phone-fields .iti__search-input{height:44px;font:inherit;color:#012b6f}
.phone-fields .iti__country{font-size:14px}
