      /* ===========================================
           SISTEMA DE DISEÑO - IA DEMOSTRACIÓN
           Basado en estética OpenAI: Minimalista, Profesional, Accesible
           =========================================== */

        /* Variables CSS - Sistema de Tokens de Diseño */
        :root {
            /* Colores Primarios (Acento Estratégico) */
            --primary-500: #0066FF;
            --primary-700: #0052CC;
            --primary-100: #E6F0FF;

            /* Paleta Neutra (90% de la interfaz) */
            --neutral-900: #111827;
            --neutral-600: #4B5563;
            --neutral-200: #E5E7EB;
            --neutral-100: #F3F4F6;
            --neutral-0: #FFFFFF;

            /* Colores Semánticos */
            --success-500: #10B981;
            --warning-500: #F59E0B;
            --error-500: #EF4444;

            /* Espaciado (Rejilla de 4px) */
            --space-xs: 8px;
            --space-sm: 16px;
            --space-md: 24px;
            --space-lg: 32px;
            --space-xl: 48px;
            --space-xxl: 64px;

            /* Tipografía */
            --font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
            --line-height-tight: 1.2;
            --line-height-normal: 1.4;
            --line-height-relaxed: 1.5;
            --line-height-loose: 1.6;

            /* Sombras con tinte de marca */
            --shadow-md: 0 4px 12px rgba(0, 102, 255, 0.08);
            --shadow-lg: 0 8px 24px rgba(0, 102, 255, 0.12);

            /* Transiciones */
            --transition-base: all 250ms cubic-bezier(0.4, 0, 0.2, 1);
            --transition-smooth: all 200ms cubic-bezier(0.4, 0, 0.2, 1);
        }

        /* ===========================================
           RESET Y CONFIGURACIÓN BASE
           =========================================== */
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        html {
            font-size: 16px;
            scroll-behavior: smooth;
        }

        body {
            font-family: var(--font-family);
            font-size: 16px;
            font-weight: 400;
            line-height: var(--line-height-loose);
            color: var(--neutral-900);
            background-color: var(--neutral-100);
            -webkit-font-smoothing: antialiased;
            -moz-osx-font-smoothing: grayscale;
        }

        /* ===========================================
           LAYOUT PRINCIPAL
           =========================================== */
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 0 var(--space-md);
        }

        .page-header {
            background-color: var(--neutral-0);
            padding: var(--space-xl) 0;
            border-bottom: 1px solid var(--neutral-200);
        }

        .page-title {
            font-size: 48px;
            font-weight: 700;
            line-height: var(--line-height-tight);
            color: var(--neutral-900);
            margin-bottom: var(--space-sm);
            text-align: center;
        }

        .page-subtitle {
            font-size: 18px;
            font-weight: 400;
            color: var(--neutral-600);
            text-align: center;
            max-width: 600px;
            margin: 0 auto;
        }

        /* ===========================================
           SISTEMA DE NAVEGACIÓN POR PESTAÑAS
           =========================================== */
        .tabs-container {
            background-color: var(--neutral-0);
            padding: var(--space-lg) 0;
            position: sticky;
            top: 0;
            z-index: 100;
            box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
        }

        .tabs-nav {
            display: flex;
            gap: var(--space-sm);
            justify-content: center;
            flex-wrap: wrap;
            max-width: 800px;
            margin: 0 auto;
        }

        .tab-button {
            padding: 12px var(--space-md);
            border: none;
            border-radius: 8px;
            font-size: 14px;
            font-weight: 500;
            cursor: pointer;
            background: transparent;
            color: var(--neutral-600);
            transition: var(--transition-base);
            white-space: nowrap;
        }

        .tab-button:hover {
            background-color: rgba(229, 231, 235, 0.6);
            color: var(--neutral-900);
        }

        .tab-button.active {
            background-color: var(--neutral-0);
            color: var(--neutral-900);
            box-shadow: var(--shadow-md);
        }

        .tab-button.active:hover {
            background-color: var(--neutral-0);
        }

        /* ===========================================
           CONTENIDO DE PESTAÑAS
           =========================================== */
        .tab-content {
            display: none;
            min-height: 70vh;
        }

        .tab-content.active {
            display: block;
        }

        .module-section {
            padding: var(--space-xxl) 0;
        }

        .module-header {
            text-align: center;
            margin-bottom: var(--space-xl);
        }

        .module-title {
            font-size: 32px;
            font-weight: 700;
            line-height: var(--line-height-normal);
            color: var(--neutral-900);
            margin-bottom: var(--space-sm);
        }

        .module-description {
            font-size: 18px;
            color: var(--neutral-600);
            max-width: 700px;
            margin: 0 auto;
        }

        .module-card {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        /* ===========================================
           CHATBOT CONVERSACIONAL
           =========================================== */
        .chatbot-container {
            display: flex;
            flex-direction: column;
            height: 500px;
            max-width: 800px;
            margin: 0 auto;
        }

        .chat-messages {
            flex: 1;
            overflow-y: auto;
            padding: var(--space-md);
            background-color: var(--neutral-0);
            border-radius: 12px 12px 0 0;
            border: 1px solid var(--neutral-200);
        }

        .message {
            display: flex;
            margin-bottom: var(--space-sm);
            animation: slideInUp 300ms ease-out;
        }

        .message.user {
            justify-content: flex-end;
        }

        .message.ai {
            justify-content: flex-start;
        }

        .message-bubble {
            padding: var(--space-sm);
            border-radius: 16px;
            max-width: 70%;
            word-wrap: break-word;
            animation: fadeIn 200ms ease-in;
        }

        .message.user .message-bubble {
            background-color: var(--neutral-100);
            border-radius: 16px 16px 4px 16px;
        }

        .message.ai .message-bubble {
            background-color: var(--primary-100);
            border-radius: 16px 16px 16px 4px;
        }

        .chat-input-container {
            display: flex;
            padding: var(--space-sm);
            background-color: var(--neutral-0);
            border: 1px solid var(--neutral-200);
            border-top: none;
            border-radius: 0 0 12px 12px;
        }

        .chat-input {
            flex: 1;
            border: none;
            padding: var(--space-sm) var(--space-md);
            font-size: 16px;
            outline: none;
            background-color: transparent;
        }

        .chat-input:focus {
            box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.2);
            border-radius: 8px;
        }

        .send-button {
            background-color: var(--primary-500);
            color: var(--neutral-0);
            border: none;
            padding: var(--space-sm) var(--space-md);
            border-radius: 8px;
            cursor: pointer;
            font-weight: 500;
            margin-left: var(--space-sm);
            transition: var(--transition-smooth);
        }

        .send-button:hover {
            background-color: var(--primary-700);
            transform: translateY(-2px);
        }

        .send-button:disabled {
            background-color: var(--neutral-200);
            cursor: not-allowed;
            transform: none;
        }

        /* ===========================================
           GENERADOR DE TEXTO (SIMULACIÓN GPT)
           =========================================== */
        .text-generator {
            max-width: 1000px;
            margin: 0 auto;
        }

        .generator-controls {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        .control-group {
            margin-bottom: var(--space-md);
        }

        .control-label {
            display: block;
            font-size: 14px;
            font-weight: 500;
            color: var(--neutral-900);
            margin-bottom: var(--space-xs);
        }

        .control-select,
        .control-textarea {
            width: 100%;
            padding: var(--space-sm) var(--space-md);
            border: 1px solid var(--neutral-200);
            border-radius: 8px;
            font-size: 16px;
            font-family: var(--font-family);
            background-color: var(--neutral-0);
            transition: var(--transition-base);
        }

        .control-select:focus,
        .control-textarea:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.2);
            border-color: var(--primary-500);
        }

        .generate-button {
            background-color: var(--primary-500);
            color: var(--neutral-0);
            border: none;
            padding: 12px var(--space-lg);
            border-radius: 8px;
            font-size: 16px;
            font-weight: 600;
            cursor: pointer;
            transition: var(--transition-smooth);
        }

        .generate-button:hover {
            background-color: var(--primary-700);
            transform: translateY(-2px);
        }

        .generate-button:disabled {
            background-color: var(--neutral-200);
            cursor: not-allowed;
            transform: none;
        }

        .text-output {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            min-height: 400px;
            box-shadow: var(--shadow-md);
            font-size: 18px;
            line-height: var(--line-height-loose);
            color: var(--neutral-900);
        }

        .loading-animation {
            display: inline-block;
            width: 20px;
            height: 20px;
            border: 2px solid var(--primary-100);
            border-radius: 50%;
            border-top-color: var(--primary-500);
            animation: spin 1s ease-in-out infinite;
        }

        /* ===========================================
           SISTEMA DE BÚSQUEDA SEMÁNTICA
           =========================================== */
        .semantic-search {
            max-width: 800px;
            margin: 0 auto;
        }

        .search-container {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        .search-input-container {
            position: relative;
            margin-bottom: var(--space-md);
        }

        .search-input {
            width: 100%;
            padding: var(--space-sm) var(--space-md) var(--space-sm) 48px;
            border: 1px solid var(--neutral-200);
            border-radius: 8px;
            font-size: 16px;
            background-color: var(--neutral-0);
            transition: var(--transition-base);
        }

        .search-input:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.2);
            border-color: var(--primary-500);
        }

        .search-icon {
            position: absolute;
            left: var(--space-sm);
            top: 50%;
            transform: translateY(-50%);
            color: var(--neutral-600);
        }

        .search-results {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        .result-item {
            padding: var(--space-md);
            border-bottom: 1px solid var(--neutral-200);
            cursor: pointer;
            transition: var(--transition-base);
        }

        .result-item:last-child {
            border-bottom: none;
        }

        .result-item:hover {
            background-color: var(--neutral-100);
        }

        .result-title {
            font-size: 18px;
            font-weight: 600;
            color: var(--neutral-900);
            margin-bottom: var(--space-xs);
        }

        .result-snippet {
            color: var(--neutral-600);
            font-size: 14px;
            line-height: var(--line-height-relaxed);
        }

        .relevance-score {
            display: inline-block;
            background-color: var(--primary-100);
            color: var(--primary-700);
            padding: 2px 8px;
            border-radius: 12px;
            font-size: 12px;
            font-weight: 500;
            margin-left: var(--space-sm);
        }

        /* ===========================================
           ASISTENTE DE DISEÑO DE INTERFACES
           =========================================== */
        .design-assistant {
            max-width: 900px;
            margin: 0 auto;
        }

        .design-query {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            margin-bottom: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        .query-textarea {
            width: 100%;
            min-height: 100px;
            padding: var(--space-md);
            border: 1px solid var(--neutral-200);
            border-radius: 8px;
            font-size: 16px;
            font-family: var(--font-family);
            resize: vertical;
            background-color: var(--neutral-0);
            transition: var(--transition-base);
        }

        .query-textarea:focus {
            outline: none;
            box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.2);
            border-color: var(--primary-500);
        }

        .design-suggestions {
            background-color: var(--neutral-0);
            border-radius: 12px;
            padding: var(--space-lg);
            box-shadow: var(--shadow-md);
        }

        .suggestion-card {
            border: 1px solid var(--neutral-200);
            border-radius: 8px;
            padding: var(--space-md);
            margin-bottom: var(--space-md);
            transition: var(--transition-base);
        }

        .suggestion-card:hover {
            box-shadow: var(--shadow-md);
        }

        .suggestion-title {
            font-size: 18px;
            font-weight: 600;
            color: var(--neutral-900);
            margin-bottom: var(--space-sm);
        }

        .suggestion-content {
            color: var(--neutral-600);
            line-height: var(--line-height-relaxed);
        }

        .color-palette {
            display: flex;
            gap: var(--space-xs);
            margin-top: var(--space-sm);
        }

        .color-swatch {
            width: 32px;
            height: 32px;
            border-radius: 50%;
            border: 2px solid var(--neutral-200);
            cursor: pointer;
            transition: var(--transition-base);
        }

        .color-swatch:hover {
            transform: scale(1.1);
            box-shadow: var(--shadow-md);
        }

        /* ===========================================
           ANIMACIONES Y MICRO-INTERACCIONES
           =========================================== */
        @keyframes slideInUp {
            from {
                transform: translateY(16px);
                opacity: 0;
            }
            to {
                transform: translateY(0);
                opacity: 1;
            }
        }

        @keyframes fadeIn {
            from { opacity: 0; }
            to { opacity: 1; }
        }

        @keyframes spin {
            to { transform: rotate(360deg); }
        }

        /* ===========================================
           RESPONSIVE DESIGN (Mobile-First)
           =========================================== */
        @media (max-width: 768px) {
            .container {
                padding: 0 var(--space-sm);
            }

            .page-title {
                font-size: 36px;
            }

            .module-title {
                font-size: 24px;
            }

            .tabs-nav {
                flex-direction: column;
                align-items: stretch;
            }

            .tab-button {
                text-align: center;
            }

            .message-bubble {
                max-width: 85%;
            }

            .module-section {
                padding: var(--space-xl) 0;
            }

            .module-card,
            .generator-controls,
            .search-container,
            .design-query,
            .design-suggestions {
                padding: var(--space-md);
            }
        }

        /* Accesibilidad: Reducir animaciones si el usuario lo prefiere */
        @media (prefers-reduced-motion: reduce) {
            *,
            *::before,
            *::after {
                animation-duration: 0.01ms !important;
                animation-iteration-count: 1 !important;
                transition-duration: 0.01ms !important;
            }
        }

        /* ===========================================
           UTILIDADES Y ESTADOS
           =========================================== */
        .hidden {
            display: none !important;
        }

        .text-center {
            text-align: center;
        }

        .text-muted {
            color: var(--neutral-600);
        }

        .sr-only {
            position: absolute;
            width: 1px;
            height: 1px;
            padding: 0;
            margin: -1px;
            overflow: hidden;
            clip: rect(0, 0, 0, 0);
            white-space: nowrap;
            border: 0;
        }

        /* Tooltips y ayuda contextual */
        .tooltip {
            position: relative;
            display: inline-block;
        }

        .tooltip:hover::after {
            content: attr(data-tooltip);
            position: absolute;
            bottom: 125%;
            left: 50%;
            transform: translateX(-50%);
            background-color: var(--neutral-900);
            color: var(--neutral-0);
            padding: var(--space-xs) var(--space-sm);
            border-radius: 4px;
            font-size: 12px;
            white-space: nowrap;
            z-index: 1000;
        }

        .tooltip:hover::before {
            content: '';
            position: absolute;
            bottom: 115%;
            left: 50%;
            transform: translateX(-50%);
            border: 5px solid transparent;
            border-top-color: var(--neutral-900);
            z-index: 1000;
        }