#cb-beneficiario-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

#cb-beneficiario-modal .cb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

#cb-beneficiario-modal .cb-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 540px;
    max-height: min(90vh, 720px);
    background: #ffffff;
    padding: 0;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

#cb-beneficiario-modal .cb-modal-body {
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    flex: 1 1 auto;
    padding: 32px 40px 32px;
}

#cb-beneficiario-modal.is-compact #cb-beneficiario-busqueda,
#cb-beneficiario-modal.is-compact #cb-resultados-lista,
#cb-beneficiario-modal.is-compact #cb-resultados > h4 {
    display: none;
}

#cb-beneficiario-modal .cb-beneficiario-seleccionado {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1px solid rgba(50, 114, 64, 0.25);
    background: #f0fdf4;
}

#cb-beneficiario-modal .cb-beneficiario-seleccionado-label {
    margin: 0 0 4px;
    font-size: 12px;
    font-weight: 600;
    color: #166534;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}

#cb-beneficiario-modal .cb-beneficiario-seleccionado-nombre {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
    line-height: 1.4;
}

#cb-beneficiario-modal .cb-btn-cambiar-beneficiario {
    border: none;
    background: transparent;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    color: #327240;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

#cb-beneficiario-modal.is-compact #cb-programar-servicio-wrap {
    margin-top: 0;
    padding-top: 0;
    border-top: none;
}

@media (max-width: 768px) {
    #cb-beneficiario-modal .cb-modal-content {
        max-width: 92vw;
        max-height: 92vh;
    }

    #cb-beneficiario-modal .cb-modal-body {
        padding: 28px 20px 24px;
    }
}

/* Modal Misa (misma base visual) */
#cb-misa-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

/* Modal Cremación (misma base visual) */
#cb-cremacion-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

#cb-cremacion-modal .cb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

#cb-cremacion-modal .cb-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 540px;
    background: #ffffff;
    padding: 32px 40px 32px;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

#cb-cremacion-modal h3 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

#cb-cremacion-modal .cb-modal-subtitle {
    margin: 0 0 24px;
    font-size: 14px;
    color: #6b7280;
    text-align: center;
}

#cb-cremacion-modal .cb-modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    border: none;
    background: transparent;
    font-size: 20px;
    cursor: pointer;
    color: #9ca3af;
    transition: color 0.15s ease;
}

#cb-cremacion-modal .cb-modal-close:hover {
    color: #4b5563;
}

#cb-cremacion-modal .cb-step p {
    margin: 0 0 16px;
}

#cb-cremacion-modal .cb-tipo-compra-label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin: 0 0 10px;
}

#cb-cremacion-modal .cb-tipo-compra-options {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 16px;
}

#cb-cremacion-modal label.cb-tipo-compra-option {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    cursor: pointer;
    margin-bottom: 0;
    font-weight: normal;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

#cb-cremacion-modal label.cb-tipo-compra-option:hover {
    border-color: #cbd5e1;
    background-color: #f9fafb;
}

#cb-cremacion-modal .cb-tipo-compra-option input[type="checkbox"] {
    width: auto;
    margin: 0;
    flex-shrink: 0;
    accent-color: #327240;
}

#cb-cremacion-modal .cb-tipo-compra-text {
    flex: 1;
    font-size: 14px;
    font-weight: 500;
    color: #111827;
}

#cb-cremacion-modal .cb-tipo-compra-precio {
    font-size: 14px;
    font-weight: 600;
    color: #166534;
    white-space: nowrap;
}

#cb-cremacion-modal label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 4px;
}

#cb-cremacion-modal select.cb-date-select,
#cb-cremacion-modal input[type="date"],
#cb-cremacion-modal select {
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #111827;
    background-color: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#cb-cremacion-modal input[type="date"]:focus,
#cb-cremacion-modal select:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

#cb-cremacion-modal #cb-btn-cremacion-siguiente:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

#cb-cremacion-modal #cb-btn-cremacion-siguiente,
#cb-cremacion-modal #cb-btn-cremacion-confirmar {
    width: 100%;
    margin-top: 8px;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

#cb-cremacion-modal #cb-btn-cremacion-siguiente:not(:disabled):hover,
#cb-cremacion-modal #cb-btn-cremacion-confirmar:not(:disabled):hover {
    background-color: #285a32;
    box-shadow: 0 10px 20px rgba(40, 90, 50, 0.25);
}

#cb-cremacion-modal #cb-btn-cremacion-confirmar:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
}

#cb-cremacion-modal .cb-btn-secondary {
    width: 100%;
    margin-top: 10px;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    background: #ffffff;
    color: #374151;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 16px;
    cursor: pointer;
}

#cb-cremacion-modal .cb-btn-secondary:hover {
    background: #f9fafb;
}

#cb-cremacion-modal .cb-horarios-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 6px 0 10px;
    font-size: 13px;
    color: #374151;
    font-weight: 600;
}

#cb-cremacion-modal .cb-horarios-legend {
    font-weight: 500;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
}

#cb-cremacion-modal .cb-horarios-note {
    margin: -4px 0 12px;
    font-size: 12px;
    color: #6b7280;
    font-weight: 500;
}

#cb-cremacion-modal .cb-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 999px;
    margin-right: 6px;
}

#cb-cremacion-modal .cb-dot-free {
    background: #16a34a;
}

#cb-cremacion-modal .cb-dot-busy {
    background: #9ca3af;
}

#cb-cremacion-horarios-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.cb-slot {
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    padding: 10px 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    background: #ffffff;
}

.cb-slot-free {
    border-color: rgba(22, 163, 74, 0.35);
}

.cb-slot-busy {
    opacity: 0.55;
    cursor: not-allowed;
}

.cb-slot-selected {
    border-color: #327240;
    box-shadow: 0 0 0 2px rgba(50, 114, 64, 0.15);
}

.cb-loading,
.cb-error,
.cb-empty {
    grid-column: 1 / -1;
    font-size: 13px;
    color: #6b7280;
    padding: 8px 0;
}

@media (max-width: 520px) {
    #cb-cremacion-horarios-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

#cb-misa-modal .cb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

#cb-misa-modal .cb-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 540px;
    background: #ffffff;
    padding: 32px 40px 32px;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

#cb-misa-modal h3 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

#cb-misa-modal .cb-modal-subtitle {
    margin: 0 0 24px;
    font-size: 14px;
    color: #6b7280;
    text-align: center;
}

#cb-misa-modal .cb-modal-close {
    position: absolute;
    right: 18px;
    top: 18px;
    border: none;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
    color: #9ca3af;
}

#cb-misa-modal .cb-modal-close:hover {
    color: #4b5563;
}

#cb-misa-modal #cb-misa-form p {
    margin: 0 0 16px;
}

#cb-misa-modal label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 4px;
}

#cb-misa-modal select.cb-date-select,
#cb-misa-modal input[type="date"],
#cb-misa-modal select {
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #111827;
    background-color: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#cb-misa-modal input[type="date"]:focus,
#cb-misa-modal select:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

#cb-misa-modal #cb-btn-programar-misa {
    width: 100%;
    margin-top: 8px;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

#cb-misa-modal #cb-btn-programar-misa:hover {
    background-color: #285a32;
    box-shadow: 0 10px 20px rgba(40, 90, 50, 0.25);
}

#cb-misa-modal #cb-btn-programar-misa:active {
    transform: translateY(1px);
    box-shadow: none;
}

@media (max-width: 768px) {
    #cb-misa-modal .cb-modal-content {
        padding: 32px 20px 28px;
        max-width: 92vw;
    }
    #cb-misa-modal h3 {
        font-size: 22px;
    }
    #cb-misa-modal .cb-modal-subtitle,
    #cb-misa-modal label,
    #cb-misa-modal input[type="date"],
    #cb-misa-modal select {
        font-size: 14px;
    }
}

/* Modal Pack Virtual */
/* =========================================================
   Modales limpieza simple / anual
   ========================================================= */
#cb-limpieza-simple-modal,
#cb-limpieza-anual-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

#cb-limpieza-simple-modal .cb-modal-backdrop,
#cb-limpieza-anual-modal .cb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

.cb-limpieza-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 480px;
    max-height: 92vh;
    overflow-y: auto;
    background: #ffffff;
    padding: 32px 40px 32px;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

.cb-limpieza-modal-content h3 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

.cb-limpieza-modal-content .cb-modal-subtitle {
    margin: 0 0 24px;
    font-size: 14px;
    color: #6b7280;
    text-align: center;
}

.cb-limpieza-modal-content .cb-modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    border: none;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
    color: #9ca3af;
}

.cb-limpieza-modal-content label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 4px;
}

.cb-limpieza-modal-content p {
    margin: 0 0 16px;
}

.cb-limpieza-modal-content select,
.cb-limpieza-modal-content .cb-datepicker-display {
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #111827;
    background-color: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}

.cb-limpieza-modal-content select:focus,
.cb-limpieza-modal-content .cb-datepicker-display:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

.cb-limpieza-modal-content #cb-btn-confirmar-limpieza-simple,
.cb-limpieza-modal-content #cb-btn-confirmar-limpieza-anual {
    width: 100%;
    margin-top: 8px;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease;
}

.cb-limpieza-modal-content #cb-btn-confirmar-limpieza-simple:hover,
.cb-limpieza-modal-content #cb-btn-confirmar-limpieza-anual:hover {
    background-color: #285a32;
    box-shadow: 0 10px 20px rgba(40, 90, 50, 0.25);
}

.cb-limpieza-modal-content #cb-btn-confirmar-limpieza-anual:disabled {
    background-color: #9ca3af;
    cursor: not-allowed;
    box-shadow: none;
}

.cb-limpieza-molina-notice {
    margin: 0 0 16px;
    padding: 10px 14px;
    border-radius: 8px;
    background: #ecfdf3;
    border: 1px solid #bbf7d0;
    color: #166534;
    font-size: 13px;
    text-align: center;
}

.cb-datepicker-display.cb-dp-disabled {
    background-color: #f3f4f6;
    border-color: #e5e7eb;
    color: #9ca3af;
    cursor: not-allowed;
    pointer-events: none;
}

#cb-limpieza-anual-limpiezas-wrap {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #e5e7eb;
}

.cb-limpieza-anual-hint {
    margin: 0 0 16px;
    font-size: 13px;
    color: #6b7280;
    text-align: center;
}

#cb-limpieza-anual-modal .cb-limpieza-modal-content {
    max-width: 560px;
}

@media (max-width: 768px) {
    .cb-limpieza-modal-content {
        padding: 32px 20px 28px;
        max-width: 92vw;
    }
}

/* =========================================================
   Pack virtual
   ========================================================= */
#cb-pack-virtual-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}

#cb-pack-virtual-modal .cb-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.55);
}

#cb-pack-virtual-modal .cb-modal-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 620px;
    max-height: 92vh;
    overflow-y: auto;
    background: #ffffff;
    padding: 32px 40px 32px;
    border-radius: 10px;
    box-shadow: 0 20px 40px rgba(15, 23, 42, 0.25);
}

#cb-pack-virtual-modal h3 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

#cb-pack-virtual-modal .cb-modal-subtitle {
    margin: 0 0 24px;
    font-size: 14px;
    color: #6b7280;
    text-align: center;
}

#cb-pack-virtual-modal .cb-modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    border: none;
    background: transparent;
    font-size: 22px;
    cursor: pointer;
    color: #9ca3af;
}

#cb-pack-virtual-modal .cb-pack-section-label {
    margin: 0 0 8px;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
}

#cb-pack-virtual-modal .cb-pack-row {
    display: grid;
    gap: 12px;
    margin-bottom: 8px;
}

#cb-pack-virtual-modal .cb-pack-row-2 {
    grid-template-columns: 1fr 1fr;
}

#cb-pack-virtual-modal .cb-pack-row-3 {
    grid-template-columns: repeat(3, 1fr);
}

#cb-pack-virtual-modal #cb-pack-virtual-form p {
    margin: 0 0 16px;
}

#cb-pack-virtual-modal label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 4px;
}

#cb-pack-virtual-modal select.cb-date-select,
#cb-pack-virtual-modal select,
#cb-pack-virtual-modal .cb-readonly-field {
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #111827;
    background-color: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#cb-pack-virtual-modal .cb-readonly-field {
    background-color: #f3f4f6;
    border-color: #d1d5db;
    color: #374151;
    cursor: not-allowed;
}

#cb-pack-virtual-modal select:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

#cb-pack-virtual-modal #cb-btn-programar-pack-virtual {
    width: 100%;
    margin-top: 8px;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

#cb-pack-virtual-modal #cb-btn-programar-pack-virtual:hover {
    background-color: #285a32;
    box-shadow: 0 10px 20px rgba(40, 90, 50, 0.25);
}

@media (max-width: 768px) {
    #cb-pack-virtual-modal .cb-modal-content {
        padding: 32px 20px 28px;
        max-width: 92vw;
    }

    #cb-pack-virtual-modal .cb-pack-row-2,
    #cb-pack-virtual-modal .cb-pack-row-3 {
        grid-template-columns: 1fr;
    }
}

#cb-beneficiario-modal h3 {
    margin: 0 0 4px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

#cb-beneficiario-modal .cb-modal-subtitle {
    margin: 0 0 24px;
    font-size: 14px;
    color: #6b7280;
    text-align: center;
}

#cb-beneficiario-modal .cb-modal-close {
    position: absolute;
    right: 16px;
    top: 16px;
    border: none;
    background: transparent;
    font-size: 20px;
    cursor: pointer;
    color: #9ca3af;
    transition: color 0.15s ease;
}

#cb-beneficiario-modal .cb-modal-close:hover {
    color: #4b5563;
}

#cb-beneficiario-modal #cb-beneficiario-form p {
    margin: 0 0 16px;
}

#cb-beneficiario-modal label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #4b5563;
    margin-bottom: 4px;
}

#cb-beneficiario-modal select.cb-date-select,
#cb-beneficiario-modal input[type="text"],
#cb-beneficiario-modal input[type="date"],
#cb-beneficiario-modal select {
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #111827;
    background-color: #ffffff;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#cb-beneficiario-modal input[type="text"]:focus,
#cb-beneficiario-modal input[type="date"]:focus,
#cb-beneficiario-modal select:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

#cb-beneficiario-modal .cb-programar-servicio-wrap {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #e5e7eb;
}

#cb-beneficiario-modal .cb-programar-servicio-wrap p {
    margin: 0;
}

.cb-date-error {
    margin: 8px 0 0;
    font-size: 13px;
    color: #b91c1c;
    font-weight: 500;
}

#cb-beneficiario-modal #cb-btn-buscar {
    width: 100%;
    margin-top: 8px;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, box-shadow 0.15s ease, transform 0.05s ease;
}

#cb-beneficiario-modal #cb-btn-buscar:hover {
    background-color: #285a32;
    box-shadow: 0 10px 20px rgba(40, 90, 50, 0.25);
}

#cb-beneficiario-modal #cb-btn-buscar:active {
    transform: translateY(1px);
    box-shadow: none;
}

#cb-beneficiario-modal #cb-resultados {
    margin-top: 20px;
    border-top: 1px solid #e5e7eb;
    padding-top: 16px;
}

#cb-beneficiario-modal #cb-resultados h4 {
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}

#cb-beneficiario-modal #cb-resultados-lista p {
    margin: 0 0 8px;
}

.cb-beneficiario-opcion {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    border: 1px solid transparent;
    cursor: pointer;
    font-size: 13px;
    color: #374151;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.cb-beneficiario-opcion input[type="radio"] {
    accent-color: #16a34a;
}

.cb-beneficiario-opcion:hover {
    background-color: #f9fafb;
    border-color: #e5e7eb;
}

#cb-beneficiario-modal #cb-btn-confirmar {
    margin-top: 12px;
    width: 100%;
    border-radius: 999px;
    border: none;
    background-color: #166534;
    color: #ffffff;
    font-size: 14px;
    font-weight: 600;
    padding: 10px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, opacity 0.15s ease;
}

#cb-beneficiario-modal #cb-btn-confirmar:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
}

#cb-beneficiario-modal #cb-btn-confirmar:not(:disabled):hover {
    background-color: #15803d;
}

/* -------------------------------------------------------------------------- */
/* Cremación - Compra anticipada                                             */
/* -------------------------------------------------------------------------- */

#cb-cremacion-anticipada .cb-payment-title {
    margin: 0 0 14px;
    font-size: 22px;
    font-weight: 600;
    color: #111827;
    text-align: center;
}

#cb-cremacion-anticipada .cb-payment-list {
    margin: 0 0 14px;
    padding-left: 18px;
}

#cb-cremacion-anticipada .cb-payment-list li {
    margin: 6px 0;
    font-size: 13px;
    color: #374151;
}

#cb-cremacion-anticipada .cb-payment-paragraph {
    margin: 0 0 18px;
    font-size: 13px;
    color: #374151;
    line-height: 1.5;
}

#cb-cremacion-anticipada .cb-payment-options {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 8px;
}

#cb-cremacion-anticipada .cb-payment-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    padding: 6px 6px;
    border-radius: 10px;
}

#cb-cremacion-anticipada .cb-payment-option input[type="radio"] {
    margin-top: 3px;
    accent-color: #327240;
}

#cb-cremacion-anticipada #cb-btn-cremacion-comprar-servicio {
    margin-top: 18px;
    width: 100%;
    border-radius: 999px;
    border: none;
    background-color: #327240;
    color: #ffffff;
    font-size: 15px;
    font-weight: 600;
    padding: 12px 16px;
    cursor: pointer;
    transition: background-color 0.15s ease, opacity 0.15s ease;
}

#cb-cremacion-anticipada #cb-btn-cremacion-comprar-servicio:hover:not(:disabled) {
    background-color: #285a32;
}

#cb-cremacion-anticipada #cb-btn-cremacion-comprar-servicio:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* ──────────────────────────────────────────
   Calendar date picker (cross-platform)
   ────────────────────────────────────────── */

/* Ocultar el <select> original que actúa de portador del valor */
select.cb-date-select-hidden {
    display: none !important;
}

/* Wrapper: ocupa el mismo espacio que el campo */
.cb-datepicker-wrap {
    position: relative;
    display: block;
}

/* Campo visual (simula el select) */
.cb-datepicker-display {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    border-radius: 999px;
    border: 1px solid #e5e7eb;
    padding: 10px 14px;
    font-size: 14px;
    line-height: 1.4;
    color: #9ca3af;
    background-color: #ffffff;
    cursor: pointer;
    user-select: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    box-sizing: border-box;
}
.cb-datepicker-display::after {
    content: '';
    display: inline-block;
    width: 10px;
    height: 6px;
    margin-left: 10px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%239ca3af'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    flex-shrink: 0;
}

.cb-datepicker-display.cb-dp-filled {
    color: #111827;
}
.cb-datepicker-display.cb-dp-open,
.cb-datepicker-display:focus {
    outline: none;
    border-color: #16a34a;
    box-shadow: 0 0 0 1px #16a34a33;
}

/* Popup del calendario (position:fixed via JS) */
.cb-datepicker-popup {
    background: #ffffff;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.16);
    padding: 12px;
    font-size: 13px;
    min-width: 280px;
}

/* Cabecera: mes y año con navegación */
.cb-cal-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
    gap: 4px;
}
.cb-cal-month-label {
    font-weight: 600;
    font-size: 14px;
    color: #111827;
    text-align: center;
    flex: 1;
}
.cb-cal-nav {
    border: none;
    background: #f3f4f6;
    border-radius: 6px;
    width: 30px;
    height: 30px;
    font-size: 18px;
    line-height: 1;
    cursor: pointer;
    color: #374151;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    transition: background 0.12s ease;
}
.cb-cal-nav:hover:not(:disabled) {
    background: #e5e7eb;
}
.cb-cal-nav-disabled,
.cb-cal-nav:disabled {
    opacity: 0.3;
    cursor: default;
}

/* Nombres de los días (Lu Ma … Do) */
.cb-cal-daynames {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    margin-bottom: 4px;
}
.cb-cal-daynames span {
    text-align: center;
    font-size: 11px;
    font-weight: 600;
    color: #9ca3af;
    padding: 4px 0;
}

/* Grilla de días */
.cb-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
}
.cb-cal-empty {
    display: block;
}
.cb-cal-day {
    border: none;
    background: transparent;
    border-radius: 6px;
    width: 100%;
    aspect-ratio: 1;
    font-size: 13px;
    color: #111827;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.1s ease, color 0.1s ease;
    padding: 0;
}
.cb-cal-day:hover:not(.cb-cal-day-dis) {
    background: #dcfce7;
    color: #166534;
}
.cb-cal-day-sel {
    background: #327240 !important;
    color: #ffffff !important;
    font-weight: 600;
}
.cb-cal-day-today:not(.cb-cal-day-sel) {
    background: #f0fdf4;
    color: #166534;
    font-weight: 600;
}
.cb-cal-day-dis {
    color: #d1d5db;
    cursor: default;
}

@media (max-width: 480px) {
    .cb-datepicker-popup {
        font-size: 12px;
        padding: 10px;
        min-width: 260px;
    }
    .cb-cal-day {
        font-size: 12px;
    }
}
