/* --- Estilos Compartidos por Ambos Formularios --- */
.casiopea-checkin-form, .casiopea-fidelizacion-form, .casiopea-fidelizacion-status {
    max-width: 800px;
    margin: 20px auto;
    padding: 30px;
    background-color: #fff;
    border-radius: 16px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.08);
    font-family: 'Montserrat', sans-serif;
    box-sizing: border-box;
}

/* Estilos para el enlace del documento escaneado */
.casiopea-documento-link {
    display: inline-flex;
    align-items: center;
    background-color: #0073aa;
    color: #fff !important;
    text-decoration: none;
    padding: 6px 12px;
    border-radius: 4px;
    font-size: 13px;
    transition: background-color 0.2s;
}

.casiopea-documento-link:hover {
    background-color: #005177;
    color: #fff !important;
    text-decoration: none;
}

.casiopea-documento-link i {
    margin-right: 6px;
}

.casiopea-no-documento {
    color: #888;
    font-style: italic;
}

.casiopea-checkin-form h2, .casiopea-fidelizacion-form h2, .casiopea-fidelizacion-status h2 {
    color: #333;
    text-align: center;
    margin-bottom: 30px;
    font-weight: 600;
    font-size: 28px;
}

.casiopea-checkin-form .form-row, .casiopea-fidelizacion-form .form-row, .casiopea-fidelizacion-status .form-row {
    display: flex;
    flex-wrap: wrap;
    margin-bottom: 20px;
    gap: 20px; /* Espacio entre elementos del row */
}

.casiopea-checkin-form .form-group, .casiopea-fidelizacion-form .form-group, .casiopea-fidelizacion-status .form-group {
    flex: 1 1 calc(50% - 10px); /* Para dos columnas con gap */
    min-width: 280px; /* Mínimo ancho antes de apilar */
    box-sizing: border-box;
    margin-bottom: 15px; /* Espacio entre grupos cuando se apilan */
}

.casiopea-checkin-form .form-group.full-width, .casiopea-fidelizacion-form .form-group.full-width, .casiopea-fidelizacion-status .form-group.full-width {
    flex: 1 1 100%; /* Ocupa todo el ancho */
    min-width: auto; /* No tiene mínimo ancho */
    margin-bottom: 15px;
}

.casiopea-checkin-form .form-group.one-third, .casiopea-fidelizacion-form .form-group.one-third, .casiopea-fidelizacion-status .form-group.one-third {
     flex: 1 1 calc(33.333% - 14px); /* Para tres columnas con gap */
     min-width: 200px; /* Mínimo ancho antes de apilar */
     box-sizing: border-box;
     margin-bottom: 15px;
}

/* Ajustes para inputs, selects y textareas */
.casiopea-checkin-form input[type="text"],
.casiopea-checkin-form input[type="email"],
.casiopea-checkin-form input[type="tel"],
.casiopea-checkin-form input[type="date"],
.casiopea-checkin-form input[type="number"],
.casiopea-checkin-form select,
.casiopea-checkin-form textarea,
.casiopea-fidelizacion-form input[type="text"],
.casiopea-fidelizacion-form input[type="email"],
.casiopea-fidelizacion-form input[type="tel"],
.casiopea-fidelizacion-form input[type="date"],
.casiopea-fidelizacion-form input[type="number"],
.casiopea-fidelizacion-form select,
.casiopea-fidelizacion-form textarea,
.casiopea-fidelizacion-status input[type="text"],
.casiopea-fidelizacion-status input[type="email"],
.casiopea-fidelizacion-status input[type="tel"],
.casiopea-fidelizacion-status input[type="date"],
.casiopea-fidelizacion-status input[type="number"],
.casiopea-fidelizacion-status select,
.casiopea-fidelizacion-status textarea
{
    width: 100%; /* Que ocupen todo el ancho de su contenedor */
    padding: 12px 15px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 16px;
    box-sizing: border-box; /* Incluir padding y borde en el ancho */
    margin-top: 5px; /* Espacio entre label y campo */
    font-family: inherit;
}

/* Estilo para labels */
.casiopea-checkin-form label, .casiopea-fidelizacion-form label, .casiopea-fidelizacion-status label {
    display: block; /* Para que ocupe su propia línea */
    margin-bottom: 5px;
    font-weight: 600;
  color: #ffffff !important; /* Forzar texto blanco */
    font-size: 14px;
    
}

/* Estilo específico para selects con placeholder/opción vacía */
.casiopea-checkin-form select:required:invalid,
.casiopea-fidelizacion-form select:required:invalid,
.casiopea-fidelizacion-status select:required:invalid {
  color: #757575; /* Color para el texto "Seleccionar" */
}


/* Estilo para radios y checkboxes personalizados */
.casiopea-checkin-form .radio-group, .casiopea-checkin-form .checkbox-option,
.casiopea-fidelizacion-form .radio-group, .casiopea-fidelizacion-form .checkbox-option,
.casiopea-fidelizacion-status .radio-group, .casiopea-fidelizacion-status .checkbox-option {
    display: flex;
    align-items: center;
    margin-bottom: 10px;
}

.casiopea-checkin-form .radio-group .radio-option,
.casiopea-fidelizacion-form .radio-group .radio-option,
.casiopea-fidelizacion-status .radio-group .radio-option {
    display: flex;
    align-items: center;
    margin-right: 20px; /* Espacio entre opciones de radio */
}

.casiopea-checkin-form .radio-group input[type="radio"], .casiopea-checkin-form .checkbox-option input[type="checkbox"],
.casiopea-fidelizacion-form .radio-group input[type="radio"], .casiopea-fidelizacion-form .checkbox-option input[type="checkbox"],
.casiopea-fidelizacion-status .radio-group input[type="radio"], .casiopea-fidelizacion-status .checkbox-option input[type="checkbox"]
{
    margin-right: 8px; /* Espacio entre input y label */
    margin-top: 0; /* Ajuste vertical */
    width: auto; /* No ocupar todo el ancho */
}

.casiopea-checkin-form .radio-group label, .casiopea-checkin-form .checkbox-option label,
.casiopea-fidelizacion-form .radio-group label, .casiopea-fidelizacion-form .checkbox-option label,
.casiopea-fidelizacion-status .radio-group label, .casiopea-fidelizacion-status .checkbox-option label {
    margin-bottom: 0;
    font-weight: 400; /* Label menos pesado */
    font-size: 16px; /* Tamaño de fuente estándar */
    color: #333;
}


/* Estilo para notas o párrafos pequeños */
.casiopea-checkin-form .casiopea-form-note,
.casiopea-fidelizacion-form .casiopea-form-note,
.casiopea-fidelizacion-status .casiopea-form-note {
    font-size: 12px;
    color: #777;
    margin-top: 5px;
    margin-bottom: 0;
}

/* Estilo para íconos dentro de campos (ej. monto) */
.casiopea-checkin-form .form-icon,
.casiopea-fidelizacion-form .form-icon,
.casiopea-fidelizacion-status .form-icon {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
}

.casiopea-checkin-form .form-icon input,
.casiopea-fidelizacion-form .form-icon input,
.casiopea-fidelizacion-status .form-icon input {
    padding-left: 35px; /* Dejar espacio para el ícono */
}

.casiopea-checkin-form .form-icon i,
.casiopea-fidelizacion-form .form-icon i,
.casiopea-fidelizacion-status .form-icon i {
    position: absolute;
    left: 10px;
    color: #888;
    font-size: 18px;
    top: 50%; /* Centrar verticalmente */
    transform: translateY(0%); /* Ajuste fino si es necesario */
    pointer-events: none; /* Para que no interfiera con el clic en el input */
}


/* Estilo para el botón de envío */
.casiopea-checkin-form .form-submit,
.casiopea-fidelizacion-form .form-submit,
.casiopea-fidelizacion-status .form-submit {
    margin-top: 30px;
    text-align: center;
}

.casiopea-checkin-form .checkin-button,
.casiopea-fidelizacion-form .fidelizacion-button,
.casiopea-fidelizacion-status .status-button {
    background-color: #0073aa; /* Azul primario de WP o un color de tu marca */
    color: #fff;
    border: none;
    padding: 15px 30px;
    border-radius: 8px;
    font-size: 18px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    font-weight: 600;
    font-family: inherit;
    display: inline-flex; /* Para alinear ícono y texto */
    align-items: center;
}

.casiopea-checkin-form .checkin-button:hover,
.casiopea-fidelizacion-form .fidelizacion-button:hover,
.casiopea-fidelizacion-status .status-button:hover {
    background-color: #005187; /* Color más oscuro al pasar el mouse */
}

.casiopea-checkin-form .checkin-button:disabled,
.casiopea-fidelizacion-form .fidelizacion-button:disabled,
.casiopea-fidelizacion-status .status-button:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}


/* Estilos para mensajes de éxito/error */
.casiopea-success-message, .casiopea-fidelizacion-message {
    background-color: #e8f5e9; /* Verde claro */
    color: #2e7d32; /* Verde oscuro */
    border: 1px solid #a5d6a7; /* Borde verde */
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    margin-top: 20px;
    font-weight: bold;
    font-family: "Montserrat", sans-serif;
    display: none; /* Oculto por defecto */
}

.casiopea-error-message, .casiopea-fidelizacion-message.error {
    background-color: #ffebee; /* Rojo claro */
    color: #c62828; /* Rojo oscuro */
    border: 1px solid #ef9a9a; /* Borde rojo */
    padding: 15px;
    border-radius: 8px;
    text-align: center;
    margin-top: 20px;
    font-weight: bold;
    font-family: "Montserrat", sans-serif;
    display: none; /* Oculto por defecto */
}

.casiopea-success-message h3, .casiopea-error-message h3, .casiopea-fidelizacion-message h3 {
    margin-top: 0;
    color: inherit; /* Hereda el color del contenedor (verde o rojo) */
    font-size: 20px;
    font-weight: 700;
}

.casiopea-success-message p, .casiopea-error-message p, .casiopea-fidelizacion-message p {
    margin-bottom: 5px;
    color: inherit;
    font-weight: normal;
    font-size: 15px;
}

.casiopea-success-icon, .casiopea-error-icon {
    font-size: 40px;
    margin-bottom: 15px;
    color: inherit; /* Hereda el color del contenedor */
}


/* Estilos para la sección de información de puntos */
.casiopea-points-info {
    background-color: #eef; /* Azul muy claro */
    border: 1px solid #ccf; /* Borde azul claro */
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 30px;
    font-family: 'Montserrat', sans-serif;
    color: #334;
}

.casiopea-points-info h4 {
    margin-top: 0;
    color: #005;
    font-size: 22px;
    font-weight: 700;
    text-align: center;
    margin-bottom: 15px;
}

.casiopea-points-info p {
    margin-bottom: 10px;
    line-height: 1.5;
    font-size: 15px;
}

.casiopea-points-info ul {
    margin-top: 10px;
    margin-bottom: 10px;
    padding-left: 25px;
}

.casiopea-points-info li {
    margin-bottom: 5px;
    font-size: 15px;
    line-height: 1.4;
}

/* Estilos para la sección de estimación de puntos */
#puntos-estimados {
     /* estilos inline definidos en el HTML */
}

#puntos-estimados p {
    margin-bottom: 5px; /* Ajustar márgenes de párrafos dentro de la estimación */
    line-height: 1.4;
}

#puntos-estimados strong {
    font-weight: 700;
}

#puntos-estimados span {
    font-weight: 700;
    color: #6f42c1; /* Color morado */
}

#progreso-siguiente-punto {
     /* estilos inline definidos en el HTML */
}

#barra-progreso {
     /* estilos inline definidos en el HTML */
}

/* Asegurar que los strong dentro de enlaces se muestren en negrita */
a strong {
    font-weight: 700 !important; /* Forzar negrita */
    display: inline; /* Asegurar que sea inline */
}

/* Regla general para strong */
strong {
    font-weight: 700;
}

/* Regla universal para todos los strong dentro de enlaces */
a strong, 
a b {
    font-weight: 900 !important;
    display: inline !important;
}

/* Estilos para el sistema de captura de documentos - Versión simplificada */
#document-capture-container {
    border: 2px dashed #ccc;
    padding: 20px;
    border-radius: 8px;
    background-color: #f9f9f9;
    margin-bottom: 20px;
}

.camera-options {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 15px;
    gap: 15px;
    flex-wrap: wrap;
}

.camera-button, .upload-button {
    background-color: #0073aa;
    color: white;
    padding: 10px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    border: none;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    font-weight: 600;
}

.camera-button:hover, .upload-button:hover {
    background-color: #005a87;
}

.camera-button i, .upload-button i {
    margin-right: 5px;
}

.or-divider {
    color: #777;
}

#camera-container {
    background-color: #000;
    padding: 10px;
    border-radius: 8px;
    margin-bottom: 15px;
}

#camera-feed {
    width: 100%;
    max-height: 350px;
    border-radius: 4px;
}

.camera-buttons, .preview-buttons {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-top: 10px;
}

.action-button, .cancel-button, .retry-button, .confirm-button {
    padding: 8px 15px;
    border-radius: 5px;
    cursor: pointer;
    font-size: 14px;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    border: none;
}

.action-button {
    background-color: #0073aa;
    color: white;
}

.action-button:hover {
    background-color: #005a87;
}

.action-button:disabled {
    background-color: #ccc;
    cursor: not-allowed;
}

.cancel-button, .retry-button {
    background-color: #f1f1f1;
    color: #333;
}

.cancel-button:hover, .retry-button:hover {
    background-color: #e5e5e5;
}

.confirm-button {
    background-color: #4CAF50;
    color: white;
}

.confirm-button:hover {
    background-color: #45a049;
}

.action-button i, .cancel-button i, .retry-button i, .confirm-button i {
    margin-right: 5px;
}

#preview-container {
    padding: 10px;
    background-color: #f1f1f1;
    border-radius: 8px;
    margin-bottom: 15px;
}

#document-preview {
    max-width: 100%;
    max-height: 350px;
    display: block;
    margin: 0 auto;
    border-radius: 4px;
}

.status-message {
    text-align: center;
    padding: 10px;
    border-radius: 5px;
    background-color: #f1f1f1;
    margin-top: 10px;
    color: #555;
    font-size: 14px;
}

/* Estilos para la nueva interfaz de documentos */
.documento-instrucciones {
    background-color: #e7f5ff;
    border-left: 4px solid #0056b3;
    padding: 15px;
    margin: 10px 0;
    border-radius: 4px;
}

.documento-instrucciones p {
    text-align: center;
    margin: 0;
    color: #0056b3;
    font-weight: bold;
}

.documento-instrucciones .documento-nota {
    text-align: center;
    margin: 5px 0 0;
    font-size: 14px;
    color: #0056b3;
}

.mensaje-exito {
    background-color: #d4edda;
    color: #155724;
    padding: 10px 15px;
    border-radius: 4px;
    text-align: center;
    margin: 10px 0;
    font-weight: bold;
}

.botones-container {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 15px 0;
    flex-wrap: wrap;
}

.capture-button, .reset-button, .terminar-button {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    border-radius: 4px;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s ease;
    border: none;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.capture-button {
    background-color: #0073aa;
    color: white;
}

.reset-button {
    background-color: #dc3545;
    color: white;
}

.terminar-button {
    background-color: #6c757d;
    color: white;
}

.capture-button:hover, .reset-button:hover, .terminar-button:hover {
    opacity: 0.9;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}

.capture-button:disabled {
    background-color: #ccc;
    cursor: not-allowed;
    transform: none;
}

.capture-button i, .reset-button i, .terminar-button i {
    margin-right: 8px;
}


/* --- Estilos Responsivos --- */
@media (max-width: 767px) {
    .casiopea-checkin-form, .casiopea-fidelizacion-form, .casiopea-fidelizacion-status {
        padding: 20px; /* Menor padding en pantallas pequeñas */
    }

    .casiopea-checkin-form .form-row, .casiopea-fidelizacion-form .form-row, .casiopea-fidelizacion-status .form-row {
        gap: 0; /* Eliminar gap en pantallas pequeñas para apilamiento */
        flex-direction: column; /* Apilar elementos en columnas */
    }

    .casiopea-checkin-form .form-group, .casiopea-fidelizacion-form .form-group, .casiopea-fidelizacion-status .form-group,
    .casiopea-checkin-form .form-group.one-third, .casiopea-fidelizacion-form .form-group.one-third, .casiopea-fidelizacion-status .form-group.one-third {
        flex: 1 1 100%; /* Todos ocupan el ancho completo */
        min-width: auto;
        margin-right: 0; /* Eliminar márgenes entre grupos */
        margin-left: 0;
    }

    .casiopea-checkin-form .form-group:last-child, .casiopea-fidelizacion-form .form-group:last-child, .casiopea-fidelizacion-status .form-group:last-child {
        margin-bottom: 0; /* Eliminar margen inferior del último grupo en el row apilado */
    }
    
    .casiopea-checkin-form .form-row {
        margin-bottom: 0; /* Eliminar margen inferior del row cuando los grupos ya tienen bottom margin */
    }
    
    .casiopea-checkin-form .form-group {
        margin-bottom: 20px; /* Ajustar margen inferior de los grupos en móvil */
    }
    
    .casiopea-checkin-form .form-group:last-child {
        margin-bottom: 0;
    }

    .casiopea-checkin-form h2, .casiopea-fidelizacion-form h2, .casiopea-fidelizacion-status h2 {
        font-size: 24px; /* Reducir tamaño de título */
        margin-bottom: 20px;
    }

    .casiopea-checkin-form .checkin-button, .casiopea-fidelizacion-form .fidelizacion-button, .casiopea-fidelizacion-status .status-button {
        font-size: 16px; /* Reducir tamaño de botón */
        padding: 12px 20px;
    }

    .casiopea-points-info {
        padding: 15px; /* Reducir padding info puntos */
        margin-bottom: 20px;
    }
    
    .casiopea-points-info h4 {
        font-size: 20px;
    }
    
    .casiopea-points-info p, .casiopea-points-info li {
        font-size: 14px;
    }
}

@media (max-width: 576px) {
    .camera-options {
        flex-direction: column;
        align-items: stretch;
    }
    
    .or-divider {
        display: none;
    }
    
    .camera-buttons, .preview-buttons {
        flex-direction: column;
    }
    
    .camera-button, .upload-button, .action-button, .cancel-button, .retry-button, .confirm-button {
        width: 100%;
        justify-content: center;
    }
}

/* Arreglo específico para botón después del éxito */
.casiopea-checkin-form button,
.casiopea-checkin-form .checkin-button,
.casiopea-checkin-form input[type="submit"] {
    border: 1px solid #0073aa !important;
    background-color: #0073aa !important;
    color: white !important;
    padding: 15px 30px !important;
    border-radius: 8px !important;
    font-size: 18px !important;
    display: inline-block !important;
    width: auto !important;
    min-height: 50px !important;
    overflow: visible !important;
    white-space: nowrap !important;
    box-shadow: none !important;
    outline: none !important;
}

/* Estado hover del botón */
.casiopea-checkin-form button:hover,
.casiopea-checkin-form .checkin-button:hover {
    background-color: #005187 !important;
    border-color: #005187 !important;
}