/* Customización de variables de Bootstrap */
:root {
    --bs-tooltip-bg: #495057; /* Gris carbón, más claro y profesional */
    --bs-tooltip-opacity: 0.95; /* Ligeramente más opaco para mejor legibilidad */
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-family-sans);
  font-weight: var(--weight-semibold);
  line-height: var(--lh-title);
  margin: 0 0 0.6em;
  /* Se define un color base usando la nueva variable de branding */
  color: var(--brand-text-heading-color);
}

ul {
  padding-left: 1.5rem; /* ~24px de indentación para la lista */
  margin-bottom: 1rem;  /* Espacio después de que termina la lista */
}

li {
  margin-bottom: 0.5rem;
  padding-left: 0.25rem; /* Pequeño espacio extra entre la viñeta y el texto */
}

.text-muted {
  color: #64748b;
}

/* Estilos para botones con branding */
.btn-branded-primary {
    background-color: var(--brand-primary-color);
    border-color: var(--brand-primary-color);
    color: var(--brand-text-on-primary);
}
.btn-branded-primary:hover {
    background-color: var(--brand-text-on-primary);
    color: var(--brand-primary-color);
    border-color: var(--brand-primary-color);
}

.btn-branded-secondary {
    background-color: var(--brand-secondary-color);
    border-color: var(--brand-secondary-color);
    color: var(--brand-text-on-secondary);
}
.btn-branded-secondary:hover {
    background-color: var(--brand-text-on-secondary);
    color: var(--brand-secondary-color);
    border-color: var(--brand-secondary-color);
}

.chat-layout-container {
    display: flex;
    flex-direction: column;
    height: 100dvh;
    overflow: hidden;
    padding-top: 1rem;
    padding-bottom: 0.2rem;
}


/* sección del encabezado en el chat principal */
.company-section {
    border-radius: 0.375rem;    /* Mismo radio que .chat-block para consistencia */
    background-color: var(--brand-header-bg);
    color: var(--brand-header-text);
}

/* Estilos para el contenedor del chat y mensajes para que exista scroll */
#chat-container {
    flex-grow: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    background-color: #fff; /* Fondo blanco para el contenedor del chat */
}

/* CSS para el chat principal    */
/* esta clase defines los atributos de cada bloque */
.chat-block {
    padding: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 0.375rem; /* Borde redondeado estándar de Bootstrap */
    box-shadow: 0 2px 8px rgba(0,0,0,0.06); /* Sombra suave y unificada */
}

/* El textarea "invisible" en el centro */
.chat-textarea {
    flex-grow: 1;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    resize: none;
    max-height: 150px;
    min-height: 38px;
}

/* La barra "cápsula" que envuelve el texto y los iconos */
.chat-input-bar {
    background-color: #ffffff;
    border: 1px solid #dee2e6;
    border-radius: 1rem;
    padding: 0.1rem 0.5rem;
    transition: all 0.2s ease-in-out;
}

/* Efecto de foco para toda la barra */
.chat-input-bar:focus-within {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}
/* La caja principal que envuelve toda el área de entrada */
.input-area {
    background-color: var(--brand-prompt-assistant-bg, #f8f9fa);
}


#question {
    width: 100%;
    font-size: 15px;
    background: #f8f9fa;
    color: #202123;
    border: 1px solid #d1d5db;
    transition: all 0.3s ease-in-out;
}

#question:focus {
    outline: none;
    border-color: #80bdff;
    box-shadow: 0 0 0 0.2rem rgba(0,123,255,.25);
}

/* Estilo del mensaje ingresado por el usuario */
#chat-container .message {
  max-width: 75%;
  min-width: fit-content;
  width: fit-content;
  border-radius: 12px 12px 0px 12px;
  word-wrap: break-word;
  display: inline-flex;
  align-items: center;
  align-self: flex-end;
  text-align: left;
  padding-left: 0.5em;
    color: #202123;
  font-family: Arial, sans-serif;
  font-size: 15px;
  line-height: 1.6;
  background-color: #f7f7f8;
}

.answer-section, .error-section {
    max-width: 100%;
    word-wrap: break-word;
    margin-bottom: 10px;
}


.answer-section {
    align-self: flex-start;
    max-width: 75%;
    padding: 10px 15px;
    font-family: "Inter", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.6;
    word-wrap: break-word;
}

.error-section {
    align-self: flex-start;
    max-width: 75%;
    min-width: 250px;

    color: var(--brand-danger-text, #842029); /* Color de texto de error de la marca */
    background-color: var(--brand-danger-bg, #f8d7da); /* Fondo de error de la marca */
    border: 1px solid var(--brand-danger-border, #f5c2c7); /* Borde de error de la marca */
    font-style: italic;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: start;
    margin: 10px 0;
    padding: 10px 15px; /* Un poco más de padding lateral */
    opacity: 0.9;
    border-radius: 8px; /* Bordes redondeados */
    word-wrap: break-word; /* Asegura que el texto no se desborde */
}

.error-section i {
    color: var(--brand-danger-color, #dc3545); /* Color del icono, el rojo principal */
    font-size: 1.2rem; /* Tamaño del icono */
    margin-right: 10px; /* Espacio entre el icono y el texto */
    flex-shrink: 0; /* Evita que el icono se encoja */
}

/* Estilo para mensajes sutiles del sistema (ej. abortado) */
.system-message {
    color: var(--brand-secondary-color, #6c757d); /* Usa el color secundario o un gris por defecto */
    font-style: italic;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    justify-content: start;
    margin: 10px 0;
    padding: 10px;
    opacity: 0.8;
}

/* Spinner */
.spinning {
    animation: spin 1s linear infinite;
    font-size: 15px; /* Tamaño del ícono */
    display: inline-block;
}
#spinner .spinner-border {
    color: var(--brand-primary-color);
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}


/* Estilos para el modal de archivos y ordenar icono */
.list-group-item {
    display: flex;
    justify-content: space-between;
    align-items: center;

    border: none;
    /* separador sutil solo en la parte inferior */
    border-bottom: 1px solid #e9ecef; /* Un gris muy claro estándar */
    padding: 0.5rem 0.75rem;

    /* animación suave para el cambio de fondo */
    transition: background-color 0.2s ease-in-out;
}

/* Al pasar el ratón, cambiamos el fondo para dar feedback */
.list-group-item:hover {
    background-color: #f8f9fa; /* Un gris de fondo muy sutil */
}

/* Eliminamos el borde del último elemento para un acabado limpio */
.list-group-item:last-child {
    border-bottom: none;
}

.file-name-modal {
    flex: 1;
    margin-right: 10px;
}
.remove-file-btn {
    flex-shrink: 0;
}


/* Aplica el color secundario de la marca al icono de ver archivos */
#view-files-button i {
    color: var(--brand-secondary-color, #6c757d);
}

#prompt-assistant-collapse .card {
    border-radius: 1rem;      /* Mismo radio que el chat-input-bar */
    border: 1px solid var(--brand-prompt-assistant-border, #dee2e6); /* Mismo borde que el chat-input-bar */
    box-shadow: none;           /* Eliminamos la sombra por defecto del card */
}

#prompt-assistant-collapse.show .card {
    margin-bottom: 12px !important; /* Anula el mb-2 (8px) para añadir un poco más de espacio */
}


/* Estilo UNIFICADO para los enlaces de iconos de acción */
.action-icon-style {
    color: #6c757d; /* Color gris estándar por defecto */
    transition: opacity 0.2s ease-in-out;
}
.action-icon-style:hover {
    opacity: 0.75; /* Efecto hover sutil */
}
.action-icon-style i {
    font-size: 1.5rem;
    vertical-align: middle;
}

/* Aplica a los iconos de la barra de entrada inferior */
.chat-input-bar .d-flex a i {
    font-size: 1.5rem;
    vertical-align: middle;
    color: #6c757d;
    transition: color 0.2s ease-in-out;
}

/* Anulación específica para el icono de la varita mágica */
.chat-input-bar a[href="#prompt-assistant-collapse"] i {
    color: var(--brand-prompt-assistant-icon-color, #6c757d);
}

.chat-input-bar .d-flex a:hover i {
    color: #343a40;
}

/* Anulación específica para el botón de ENVIAR usando su ID (Máxima Prioridad) */
#send-button i {
    font-size: 1.7rem; /* Ligeramente más grande */
}
#send-button:hover i {
    filter: brightness(85%); /* Efecto hover genérico que funciona con cualquier color */
}

/* 7. Estilo para el botón de enviar cuando está deshabilitado */
.send-button-icon.disabled {
    opacity: 0.4;
    pointer-events: none; /* Lo hace no-clicable */
}

.filepond--credits {
    display: none; /* Ocultar créditos de FilePond */
}

/* Estilo para el input de datos específicos cuando tiene contenido */
.specific-data-input.has-content {
    background-color: #e9f3ed !important;
    border-color: #198754 !important;
    border-width: 2px !important;
    color: #0a5833 !important;
    font-weight: 500 !important;
    box-shadow: 0 1px 4px rgba(25, 135, 84, 0.2) !important;
}

/* Ajuste para la etiqueta flotante */
.specific-data-input.has-content + label {
    color: #0a5833 !important;
}

/* Estilo para el botón de limpiar */
.clear-specific-data-button {
    position: absolute;
    top: 50%;
    right: 15px;
    transform: translateY(-50%);
    z-index: 5;
    padding: 0.25rem 0.5rem;
    color: #6c757d;
    background-color: transparent;
    border: none;
}

.clear-specific-data-button:hover {
    color: #212529;
}

.dropdown-menu-soft {
    background-color: var(--brand-prompt-assistant-dropdown-bg, #f8f9fa);
    border-color: var(--brand-prompt-assistant-border, #dee2e6);
}

.dropdown-menu-soft .dropdown-item {
    transition: all 0.15s ease-in-out;
}

.dropdown-menu-soft .dropdown-item:hover,
.dropdown-menu-soft .dropdown-item:focus {
    color: var(--brand-prompt-assistant-item-hover-text, #ffffff);
    background-color: var(--brand-prompt-assistant-item-hover-bg, #495057);
    padding-left: 1.5rem;
    transition: all 0.15s ease-in-out;
}

.dropdown-menu-soft .dropdown-header {
    background-color: var(--brand-prompt-assistant-header-bg, #495057);
    color: var(--brand-prompt-assistant-header-text, #ffffff);
    font-weight: 600;
    margin: 4px;
    padding: 0.4rem 1rem;
    border-radius: 4px;
    font-size: 0.85rem;
    text-transform: none;
    letter-spacing: normal;
    border-bottom: none;
}

/* estilos para el selector de prompts */
.prompt-select-button {
    color: #202123;
    border: 2px solid var(--brand-primary-color);
    border-radius: 0.25rem;     /* Estilos de botón estándar */
    padding: 0.5rem 1rem;
    cursor: pointer;
    text-align: center;
    font-weight: 500;

    /* Transición suave para el cambio en hover */
    transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

.prompt-select-button:hover {
    background-color: var(--brand-primary-color);
    color: var(--brand-text-on-primary);

    /* Marca el borde con un glow limpio */
    border-color: var(--brand-primary-color);
    box-shadow: 0 0 0 3px rgba( var(--brand-primary-rgb), 0.25 );
}

/* estilo de la x que limpia el prompt seleccionado */
#clear-selection-button {
    position: absolute;
    top: 50%;
    right: 45px;
    transform: translateY(-50%);
    z-index: 5;
    padding: 0.25rem 0.5rem;
    color: #6c757d;
    background-color: transparent;
}

#clear-selection-button:hover {
    color: #ffffff;
    background-color: #6c757d;
    border-radius: 0.25rem;
}

#send-button i {
    color: var(--brand-send-button-color);
}

/* Estilos personalizados para Toastr usando las variables de Branding */

/* --- Toast de Información (Usa el color primario de la marca) --- */
.toast-info {
  /* ¡Importante! Usamos las variables CSS de tu BrandingService */
  background-color: var(--brand-primary-color) !important;
  color: var(--brand-text-on-primary) !important;
  opacity: 0.95 !important;
}
.toast-info .toast-progress {
  /* Usamos un color ligeramente más oscuro o una variante,
     pero para simplificar, podemos empezar con el mismo */
  background-color: rgba(0, 0, 0, 0.2) !important;
}

/* --- Toast de Éxito (Usa el verde por defecto o uno de marca si lo defines) --- */
.toast-success {
  background-color: #198754 !important; /* Puedes crear una variable --brand-success-color si quieres */
  color: #ffffff !important;
  opacity: 0.95 !important;
}
.toast-success .toast-progress {
  background-color: rgba(0, 0, 0, 0.2) !important;
}

/* --- Toast de Error (Usa el color de peligro de la marca) --- */
.toast-error{
  background-color: var(--brand-danger-color) !important;
  color: var(--brand-text-on-primary) !important; /* Asumimos texto blanco sobre el color de peligro */
  opacity: 0.95 !important;
}
.toast-error .toast-progress {
  background-color: rgba(0, 0, 0, 0.2) !important;
}

/* Opcional: Estilo para el botón de cierre para que contraste bien */
.toast-close-button {
    color: var(--brand-text-on-primary) !important;
    text-shadow: none !important;
}
.toast-close-button:hover {
    opacity: 0.8;
}

.alert-branded-danger {
    background-color: var(--brand-danger-bg);
    color: var(--brand-danger-text);
    border-color: var(--brand-danger-border);
}
/* Asegura que el texto fuerte y los enlaces dentro de la alerta también tomen el color correcto */
.alert-branded-danger strong,
.alert-branded-danger .alert-link {
    color: inherit;
}

.edit-pencil {
    color: var(--brand-secondary-color, #6c757d); /* Color secundario por defecto */
    cursor: pointer;
    opacity: 0.6;
    text-decoration: none;
    /* Transición suave para todos los cambios (color, opacidad, tamaño) */
    transition: all 0.25s ease-in-out;
}

.edit-pencil:hover {
    opacity: 1;
    transform: scale(1.2);
    color: var(--brand-primary-color, #4C6A8D);
    cursor: pointer;
}



