/* user_style.css */
:root {
    --color-user-background: #0c0c0c;
    --color-user-surface: #181818; /* Un poco más claro que el admin surface */
    --color-user-text: #e0e0e0;
    --color-user-text-secondary: #9e9e9e;
    --color-user-accent: var(--color-accent); /* #ffc107 */
    --color-user-accent-hover: var(--color-accent-hover); /* #FFD700 */
    --color-user-border: #2a2a2a;
    --color-user-border-accent: var(--color-user-accent);
    --font-user-primary: 'Roboto', 'Segoe UI', sans-serif;
    --font-user-headings: 'Orbitron', sans-serif;

    /* Colores para arquetipos (ejemplos) */
    --archetype-asistente_personal: #4CAF50; /* Verde */
    --archetype-chatbot_conversacional: #2196F3; /* Azul */
    --archetype-analista_de_datos: #FF9800; /* Naranja */
    --archetype-escritor_creativo: #9C27B0; /* Púrpura */
    --archetype-traductor_ia: #00BCD4; /* Cyan */
    --archetype-generador_codigo: #795548; /* Marrón */
    --archetype-personaje_rol: #E91E63; /* Rosa */
    --archetype-tutor_virtual: #607D8B; /* Gris Azulado */
}

/* Iconos (Placeholder - Usar una librería real como Lucide, FontAwesome, etc.) */
/* Estos deben coincidir con los de admin_style.css si son globales o definirlos aquí */
[class^="icon-"], [class*=" icon-"] { /* ... (copiar definición de admin_style.css o centralizar) ... */
    display: inline-block; font-family: 'TuFuenteDeIconos'; font-style: normal; font-weight: normal;
    speak: never; line-height: 1; text-transform: none; letter-spacing: normal; word-wrap: normal;
    white-space: nowrap; direction: ltr; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
    -moz-osx-font-smoothing: grayscale; font-feature-settings: 'liga'; margin-right: 8px; vertical-align: -0.15em;
}
/* Agentes */
.icon-bot::before { content: "\f120"; } /* Ejemplo FontAwesome */
.icon-bot-solid::before { content: "\f543"; } /* O tu propio icono */
.icon-brain::before { content: "\f5dc"; }
.icon-brain-circuit::before { content: "\e0b8"; } /* Ejemplo de un icono más específico */
.icon-bot::before { content: "\f1db"; }
.icon-zap::before { content: "\f0e7"; }
.icon-circle-play::before { content: "\f144"; }
.icon-circle-plus::before { content: "\f055"; }
.icon-circle-arrow-left::before { content: "\f359"; }
.icon-pencil-line::before { content: "\f044"; } /* Usar uno consistente con admin */
.icon-trash-2::before { content: "\f2ed"; } /* Usar uno consistente con admin */
.icon-search-slash::before { content: "\e250"; }
/* Navbar */
.icon-layout-dashboard::before { content: "\f0e4"; }
.icon-user::before { content: "\f007"; }
.icon-shield::before { content: "\f132"; }
.icon-log-out::before { content: "\f08b"; }
.icon-chevron-down::before { content: "\f078"; }
.icon-calendar-plus::before { content: "\f271"; }
.icon-calendar-check::before { content: "\f274"; }


body.user-body {
    background-color: var(--color-user-background);
    color: var(--color-user-text);
    font-family: var(--font-user-primary);
    margin: 0;
}

.user-layout {
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

.user-main-header {
    background-color: var(--color-user-surface);
    padding: 0 30px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 70px;
    border-bottom: 1px solid var(--color-user-border-accent);
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
    position: sticky; /* Header fijo */
    top: 0;
    z-index: 1000;
}
.header-logo a {
    font-family: var(--font-user-headings);
    font-size: 1.8rem;
    color: var(--color-user-accent);
    text-decoration: none;
    font-weight: 700;
}
.user-main-nav ul {
    list-style: none;
    padding: 0; margin: 0;
    display: flex;
}
.user-main-nav li a {
    padding: 10px 20px;
    color: var(--color-user-text-secondary);
    text-decoration: none;
    font-size: 0.95rem;
    font-weight: 500;
    transition: color 0.2s ease;
    position: relative;
}
.user-main-nav li a:hover,
.user-main-nav li.active a {
    color: var(--color-user-accent);
}
.user-main-nav li.active a::after { /* Subrayado dorado para activo */
    content: '';
    position: absolute;
    bottom: -1px; /* Alinear con borde del header */
    left: 0;
    width: 100%;
    height: 3px;
    background-color: var(--color-user-accent);
    border-radius: 2px 2px 0 0;
}

.user-profile-menu {
    position: relative;
    cursor: pointer;
    display: flex;
    align-items: center;
}
.user-avatar-header {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    margin-right: 10px;
    border: 1px solid var(--color-user-accent);
    object-fit: cover;
}
.user-profile-menu span {
    color: var(--color-user-text);
    font-weight: 500;
}
.user-profile-menu span i { font-size: 0.8em; margin-left: 5px; }

.dropdown-menu {
    position: absolute;
    top: calc(100% + 10px); /* Debajo del header + espacio */
    right: 0;
    background-color: var(--color-user-surface);
    border: 1px solid var(--color-user-border);
    border-radius: 6px;
    box-shadow: 0 5px 15px rgba(0,0,0,0.3);
    min-width: 200px;
    z-index: 1001;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px);
    transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
.user-profile-menu.open .dropdown-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
.dropdown-menu a {
    display: block;
    padding: 10px 15px;
    color: var(--color-user-text-secondary);
    text-decoration: none;
    font-size: 0.9rem;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.dropdown-menu a:hover {
    background-color: rgba(255, 193, 7, 0.1);
    color: var(--color-user-accent);
}
.dropdown-menu a i { color: var(--color-user-accent); }

.user-main-area {
    flex: 1;
    padding: 30px;
}
.user-container { /* Contenedor principal dentro del área de usuario */
    max-width: 1200px;
    margin: 0 auto;
}

.section-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--color-user-border-accent);
}
.section-header h1 {
    font-family: var(--font-user-headings);
    color: var(--color-user-text);
    font-size: 1.8rem;
    margin: 0;
    display: flex; /* Para alinear icono con título */
    align-items: center;
}
.section-header h1 .archetype-icon-large i {
    font-size: 1.5em; /* Icono más grande en el título */
    margin-right: 15px;
    color: var(--color-user-accent);
}

/* Estilos para botones (reutilizar de style.css o admin_style.css si son globales) */
.btn-glow {
    box-shadow: 0 0 10px rgba(255, 193, 7, 0.3), 0 0 20px rgba(255, 193, 7, 0.2);
    transition: box-shadow 0.3s ease;
}
.btn-glow:hover {
    box-shadow: 0 0 15px rgba(255, 193, 7, 0.5), 0 0 30px rgba(255, 193, 7, 0.3);
}

/* Filtros para Agentes */
.filters-bar {
    margin-bottom: 30px;
    padding: 15px;
    background-color: rgba(255,255,255,0.03); /* Fondo sutil */
    border-radius: 8px;
    border: 1px solid var(--color-user-border);
}
.search-filter-form {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap; /* Para responsive */
}
.search-group {
    position: relative;
    flex-grow: 1; /* Que el input de búsqueda ocupe espacio */
}
.search-input-futuristic {
    width: 100%;
    padding: 10px 40px 10px 15px; /* Espacio para icono */
    background-color: var(--color-user-surface);
    border: 1px solid var(--color-user-border-accent);
    border-radius: 6px;
    color: var(--color-user-text);
    font-size: 1rem;
    transition: all 0.3s ease;
}
.search-input-futuristic:focus {
    outline: none;
    box-shadow: 0 0 10px rgba(255, 193, 7, 0.4);
}
.btn-icon-search {
    position: absolute;
    right: 0;
    top: 0;
    height: 100%;
    padding: 0 12px;
    background: transparent;
    border: none;
    color: var(--color-user-accent);
    cursor: pointer;
    font-size: 1.2rem;
}
.filter-group select {
    padding: 10px;
    background-color: var(--color-user-surface);
    border: 1px solid var(--color-user-border-accent);
    border-radius: 6px;
    color: var(--color-user-text);
    font-size: 0.95rem;
    min-width: 200px; /* Ancho mínimo para el select */
}
.filter-group select:focus { outline: none; box-shadow: 0 0 8px rgba(255, 193, 7, 0.3); }
.btn-small { font-size: 0.85rem; padding: 8px 12px; }


/* Grid de Agentes (HU1) */
.agents-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); /* Columnas responsivas */
    gap: 25px;
}
.agent-card {
    background-color: var(--color-user-surface);
    border-radius: 8px;
    border: 1px solid var(--color-user-border);
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    overflow: hidden; /* Para que el borde redondeado afecte al contenido */
    display: flex;
    flex-direction: column;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.agent-card:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 8px 25px rgba(255, 193, 7, 0.15);
    border-color: var(--color-user-accent);
}
.agent-card-link { /* Enlace que envuelve la mayor parte de la tarjeta */
    text-decoration: none;
    color: inherit; /* Heredar color de texto */
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Para que el enlace ocupe el espacio disponible */
}
.agent-card-header {
    padding: 15px 20px;
    display: flex;
    align-items: center;
    border-bottom: 1px dashed var(--color-user-border);
}
.agent-avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    margin-right: 15px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: #252525; /* Fondo para avatar si no hay imagen */
    border: 1px solid var(--color-user-accent);
}
.agent-avatar img { width: 100%; height: 100%; object-fit: cover; }
.default-avatar-icon { font-size: 2rem; color: var(--color-user-accent); }

.agent-name-status h3 {
    font-family: var(--font-user-headings);
    font-size: 1.2rem;
    color: var(--color-user-text);
    margin: 0 0 3px 0;
    font-weight: 500;
}
.status-badge-agent { /* Estilos similares a admin, pero para agentes */
    padding: 3px 7px; border-radius: 4px; font-size: 0.75rem; font-weight: 500;
    text-transform: uppercase; letter-spacing: 0.5px; display: inline-block;
}
.status-active { background-color: var(--color-success); color: #fff; }
.status-inactive, .status-deleted { background-color: var(--color-error); color: #fff; }
.status-training { background-color: var(--color-user-accent); color: #000; }

.agent-card-body { padding: 15px 20px; flex-grow: 1; }
.agent-description {
    font-size: 0.9rem;
    color: var(--color-user-text-secondary);
    line-height: 1.5;
    margin: 0;
}
.agent-card-footer {
    padding: 12px 20px;
    background-color: rgba(0,0,0,0.1); /* Fondo sutil para footer */
    border-top: 1px solid var(--color-user-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.archetype-tag {
    font-size: 0.8rem;
    padding: 4px 8px;
    border-radius: 15px; /* Más redondeado para tags */
    background-color: #333;
    color: var(--color-user-text-secondary);
    border: 1px solid #444;
}
/* Colores específicos por arquetipo */
.archetype-asistente_personal { background-color: var(--archetype-asistente_personal); color: #fff; border-color: var(--archetype-asistente_personal); }
.archetype-chatbot_conversacional { background-color: var(--archetype-chatbot_conversacional); color: #fff; border-color: var(--archetype-chatbot_conversacional); }
/* ... añade más estilos para otros arquetipos ... */
.archetype-tag i { color: inherit; font-size: 0.9em; }

.agent-actions .btn-icon-action {
    background: none; border: none; color: var(--color-user-text-secondary);
    padding: 5px; margin-left: 8px; cursor: pointer; font-size: 1.1rem;
    transition: color 0.2s ease;
}
.agent-actions .btn-icon-action:hover { color: var(--color-user-accent); }
.agent-actions .btn-delete-action:hover { color: var(--color-error); }

/* Empty State (HU2, HU1) */
.empty-state {
    text-align: center;
    padding: 50px 20px;
    background-color: var(--color-user-surface);
    border-radius: 8px;
    border: 1px dashed var(--color-user-border-accent);
    margin-top: 20px;
}
.empty-icon {
    font-size: 4rem;
    color: var(--color-user-accent);
    margin-bottom: 20px;
    display: block;
}
.empty-state h2 {
    font-family: var(--font-user-headings);
    font-size: 1.6rem;
    color: var(--color-user-text);
    margin-bottom: 10px;
}
.empty-state p {
    color: var(--color-user-text-secondary);
    margin-bottom: 25px;
}
.btn-lg { font-size: 1.1rem; padding: 12px 25px; }


/* Formulario de Agente (HU3) */
.form-card {
    background-color: var(--color-user-surface);
    padding: 30px 40px;
    border-radius: 10px;
    border: 1px solid var(--color-user-border);
    box-shadow: 0 5px 20px rgba(0,0,0,0.25);
}
.futuristic-form-card .form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 20px;
}
.futuristic-form-card .column-half { flex: 1 1 50%; }
.futuristic-form-card .column-full { flex: 1 1 100%; }

.futuristic-group label {
    display: block;
    margin-bottom: 8px;
    color: var(--color-user-text-secondary);
    font-size: 0.9rem;
    font-weight: 500;
}
.required-asterisk { color: var(--color-user-accent); margin-left: 2px; }
.futuristic-group input[type="text"],
.futuristic-group input[type="url"],
.futuristic-group select,
.futuristic-group textarea {
    width: 100%;
    padding: 12px 15px;
    background-color: #222;
    border: 1px solid var(--color-user-border-accent);
    border-radius: 6px;
    color: var(--color-user-text);
    font-size: 1rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.futuristic-group input:focus,
.futuristic-group select:focus,
.futuristic-group textarea:focus {
    outline: none;
    border-color: var(--color-user-accent-hover);
    box-shadow: 0 0 0 3px rgba(255, 215, 0, 0.25);
}
.futuristic-group textarea { min-height: 80px; resize: vertical; }
.field-hint {
    font-size: 0.8rem;
    color: var(--color-user-text-secondary);
    display: block;
    margin-top: 5px;
}
.form-actions-futuristic {
    margin-top: 30px;
    padding-top: 20px;
    border-top: 1px solid var(--color-user-border);
    text-align: right;
}
.form-actions-futuristic .btn { margin-left: 15px; }


/* Detalles del Agente (HU5) */
.agent-detail-layout {
    display: flex;
    gap: 30px;
    margin-top: 20px;
}
.agent-detail-main { flex: 3; } /* 75% approx */
.agent-detail-sidebar { flex: 1; } /* 25% approx */

.futuristic-card { /* Base para tarjetas de detalle */
    background-color: var(--color-user-surface);
    padding: 25px;
    border-radius: 8px;
    border: 1px solid var(--color-user-border);
    margin-bottom: 30px;
}
.card-title-futuristic {
    font-family: var(--font-user-headings);
    font-size: 1.3rem;
    color: var(--color-user-accent);
    margin-top: 0;
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--color-user-border-accent);
}
.info-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.info-block.column-span-2 { grid-column: span 2; }
.info-label-futuristic {
    font-size: 0.85rem; color: var(--color-user-text-secondary); margin-bottom: 5px; display: block;
}
.info-value-futuristic { font-size: 1rem; color: var(--color-user-text); word-break: break-word; }
.info-value-futuristic.archetype-key, .info-value-futuristic.status-key { /* Estilo de tag */
    display: inline-block; padding: 3px 8px; border-radius: 4px; font-weight: 500;
}
.description-text { line-height: 1.6; }

.prompt-display, .config-display {
    background-color: #111; /* Fondo muy oscuro para código/prompt */
    padding: 15px;
    border-radius: 6px;
    border: 1px solid var(--color-user-border);
    color: #c5c8c6; /* Color de texto para código */
    font-family: 'Courier New', Courier, monospace;
    font-size: 0.9rem;
    white-space: pre-wrap; /* Para que respete saltos de línea */
    word-break: break-all;
}
.futuristic-code-block {
    max-height: 300px; /* Limitar altura y permitir scroll */
    overflow-y: auto;
}

.agent-avatar-large-container { text-align: center; margin-bottom: 15px; }
.agent-avatar-large-detail {
    width: 150px; height: 150px; border-radius: 50%;
    border: 3px solid var(--color-user-accent);
    box-shadow: 0 0 20px rgba(255,215,0,0.2);
    object-fit: cover;
}
.default-avatar-large-detail {
    width: 150px; height: 150px; border-radius: 50%;
    background-color: var(--color-user-accent); color: #000;
    display: flex; align-items: center; justify-content: center;
    font-size: 5rem; margin: 0 auto;
}
.sidebar-card-title {
    font-family: var(--font-user-headings);
    font-size: 1.2rem; text-align: center; margin-bottom: 15px;
    color: var(--color-user-text);
}
.sidebar-info { font-size: 0.85rem; color: var(--color-user-text-secondary); margin-bottom: 8px; }
.sidebar-actions .btn-full { width: 100%; margin-top: 15px; }

.user-main-footer {
    text-align: center;
    padding: 20px;
    font-size: 0.85rem;
    color: var(--color-user-text-secondary);
    border-top: 1px solid var(--color-user-border);
    background-color: var(--color-user-surface);
    width: 100%;
}

/* Responsive para User Panel */
@media (max-width: 992px) { /* Tablets */
    .user-main-header { padding: 0 20px; }
    .user-main-area { padding: 20px; }
    .agent-detail-layout { flex-direction: column; }
}
@media (max-width: 768px) { /* Móviles */
    .user-main-nav { display: none; /* Podría ser un menú hamburguesa */ }
    .header-logo a { font-size: 1.5rem; }
    .user-profile-menu span { font-size: 0.9rem; }
    .user-avatar-header { width: 30px; height: 30px; }

    .section-header { flex-direction: column; align-items: flex-start; gap: 10px; }
    .filters-bar .search-filter-form { flex-direction: column; align-items: stretch; }
    .filter-group select { width: 100%; }
    .agents-grid { grid-template-columns: 1fr; /* Una columna en móviles */ }
    .info-grid { grid-template-columns: 1fr; } /* Una columna para detalles */
    .info-block.column-span-2 { grid-column: span 1; }

    .futuristic-form-card .form-row { flex-direction: column; margin-bottom: 0; }
    .futuristic-form-card .form-row .form-group { margin-bottom: 20px; }
}

.user-main-nav li.active a {
    color: var(--color-user-accent);
    /* border-bottom: 2px solid var(--color-user-accent); /* O algún otro indicador */
}
.user-main-nav li.active a::after { /* Ya definido previamente, asegurar que funcione */
    content: '';
    position: absolute;
    bottom: -1px; /* Ajustar si el header no tiene borde inferior */
    left: 10%; /* Centrar un poco o ajustar */
    width: 80%;
    height: 3px;
    background-color: var(--color-user-accent);
    border-radius: 2px 2px 0 0;
}

.dropdown-menu a.admin-link-dropdown {
    /* Estilo especial si se quiere diferenciar más */
    /* color: var(--color-user-accent-hover); */
    /* font-weight: bold; */
}
.dropdown-menu a.admin-link-dropdown i {
    color: var(--color-admin-accent); /* Usar el color de acento de admin */
}

.text-warning { color: orange; }

/* En style.css o user_style.css para la página de aceptación legal */
.legal-acceptance-container {
    max-width: 600px; /* Un poco más ancho para texto legal */
}
.legal-form .form-group {
    margin-bottom: 25px;
}
.legal-check-group {
    background-color: rgba(255, 255, 255, 0.03);
    padding: 15px;
    border-radius: 6px;
    border: 1px solid var(--color-user-border);
}
.legal-check-group input[type="checkbox"] {
    margin-right: 12px;
    transform: scale(1.3); /* Checkbox más grande */
    accent-color: var(--color-user-accent);
}
.legal-check-group .form-check-label {
    font-size: 0.95rem;
    color: var(--color-user-text);
    line-height: 1.5;
}
.legal-link {
    color: var(--color-user-accent);
    text-decoration: none;
    font-weight: 500;
}
.legal-link:hover {
    text-decoration: underline;
    color: var(--color-user-accent-hover);
}
.legal-intro {
    margin-bottom: 25px;
    font-size: 1rem;
    color: var(--color-user-text-secondary);
}
.legal-summary-toggle {
    font-size: 0.8rem;
    color: var(--color-user-text-secondary);
    cursor: pointer;
    margin-left: 5px;
    display: inline-block;
}
.legal-summary-toggle:hover { color: var(--color-user-accent); }
.legal-summary-content {
    margin-top: 10px;
    padding: 10px;
    background-color: rgba(0,0,0,0.2);
    border-left: 3px solid var(--color-user-accent);
    font-size: 0.85rem;
    color: var(--color-user-text-secondary);
}
.text-secondary { /* Para el enlace de "Cancelar y Salir" */
    color: var(--color-user-text-secondary);
}
.text-secondary:hover {
    color: var(--color-user-text);
}