#chapters-editor-root { .modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); display: flex; align-items: center; justify-content: center; z-index: 1000; } .modal-container { background-color: white; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); width: 90%; max-width: 500px; max-height: 90vh; overflow-y: auto; animation: modal-fade-in 0.3s ease-out; } @keyframes modal-fade-in { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } } .modal-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #eee; } .modal-title { margin: 0; font-size: 1.25rem; font-weight: 600; color: #333; } .modal-close-button { background: none; border: none; cursor: pointer; color: #666; padding: 4px; display: flex; align-items: center; justify-content: center; transition: color 0.2s; } .modal-close-button:hover { color: #000; } .modal-content { padding: 20px; color: #333; font-size: 1rem; line-height: 1.5; max-height: 400px; overflow-y: auto; } .modal-actions { display: flex; justify-content: flex-end; padding: 16px 20px; border-top: 1px solid #eee; gap: 12px; } .modal-button { padding: 8px 16px; border-radius: 4px; font-weight: 500; cursor: pointer; transition: all 0.2s; border: none; } .modal-button-primary { background-color: #0066cc; color: white; } .modal-button-primary:hover { background-color: #0055aa; } .modal-button-secondary { background-color: #f0f0f0; color: #333; } .modal-button-secondary:hover { background-color: #e0e0e0; } .modal-button-danger { background-color: #dc3545; color: white; } .modal-button-danger:hover { background-color: #bd2130; } /* Modal content styles */ .modal-message { margin-bottom: 16px; font-size: 1rem; } .text-center { text-align: center; } .modal-spinner { display: flex; align-items: center; justify-content: center; margin: 20px 0; } .spinner { border: 4px solid rgba(0, 0, 0, 0.1); border-radius: 50%; border-top: 4px solid #0066cc; width: 30px; height: 30px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .modal-success-icon { display: flex; justify-content: center; margin-bottom: 16px; color: #28a745; font-size: 2rem; } .modal-success-icon svg { width: 60px; height: 60px; color: #4caf50; animation: success-pop 0.5s ease-out; } @keyframes success-pop { 0% { transform: scale(0); opacity: 0; } 70% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 1; } } .modal-error-icon { display: flex; justify-content: center; margin-bottom: 16px; color: #dc3545; font-size: 2rem; } .modal-error-icon svg { width: 60px; height: 60px; color: #f44336; animation: error-pop 0.5s ease-out; } @keyframes error-pop { 0% { transform: scale(0); opacity: 0; } 70% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 1; } } .modal-choices { display: flex; flex-direction: column; gap: 10px; margin-top: 20px; } .modal-choice-button { padding: 12px 16px; border: none; border-radius: 4px; background-color: #0066cc; text-align: center; cursor: pointer; transition: all 0.2s; display: flex; align-items: center; justify-content: center; font-weight: 500; text-decoration: none; color: white; } .modal-choice-button:hover { background-color: #0055aa; transform: translateY(-1px); box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); } .modal-choice-button svg { margin-right: 8px; } .success-link { background-color: #4caf50; } .success-link:hover { background-color: #3d8b40; } .centered-choice { margin: 0 auto; width: auto; min-width: 220px; background-color: #0066cc; color: white; } .centered-choice:hover { background-color: #0055aa; } @media (max-width: 480px) { .modal-container { width: 95%; } .modal-actions { flex-direction: column; } .modal-button { width: 100%; } } .error-message { color: #f44336; font-weight: 500; background-color: rgba(244, 67, 54, 0.1); padding: 10px; border-radius: 4px; border-left: 4px solid #f44336; margin-top: 10px; } .redirect-message { margin-top: 20px; color: #555; font-size: 0.95rem; padding: 0; margin: 0; } .countdown { font-weight: bold; color: #0066cc; font-size: 1.1rem; } }