:root {
    --bg-principal: #F9F6F0;
    --bg-paneles: #FFFFFF;
    --color-morado: #4C1D95;
    --color-naranja: #FF7A59;
    --color-verde: #10B981;
    --color-texto: #374151;
    --color-borde: #E5E7EB;
}

* { box-sizing: border-box; margin: 0; padding: 0; font-family: 'Plus Jakarta Sans', sans-serif; }

body { background-color: var(--bg-principal); color: var(--color-texto); height: 100vh; display: flex; overflow: hidden; }

/* --- ICONOS SVG --- */
svg { width: 18px; height: 18px; fill: currentColor; flex-shrink: 0; }
.icon-btn { display: flex; align-items: center; justify-content: center; gap: 6px; }

/* --- SISTEMA DE NOTIFICACIONES (TOAST) --- */
.toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 9999; display: flex; flex-direction: column; gap: 10px; }
.toast {
    background-color: #374151; color: white; padding: 12px 20px; border-radius: 10px; font-size: 0.9rem; font-weight: 600;
    box-shadow: 0 4px 12px rgba(0,0,0,0.15); opacity: 0; transform: translateY(20px); transition: all 0.3s ease;
    display: flex; align-items: center; gap: 8px;
}
.toast.show { opacity: 1; transform: translateY(0); }
.toast.error { background-color: #DC2626; }
.toast.success { background-color: #10B981; }

/* --- MODAL (CONFIRMACIONES) --- */
.modal-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0,0,0,0.5); z-index: 10000;
    display: flex; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.2s;
}
.modal-overlay.activo { opacity: 1; pointer-events: auto; }
.modal-content {
    background: white; padding: 30px; border-radius: 20px; max-width: 400px; width: 90%; text-align: center;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2); transform: scale(0.9); transition: transform 0.2s;
}
.modal-overlay.activo .modal-content { transform: scale(1); }
.modal-content h3 { color: var(--color-morado); margin-bottom: 10px; }
.modal-content p { color: #6B7280; font-size: 0.95rem; margin-bottom: 25px; }
.modal-actions { display: flex; gap: 10px; justify-content: center; }
.modal-btn { padding: 10px 20px; border-radius: 10px; font-weight: 700; cursor: pointer; border: none; }
.modal-btn-cancel { background: #E5E7EB; color: #4B5563; }
.modal-btn-confirm { background: #DC2626; color: white; }

/* --- SIDEBAR --- */
.sidebar { width: 320px; background-color: var(--bg-paneles); border-right: 1px solid var(--color-borde); display: flex; flex-direction: column; padding: 25px 15px; flex-shrink: 0; z-index: 10; }
.logo-contenedor { margin-bottom: 25px; padding: 0 10px;}
.logo-contenedor h1 { color: var(--color-morado); font-size: 1.5rem; font-weight: 800; }
.logo-contenedor p { color: #6B7280; font-size: 0.85rem; margin-top: 5px; }

.btn-nuevo { background-color: var(--color-morado); color: white; border: none; padding: 12px; margin: 0 10px 20px 10px; border-radius: 12px; font-weight: 700; cursor: pointer; transition: 0.2s; }
.btn-nuevo:hover { opacity: 0.9; }

.lista-bots { display: flex; flex-direction: column; gap: 8px; overflow-y: auto; padding: 0 10px; flex-grow: 1; }
.item-bot { display: flex; align-items: center; padding: 12px; background: #FAFAFA; border: 2px solid transparent; border-radius: 14px; cursor: pointer; transition: all 0.2s ease; }
.item-bot:hover { background: #F3F4F6; }
.item-bot.activo { background: #F5F3FF; border-color: var(--color-morado); }
.item-bot-avatar { width: 42px; height: 42px; border-radius: 50%; object-fit: cover; margin-right: 12px; flex-shrink: 0; background: white; border: 1px solid var(--color-borde); }
.item-bot-info { flex-grow: 1; overflow: hidden; }
.item-bot-nombre { font-weight: 700; color: var(--color-texto); font-size: 0.95rem; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.item-bot.activo .item-bot-nombre { color: var(--color-morado); }
.item-bot-desc { font-size: 0.75rem; color: #6B7280; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }

.item-bot-acciones { display: flex; gap: 4px; margin-left: 5px; }
.btn-icon-side { background: none; border: none; cursor: pointer; padding: 6px; border-radius: 8px; color: #9CA3AF; transition: 0.2s; }
.btn-icon-side svg { width: 16px; height: 16px; }
.btn-icon-side:hover { background: var(--color-borde); color: var(--color-texto); }
.btn-icon-side.borrar:hover { background: #FEE2E2; color: #DC2626; }

/* --- AREA PRINCIPAL --- */
.area-principal { flex-grow: 1; display: flex; flex-direction: column; background-color: var(--bg-principal); min-width: 0; }
.vista { display: none; height: 100%; flex-direction: column; }
.vista.activa { display: flex; }

/* -- VISTA DISEÑO -- */
.contenedor-diseno { padding: 40px; overflow-y: auto; height: 100%; }
.bloque-creativo { background-color: var(--bg-paneles); padding: 30px; border-radius: 20px; box-shadow: 0 4px 20px rgba(0,0,0,0.03); display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: 800px; margin: 0 auto; }
@media (max-width: 900px) { .bloque-creativo { grid-template-columns: 1fr; } }
.cabecera-diseno { grid-column: 1/-1; display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.cabecera-diseno h2 { color: var(--color-morado); }
.btn-cancelar { background-color: #E5E7EB; color: #4B5563; padding: 8px 15px; border-radius: 10px; border: none; font-weight: bold; cursor: pointer; }

.grupo-input { display: flex; flex-direction: column; gap: 8px; }
label { font-weight: 700; color: var(--color-morado); font-size: 0.9rem; }
input[type="text"], textarea { width: 100%; padding: 12px; border-radius: 12px; border: 1px solid var(--color-borde); font-size: 0.95rem; background-color: #FAFAFA; outline: none; }
input[type="text"]:focus, textarea:focus { border-color: var(--color-morado); background: white;}

/* Galerías Visuales y Archivos */
.galeria-avatares { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.avatar-opcion { width: 55px; height: 55px; border-radius: 50%; cursor: pointer; border: 3px solid transparent; background-color: #F3F4F6; transition: 0.2s; object-fit: cover; }
.avatar-opcion:hover { transform: scale(1.05); }
.avatar-opcion.seleccionado { border-color: var(--color-naranja); background-color: #FFF1F2; }
.upload-btn-custom { display: flex; align-items: center; justify-content: center; width: 55px; height: 55px; border-radius: 50%; border: 2px dashed #9CA3AF; cursor: pointer; background: #F9FAFB; color: #6B7280; transition: 0.2s; }
.upload-btn-custom:hover { background: #F3F4F6; color: var(--color-morado); border-color: var(--color-morado); }
.upload-btn-custom svg { width: 24px; height: 24px; }

/* Gestor de Documentos Elegante */
.gestor-archivos { border: 2px dashed var(--color-borde); border-radius: 12px; padding: 15px; background: #FAFAFA; display: flex; flex-direction: column; gap: 10px; }
.btn-subir-doc { align-self: flex-start; background: var(--color-lila); color: var(--color-morado); padding: 8px 15px; border-radius: 8px; cursor: pointer; font-weight: 600; font-size: 0.85rem; }
.lista-documentos { display: flex; flex-direction: column; gap: 5px; }
.doc-etiqueta { display: flex; align-items: center; justify-content: space-between; background: white; border: 1px solid var(--color-borde); padding: 8px 12px; border-radius: 8px; font-size: 0.85rem; color: var(--color-texto); }
.btn-borrar-doc { background: none; border: none; color: #DC2626; cursor: pointer; }
.btn-guardar { grid-column: 1 / -1; background-color: var(--color-verde); color: white; border: none; padding: 15px; border-radius: 12px; font-weight: 800; font-size: 1.1rem; cursor: pointer; margin-top: 10px; }

/* -- VISTA CHAT -- */
.cabecera-chat { padding: 15px 30px; background-color: var(--bg-paneles); border-bottom: 1px solid var(--color-borde); display: flex; justify-content: space-between; align-items: center; flex-shrink: 0; flex-wrap: wrap; gap: 15px; }
.chat-titulo-caja { display: flex; align-items: center; gap: 15px;}
.cabecera-chat h2 { font-size: 1.2rem; color: var(--color-texto); margin-bottom: 3px;}
.cabecera-chat p { font-size: 0.85rem; color: #6B7280; }
.btn-cabecera { background: transparent; border: none; color: #6B7280; cursor: pointer; font-size: 0.9rem; font-weight: 600; padding: 8px 12px;}
.btn-cabecera:hover { background-color: #F3F4F6; border-radius: 8px;}
.caja-compartir-chat { width: 100%; background-color: #F9FAFB; border: 1px dashed #D1D5DB; padding: 10px; border-radius: 10px; display: flex; gap: 10px; align-items: center; display: none; }
.caja-compartir-chat input { flex-grow: 1; padding: 8px; border: none; background: transparent; font-size: 0.9rem; color: #4B5563;}
.btn-copiar-link { background-color: var(--color-morado); color: white; border: none; border-radius: 8px; padding: 8px 15px; font-weight: bold; cursor: pointer;}
.pantalla-conversacion { flex-grow: 1; padding: 30px; overflow-y: auto; display: flex; flex-direction: column; gap: 20px; }
.burbuja { padding: 15px 20px; border-radius: 16px; max-width: 85%; line-height: 1.6; display: flex; gap: 15px; }
.burbuja.usuario { background-color: var(--color-morado); color: white; align-self: flex-end; border-bottom-right-radius: 4px; }
.burbuja.asistente { background-color: var(--bg-paneles); box-shadow: 0 2px 10px rgba(0,0,0,0.02); align-self: flex-start; border-bottom-left-radius: 4px; color: var(--color-texto); }
.contenido-burbuja { min-width: 0; width: 100%; overflow-x: auto; }
.avatar-chat { width: 35px; height: 35px; border-radius: 50%; object-fit: cover; flex-shrink: 0; background-color: white;}
.contenido-burbuja table { width: 100%; border-collapse: collapse; margin: 10px 0; color: var(--color-texto);}
.contenido-burbuja th, .contenido-burbuja td { border: 1px solid var(--color-borde); padding: 8px; text-align: left; }
.contenido-burbuja th { background-color: #F3F4F6; }
.zona-input { padding: 20px 30px; background-color: var(--bg-principal); flex-shrink: 0; }
.caja-escritura { display: flex; gap: 10px; background-color: var(--bg-paneles); padding: 10px; border-radius: 16px; box-shadow: 0 2px 15px rgba(0,0,0,0.05); max-width: 900px; margin: 0 auto; }
.caja-escritura input { flex-grow: 1; border: none; padding: 10px; background: transparent; font-size: 1rem; outline: none; }
.caja-escritura button { background-color: var(--color-naranja); color: white; border: none; padding: 0 25px; border-radius: 12px; font-weight: 700; cursor: pointer; }
.estado-vacio { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 100%; color: #9CA3AF; font-weight: 600; }

/* =========================================
   📱 ADAPTACIÓN PARA MÓVILES (RESPONSIVE)
   ========================================= */
@media (max-width: 768px) {
    body {
        flex-direction: column; /* Apila el menú arriba y el área principal abajo */
        height: 100dvh; /* Altura dinámica para que no estorben las barras del navegador */
    }

    /* ¡ESTA ES LA MAGIA QUE DESTRABA EL SCROLL HACIA ABAJO! */
    .area-principal {
        min-height: 0; 
    }

    /* El panel lateral se convierte en una barra superior */
    .sidebar {
        width: 100%;
        height: auto;
        max-height: 35vh; 
        border-right: none;
        border-bottom: 1px solid var(--color-borde);
        padding: 15px 10px;
    }

    /* Mantiene el logo y el botón en la misma línea */
    .logo-contenedor {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 10px;
    }
    
    .logo-contenedor h1 { font-size: 1.2rem; }
    .btn-nuevo { margin: 0; padding: 10px; font-size: 0.9rem; }

    /* La lista de bots ahora se desliza horizontalmente con el dedo */
    .lista-bots {
        flex-direction: row;
        overflow-x: auto;
        overflow-y: hidden;
        padding-bottom: 10px;
    }

    /* Las tarjetas de los bots no se aplastan */
    .item-bot {
        flex-shrink: 0; 
        width: 220px;
        margin-right: 10px;
    }

    /* Ajustes para la cabecera del chat */
    .cabecera-chat {
        padding: 15px;
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    
    #cajaBotonesChat {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 5px;
    }

    /* Ajustes de espacios para el formulario de diseño */
    .contenedor-diseno { padding: 20px 15px; }
    .bloque-creativo { padding: 20px; }

    /* Ajustes para que el chat sea más cómodo de leer */
    .pantalla-conversacion { padding: 15px; }
    .burbuja { max-width: 95%; }
    .zona-input { padding: 15px; }
    .caja-escritura button { padding: 0 15px; }
}
    
    .caja-escritura button {
        padding: 0 15px; /* Botón de enviar más compacto */
    }
