/* Fechas por segmentos. Solo se activa en campos data-nexus-date-parts. */
.nexus-date-parts-host { position: relative; overflow: visible; }
.nexus-date-parts-host .nexus-date-source { position: absolute; left: 0; top: 0; width: 1px; height: 30px; opacity: 0; overflow: hidden; pointer-events: none; }
.nexus-date-parts-host .nexus-date-parts { display: flex; align-items: center; box-sizing: border-box; width: 100%; height: 100%; min-height: 0; padding-left: 3px; border: 0; border-radius: 3px; background: #fff; }
.nexus-date-parts-host:focus-within { border-color: #1686a4; box-shadow: 0 0 0 2px rgba(22,134,164,.12); }
.nexus-date-parts-host .nexus-date-parts input.nexus-date-part { float: none; flex: 1 1 0; box-sizing: border-box; width: 0; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; border-radius: 2px; background: transparent; color: #142b43; font: 13px/28px Arial,sans-serif; text-align: center; box-shadow: none; outline: 0; }
.nexus-date-parts-host .nexus-date-parts input.nexus-date-part:nth-of-type(3) { flex-grow: 1.8; }
.nexus-date-parts-host .nexus-date-parts input.nexus-date-part::placeholder { color: #788590; opacity: 1; }
.nexus-date-parts-host .nexus-date-parts input.nexus-date-part:focus { background: #edf6f9; }
.nexus-date-parts-host .nexus-date-separator { flex: 0 0 5px; color: #687887; text-align: center; }
.nexus-date-parts-host .nexus-date-parts .nexus-date-calendar { display: inline-flex; flex: 0 0 26px; align-items: center; justify-content: center; box-sizing: border-box; width: 26px; min-width: 0; height: 100%; min-height: 0; margin: 0 0 0 2px; padding: 0; border: 0; border-left: 1px solid #d6e2e9; border-radius: 0 3px 3px 0; background: transparent; color: #1686a4; cursor: pointer; }
.nexus-date-parts-host .nexus-date-calendar:focus-visible { outline: 2px solid #1686a4; outline-offset: -2px; }
.nexus-date-parts-host .nexus-date-calendar:hover { background: #edf6f9; }
.nexus-date-parts-host .nexus-date-parts:has(:disabled) { background: #eee; }
.nexus-date-parts-host .nexus-date-parts :disabled { cursor: default; }
.nexus-date-parts-host:has([aria-invalid="true"]) { border-color: #b53b3b; }
.nexus-date-parts-host .nexus-date-error { display: block; margin-top: 4px; color: #b53b3b; font-size: 11px; line-height: 14px; }
.nexus-date-parts-host .nexus-date-error[hidden] { display: none; }

/* Variante de finder: flechas laterales y calendario al tocar los segmentos. */
.input-container.nexus-date-parts-finder .nexus-date-parts { padding-left: 0; }
.input-container.nexus-date-parts-finder .nexus-date-step { display: inline-flex; flex: 0 0 15px; align-items: center; justify-content: center; box-sizing: border-box; width: 15px; min-width: 0; height: 30px; margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; color: #1686a4; font-size: 11px; cursor: pointer; }
.input-container.nexus-date-parts-finder .nexus-date-step:first-child { border-right: 1px solid #d6e2e9; border-radius: 3px 0 0 3px; }
.input-container.nexus-date-parts-finder .nexus-date-step:last-child { border-left: 1px solid #d6e2e9; border-radius: 0 3px 3px 0; }
.input-container.nexus-date-parts-finder .nexus-date-step:hover { background: #edf6f9; }
.input-container.nexus-date-parts-finder .nexus-date-step:focus-visible { outline: 1px solid #1686a4; outline-offset: -1px; }
#program-body-finder .finder .nexus-date-parts-host input.nexus-date-part { margin: 0; padding: 0; height: 30px; font-family: "Inter", sans-serif; }
#program-body-finder .finder .nexus-date-parts-host .nexus-date-source { width: 1px; }
#program-body-finder .finder .filter:has(.nexus-date-parts-finder) { width: 206px; max-width: 100%; }
@media (max-width: 720px) { #program-body-finder .finder .filter:has(.nexus-date-parts-finder) { width: 100%; } }

/* Fecha compacta al abrir el calendario desde los segmentos. */
.nexus-date-parts-host:has(input[data-nexus-date-ui="calendar-on-parts"]) .nexus-date-parts { justify-content: center; gap: 2px; padding-left: 0; }
.nexus-date-parts-host:has(input[data-nexus-date-ui="calendar-on-parts"]) .nexus-date-parts input.nexus-date-part { flex: 0 0 2ch; width: 2ch; }
.nexus-date-parts-host:has(input[data-nexus-date-ui="calendar-on-parts"]) .nexus-date-parts input.nexus-date-part:nth-of-type(3) { flex: 0 0 4ch; width: 4ch; }

/* Formato compacto para todos los campos segmentados fuera de los finders. */
.nexus-date-parts-host:not(.nexus-date-parts-finder) .nexus-date-parts { justify-content: center; gap: 2px; padding-left: 0; }
.nexus-date-parts-host:not(.nexus-date-parts-finder) .nexus-date-parts input.nexus-date-part { flex: 0 0 2ch; width: 2ch; }
.nexus-date-parts-host:not(.nexus-date-parts-finder) .nexus-date-parts input.nexus-date-part:nth-of-type(3) { flex: 0 0 4ch; width: 4ch; }
/* Fecha de pago: día, mes y año editables con navegación lateral. */
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-parts {
    width: 100%; justify-content: stretch; gap: 1px; padding: 0;
}
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-parts input.nexus-date-part {
    flex: 1 1 0; width: 0; min-width: 0; font: 12px/28px Arial,sans-serif;
}
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-parts input.nexus-date-part:nth-of-type(3) {
    flex: 2 1 0; width: 0;
}
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-step {
    display: inline-flex; flex: 0 0 16px; align-items: center; justify-content: center;
    box-sizing: border-box; width: 16px; min-width: 16px; height: 30px; margin: 0;
    padding: 0; border: 0; background: transparent; color: #1686a4; font-size: 11px; cursor: pointer;
}
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-step:first-child { border-right: 1px solid #d6e2e9; }
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-step:last-child { border-left: 1px solid #d6e2e9; }
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-step:hover { background: #edf6f9; }
.nexus-date-parts-host:has(input[data-nexus-date-ui="payment"]) .nexus-date-step:focus-visible { outline: 1px solid #1686a4; outline-offset: -1px; }
