body { margin: 0; padding: 0; font-family: Arial, sans-serif; background-color: #f5f5f5; } /* Login Page */ .login-page { display: flex; align-items: center; justify-content: center; min-height: 100vh; background-color: #2c1810; } .login-container { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); width: 100%; max-width: 400px; } .login-form .form-group { margin-bottom: 1rem; } .login-form label { display: block; margin-bottom: 0.5rem; color: #333; } .login-form input { width: 100%; padding: 0.5rem; border: 1px solid #ddd; border-radius: 4px; } .login-form button { width: 100%; padding: 0.75rem; background-color: #8b4513; color: white; border: none; border-radius: 4px; cursor: pointer; } .login-form button:hover { background-color: #703610; } .error-message { background-color: #ffebee; color: #c62828; padding: 0.75rem; border-radius: 4px; margin-bottom: 1rem; } /* Admin Dashboard */ .admin-nav { background-color: #2c1810; color: white; padding: 1rem 2rem; display: flex; justify-content: space-between; align-items: center; } .nav-brand { font-size: 1.25rem; font-weight: bold; } .nav-menu { display: flex; gap: 1rem; } .button { padding: 0.5rem 1rem; background-color: #8b4513; color: white; border: none; border-radius: 4px; cursor: pointer; text-decoration: none; } .button:hover { background-color: #703610; } .admin-main { padding: 2rem; } .stories-list { display: grid; gap: 1rem; margin-top: 2rem; } .story-item { background: white; padding: 1rem; border-radius: 8px; display: flex; align-items: center; gap: 1rem; } .story-cover { width: 100px; height: 150px; object-fit: cover; border-radius: 4px; } .story-info { flex: 1; } .story-actions { display: flex; gap: 0.5rem; } .delete-story { background-color: #c62828; } .delete-story:hover { background-color: #b71c1c; } /* Formulaire d'édition du roman */ .story-form { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); margin-bottom: 2rem; } .form-group { margin-bottom: 1.5rem; } .form-group label { display: block; margin-bottom: 0.5rem; color: #2c1810; font-weight: 500; } .form-group input[type="text"], .form-group textarea { width: 100%; padding: 0.75rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; } .form-group textarea { resize: vertical; min-height: 100px; } .current-cover { display: block; max-width: 200px; margin: 0.5rem 0; border-radius: 4px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } /* Section des chapitres */ .chapters-section { background: white; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } .chapters-section h2 { margin-top: 0; color: #2c1810; } .chapters-list { margin-top: 1.5rem; } .chapter-item { border: 1px solid #ddd; border-radius: 4px; margin-bottom: 1rem; background: #f9f9f9; } .chapter-header { display: flex; align-items: center; padding: 1rem; background: #fff; border-bottom: 1px solid #ddd; border-radius: 4px 4px 0 0; } .chapter-number { width: 30px; height: 30px; background: #8b4513; color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; cursor: move; margin-right: 1rem; } .chapter-title { flex: 1; padding: 0.5rem; margin-right: 1rem; border: 1px solid #ddd; border-radius: 4px; } .chapter-content { padding: 1rem; background: white; } .chapter-content .editor { min-height: 100px; cursor: pointer; } /* Modal d'édition */ .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-content { background: white; padding: 2rem; border-radius: 8px; width: 90%; max-width: 800px; max-height: 90vh; overflow-y: auto; } .modal-content h2 { margin-top: 0; color: #2c1810; } #chapterTitle { width: 100%; padding: 0.75rem; margin-bottom: 1rem; border: 1px solid #ddd; border-radius: 4px; font-size: 1rem; } /* Éditeur Quill personnalisé */ .ql-container { min-height: 300px; font-size: 1rem; margin-bottom: 1rem; } .ql-toolbar { border-radius: 4px 4px 0 0; background: #f9f9f9; } .ql-container { border-radius: 0 0 4px 4px; } /* Boutons et actions */ .modal-actions { display: flex; gap: 1rem; margin-top: 1rem; } .success-message { background-color: #e8f5e9; color: #2e7d32; padding: 1rem; border-radius: 4px; margin-bottom: 1rem; } /* Styles pour le drag & drop */ .chapter-item.sortable-ghost { opacity: 0.4; } .chapter-item.sortable-drag { cursor: move; opacity: 0.9; } /* Responsive */ @media (max-width: 768px) { .story-form, .chapters-section { padding: 1rem; } .chapter-header { flex-direction: column; align-items: stretch; } .chapter-number { margin-bottom: 0.5rem; } .chapter-title { margin: 0.5rem 0; } .modal-content { width: 95%; padding: 1rem; } .ql-container { min-height: 200px; } } /* Thème personnalisé pour l'éditeur */ .ql-snow .ql-toolbar button:hover, .ql-snow .ql-toolbar button.ql-active { color: #8b4513; } .ql-snow .ql-toolbar button:hover .ql-stroke, .ql-snow .ql-toolbar button.ql-active .ql-stroke { stroke: #8b4513; } .ql-snow .ql-toolbar button:hover .ql-fill, .ql-snow .ql-toolbar button.ql-active .ql-fill { fill: #8b4513; } /* Animation de transition */ .chapter-item { transition: transform 0.2s ease, box-shadow 0.2s ease; } .chapter-item:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); } .button { transition: background-color 0.2s ease; } /* États de survol pour les éléments interactifs */ .chapter-title:hover, .chapter-title:focus { border-color: #8b4513; outline: none; } .delete-chapter { background-color: #dc3545; color: white; padding: 0.5rem 1rem; border: none; border-radius: 4px; cursor: pointer; } .delete-chapter:hover { background-color: #c82333; }