/* Основные стили */ body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f8f9fa; } /* Навигация */ .navbar-brand { font-weight: bold; } /* Контент панели */ .content-panel { background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); } /* Таблицы */ .table { margin-bottom: 0; } .table th { border-top: none; font-weight: 600; font-size: 0.9rem; } .table td { vertical-align: middle; font-size: 0.9rem; } /* Бейджи статуса */ .badge.bg-success { background-color: #28a745 !important; } .badge.bg-secondary { background-color: #6c757d !important; } /* Кнопки действий */ .btn-group .btn { font-size: 0.8rem; padding: 0.25rem 0.5rem; } /* Модальные окна */ .modal-content { border: none; box-shadow: 0 10px 30px rgba(0,0,0,0.2); } .modal-header { background-color: #f8f9fa; border-bottom: 1px solid #dee2e6; } /* Формы */ .form-label { font-weight: 600; color: #495057; } .form-control:focus, .form-select:focus { border-color: #0d6efd; box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.25); } /* Уведомления */ .alert { border: none; border-radius: 8px; } .alert-success { background-color: #d4edda; color: #155724; } .alert-danger { background-color: #f8d7da; color: #721c24; } .alert-info { background-color: #d1ecf1; color: #0c5460; } /* Спиннер загрузки */ #loadingSpinner { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); z-index: 9999; } /* Варианты ответов */ .answer-option { background-color: #f8f9fa; border: 1px solid #dee2e6; border-radius: 4px; padding: 10px; margin-bottom: 10px; } .answer-option .form-check-input { margin-top: 0.125rem; } .option-controls { display: flex; align-items: center; gap: 10px; } .option-text { flex: 1; } /* Вопросы */ .question-item { background-color: white; border: 1px solid #dee2e6; border-radius: 8px; padding: 15px; margin-bottom: 15px; transition: all 0.2s ease; } .question-item:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.1); } .question-header { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; } .question-text { font-weight: 500; color: #212529; margin-bottom: 10px; } .question-meta { font-size: 0.85rem; color: #6c757d; } .question-options { margin-top: 10px; } .option-item { padding: 5px 0; border-bottom: 1px solid #f0f0f0; } .option-item:last-child { border-bottom: none; } .correct-option { color: #28a745; font-weight: 500; } .incorrect-option { color: #6c757d; } /* Изображения */ .question-image { max-width: 100%; height: auto; border-radius: 4px; margin: 10px 0; } /* Адаптивность */ @media (max-width: 768px) { .container-fluid { padding: 10px; } .content-panel { padding: 15px; } .table-responsive { font-size: 0.8rem; } .btn-group .btn { font-size: 0.7rem; padding: 0.2rem 0.4rem; } .modal-dialog { margin: 10px; } } /* Анимации */ .fade-in { opacity: 0; animation: fadeIn 0.3s ease-in-out forwards; } @keyframes fadeIn { to { opacity: 1; } } /* Состояния загрузки */ .loading { opacity: 0.6; pointer-events: none; } /* Выделение активного элемента навигации */ .nav-link.active { font-weight: 600; } /* Пустые состояния */ .empty-state { text-align: center; padding: 40px 20px; color: #6c757d; } .empty-state i { font-size: 3rem; margin-bottom: 20px; color: #dee2e6; } /* Кастомные утилиты */ .text-muted { color: #6c757d !important; } .cursor-pointer { cursor: pointer; } /* Улучшения для форм */ .is-invalid { border-color: #dc3545; } .invalid-feedback { display: block; color: #dc3545; font-size: 0.875rem; margin-top: 0.25rem; } /* Drag and drop для изображений */ .image-drop-zone { border: 2px dashed #dee2e6; border-radius: 4px; padding: 20px; text-align: center; cursor: pointer; transition: all 0.2s ease; } .image-drop-zone:hover { border-color: #0d6efd; background-color: #f8f9ff; } .image-drop-zone.dragover { border-color: #0d6efd; background-color: #e3f2fd; }