rag-chu / frontend /build /static /css /main.cc9f8701.css.map
JTh34's picture
🚀 Déploiement automatique RAG CHU 2025-07-01 10:05:48
b7b022c
{"version":3,"file":"static/css/main.cc9f8701.css","mappings":"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","sources":["index.css","App.css"],"sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n background-color: #f5f7fa;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n\n* {\n box-sizing: border-box;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 20px;\n}\n\n.card {\n background: white;\n border-radius: 12px;\n box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);\n padding: 24px;\n margin-bottom: 20px;\n}\n\n.btn {\n background: #3b82f6;\n color: white;\n border: none;\n padding: 12px 24px;\n border-radius: 8px;\n cursor: pointer;\n font-size: 14px;\n font-weight: 500;\n transition: background-color 0.2s;\n}\n\n.btn:hover {\n background: #2563eb;\n}\n\n.btn:disabled {\n background: #9ca3af;\n cursor: not-allowed;\n}\n\n.btn-secondary {\n background: #6b7280;\n}\n\n.btn-secondary:hover {\n background: #4b5563;\n}\n\n.input {\n width: 100%;\n padding: 12px;\n border: 2px solid #e5e7eb;\n border-radius: 8px;\n font-size: 14px;\n transition: border-color 0.2s;\n}\n\n.input:focus {\n outline: none;\n border-color: #3b82f6;\n}\n\n.textarea {\n min-height: 120px;\n resize: vertical;\n}\n\n.loading {\n display: inline-block;\n width: 20px;\n height: 20px;\n border: 3px solid rgba(255, 255, 255, 0.3);\n border-radius: 50%;\n border-top-color: #fff;\n animation: spin 1s ease-in-out infinite;\n}\n\n@keyframes spin {\n to { transform: rotate(360deg); }\n}\n\n.alert {\n padding: 12px 16px;\n border-radius: 8px;\n margin-bottom: 16px;\n font-size: 14px;\n}\n\n.alert-error {\n background: #fef2f2;\n border: 1px solid #fecaca;\n color: #dc2626;\n}\n\n.alert-success {\n background: #f0fdf4;\n border: 1px solid #bbf7d0;\n color: #166534;\n}\n\n.alert-warning {\n background: #fffbeb;\n border: 1px solid #fed7aa;\n color: #d97706;\n} ","/* Reset et base */\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n}\n\nbody {\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;\n background: linear-gradient(135deg, #1e40af 0%, #0f766e 100%);\n min-height: 100vh;\n overflow-x: hidden;\n overflow-y: auto;\n margin: 0;\n padding: 0;\n}\n\n.App {\n min-height: 100vh;\n display: flex;\n flex-direction: column;\n}\n\n/* Header */\n.app-header {\n background: linear-gradient(90deg, #1e40af 0%, #0369a1 50%, #f59e0b 100%);\n border-bottom: 1px solid rgba(255, 255, 255, 0.3);\n padding: 1rem 2rem;\n position: relative;\n box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);\n}\n\n.app-header h1 {\n color: white;\n font-size: 1.8rem;\n margin-bottom: 0.5rem;\n}\n\n.app-header p {\n color: rgba(255, 255, 255, 0.8);\n font-size: 1rem;\n}\n\n/* Layout principal en 3 colonnes */\n.app-grid {\n display: flex;\n min-height: calc(100vh - 120px);\n gap: 1rem;\n padding: 1rem;\n flex: 1;\n max-width: 100vw;\n overflow-x: hidden;\n}\n\n/* Colonne gauche - Documents (étroite) */\n.left-column {\n width: 260px;\n min-width: 240px;\n max-width: 300px;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n flex-shrink: 1;\n}\n\n/* Colonne centre - Chat (large) */\n.center-column {\n flex: 1;\n min-width: 300px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n/* Colonne droite - Console (fixe) */\n.right-column {\n width: 320px;\n min-width: 280px;\n max-width: 350px;\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n}\n\n/* Cards communes */\n.card {\n background: rgba(255, 255, 255, 0.1);\n backdrop-filter: blur(15px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.2);\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);\n padding: 1.5rem;\n color: white;\n}\n\n.card h2 {\n margin-bottom: 1rem;\n font-size: 1.2rem;\n color: white;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n/* Upload zone (compacte) */\n.upload-zone {\n border: 2px dashed rgba(255, 255, 255, 0.3);\n border-radius: 12px;\n padding: 1rem;\n text-align: center;\n cursor: pointer;\n transition: all 0.3s ease;\n min-height: 100px;\n}\n\n.upload-zone:hover,\n.upload-zone.drag-active {\n border-color: rgba(255, 255, 255, 0.6);\n background: rgba(255, 255, 255, 0.05);\n}\n\n.upload-icon {\n font-size: 2rem;\n margin-bottom: 0.5rem;\n font-weight: 300;\n color: rgba(255, 255, 255, 0.7);\n}\n\n.upload-text {\n font-size: 0.9rem;\n color: rgba(255, 255, 255, 0.8);\n margin-bottom: 0.5rem;\n}\n\n.upload-hint {\n font-size: 0.75rem;\n color: rgba(255, 255, 255, 0.6);\n}\n\n/* Liste documents (compacte) */\n.documents-list {\n max-height: 300px;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n.document-item {\n padding: 0.75rem;\n margin-bottom: 0.5rem;\n background: rgba(255, 255, 255, 0.1);\n border-radius: 8px;\n cursor: pointer;\n transition: all 0.2s ease;\n border: 1px solid transparent;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 0.5rem;\n}\n\n.document-item:hover {\n background: rgba(255, 255, 255, 0.15);\n}\n\n.document-item.selected {\n border-color: #f59e0b;\n background: rgba(245, 158, 11, 0.2);\n}\n\n.document-content {\n flex: 1;\n min-width: 0;\n}\n\n.document-name {\n font-size: 0.85rem;\n font-weight: 600;\n margin-bottom: 0.25rem;\n}\n\n.document-status {\n font-size: 0.7rem;\n opacity: 0.8;\n}\n\n.delete-btn {\n background: rgba(239, 68, 68, 0.2);\n border: 1px solid rgba(239, 68, 68, 0.4);\n color: #ef4444;\n border-radius: 6px;\n padding: 0.3rem 0.5rem;\n font-size: 0.9rem;\n cursor: pointer;\n transition: all 0.2s ease;\n flex-shrink: 0;\n}\n\n.delete-btn:hover {\n background: rgba(239, 68, 68, 0.4);\n border-color: rgba(239, 68, 68, 0.6);\n transform: scale(1.05);\n}\n\n.delete-btn:active {\n transform: scale(0.95);\n}\n\n/* Interface Chat (centre) */\n.chat-container {\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n\n.chat-messages {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n max-height: calc(100vh - 300px);\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.message {\n display: flex;\n flex-direction: column;\n max-width: 80%;\n}\n\n.message.message-user {\n align-self: flex-end;\n}\n\n.message.message-assistant {\n align-self: flex-start;\n}\n\n.message-content {\n padding: 1rem 1.5rem;\n border-radius: 18px;\n line-height: 1.5;\n word-wrap: break-word;\n overflow-wrap: break-word;\n max-width: 100%;\n}\n\n.message-user .message-content {\n background: linear-gradient(135deg, #0369a1, #0f766e);\n color: white;\n}\n\n.message-assistant .message-content {\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.2);\n color: white;\n}\n\n.chat-input-container {\n padding: 1rem;\n border-top: 1px solid rgba(255, 255, 255, 0.2);\n display: flex;\n gap: 1rem;\n align-items: flex-end;\n}\n\n.chat-input {\n flex: 1;\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.3);\n border-radius: 12px;\n padding: 0.75rem 1rem;\n color: white;\n resize: none;\n min-height: 44px;\n max-height: 120px;\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.chat-input::placeholder {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.chat-input:focus {\n outline: none;\n border-color: rgba(255, 255, 255, 0.5);\n}\n\n/* Console de Debug (droite) */\n.debug-console {\n height: 100%;\n background: rgba(0, 0, 0, 0.4);\n backdrop-filter: blur(10px);\n border-radius: 16px;\n border: 1px solid rgba(255, 255, 255, 0.1);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n}\n\n.debug-console-header {\n padding: 1rem 1.5rem;\n border-bottom: 1px solid rgba(255, 255, 255, 0.1);\n background: rgba(255, 255, 255, 0.05);\n}\n\n.debug-console-header h3 {\n color: #f59e0b;\n font-size: 1rem;\n display: flex;\n align-items: center;\n gap: 0.5rem;\n}\n\n.debug-console-content {\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n padding: 1rem;\n font-family: 'Monaco', 'Menlo', monospace;\n font-size: 0.8rem;\n line-height: 1.4;\n max-height: calc(100vh - 200px);\n}\n\n.debug-log {\n margin-bottom: 0.5rem;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n border-left: 3px solid;\n background: rgba(255, 255, 255, 0.05);\n}\n\n.debug-log.info {\n border-left-color: #3b82f6;\n color: #93c5fd;\n}\n\n.debug-log.success {\n border-left-color: #0f766e;\n color: #5eead4;\n}\n\n.debug-log.warning {\n border-left-color: #d97706;\n color: #fbbf24;\n}\n\n.debug-log.error {\n border-left-color: #ef4444;\n color: #fca5a5;\n}\n\n.debug-log.vision {\n border-left-color: #0369a1;\n color: #7dd3fc;\n}\n\n.debug-log.chunking {\n border-left-color: #0891b2;\n color: #67e8f9;\n}\n\n.debug-log.rag {\n border-left-color: #0f766e;\n color: #5eead4;\n}\n\n.debug-timestamp {\n color: rgba(255, 255, 255, 0.5);\n font-size: 0.7rem;\n margin-right: 0.5rem;\n}\n\n.debug-message {\n word-wrap: break-word;\n}\n\n/* Boutons */\n.btn {\n background: linear-gradient(135deg, #0369a1, #0f766e);\n color: white;\n border: none;\n padding: 0.75rem 1.5rem;\n border-radius: 12px;\n cursor: pointer;\n font-weight: 600;\n transition: all 0.2s ease;\n font-size: 0.9rem;\n}\n\n.btn:hover {\n transform: translateY(-1px);\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n}\n\n.btn:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n transform: none;\n}\n\n.btn-secondary {\n background: rgba(255, 255, 255, 0.1);\n border: 1px solid rgba(255, 255, 255, 0.3);\n}\n\n.btn-small {\n padding: 0.5rem 1rem;\n font-size: 0.8rem;\n}\n\n/* Alerts */\n.alert {\n padding: 0.75rem 1rem;\n border-radius: 8px;\n margin-bottom: 1rem;\n font-size: 0.9rem;\n}\n\n.alert-error {\n background: rgba(239, 68, 68, 0.2);\n border: 1px solid #ef4444;\n color: #fca5a5;\n}\n\n.alert-success {\n background: rgba(15, 118, 110, 0.2);\n border: 1px solid #0f766e;\n color: #5eead4;\n}\n\n/* Loading */\n.loading {\n display: inline-block;\n width: 16px;\n height: 16px;\n border: 2px solid rgba(255, 255, 255, 0.3);\n border-top: 2px solid white;\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n/* Empty state */\n.empty-state {\n text-align: center;\n padding: 3rem 2rem;\n color: rgba(255, 255, 255, 0.7);\n}\n\n.empty-state h3 {\n margin-bottom: 1rem;\n color: white;\n}\n\n/* Scrollbar styling */\n::-webkit-scrollbar {\n width: 6px;\n}\n\n::-webkit-scrollbar-track {\n background: rgba(255, 255, 255, 0.1);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb {\n background: rgba(255, 255, 255, 0.3);\n border-radius: 3px;\n}\n\n::-webkit-scrollbar-thumb:hover {\n background: rgba(255, 255, 255, 0.5);\n}\n\n/* Responsive */\n@media (max-width: 1400px) {\n .app-grid {\n gap: 0.75rem;\n padding: 0.75rem;\n }\n \n .left-column {\n width: 220px;\n min-width: 200px;\n }\n \n .right-column {\n width: 280px;\n min-width: 260px;\n }\n}\n\n@media (max-width: 1200px) {\n .app-grid {\n gap: 0.5rem;\n padding: 0.5rem;\n }\n \n .left-column {\n width: 200px;\n min-width: 180px;\n }\n \n .right-column {\n width: 250px;\n min-width: 220px;\n }\n \n .center-column {\n min-width: 250px;\n }\n}\n\n@media (max-width: 1024px) {\n .app-grid {\n flex-direction: column;\n min-height: auto;\n gap: 0.75rem;\n }\n \n .left-column,\n .right-column {\n width: 100%;\n min-width: auto;\n max-width: none;\n max-height: 300px;\n min-height: 200px;\n }\n \n .center-column {\n min-height: 400px;\n min-width: auto;\n flex: 1;\n }\n}\n\n@media (max-width: 768px) {\n .app-grid {\n padding: 0.5rem;\n gap: 0.5rem;\n }\n \n .app-header {\n padding: 0.5rem 1rem;\n }\n \n .app-header h1 {\n font-size: 1.4rem;\n }\n \n .app-header p {\n font-size: 0.9rem;\n }\n \n .card {\n padding: 1rem;\n }\n \n .left-column,\n .right-column {\n max-height: 250px;\n }\n}\n\n@media (max-width: 480px) {\n .app-grid {\n padding: 0.25rem;\n }\n \n .app-header {\n padding: 0.5rem;\n }\n \n .app-header h1 {\n font-size: 1.2rem;\n }\n \n .card {\n padding: 0.75rem;\n }\n \n .card h2 {\n font-size: 1rem;\n }\n}\n\n/* Animation pour le curseur de streaming */\n.streaming-cursor {\n color: #10b981;\n font-weight: bold;\n animation: blink 1s infinite;\n margin-left: 2px;\n}\n\n@keyframes blink {\n 0%, 50% { opacity: 1; }\n 51%, 100% { opacity: 0; }\n}\n\n/* Spinner médical élégant */\n.medical-spinner {\n width: 20px;\n height: 20px;\n border: 2px solid rgba(255, 255, 255, 0.1);\n border-left: 2px solid #10b981;\n border-radius: 50%;\n animation: medical-spin 1s linear infinite;\n flex-shrink: 0;\n}\n\n@keyframes medical-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n} "],"names":[],"sourceRoot":""}