/* Reset pour layout pleine page */ html, body { height: 100%; margin: 0; padding: 0; overflow: auto; /* Pas de scroll global */ font-family: monospace; background-color: white; color: black; } * { box-sizing: border-box; } /* Container principal pleine page */ #page-container { height: 100vh; display: flex; flex-direction: column; } /* Header fixe */ #header { flex: 0 0 auto; padding: 15px 20px; background-color: white; } h1 { font-size: 18px; font-weight: bold; margin-bottom: 20px; } /* Styles pour la navigation breadcrumb dans le titre */ .path-segment { color: #0066cc; text-decoration: none; font-weight: normal; cursor: pointer; } .path-segment:hover { text-decoration: underline; color: #004499; } .path-segment:active { color: #002266; } /* Section développement */ .dev-section { background-color: #f0f0f0; border: 1px solid #ccc; padding: 15px; margin-bottom: 20px; border-radius: 4px; } .dev-section h2 { font-size: 16px; margin-top: 0; margin-bottom: 10px; color: #333; } .dev-section form { margin-bottom: 10px; } .dev-section label { display: block; margin-bottom: 5px; font-weight: bold; } .dev-section input[type="text"] { width: 400px; padding: 5px; border: 1px solid #ccc; font-family: monospace; } .dev-section button { padding: 5px 15px; margin-left: 10px; background-color: #007acc; color: white; border: none; cursor: pointer; } .dev-section button:hover { background-color: #005999; } #config-info { font-size: 12px; color: #666; margin-top: 10px; } /* Messages d'erreur */ .error { background-color: #ffe6e6; border: 1px solid #ff9999; padding: 10px; margin-bottom: 20px; color: #cc0000; border-radius: 4px; } /* Loading */ #loading { font-style: italic; color: #666; margin: 20px 0; } /* Tableau des fichiers */ table { border-collapse: collapse; width: 100%; font-family: monospace; font-size: 13px; } th { background-color: #f0f0f0; border: 1px solid #ccc; padding: 8px; text-align: left; font-weight: bold; } td { border: 1px solid #ccc; padding: 8px; vertical-align: top; } tr:nth-child(even) { background-color: #f9f9f9; } tr:hover { background-color: #e6f3ff; } /* Lignes cliquables */ .clickable-row { cursor: pointer; } .clickable-row:hover { background-color: #e6f3ff !important; } /* Liens et dossiers */ .folder-link { color: #0066cc; text-decoration: none; font-weight: bold; } .folder-link:hover { text-decoration: underline; } .file-link { color: #0066cc; text-decoration: none; } .file-link:hover { text-decoration: underline; } .parent-dir { font-weight: bold; } /* Boutons d'actions */ .copy-btn, .open-btn { background-color: #f0f0f0; border: 1px solid #ccc; padding: 2px 6px; font-size: 11px; cursor: pointer; border-radius: 2px; margin-left: 2px; } .copy-btn:hover, .open-btn:hover { background-color: #e0e0e0; } .copy-btn:active, .open-btn:active { background-color: #d0d0d0; } .open-btn { background-color: #007acc; color: white; } .open-btn:hover { background-color: #005999; } .open-btn:active { background-color: #004d80; } /* Tailles de fichiers */ .file-size { text-align: right; font-family: monospace; } .file-date { font-family: monospace; white-space: nowrap; } /* Container principal avec layout adaptatif - prend l'espace restant */ #main-container { flex: 1; display: flex; gap: 20px; padding: 0 20px 20px 20px; min-height: 0; } #content-section { display: flex; flex-direction: column; overflow: hidden; min-height: 0; } /* Section de prévisualisation */ #preview-section { border: 1px solid #ccc; border-radius: 4px; background-color: #f9f9f9; display: flex; flex-direction: column; } /* Mode paysage (landscape) - par défaut */ @media screen and (orientation: landscape) { #main-container { flex-direction: row; } #content-section { flex: 1; /* Tableau prend la moitié disponible */ overflow-y: auto; } #files-table { width: 100%; border-collapse: collapse; } #preview-section { flex: 1; /* Prévisualisation prend la moitié disponible */ } .preview-content { flex: 1; overflow-y: auto; } } /* Mode portrait (vertical) */ @media screen and (orientation: portrait) { #main-container { flex-direction: column; } #content-section { flex: none; /* Tableau prend l'espace nécessaire */ overflow-y: visible; } #files-table { width: 100%; border-collapse: collapse; } #preview-section { flex: 1; /* Prévisualisation prend 75% restant */ } .preview-content { flex: 1; overflow-y: auto; } } /* Styles pour écrans très petits (mobile) */ @media screen and (max-width: 768px) { #main-container { flex-direction: column; gap: 10px; } #content-section { flex: none; /* Tableau prend l'espace nécessaire */ overflow-y: visible; } #files-table { width: 100%; border-collapse: collapse; } #preview-section { flex: 1; } .preview-content { flex: 1; overflow-y: auto; } } .preview-header { display: flex; justify-content: space-between; align-items: center; padding: 10px 15px; background-color: #f0f0f0; border-bottom: 1px solid #ccc; border-radius: 4px 4px 0 0; flex: none; } .preview-title { font-weight: bold; font-size: 14px; color: #333; } #close-preview { background: none; border: none; font-size: 16px; cursor: pointer; color: #666; padding: 0; width: 20px; height: 20px; display: flex; align-items: center; justify-content: center; } #close-preview:hover { color: #333; background-color: #e0e0e0; border-radius: 2px; } .preview-content { background-color: white; flex: 1; overflow-y: auto; } .preview-content img { max-width: 100%; height: auto; border: 1px solid #ddd; } .preview-content pre { background-color: #f8f8f8; border: 1px solid #ddd; padding: 10px; overflow-x: auto; overflow-y: auto; font-family: monospace; font-size: 12px; line-height: 1.4; margin: 0; white-space: pre-wrap; } .preview-content video, .preview-content audio { max-width: 100%; height: auto; } .preview-content iframe { width: 100%; height: 100%; border: 1px solid #ddd; } .preview-error { color: #cc0000; font-style: italic; padding: 20px; text-align: center; } .preview-actions { padding: 10px 15px; border-top: 1px solid #ccc; background-color: #f0f0f0; border-radius: 0 0 4px 4px; flex: none; } #download-file { background-color: #007acc; color: white; border: none; padding: 5px 15px; cursor: pointer; border-radius: 2px; font-size: 12px; } #download-file:hover { background-color: #005999; } /* Styles pour le contenu Markdown et reStructuredText rendu */ .markdown-content, .rst-content { line-height: 1.6; color: #333; margin: 10px; } .markdown-content h1, .rst-content h1 { color: #2c3e50; border-bottom: 2px solid #3498db; padding-bottom: 10px; margin-top: 25px; margin-bottom: 15px; font-size: 24px; } .markdown-content h2, .rst-content h2 { color: #34495e; border-bottom: 1px solid #bdc3c7; padding-bottom: 5px; margin-top: 20px; margin-bottom: 12px; font-size: 20px; } .markdown-content h3, .rst-content h3 { color: #34495e; margin-top: 18px; margin-bottom: 10px; font-size: 16px; } .markdown-content h4, .rst-content h4 { color: #34495e; margin-top: 15px; margin-bottom: 8px; font-size: 14px; } .markdown-content p, .rst-content p { margin-bottom: 12px; text-align: justify; } .markdown-content ul, .rst-content ul { margin: 10px 0; padding-left: 20px; } .markdown-content li, .rst-content li { margin-bottom: 5px; } .markdown-content code, .rst-content code { background-color: #f1f2f6; color: #e74c3c; padding: 2px 4px; border-radius: 3px; font-family: "Courier New", monospace; font-size: 90%; } .markdown-content pre, .rst-content pre { background-color: #f8f9fa; border: 1px solid #e9ecef; border-radius: 4px; padding: 12px; overflow-x: auto; margin: 15px 0; font-family: "Courier New", monospace; font-size: 13px; line-height: 1.4; } .markdown-content pre code, .rst-content pre code { background: none; color: inherit; padding: 0; border-radius: 0; font-size: inherit; } .markdown-content a, .rst-content a { color: #3498db; text-decoration: none; border-bottom: 1px solid transparent; } .markdown-content a:hover, .rst-content a:hover { border-bottom-color: #3498db; } .markdown-content strong, .rst-content strong { color: #2c3e50; font-weight: bold; } .markdown-content em, .rst-content em { color: #34495e; font-style: italic; } .markdown-content img, .rst-content img { max-width: 100%; height: auto; border: 1px solid #ddd; border-radius: 4px; padding: 4px; margin: 10px 0; display: block; } /* Styles spécifiques pour les métadonnées et directives RST */ .rst-metadata { background-color: #f8f9fa; border-left: 4px solid #17a2b8; padding: 8px 12px; margin: 5px 0; font-size: 14px; border-radius: 0 4px 4px 0; } .metadata-key { font-weight: bold; color: #17a2b8; text-transform: capitalize; } .metadata-value { color: #495057; margin-left: 8px; } /* Directives générales */ .rst-directive { background-color: #fff3cd; border: 1px solid #ffeaa7; border-radius: 4px; padding: 12px; margin: 15px 0; } .directive-option { margin: 5px 0; padding-left: 15px; font-size: 13px; } .option-key { font-weight: bold; color: #6c757d; } .option-value { color: #495057; margin-left: 5px; } .directive-content { margin-top: 8px; padding-top: 8px; border-top: 1px solid #e9ecef; color: #495057; line-height: 1.4; } /* Directive big_button spécialement stylée */ .rst-big-button { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; border-radius: 8px; padding: 20px; margin: 20px 0; box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1); transition: transform 0.2s ease; } .rst-big-button:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15); } .rst-big-button .option-key { color: #e3f2fd; font-size: 12px; text-transform: uppercase; letter-spacing: 1px; } .rst-big-button .option-value { color: white; font-size: 16px; font-weight: bold; margin-left: 0; display: block; margin-top: 2px; } .rst-big-button .directive-content { border-top: 1px solid rgba(255, 255, 255, 0.2); color: #f8f9fa; font-size: 14px; margin-top: 12px; padding-top: 12px; } /* Ajustement des titres RST pour la hiérarchie complète */ .rst-content h1 { color: #2c3e50; border-bottom: 3px solid #3498db; font-size: 26px; } .rst-content h2 { color: #34495e; border-bottom: 2px solid #3498db; font-size: 22px; } .rst-content h3 { color: #34495e; border-bottom: 1px solid #bdc3c7; font-size: 18px; } .rst-content h4 { color: #34495e; border-bottom: 1px dotted #bdc3c7; font-size: 16px; } .rst-content h5 { color: #34495e; font-size: 14px; font-weight: bold; } /* Styles pour la coloration syntaxique */ .preview-content pre[class*="language-"], .preview-content code[class*="language-"] { background-color: #f8f8f8; font-family: "Consolas", "Monaco", "Lucida Console", monospace; font-size: 13px; line-height: 1.5; } .preview-content pre[class*="language-"] { overflow: auto; max-height: 600px; } .preview-content code[class*="language-"] { padding: 2px 4px; } /* Ajustements pour les thèmes Prism */ .preview-content .token.comment, .preview-content .token.prolog, .preview-content .token.doctype, .preview-content .token.cdata { color: #6a737d; font-style: italic; } .preview-content .token.string, .preview-content .token.attr-value { color: #032f62; } .preview-content .token.keyword, .preview-content .token.operator { color: #d73a49; font-weight: bold; } .preview-content .token.function, .preview-content .token.class-name { color: #6f42c1; } .preview-content .token.number, .preview-content .token.boolean { color: #005cc5; } .preview-content .token.variable { color: #e36209; } /* Footer */ address { margin-top: 30px; font-style: italic; font-size: 12px; color: #666; border-top: 1px solid #ccc; padding-top: 10px; } /* Icônes (caractères simples) */ .icon-folder::before { content: "📁 "; } .icon-file::before { content: "📄 "; } .icon-parent::before { content: "⬆️ "; } /* Icônes dynamiques pour les fichiers */ .file-icon { margin-right: 0.5em; font-size: 1em; }