/* CITAS_CLIENTE.CSS */
/*
 * PÁGINA: Hoja de Estilos de Citas Cliente (Client Appointments CSS) - As Tech Computer
 * PROPÓSITO: Definir de manera exhaustiva todos los estilos visuales para la interfaz pública donde los clientes agendan sus servicios técnicos.
 * FUNCIONALIDADES:
 * - Definición centralizada de la paleta de colores corporativa (Naranja y Púrpura) mediante el uso de variables CSS (:root) para mantener consistencia.
 * - Modelado del contenedor principal del formulario, aplicando sombras y bordes redondeados para un aspecto moderno y limpio.
 * - Estilización interactiva de los controles de entrada (inputs y selects), incluyendo efectos visuales de enfoque (focus) para guiar al usuario.
 * - Implementación de animaciones suaves (@keyframes) para el despliegue dinámico de campos condicionales (Ej: Al seleccionar la opción "Otro").
 * - Diseño de tooltips informativos interactivos que orientan al usuario al solicitar datos técnicos complejos como el "Número de Serie" o "Modelo".
 * - Configuración de un diseño responsivo adaptativo que colapsa las cuadrículas (Grid) de doble columna a una sola columna en dispositivos móviles.
 * - Construcción visual de una ventana modal de confirmación con efectos de difuminado de fondo (backdrop-filter) y animación de entrada.
 */

/* ==========================================
   1. VARIABLES GLOBALES Y RESETEO BÁSICO
   ========================================== */
/**
 * Se establece la paleta de colores oficial de la empresa.
 * El selector universal (*) elimina márgenes y paddings por defecto 
 * en todos los navegadores para asegurar un renderizado uniforme.
 */
:root {
    --naranja-principal: #e17203;
    --purpura-oscuro: #52073a;
    --blanco: #FFFFFF;
    --negro: #000000;
    --gris-suave: #656464;
    --fondo-gris: #8d8d8d7e;
    --borde: #e0e0e0;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

/* ==========================================
   2. ESTILOS BASE DEL CUERPO (BODY)
   ========================================== */
body {
    font-family: 'Lato', sans-serif;
    background-color: var(--blanco);
    color: var(--negro);
    line-height: 1.6;
}

/* ==========================================
   3. CONTENEDOR PRINCIPAL DEL FORMULARIO
   ========================================== */
.contenedor-cita {
    background: var(--blanco);
    width: 50%;
    max-width: 1200px;
    min-height: 500px; 
    margin: 50px auto; 
    padding: 50px;
    border-radius: 20px;    
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.425);
}

/* ==========================================
   4. ENCABEZADOS Y TÍTULOS DE SECCIÓN
   ========================================== */
.encabezado {
    color: var(--purpura-oscuro);
    text-align: center;
    margin-bottom: 40px;
}

.titulo-seccion {
    font-size: 28px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 2px;
    margin-bottom: 10px;
}

.separador {
    height: 3px;
    width: 50px;
    background-color: var(--naranja-principal);
    margin: 0 auto 20px;
}

/* ==========================================
   5. ALERTAS Y NOTIFICACIONES
   ========================================== */
/**
 * Estilo diseñado específicamente para informar al usuario sobre 
 * políticas restrictivas de la empresa (Ej: la exclusión de equipos Apple), 
 * utilizando colores de advertencia (naranja/amarillo).
 */
.alerta-restriccion {
    background-color: #ffd9b3;
    border: 1px solid #ffcb8c;
    color: #af5b00;
    padding: 15px;
    font-size: 13px;
    margin-bottom: 35px;
    display: flex;
    align-items: center;
    gap: 12px;
    border-radius: 4px;
}

/* ==========================================
   6. CAMPOS DE FORMULARIO Y CONTROLES
   ========================================== */
.grupo-campo {
    margin-bottom: 25px;
    text-align: left;
}

label {
    display: flex;
    align-items: center;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--naranja-principal);
    margin-bottom: 8px;
    letter-spacing: 1px;
}

.control {
    width: 100%;
    padding: 14px;
    border: 1px solid var(--borde);
    background-color: #fafafa;
    font-size: 15px;
    font-family: 'Lato', sans-serif;
    transition: all 0.3s ease;
    outline: none;
}

.control:focus {
    border-color: var(--naranja-principal);
    background-color: var(--blanco);
    box-shadow: 0 0 0 4px rgba(225, 114, 3, 0.05);
}

.fila-doble {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* ==========================================
   7. ANIMACIÓN PARA CAMPOS DESPLEGABLES (Ej: "Otro")
   ========================================== */
/**
 * Estos estilos controlan los campos de texto auxiliares que aparecen 
 * solo cuando el usuario selecciona la opción "Otro" en algún menú desplegable.
 */
.campo-otro {
    display: none;
    margin-top: 12px;
    animation: slideDown 0.3s ease;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ==========================================
   8. TOOLTIP DE AYUDA (NÚMERO DE SERIE Y MODELO)
   ========================================== */
/**
 * Crea un ícono interactivo (?) que, al ser sobrevolado con el ratón (hover) 
 * o seleccionado (focus), despliega un cuadro de texto explicativo para ayudar 
 * al cliente a encontrar información técnica en su computadora.
 */
.ayuda-serie,
.ayuda-modelo {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    width: 16px;
    height: 16px;
    background-color: var(--borde);
    color: var(--gris-suave);
    border-radius: 50%;
    font-size: 10px;
    margin-left: 8px;
    cursor: pointer;
    position: relative;
    transition: 0.3s;
}

.ayuda-serie:hover,
.ayuda-modelo:hover {
    background-color: var(--purpura-oscuro);
    color: white;
}

/* El contenido en texto del Tooltip se maneja mediante el pseudo-elemento ::after */
.ayuda-serie::after {
    content: "El número de serie suele situarse en la parte inferior del equipo como una etiqueta o grabado. Si no es visible, puedes dejarlo en blanco.";
}

.ayuda-modelo::after {
    content: "El modelo suele encontrarse en una etiqueta en la parte trasera o inferior del equipo, cerca de la batería, o en la configuración del sistema ('Acerca de').";
}

.ayuda-serie::after,
.ayuda-modelo::after {
    position: absolute;
    bottom: 125%;
    left: 50%;
    transform: translateX(-50%);
    width: 200px;
    background-color: var(--purpura-oscuro);
    color: white;
    padding: 10px;
    border-radius: 4px;
    font-size: 11px;
    text-transform: none;
    font-weight: 400;
    letter-spacing: 0;
    visibility: hidden;
    opacity: 0;
    transition: 0.3s;
    z-index: 10;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
}

.ayuda-serie:hover::after,
.ayuda-serie:focus::after,
.ayuda-modelo:hover::after,
.ayuda-modelo:focus::after {
    visibility: visible;
    opacity: 1;
}

/* La flecha indicadora del Tooltip se maneja mediante el pseudo-elemento ::before */
.ayuda-serie::before,
.ayuda-modelo::before {
    content: "";
    position: absolute;
    bottom: 110%;
    left: 50%;
    transform: translateX(-50%);
    border-width: 5px;
    border-style: solid;
    border-color: var(--purpura-oscuro) transparent transparent transparent;
    visibility: hidden;
    opacity: 0;
    transition: 0.3s;
}

.ayuda-serie:hover::before,
.ayuda-modelo:hover::before {
    visibility: visible;
    opacity: 1;
}

/* ==========================================
   9. BOTÓN DE ENVÍO (AGENDAR)
   ========================================== */
.boton-agendar {
    background-color: var(--naranja-principal);
    color: white;
    padding: 12px 24px; 
    border-radius: 12px;
    border: none; 
    outline: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    cursor: pointer;
    transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
    margin-top: 20px;
    display: block;
    width: fit-content;
    margin: 20px auto;
}

.boton-agendar:hover {
    background-color: var(--purpura-oscuro);
    transform: translateY(-3px);
    box-shadow: 0 8px 15px rgba(0, 0, 0, 0.15);
}

.boton-agendar:active {
    transform: translateY(-1px);
}

/* ==========================================
   10. MODAL DE CONFIRMACIÓN DE CITA
   ========================================== */
/**
 * Capa oscura que se superpone a todo el sitio web cuando el usuario 
 * confirma su información. Incorpora un difuminado (blur) para resaltar el mensaje central.
 */
.modal-confirm {
    display: none;
    position: fixed;
    z-index: 2000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.6);
    backdrop-filter: blur(5px);
    align-items: center;
    justify-content: center;
}

.modal-contenido {
    background-color: var(--blanco);
    padding: 40px;
    border-radius: 4px;
    max-width: 450px;
    width: 90%;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
    animation: scaleIn 0.3s ease;
}

@keyframes scaleIn {
    from { transform: scale(0.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}

.modal-icono {
    font-size: 60px;
    color: var(--naranja-principal);
    margin-bottom: 20px;
}

.resumen-cita {
    background-color: #f9f9f9;
    padding: 20px;
    border-radius: 4px;
    margin: 20px 0;
    text-align: left;
    border-left: 4px solid var(--purpura-oscuro);
}

.nota-espera {
    font-size: 13px;
    color: var(--gris-suave);
    font-style: italic;
    margin-bottom: 20px;
}

/* ==========================================
   11. DISEÑO RESPONSIVO (MÓVILES)
   ========================================== */
@media (max-width: 768px) {
    .fila-doble {
        grid-template-columns: 1fr;
    }

    .contenedor-cita {
        padding: 30px;
        width: 90%;
    }
}